Вопрос по тиражированию однотипных объектов в WinCC v14
Вопрос по тиражированию однотипных объектов в WinCC v14
Здравствуйте, в WinCC проeктов еще не делал, поэтому не судите строго за вопрос.
Ранее использовал для визуализации MasterScada.
Чтобы облегчить и ускорить работу, для типовых объектов (например транспортер) делал шаблон который включал в себя:
-изображение объекта,
-окно ручного управления,
-окно параметров,
-скрипт (который например отвечал за изменение цвета изображения)
-входные-выходные переменные для связи с ОРС-сервером.
Таким образом копируя этот шаблон размножал "транспортеры" и мне оставалось только для каждого нового скопированного "транспортера" привязать свои ОРС переменные и изменить изображение если оно не подходило по размеру, например для транспортера изменял длину или разворачивал на 180 градусов.
Уверен также можно и в WinCC, но пока еще не разобрался как. Буду признателен хотя бы за намек в какую сторону копать чтобы создать подобный шаблон.
Заранее всем спс за ответы.
Ранее использовал для визуализации MasterScada.
Чтобы облегчить и ускорить работу, для типовых объектов (например транспортер) делал шаблон который включал в себя:
-изображение объекта,
-окно ручного управления,
-окно параметров,
-скрипт (который например отвечал за изменение цвета изображения)
-входные-выходные переменные для связи с ОРС-сервером.
Таким образом копируя этот шаблон размножал "транспортеры" и мне оставалось только для каждого нового скопированного "транспортера" привязать свои ОРС переменные и изменить изображение если оно не подходило по размеру, например для транспортера изменял длину или разворачивал на 180 градусов.
Уверен также можно и в WinCC, но пока еще не разобрался как. Буду признателен хотя бы за намек в какую сторону копать чтобы создать подобный шаблон.
Заранее всем спс за ответы.
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
правильно ли я понял, что для решения этой задачи нужно использовать - faceplates?
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
может я вопрос некорректно задал??
посмотрел доки по faceplace вот тут https://support.industry.siemens.com/cs ... 0&lc=en-CA
вроде то что нужно, но окна которые можна создавать (например ручного управления) тут получаются статичные (нельзя перемещать), что не нравится, хотелось бы их "таскать" по всему экрану.
В WinCC это единственный инструмент для решения моей задачи или еще есть варианты????
посмотрел доки по faceplace вот тут https://support.industry.siemens.com/cs ... 0&lc=en-CA
вроде то что нужно, но окна которые можна создавать (например ручного управления) тут получаются статичные (нельзя перемещать), что не нравится, хотелось бы их "таскать" по всему экрану.
В WinCC это единственный инструмент для решения моей задачи или еще есть варианты????
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Во 1-х, надо использовать связку Custom object + faceplate. Но создание кастома не совсем тривиальная задача, слишком сименс перемудрил.
А во 2-х, с чего ты взял, что фейсплейты статичны? Это обычные окна, их можно таскать, менять размер, если только не отключишь это в свойствах.
А во 2-х, с чего ты взял, что фейсплейты статичны? Это обычные окна, их можно таскать, менять размер, если только не отключишь это в свойствах.
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Показал бы образец из МастерСкады что ты подразумеваешь под ЛицевойПанелью
типа такой с кнопками ?
https://support.industry.siemens.com/cs ... les_en.pdf
типа такой с кнопками ?
https://support.industry.siemens.com/cs ... les_en.pdf
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Спасибо за ответы.
Вот как у меня в МастерСКАДА, надеюсь понятно сделал скрин
![Image](https://cdn1.savepice.ru/uploads/2018/1/26/a3795e624e848104d6842165bd1ebaf7-full.png)
Таким образом копируя объект(шаблон) - копирую изображение объекта, его окна, аварийные сообщения - получаю экземпляр. Остается сменить название экземпляра и подогнать изображение под центральную мнемосхему и прицепить новый экземпляр на мнемосхеме. Внося изменения в шаблоне могу изменить все экземпляры этого шаблона - очень хорошо помогает когда заказчик "ВРЕДНЫЙ".
Также мне нужно сделать на WinCC.
Отсюда просьба описать хотя бы чуть подробней как это можно сделать (времени на эксперименты маловато), с faceplace вроде чуть понятно - сейчас буду практиковаться....
Вот как у меня в МастерСКАДА, надеюсь понятно сделал скрин
![Image](https://cdn1.savepice.ru/uploads/2018/1/26/a3795e624e848104d6842165bd1ebaf7-full.png)
Таким образом копируя объект(шаблон) - копирую изображение объекта, его окна, аварийные сообщения - получаю экземпляр. Остается сменить название экземпляра и подогнать изображение под центральную мнемосхему и прицепить новый экземпляр на мнемосхеме. Внося изменения в шаблоне могу изменить все экземпляры этого шаблона - очень хорошо помогает когда заказчик "ВРЕДНЫЙ".
Также мне нужно сделать на WinCC.
Отсюда просьба описать хотя бы чуть подробней как это можно сделать (времени на эксперименты маловато), с faceplace вроде чуть понятно - сейчас буду практиковаться....
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Статичны(окна) - имел ввиду, что их мышкой таскать нельзя в Рантайме по экрану монитора - выводятся в тех координатах в которых они запрограммированы(нарисованы) в faceplate - или я ошибаюсь?
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Ошибаешься. Да, появляются они именно там, где задашь. Но потом можешь таскать по всему экрану, если Move Disable не сделаешь.
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
СПС, такой еще вопрос - изображение самого объекта и его окон я так понял нужно "разносить" по разным слоям при создании Лицевой панели, но тогда при добавлении на центральную мнемосхему изображения лицевой панели, она и ее окна будут на одном слое и это несколько неудобно при большом количестве лицевых панелей на мнемосхеме (рисовать ппц как неудобно будет). Как тут быть?
второй вопрос. Если изображение лицевой панели мне нужно поместить в нижней части мнемосхемы, а вывод ее окон запрограммирован ниже изображения (нет места для вывода - граница монитора), как тут быть? Можно ли настроить вывод окон вне зависимости от расположения изображения лицевой панели на мнемосхеме?
второй вопрос. Если изображение лицевой панели мне нужно поместить в нижней части мнемосхемы, а вывод ее окон запрограммирован ниже изображения (нет места для вывода - граница монитора), как тут быть? Можно ли настроить вывод окон вне зависимости от расположения изображения лицевой панели на мнемосхеме?
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
По слоям - не обязательно. С одной стороны, слои вроде имеют какой-то приоритет (не помню, который слой всегда выше других, 0-й или 31-й), с другой стороны, они сделаны для удобства накидывания объектов на экране. Можно отключить временно ненужные слои, скрыв часть объектов. Я никогда не заморачивался до таких деталей, и всё лепил в 0-м слое. Когда можешь делать нормально читаемую схему - бардака не будет.
Расположение фейсплейтов никак не привязано к изображению технологического объекта (иконке механизма).
Есть иконка механизма, у которой есть обработчик мышиных кликов. В обработчике ты указываешь, имя объекта PictureWindow, который ты хочешь вызвать, и указываешь префикс тегов, чтобы фейсплейт подтянул теги нужного механизма. Как видишь, совершенно неважно, где при этом на экране находится объект PictureWindow.
Далее, насколько я помню, если при вызове фейсплейта он вылезет за края экрана - то он вылезет. Ну и хрен с ним, можно мышкой втянуть в границы экрана. Хочешь чтобы фейсплейт был всегда целиком на экране - нууу, планируй начальное расположение так, чтобы они 100% влезли.
Вот тут ничего не понял. Я понимаю, что ты пытаешься в голове переводить с "языка" MasterSCADA на "язык" WinCC, но я кроме WinCC уже давно ни в чём не работаю. Для меня изображение лицевой панели и вывод окна лицевой панели - это одно и то же, масло масляное.a_gricaj wrote:Если изображение лицевой панели мне нужно поместить в нижней части мнемосхемы, а вывод ее окон запрограммирован ниже изображения
Расположение фейсплейтов никак не привязано к изображению технологического объекта (иконке механизма).
Есть иконка механизма, у которой есть обработчик мышиных кликов. В обработчике ты указываешь, имя объекта PictureWindow, который ты хочешь вызвать, и указываешь префикс тегов, чтобы фейсплейт подтянул теги нужного механизма. Как видишь, совершенно неважно, где при этом на экране находится объект PictureWindow.
Далее, насколько я помню, если при вызове фейсплейта он вылезет за края экрана - то он вылезет. Ну и хрен с ним, можно мышкой втянуть в границы экрана. Хочешь чтобы фейсплейт был всегда целиком на экране - нууу, планируй начальное расположение так, чтобы они 100% влезли.
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Наверное пошел не правильным путем, вот, что получилось в рантайме:
![Image](https://image.ibb.co/myFZib/image.png)
Над изображением объекта поместил прозрачную кнопку которая сетит бит по которому становятся видими элементы окна, вообщем все как в примере:
https://www.youtube.com/watch?v=adb0mcOMDm4&t=838s
Правильный ли это подход?
Перемещать мышкой это окно не могу, что сделал неправильно??
Где найти этот "Move"?
![Image](https://image.ibb.co/myFZib/image.png)
Над изображением объекта поместил прозрачную кнопку которая сетит бит по которому становятся видими элементы окна, вообщем все как в примере:
https://www.youtube.com/watch?v=adb0mcOMDm4&t=838s
Правильный ли это подход?
Перемещать мышкой это окно не могу, что сделал неправильно??
Где найти этот "Move"?
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Может ли зависеть "отсутствие возможности перемещать окна мышкой" от типа Runtime - Advanced/Profesional сконфигурированного в РС-station?
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
в адвансе фейсплейты статичны
в проф надо юзать пикчер виндоу и в нём показывать отдельное окно и тогда будет двигаться
в проф надо юзать пикчер виндоу и в нём показывать отдельное окно и тогда будет двигаться
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Очень благодарен всем за ответы...пробую создать свою Лицевую панель....
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Добрый день, всегда мучил такой вопрос по Screen Window. Когда работаю со всплывающими окнами, всегда делаю свою кнопку на закрытие/скрытие данного окна (п.1).
![Image](https://i.imgur.com/s8m2ThF.jpg)
Хотелось бы использовать встроенную кнопку на закрытие (п.2), но так как всплывающее окно делаю через свойства "visibility" (отображаю при нажатии на объект, скрываю при нажатии на [x]), то при использовании встроенной кнопки (п.2), окно закрывается. Но чтобы его вызвать вновь, необходимо его дополнительно скрывать, после чего оно может быть отображено (при нажатии на кнопку отображения окна).
![Image](https://i.imgur.com/GYTN9uB.jpg)
Подскажите, как правильно вызвать всплывающее окно при закрытии встроенной кнопкой (п.2).
OLD Screen Window
Show
![Image](https://i.imgur.com/s8m2ThF.jpg)
NEW Screen Window
Show
![Image](https://i.imgur.com/GYTN9uB.jpg)
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Повесь на событие OnClose скрипт, который будет делать Visibility = False.
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Это единственно возможный вариант? Может есть способы попроще, может правильно делать вызов окна не через "visibility"?
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Еще один вопрос, в WinCC RT Advanced скрипт в лицевой панели запрограммировал (компиляция без ошибок), но скрипт не исполняется (внутренний тег не меняется), в чем может быть причина? Скрип вызывается автоматически или его нужно вызывать?
код скрипта:
If SmartTags("Properties\Stat.GeneralAlarm")Then SmartTags("StatusUnit")=0
If SmartTags("Properties\Stat.ModeAM")=False & SmartTags("Properties\Ctrl.ModeAM") Then SmartTags("StatusUnit")=1
StatusUnit - внутренний тег лицевой панели
Может как то по другому нужно?
код скрипта:
If SmartTags("Properties\Stat.GeneralAlarm")Then SmartTags("StatusUnit")=0
If SmartTags("Properties\Stat.ModeAM")=False & SmartTags("Properties\Ctrl.ModeAM") Then SmartTags("StatusUnit")=1
StatusUnit - внутренний тег лицевой панели
Может как то по другому нужно?
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Насколько я помню, писать надо
Code: Select all
SmartTags("...").Value=...
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Какой-то пздц, два дня бьюсь
над парой строчек скрипта....
например, у меня есть два тега:
1 - внешний тег лицевой панели (читается структурой с плк, тут все работет - значение тега меняется) - bool(тип данных), назовем его "Mode"
2 - внутренний тег лицевой панели - int, назовем его "StatMode"
мне нужно сделать -
if Mode=false
then
StatMode:=0;
else
StatMode:=1;
end_if;
Как это правильно сделать в WinCC RT Advanced в скрипте лицевой панели? Буду благодарен за код на этом примере (так понятней будет)
![Not understand (h)](./images/smilies/helpme.gif)
например, у меня есть два тега:
1 - внешний тег лицевой панели (читается структурой с плк, тут все работет - значение тега меняется) - bool(тип данных), назовем его "Mode"
2 - внутренний тег лицевой панели - int, назовем его "StatMode"
мне нужно сделать -
if Mode=false
then
StatMode:=0;
else
StatMode:=1;
end_if;
Как это правильно сделать в WinCC RT Advanced в скрипте лицевой панели? Буду благодарен за код на этом примере (так понятней будет)
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Оставил одну строчку в скрипте:
SmartTags("StatusUnit").Value=2
или так
SmartTags("StatusUnit")=2
все равно StatusUnit=0
![Not understand (h)](./images/smilies/helpme.gif)
SmartTags("StatusUnit").Value=2
или так
SmartTags("StatusUnit")=2
все равно StatusUnit=0
![Not understand (h)](./images/smilies/helpme.gif)
![Not understand (h)](./images/smilies/helpme.gif)
![Not understand (h)](./images/smilies/helpme.gif)
![Not understand (h)](./images/smilies/helpme.gif)
![Not understand (h)](./images/smilies/helpme.gif)
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Я тут глянул свои скрипты и в некоторых так
SmartTags("Folder\Tag") = Value
а в некоторых как у вас
SmartTags("Tag") = Value
И в чем разница я не помню, но оба варианта рабочие - последний с панели, первый с PC.
SmartTags("Folder\Tag") = Value
а в некоторых как у вас
SmartTags("Tag") = Value
И в чем разница я не помню, но оба варианта рабочие - последний с панели, первый с PC.
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
ну тогда вообще ппц, у вас работает у меня нет, скрипт в лицевой панели вызывается автоматически? Может еще какие-то манипуляции сделать нужно????
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Покажи всё-таки полностью код скрипта, от Sub до End Sub
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
https://support.industry.siemens.com/cs ... w/57132412Why is a script, which is configured to occur in the event of a "change in value" of an internal tag, not executed?
If you use an internal tag to call another internal tag, via which, for example, a script is executed (a change in value, for example), then a safety mechanism prevents this function from being executed.
This safety function is meant to prevent a continuous loop.
Example
In the Properties of the internal tag "HMI_Tag_01", a bit is set for the "Change in value" event in the internal tag "HMI_Tag_02".
At this second internal tag "HMI_Tag_02" a script is called through the Properties for the "Change in value" event.
Result: The script is not executed.
Remedy
Use an external tag which is linked to a controller. Please note that by using an external tag you circumvent the safety mechanism described above. This can lead to problems in Runtime.
проблема в использовании внутреннего тага,перекинь на контроллер и заработает
а по фотке не видно какой триггер...как его запускаешь?
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
наверное нужно было начать с самого начала, что я именно хочу получить от скрипта...
В контроллере в БД у меня структура, эту структуру читаю одним тегом и пихаю в Лицевую панель, где она раскладывается на отдельные сигналы (например bool) и дальше в лицевой панели делаю с ними что нужно. В частности по нескольким сигналам (bool) мне нужно сделать сигнал int. Этот int мне нужен для смены цвета изображения и отображения статуса
нпример
int= 0 -транспортер остановлен - серый цвет
int= 1 - транспортер работает в ручном режиме - желтый
int= 2 - транспортер работает в автоматическом режиме - зеленый
int = 3- авария - красный
Вот этот int и есть мой внутренний тег Лицевой панели....
Понятно, что можно все это дело организовать и в ПЛК, но зачем плк морочить мозги если все это за него сделает ПК...
Триггер никакой не запускаю - это уже был эксперимент, просто крик души - проверить работает ли вообще скрипт, изначально пробовал с тегами от ПЛК но тоже не пошло, в итоге запутался совсем.Поэтому и просил пример в предыдущих постах. В МастерСкада скрипты на Си там было проще, а ВБ первый раз сталкиваюсь, чтение доков на англ
мало помогает....
В контроллере в БД у меня структура, эту структуру читаю одним тегом и пихаю в Лицевую панель, где она раскладывается на отдельные сигналы (например bool) и дальше в лицевой панели делаю с ними что нужно. В частности по нескольким сигналам (bool) мне нужно сделать сигнал int. Этот int мне нужен для смены цвета изображения и отображения статуса
нпример
int= 0 -транспортер остановлен - серый цвет
int= 1 - транспортер работает в ручном режиме - желтый
int= 2 - транспортер работает в автоматическом режиме - зеленый
int = 3- авария - красный
Вот этот int и есть мой внутренний тег Лицевой панели....
Понятно, что можно все это дело организовать и в ПЛК, но зачем плк морочить мозги если все это за него сделает ПК...
Триггер никакой не запускаю - это уже был эксперимент, просто крик души - проверить работает ли вообще скрипт, изначально пробовал с тегами от ПЛК но тоже не пошло, в итоге запутался совсем.Поэтому и просил пример в предыдущих постах. В МастерСкада скрипты на Си там было проще, а ВБ первый раз сталкиваюсь, чтение доков на англ
![Not understand (h)](./images/smilies/helpme.gif)
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
у них в свойствах тага есть событие "изменение значения" туда и пихай скрипт.частности по нескольким сигналам (bool)
можно и без скриптов используя функцию "set value"
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
на каждый bool?
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
создаётся скрипт и на каждом бите вызываешь его .
не надо его текст копи-пастить...
не надо его текст копи-пастить...
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Куда пихать скрипт нашел большое СПС
(может кому надо будет - видео тут https://www.youtube.com/watch?v=Kss0ZxrTzOY&t=289s)
![ThankYou (thnx)](./images/smilies/tnxs.gif)
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
еще вопрос, код скрипта:
При Alarm=true у меня получается StatusUnit=6 как так?
а если переношу строчку " If Alarm Then SmartTags("StatusUnit")=1 "в конец скрипта то тогда работает правильно и StatusUnit=1
Code: Select all
Sub ScriptCU()
Dim ModeAM,CtrlModeAM,Alarm,RemoteRunning,ManRunning,AutoRunning,Feedback,ControlFromRoute,MaskingFeedback
ModeAM=SmartTags("Properties\Stat.ModeAM")
CtrlModeAM=SmartTags("Properties\Ctrl.ModeAM")
Alarm=SmartTags("Properties\Stat.GeneralAlarm")
RemoteRunning=SmartTags("Properties\Stat.RemoteRunning")
ManRunning=SmartTags("Properties\Stat.ManRunning")
AutoRunning=SmartTags("Properties\Stat.AutoRunning")
Feedback=SmartTags("Properties\Stat.Feedback")
ControlFromRoute=SmartTags("Properties\Stat.ControlFromRoute")
MaskingFeedback=SmartTags("Properties\Par.MaskingFeedback")
If Alarm=False & ModeAM &CtrlModeAM & Feedback=False & MaskingFeedback=False Then SmartTags("StatusUnit")=0 'остановлен
If Alarm=False & ModeAM &CtrlModeAM & MaskingFeedback & ManRunning=False & AutoRunning=False Then SmartTags("StatusUnit")=0 'остановлен-маскирование
If Alarm Then SmartTags("StatusUnit")=1
If Alarm=False & ModeAM=False & Feedback=False Then SmartTags("StatusUnit")=2 'дистанционно остановлен
If Alarm=False & ModeAM=False & Feedback Then SmartTags("StatusUnit")=3 'дистанционно работает
If Alarm=False & ModeAM & CtrlModeAM=False & ManRunning=False Then SmartTags("StatusUnit")=4 'ручное управление - остановлен
If Alarm=False & ModeAM & CtrlModeAM=False & ManRunning Then SmartTags("StatusUnit")=5 'ручное управление - работает
If Alarm=False & ModeAM & CtrlModeAM & AutoRunning=False Then SmartTags("StatusUnit")=6 'Авто управление - остановлен
If Alarm=False & ModeAM & CtrlModeAM & AutoRunning Then SmartTags("StatusUnit")=7 'Авто управление - работает
End Sub
а если переношу строчку " If Alarm Then SmartTags("StatusUnit")=1 "в конец скрипта то тогда работает правильно и StatusUnit=1
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Поставить скобки, чтобы бедный компилятор не мучился с приоритетами, не судьба? Ну или учитывайте приоритеты сами. При таком написании кода еще и не такой результат возможен.
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
имеете ввиду так If (Alarm=False & ModeAM=False & Feedback=False) Then SmartTags("StatusUnit")=2???
Да, Вы правы, дело в скобках
Да, Вы правы, дело в скобках
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Я бы написал
If ( NOT (Alarm OR ModeAM OR Feedback) ) Then ...
If ( NOT (Alarm OR ModeAM OR Feedback) ) Then ...
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
СПС, а как можно в скрипте получить статус связи с ПЛК (видит ли скада ПЛК или нет)?
Также как узнать "залогиненного" юзера?
Также как узнать "залогиненного" юзера?
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
С юзерами разобрался за исключением одного момента:
![Image](http://images.vfl.ru/ii/1518103989/c81beb3d/20502359_m.png)
почему ввод Authorization кнопки которая создана в лицевой панели заблокирован? На обычном экране все гуд...
По диагностике статуса соединения с ПЛК: правильное ли решение вязать битовый тег к системным сообщениям :
например:
по сообщению 140001 - Connection disconnected: - взвожу бит.
а по сообщению 140000 - Connection established: - сбрасываю бит?
![Image](http://images.vfl.ru/ii/1518103989/c81beb3d/20502359_m.png)
почему ввод Authorization кнопки которая создана в лицевой панели заблокирован? На обычном экране все гуд...
По диагностике статуса соединения с ПЛК: правильное ли решение вязать битовый тег к системным сообщениям :
например:
по сообщению 140001 - Connection disconnected: - взвожу бит.
а по сообщению 140000 - Connection established: - сбрасываю бит?
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
дабы не плодить тем, еще вопрос по скрину ниже:
![Image](http://thumb.ibb.co/mTfAfn/image.png)
как видно Рантайм насчитал 32 тега, но не пойму почему...
у меня к двум Лицевым панелям подключено два внутренних тега (оба int) , и три внешних (структура)
Внешние - 1. word(разложен по битам), 2. word(разложен по битам), 3. dword(разложен по битам) + два int
Где то на оф. сайте сименса читал, что даже если в теге тип данных UDT, все равно количество тегов будет считаться по количеству переменных с простым типом данных....
в моем случае (1+1+3)*2=10, а у меня 32, пожалуйста подскажите где моя ошибка в подсчете количества тегов???
такое впечатление, что считаются все подвязанные битовые сигналы из UDT... и фокус со структурой не дает экономии внешних тегов...
Отсюда вопрос, какие есть пути экономии тегов в Wincc Advanced??
![Image](http://thumb.ibb.co/mTfAfn/image.png)
как видно Рантайм насчитал 32 тега, но не пойму почему...
у меня к двум Лицевым панелям подключено два внутренних тега (оба int) , и три внешних (структура)
Внешние - 1. word(разложен по битам), 2. word(разложен по битам), 3. dword(разложен по битам) + два int
Где то на оф. сайте сименса читал, что даже если в теге тип данных UDT, все равно количество тегов будет считаться по количеству переменных с простым типом данных....
в моем случае (1+1+3)*2=10, а у меня 32, пожалуйста подскажите где моя ошибка в подсчете количества тегов???
такое впечатление, что считаются все подвязанные битовые сигналы из UDT... и фокус со структурой не дает экономии внешних тегов...
Отсюда вопрос, какие есть пути экономии тегов в Wincc Advanced??
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Сам с собой разговариваю, получилось сделать так :
- в контроллере (в DB) переменная UDT размером с DWORD;
- в WinCC сделал тег - читает по адресу с DB выше указанную переменную но уже Dint ( в лицевой панели нет типа данных DWORD, хз почему)
- создал лицевую панель с интерфейсом, где переменная типа Dint
- в Лицевой панели создал скрипт и разложил входную переменную на 31 бит (32 бит в Dint я так понял знак числа)
связал тегом, проверил, все работает отлично, получил 31 тег вместо 1.
Вопрос к спецам, корректно ли эта конструкция будет работать?? Не будет ли тупить скада так как скриптов и внутренних тегов многовато будет? Буду благодарен за ответ.
- в контроллере (в DB) переменная UDT размером с DWORD;
- в WinCC сделал тег - читает по адресу с DB выше указанную переменную но уже Dint ( в лицевой панели нет типа данных DWORD, хз почему)
- создал лицевую панель с интерфейсом, где переменная типа Dint
- в Лицевой панели создал скрипт и разложил входную переменную на 31 бит (32 бит в Dint я так понял знак числа)
связал тегом, проверил, все работает отлично, получил 31 тег вместо 1.
Вопрос к спецам, корректно ли эта конструкция будет работать?? Не будет ли тупить скада так как скриптов и внутренних тегов многовато будет? Буду благодарен за ответ.
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
нужно добавить, что тег должен быть "Cyclic continuous" - что бы скрипт в лицевой панели запускался когда меняется значение на входе лицевой панели.
Что же будет когда нужно опросить 3000 таких тегов, кто нибудь сталкивался? Скада тупить не будет?
Что же будет когда нужно опросить 3000 таких тегов, кто нибудь сталкивался? Скада тупить не будет?
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Я задал глупый вопрос???????????a_gricaj wrote:нужно добавить, что тег должен быть "Cyclic continuous" - что бы скрипт в лицевой панели запускался когда меняется значение на входе лицевой панели.
Что же будет когда нужно опросить 3000 таких тегов, кто нибудь сталкивался? Скада тупить не будет?
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Накидал под сотню лицевых панелей на стартовый экран, увязал их тегами и получил при загрузке скады системное сообщение - Overload: Script "имя скрипта" is rejected....
некоторые скрипты при загрузке не обрабатываются, но ...
Имею один общий сигнал для всех лицевых панелей (Ручной/Автомат), изменяя который инициализирую опять запуск всех скриптов в каждой лицевой панели уже после запуска скады, тут все те же скрипты обрабатываются быстро и корректно, получается перегрузка происходит только в момент запуска системы - подскажите пж как тут быть, времени на игрушки не осталось, проект горит(((
некоторые скрипты при загрузке не обрабатываются, но ...
Имею один общий сигнал для всех лицевых панелей (Ручной/Автомат), изменяя который инициализирую опять запуск всех скриптов в каждой лицевой панели уже после запуска скады, тут все те же скрипты обрабатываются быстро и корректно, получается перегрузка происходит только в момент запуска системы - подскажите пж как тут быть, времени на игрушки не осталось, проект горит(((
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
А почему не сделал всего одну лиц.панель и не меняешь привязанный тег перед вызовом?a_gricaj wrote:Накидал под сотню лицевых панелей на стартовый экран, увязал их тегами
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
А, так налицо путаница в терминологии Siemens'a.
Ваши моторчики на экране, то что вы называете лиц.панелями - это блок-иконки. Т.е. иконки для блока управления чем-либо.
А лиц.панель - это всплывающее окно с настройками управления.
Ваши моторчики на экране, то что вы называете лиц.панелями - это блок-иконки. Т.е. иконки для блока управления чем-либо.
А лиц.панель - это всплывающее окно с настройками управления.
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Мнемосхема (экран) у меня организована при помощи faceplates, так как много однотипных объектов.
Например есть мотор - для него у меня два faceplates:
1 - изображение,
2 - окно ручного управления и параметров.
Накладывая faceplates окна на faceplates изображения - получил вызов окна управления мотором и его параметров.
к этим двум faceplates подключены три внешних тега: CTRL(тип UDT), PAR(тип UDT),STAT(тип UDT) и
два внутренних тега - один тег номер группы к которой относится залогиненный оператор, а второй Аlarm(для взвода аварийных сообщений - триггеров).
В каждом faceplates входной тег CTRL, PAR, и STAT я раскладываю на биты скриптами, и пишу их(биты) во внутренние тeги faceplates, далее использую эти битовые теги как мне нужно.
Это имеет вот такой вид:
В итоге накидав faceplates на мнемосхему получил сообщение Рантайма (обвел красным):
![Image](https://preview.ibb.co/gbN2RJ/image.png)
номер системного евента 20015 (который обведен)
из справки портала:
![Image](https://preview.ibb.co/fbwkfd/image.jpg)
В результате часть скриптов faceplates не выполняется, куда копать не знаю, буду благодарен за любую инфу которая поможет решить проблему......
Например есть мотор - для него у меня два faceplates:
1 - изображение,
2 - окно ручного управления и параметров.
Накладывая faceplates окна на faceplates изображения - получил вызов окна управления мотором и его параметров.
к этим двум faceplates подключены три внешних тега: CTRL(тип UDT), PAR(тип UDT),STAT(тип UDT) и
два внутренних тега - один тег номер группы к которой относится залогиненный оператор, а второй Аlarm(для взвода аварийных сообщений - триггеров).
В каждом faceplates входной тег CTRL, PAR, и STAT я раскладываю на биты скриптами, и пишу их(биты) во внутренние тeги faceplates, далее использую эти битовые теги как мне нужно.
Это имеет вот такой вид:
![Image](https://preview.ibb.co/d50YYy/image.jpg)
В итоге накидав faceplates на мнемосхему получил сообщение Рантайма (обвел красным):
![Image](https://preview.ibb.co/gbN2RJ/image.png)
номер системного евента 20015 (который обведен)
из справки портала:
![Image](https://preview.ibb.co/fbwkfd/image.jpg)
В результате часть скриптов faceplates не выполняется, куда копать не знаю, буду благодарен за любую инфу которая поможет решить проблему......
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Что за общий сигнал и что за скрипты в каждом фейсплейте отрабатывают?a_gricaj wrote:Имею один общий сигнал для всех лицевых панелей (Ручной/Автомат), изменяя который инициализирую опять запуск всех скриптов в каждой лицевой панели уже после запуска скады, тут все те же скрипты обрабатываются быстро и корректно, получается перегрузка происходит только в момент запуска системы - подскажите пж как тут быть, времени на игрушки не осталось, проект горит(((
Re: Вопрос по тиражированию однотипных объектов в WinCC v14
Свою ошибку понял- при загрузке обрабатывались все скрипты в лицевых панелях, а их очень много вызывалось одновременно....Спс за помощь
Переделал, теперь вращаю до 20 больших скриптов, вместо 300 маленьких, и переключаю скриптом вх/вых переменные для лицевой панели (которая теперь только одна для всех однотипных объектов)
Подскажите пж такой вопрос, а можно ли WinCC v14 Advanced вызывать скрипт в скрипте, и "подключать" к вызываемому скрипту разные "входные-выходные" теги, например нужно выполнить типовую задачу - смена цвета однотипных элементов????
Переделал, теперь вращаю до 20 больших скриптов, вместо 300 маленьких, и переключаю скриптом вх/вых переменные для лицевой панели (которая теперь только одна для всех однотипных объектов)
Подскажите пж такой вопрос, а можно ли WinCC v14 Advanced вызывать скрипт в скрипте, и "подключать" к вызываемому скрипту разные "входные-выходные" теги, например нужно выполнить типовую задачу - смена цвета однотипных элементов????