plcforum.uz.ua

International PLC Forum
It is currently Sun Oct 21, 2018 1:35 pm

All times are UTC + 3 hours


Forum rules


Please click here to view the forum rules



Post new topic Reply to topic  [ 52 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Tue Jan 23, 2018 11:52 am 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Здравствуйте, в WinCC проeктов еще не делал, поэтому не судите строго за вопрос.

Ранее использовал для визуализации MasterScada.
Чтобы облегчить и ускорить работу, для типовых объектов (например транспортер) делал шаблон который включал в себя:
-изображение объекта,
-окно ручного управления,
-окно параметров,
-скрипт (который например отвечал за изменение цвета изображения)
-входные-выходные переменные для связи с ОРС-сервером.
Таким образом копируя этот шаблон размножал "транспортеры" и мне оставалось только для каждого нового скопированного "транспортера" привязать свои ОРС переменные и изменить изображение если оно не подходило по размеру, например для транспортера изменял длину или разворачивал на 180 градусов.

Уверен также можно и в WinCC, но пока еще не разобрался как. Буду признателен хотя бы за намек в какую сторону копать чтобы создать подобный шаблон.

Заранее всем спс за ответы.


Top
 Profile  
 
PostPosted: Tue Jan 23, 2018 12:39 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
правильно ли я понял, что для решения этой задачи нужно использовать - faceplates?


Top
 Profile  
 
PostPosted: Thu Jan 25, 2018 10:01 am 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
может я вопрос некорректно задал??
посмотрел доки по faceplace вот тут https://support.industry.siemens.com/cs ... 0&lc=en-CA
вроде то что нужно, но окна которые можна создавать (например ручного управления) тут получаются статичные (нельзя перемещать), что не нравится, хотелось бы их "таскать" по всему экрану.
В WinCC это единственный инструмент для решения моей задачи или еще есть варианты????


Top
 Profile  
 
PostPosted: Thu Jan 25, 2018 2:33 pm 

Joined: Wed Oct 13, 2010 11:44 am
Posts: 233
Location: Russian Federation
Во 1-х, надо использовать связку Custom object + faceplate. Но создание кастома не совсем тривиальная задача, слишком сименс перемудрил.
А во 2-х, с чего ты взял, что фейсплейты статичны? Это обычные окна, их можно таскать, менять размер, если только не отключишь это в свойствах.


Top
 Profile  
 
PostPosted: Thu Jan 25, 2018 7:14 pm 
Site Admin

Joined: Thu Feb 16, 2006 6:25 pm
Posts: 3360
Location: Russia
Показал бы образец из МастерСкады что ты подразумеваешь под ЛицевойПанелью
типа такой с кнопками ?
https://support.industry.siemens.com/cs/attachments/68014632/68014632_Faceplates_EngineeringExamples_en.pdf


Top
 Profile  
 
PostPosted: Fri Jan 26, 2018 12:45 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Спасибо за ответы.

Вот как у меня в МастерСКАДА, надеюсь понятно сделал скрин
Image


Таким образом копируя объект(шаблон) - копирую изображение объекта, его окна, аварийные сообщения - получаю экземпляр. Остается сменить название экземпляра и подогнать изображение под центральную мнемосхему и прицепить новый экземпляр на мнемосхеме. Внося изменения в шаблоне могу изменить все экземпляры этого шаблона - очень хорошо помогает когда заказчик "ВРЕДНЫЙ".

Также мне нужно сделать на WinCC.
Отсюда просьба описать хотя бы чуть подробней как это можно сделать (времени на эксперименты маловато), с faceplace вроде чуть понятно - сейчас буду практиковаться....


Top
 Profile  
 
PostPosted: Fri Jan 26, 2018 3:04 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Статичны(окна) - имел ввиду, что их мышкой таскать нельзя в Рантайме по экрану монитора - выводятся в тех координатах в которых они запрограммированы(нарисованы) в faceplate - или я ошибаюсь?


Top
 Profile  
 
PostPosted: Fri Jan 26, 2018 6:07 pm 

Joined: Wed Oct 13, 2010 11:44 am
Posts: 233
Location: Russian Federation
Ошибаешься. Да, появляются они именно там, где задашь. Но потом можешь таскать по всему экрану, если Move Disable не сделаешь.


Top
 Profile  
 
PostPosted: Fri Jan 26, 2018 6:42 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
СПС, такой еще вопрос - изображение самого объекта и его окон я так понял нужно "разносить" по разным слоям при создании Лицевой панели, но тогда при добавлении на центральную мнемосхему изображения лицевой панели, она и ее окна будут на одном слое и это несколько неудобно при большом количестве лицевых панелей на мнемосхеме (рисовать ппц как неудобно будет). Как тут быть?
второй вопрос. Если изображение лицевой панели мне нужно поместить в нижней части мнемосхемы, а вывод ее окон запрограммирован ниже изображения (нет места для вывода - граница монитора), как тут быть? Можно ли настроить вывод окон вне зависимости от расположения изображения лицевой панели на мнемосхеме?


Top
 Profile  
 
PostPosted: Fri Jan 26, 2018 8:46 pm 

Joined: Wed Oct 13, 2010 11:44 am
Posts: 233
Location: Russian Federation
По слоям - не обязательно. С одной стороны, слои вроде имеют какой-то приоритет (не помню, который слой всегда выше других, 0-й или 31-й), с другой стороны, они сделаны для удобства накидывания объектов на экране. Можно отключить временно ненужные слои, скрыв часть объектов. Я никогда не заморачивался до таких деталей, и всё лепил в 0-м слое. Когда можешь делать нормально читаемую схему - бардака не будет.
a_gricaj wrote:
Если изображение лицевой панели мне нужно поместить в нижней части мнемосхемы, а вывод ее окон запрограммирован ниже изображения
Вот тут ничего не понял. Я понимаю, что ты пытаешься в голове переводить с "языка" MasterSCADA на "язык" WinCC, но я кроме WinCC уже давно ни в чём не работаю. Для меня изображение лицевой панели и вывод окна лицевой панели - это одно и то же, масло масляное.

Расположение фейсплейтов никак не привязано к изображению технологического объекта (иконке механизма).
Есть иконка механизма, у которой есть обработчик мышиных кликов. В обработчике ты указываешь, имя объекта PictureWindow, который ты хочешь вызвать, и указываешь префикс тегов, чтобы фейсплейт подтянул теги нужного механизма. Как видишь, совершенно неважно, где при этом на экране находится объект PictureWindow.
Далее, насколько я помню, если при вызове фейсплейта он вылезет за края экрана - то он вылезет. Ну и хрен с ним, можно мышкой втянуть в границы экрана. Хочешь чтобы фейсплейт был всегда целиком на экране - нууу, планируй начальное расположение так, чтобы они 100% влезли.


Top
 Profile  
 
PostPosted: Sun Jan 28, 2018 7:14 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Наверное пошел не правильным путем, вот, что получилось в рантайме:
Image

Над изображением объекта поместил прозрачную кнопку которая сетит бит по которому становятся видими элементы окна, вообщем все как в примере:
https://www.youtube.com/watch?v=adb0mcOMDm4&t=838s
Правильный ли это подход?

Перемещать мышкой это окно не могу, что сделал неправильно??
Где найти этот "Move"?


Top
 Profile  
 
PostPosted: Tue Jan 30, 2018 10:58 am 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Может ли зависеть "отсутствие возможности перемещать окна мышкой" от типа Runtime - Advanced/Profesional сконфигурированного в РС-station?


Top
 Profile  
 
PostPosted: Tue Jan 30, 2018 9:48 pm 
Site Admin

Joined: Sat Aug 13, 2005 9:15 am
Posts: 1125
в адвансе фейсплейты статичны
в проф надо юзать пикчер виндоу и в нём показывать отдельное окно и тогда будет двигаться


Top
 Profile  
 
PostPosted: Fri Feb 02, 2018 11:49 am 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Очень благодарен всем за ответы...пробую создать свою Лицевую панель....


Top
 Profile  
 
PostPosted: Fri Feb 02, 2018 3:39 pm 

Joined: Thu Dec 08, 2011 2:23 pm
Posts: 39
Добрый день, всегда мучил такой вопрос по Screen Window. Когда работаю со всплывающими окнами, всегда делаю свою кнопку на закрытие/скрытие данного окна (п.1).
Image

Хотелось бы использовать встроенную кнопку на закрытие (п.2), но так как всплывающее окно делаю через свойства "visibility" (отображаю при нажатии на объект, скрываю при нажатии на [x]), то при использовании встроенной кнопки (п.2), окно закрывается. Но чтобы его вызвать вновь, необходимо его дополнительно скрывать, после чего оно может быть отображено (при нажатии на кнопку отображения окна).
Image

Подскажите, как правильно вызвать всплывающее окно при закрытии встроенной кнопкой (п.2).

Top
 Profile  
 
PostPosted: Fri Feb 02, 2018 3:51 pm 

Joined: Wed Oct 13, 2010 11:44 am
Posts: 233
Location: Russian Federation
Повесь на событие OnClose скрипт, который будет делать Visibility = False.


Top
 Profile  
 
PostPosted: Mon Feb 05, 2018 9:35 am 

Joined: Thu Dec 08, 2011 2:23 pm
Posts: 39
Это единственно возможный вариант? Может есть способы попроще, может правильно делать вызов окна не через "visibility"?


Top
 Profile  
 
PostPosted: Mon Feb 05, 2018 2:54 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Еще один вопрос, в 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 - внутренний тег лицевой панели

Может как то по другому нужно?


Top
 Profile  
 
PostPosted: Mon Feb 05, 2018 7:49 pm 

Joined: Wed Oct 13, 2010 11:44 am
Posts: 233
Location: Russian Federation
Насколько я помню, писать надо
Code:
SmartTags("...").Value=...


Top
 Profile  
 
PostPosted: Tue Feb 06, 2018 11:05 am 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Какой-то пздц, два дня бьюсь (h) над парой строчек скрипта....

например, у меня есть два тега:
1 - внешний тег лицевой панели (читается структурой с плк, тут все работет - значение тега меняется) - bool(тип данных), назовем его "Mode"
2 - внутренний тег лицевой панели - int, назовем его "StatMode"
мне нужно сделать -
if Mode=false
then
StatMode:=0;
else
StatMode:=1;
end_if;

Как это правильно сделать в WinCC RT Advanced в скрипте лицевой панели? Буду благодарен за код на этом примере (так понятней будет)


Top
 Profile  
 
PostPosted: Tue Feb 06, 2018 1:44 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Оставил одну строчку в скрипте:
SmartTags("StatusUnit").Value=2
или так
SmartTags("StatusUnit")=2
все равно StatusUnit=0
(h) (h) (h) (h) (h)


Top
 Profile  
 
PostPosted: Tue Feb 06, 2018 4:18 pm 

Joined: Mon Apr 26, 2010 10:02 pm
Posts: 36
Location: Н.Новгород
Я тут глянул свои скрипты и в некоторых так
SmartTags("Folder\Tag") = Value
а в некоторых как у вас
SmartTags("Tag") = Value
И в чем разница я не помню, но оба варианта рабочие - последний с панели, первый с PC.


Top
 Profile  
 
PostPosted: Tue Feb 06, 2018 4:40 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
ну тогда вообще ппц, у вас работает у меня нет, скрипт в лицевой панели вызывается автоматически? Может еще какие-то манипуляции сделать нужно????


Top
 Profile  
 
PostPosted: Tue Feb 06, 2018 4:51 pm 

Joined: Wed Oct 13, 2010 11:44 am
Posts: 233
Location: Russian Federation
Покажи всё-таки полностью код скрипта, от Sub до End Sub


Top
 Profile  
 
PostPosted: Tue Feb 06, 2018 5:26 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Rex2701 wrote:
Покажи всё-таки полностью код скрипта, от Sub до End Sub

Вот
Image


Top
 Profile  
 
PostPosted: Tue Feb 06, 2018 6:03 pm 
Site Admin

Joined: Sat Aug 13, 2005 9:15 am
Posts: 1125
Quote:
Why 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.

https://support.industry.siemens.com/cs ... w/57132412
проблема в использовании внутреннего тага,перекинь на контроллер и заработает
а по фотке не видно какой триггер...как его запускаешь?


Top
 Profile  
 
PostPosted: Tue Feb 06, 2018 6:35 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
наверное нужно было начать с самого начала, что я именно хочу получить от скрипта...
В контроллере в БД у меня структура, эту структуру читаю одним тегом и пихаю в Лицевую панель, где она раскладывается на отдельные сигналы (например bool) и дальше в лицевой панели делаю с ними что нужно. В частности по нескольким сигналам (bool) мне нужно сделать сигнал int. Этот int мне нужен для смены цвета изображения и отображения статуса
нпример
int= 0 -транспортер остановлен - серый цвет
int= 1 - транспортер работает в ручном режиме - желтый
int= 2 - транспортер работает в автоматическом режиме - зеленый
int = 3- авария - красный
Вот этот int и есть мой внутренний тег Лицевой панели....
Понятно, что можно все это дело организовать и в ПЛК, но зачем плк морочить мозги если все это за него сделает ПК...

Триггер никакой не запускаю - это уже был эксперимент, просто крик души - проверить работает ли вообще скрипт, изначально пробовал с тегами от ПЛК но тоже не пошло, в итоге запутался совсем.Поэтому и просил пример в предыдущих постах. В МастерСкада скрипты на Си там было проще, а ВБ первый раз сталкиваюсь, чтение доков на англ (h) мало помогает....


Top
 Profile  
 
PostPosted: Tue Feb 06, 2018 6:51 pm 
Site Admin

Joined: Sat Aug 13, 2005 9:15 am
Posts: 1125
Quote:
частности по нескольким сигналам (bool)

у них в свойствах тага есть событие "изменение значения" туда и пихай скрипт.
можно и без скриптов используя функцию "set value"


Top
 Profile  
 
PostPosted: Tue Feb 06, 2018 6:55 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
на каждый bool?


Top
 Profile  
 
PostPosted: Tue Feb 06, 2018 6:59 pm 
Site Admin

Joined: Sat Aug 13, 2005 9:15 am
Posts: 1125
создаётся скрипт и на каждом бите вызываешь его .
не надо его текст копи-пастить...


Top
 Profile  
 
PostPosted: Tue Feb 06, 2018 9:48 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
вот моя Лицевая панель - в свойствах тега нет ничего, наверное я не туда смотрю, ткните носом пж куда вязать скрипт
Image


Top
 Profile  
 
PostPosted: Wed Feb 07, 2018 10:59 am 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Куда пихать скрипт нашел большое СПС (thnx) (может кому надо будет - видео тут https://www.youtube.com/watch?v=Kss0ZxrTzOY&t=289s)


Top
 Profile  
 
PostPosted: Wed Feb 07, 2018 2:42 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
еще вопрос, код скрипта:
Code:
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


При Alarm=true у меня получается StatusUnit=6 как так?
а если переношу строчку " If Alarm Then SmartTags("StatusUnit")=1 "в конец скрипта то тогда работает правильно и StatusUnit=1


Top
 Profile  
 
PostPosted: Wed Feb 07, 2018 3:37 pm 

Joined: Mon Apr 26, 2010 10:02 pm
Posts: 36
Location: Н.Новгород
Поставить скобки, чтобы бедный компилятор не мучился с приоритетами, не судьба? Ну или учитывайте приоритеты сами. При таком написании кода еще и не такой результат возможен.


Top
 Profile  
 
PostPosted: Wed Feb 07, 2018 3:40 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
имеете ввиду так If (Alarm=False & ModeAM=False & Feedback=False) Then SmartTags("StatusUnit")=2???

Да, Вы правы, дело в скобках


Top
 Profile  
 
PostPosted: Wed Feb 07, 2018 7:21 pm 

Joined: Mon Apr 26, 2010 10:02 pm
Posts: 36
Location: Н.Новгород
Я бы написал
If ( NOT (Alarm OR ModeAM OR Feedback) ) Then ...


Top
 Profile  
 
PostPosted: Wed Feb 07, 2018 9:10 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
СПС, а как можно в скрипте получить статус связи с ПЛК (видит ли скада ПЛК или нет)?
Также как узнать "залогиненного" юзера?


Top
 Profile  
 
PostPosted: Thu Feb 08, 2018 6:28 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
С юзерами разобрался за исключением одного момента:
Image
почему ввод Authorization кнопки которая создана в лицевой панели заблокирован? На обычном экране все гуд...

По диагностике статуса соединения с ПЛК: правильное ли решение вязать битовый тег к системным сообщениям :
например:
по сообщению 140001 - Connection disconnected: - взвожу бит.
а по сообщению 140000 - Connection established: - сбрасываю бит?


Top
 Profile  
 
PostPosted: Tue Feb 13, 2018 12:36 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
дабы не плодить тем, еще вопрос по скрину ниже:
Image

как видно Рантайм насчитал 32 тега, но не пойму почему...

у меня к двум Лицевым панелям подключено два внутренних тега (оба int) , и три внешних (структура)
Внешние - 1. word(разложен по битам), 2. word(разложен по битам), 3. dword(разложен по битам) + два int
Где то на оф. сайте сименса читал, что даже если в теге тип данных UDT, все равно количество тегов будет считаться по количеству переменных с простым типом данных....

в моем случае (1+1+3)*2=10, а у меня 32, пожалуйста подскажите где моя ошибка в подсчете количества тегов???
такое впечатление, что считаются все подвязанные битовые сигналы из UDT... и фокус со структурой не дает экономии внешних тегов...

Отсюда вопрос, какие есть пути экономии тегов в Wincc Advanced??


Top
 Profile  
 
PostPosted: Tue Feb 13, 2018 9:46 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Сам с собой разговариваю, получилось сделать так :
- в контроллере (в DB) переменная UDT размером с DWORD;
- в WinCC сделал тег - читает по адресу с DB выше указанную переменную но уже Dint ( в лицевой панели нет типа данных DWORD, хз почему)
- создал лицевую панель с интерфейсом, где переменная типа Dint
- в Лицевой панели создал скрипт и разложил входную переменную на 31 бит (32 бит в Dint я так понял знак числа)
связал тегом, проверил, все работает отлично, получил 31 тег вместо 1.

Вопрос к спецам, корректно ли эта конструкция будет работать?? Не будет ли тупить скада так как скриптов и внутренних тегов многовато будет? Буду благодарен за ответ.


Top
 Profile  
 
PostPosted: Wed Feb 14, 2018 12:42 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
нужно добавить, что тег должен быть "Cyclic continuous" - что бы скрипт в лицевой панели запускался когда меняется значение на входе лицевой панели.
Что же будет когда нужно опросить 3000 таких тегов, кто нибудь сталкивался? Скада тупить не будет?


Top
 Profile  
 
PostPosted: Thu Feb 15, 2018 1:36 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
a_gricaj wrote:
нужно добавить, что тег должен быть "Cyclic continuous" - что бы скрипт в лицевой панели запускался когда меняется значение на входе лицевой панели.
Что же будет когда нужно опросить 3000 таких тегов, кто нибудь сталкивался? Скада тупить не будет?


Я задал глупый вопрос???????????


Top
 Profile  
 
PostPosted: Fri May 11, 2018 11:37 am 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Накидал под сотню лицевых панелей на стартовый экран, увязал их тегами и получил при загрузке скады системное сообщение - Overload: Script "имя скрипта" is rejected....
некоторые скрипты при загрузке не обрабатываются, но ...
Имею один общий сигнал для всех лицевых панелей (Ручной/Автомат), изменяя который инициализирую опять запуск всех скриптов в каждой лицевой панели уже после запуска скады, тут все те же скрипты обрабатываются быстро и корректно, получается перегрузка происходит только в момент запуска системы - подскажите пж как тут быть, времени на игрушки не осталось, проект горит(((


Top
 Profile  
 
PostPosted: Sat May 12, 2018 11:41 am 

Joined: Wed Oct 13, 2010 11:44 am
Posts: 233
Location: Russian Federation
a_gricaj wrote:
Накидал под сотню лицевых панелей на стартовый экран, увязал их тегами

А почему не сделал всего одну лиц.панель и не меняешь привязанный тег перед вызовом?


Top
 Profile  
 
PostPosted: Sat May 12, 2018 4:16 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Уже подумал, что форум умер)
Вот скрин
Image

Там лицевая панель одна и та же, но теги к ней разные подключены, нужно было по другому делать???


Top
 Profile  
 
PostPosted: Sat May 12, 2018 9:06 pm 

Joined: Wed Oct 13, 2010 11:44 am
Posts: 233
Location: Russian Federation
А, так налицо путаница в терминологии Siemens'a.
Ваши моторчики на экране, то что вы называете лиц.панелями - это блок-иконки. Т.е. иконки для блока управления чем-либо.
А лиц.панель - это всплывающее окно с настройками управления.


Top
 Profile  
 
PostPosted: Sat May 12, 2018 9:46 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
ну, я показал что скрипт не выполнился, а faceplates с окном вот:
Image
понятно, что моя архитектура неправильна, но как переделать правильно??


Top
 Profile  
 
PostPosted: Sat May 12, 2018 10:03 pm 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Мнемосхема (экран) у меня организована при помощи faceplates, так как много однотипных объектов.
Например есть мотор - для него у меня два faceplates:
1 - изображение,
2 - окно ручного управления и параметров.
Накладывая faceplates окна на faceplates изображения - получил вызов окна управления мотором и его параметров.
к этим двум faceplates подключены три внешних тега: CTRL(тип UDT), PAR(тип UDT),STAT(тип UDT) и
два внутренних тега - один тег номер группы к которой относится залогиненный оператор, а второй Аlarm(для взвода аварийных сообщений - триггеров).
В каждом faceplates входной тег CTRL, PAR, и STAT я раскладываю на биты скриптами, и пишу их(биты) во внутренние тeги faceplates, далее использую эти битовые теги как мне нужно.
Это имеет вот такой вид:
Image
В итоге накидав faceplates на мнемосхему получил сообщение Рантайма (обвел красным):
Image
номер системного евента 20015 (который обведен)
из справки портала:
Image

В результате часть скриптов faceplates не выполняется, куда копать не знаю, буду благодарен за любую инфу которая поможет решить проблему......


Top
 Profile  
 
PostPosted: Sun May 13, 2018 6:04 pm 

Joined: Wed Oct 13, 2010 11:44 am
Posts: 233
Location: Russian Federation
a_gricaj wrote:
Имею один общий сигнал для всех лицевых панелей (Ручной/Автомат), изменяя который инициализирую опять запуск всех скриптов в каждой лицевой панели уже после запуска скады, тут все те же скрипты обрабатываются быстро и корректно, получается перегрузка происходит только в момент запуска системы - подскажите пж как тут быть, времени на игрушки не осталось, проект горит(((

Что за общий сигнал и что за скрипты в каждом фейсплейте отрабатывают?


Top
 Profile  
 
PostPosted: Wed May 30, 2018 11:38 am 

Joined: Wed Mar 19, 2008 4:12 pm
Posts: 181
Location: Ukraine
Свою ошибку понял- при загрузке обрабатывались все скрипты в лицевых панелях, а их очень много вызывалось одновременно....Спс за помощь
Переделал, теперь вращаю до 20 больших скриптов, вместо 300 маленьких, и переключаю скриптом вх/вых переменные для лицевой панели (которая теперь только одна для всех однотипных объектов)

Подскажите пж такой вопрос, а можно ли WinCC v14 Advanced вызывать скрипт в скрипте, и "подключать" к вызываемому скрипту разные "входные-выходные" теги, например нужно выполнить типовую задачу - смена цвета однотипных элементов????


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 52 posts ]  Go to page 1, 2  Next

All times are UTC + 3 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
Powered by International PLCforum® Forum Software © PLCforum
Mobile version