Добрый день. Я вот думаю как на winCC unified сделать журнал сообщений. Сам журнал я сделал и отправлять сообщения в него умею. Только как сделать так чтобы скада видела изменение бита переменной и там где есть изменение писала сообщение в журнал. Вкратце у меня есть механизмы к примеру транспортер и у каждого механизма своё слово управления и состояние. То есть бит 0 это ручной режим, бит 5 к примеру это авария датчика и т.п. Получается мне нужно будет только делать дублирующие слова которые будут запоминать прошлое состояние механизма. К примеру есть скрипт который вызывается в случае изменения переменной Tr1, там он сравнивает переменную Tr1 с переменной PredTr1, если видит разницу к примеру в бите номер 5 то >>>> авария датчика в журнал, и за тем PredTr1 = Tr1. Типа увидел скрипт разницу, на основе этого сделал запись в журнал и перезаписал переменную которая отображает предыдущее состояние. Теперь переменные опять одинаковы и в случае какого то события в переменной Tr1 скрипт увидит снова где произошло изменение. Я правильно всё понял как это делать или есть ещё какие то пути?
Комментарии: 12
Rustem
Я делаю через генератор импульсов (пару секунд) и как ты пишу по переднему фронту одно значение, по заднему другое. Любое неравенство = событие. Верно подмечено что скрипт должен цикличный.
Iiy
Да. Типа если поменялся тег Tr1 то скрипт запускается, сравнивает Tr1 с PredTr1 чтобы понять что поменялось, потом приравнивает PredTr1 к Tr1 чтобы при следующем вызове скрипта увидеть уже новые изменения Почему, можно привязать цикл к тегу прям. Типа поменялось значение тега - скрипт сработал. Чтобы не перегружать систему
Yagudron
Так зачем тебе предыдущее, если надо просто сообщение?
Rustem
Ну если там есть такая возможность делай так. Типа byChangeValue.
Iiy
Чтобы понимать передний фронт или задний. Чтобы именно по изменению бита переменной вызывалось сообщение Да, в winCC unified можно выполнение скриптов привязывать или к циклу или к изменению тега/тегов
Rustem
Так пусть сама выньсиси и анализирует изменение тега, если может. К чему усложнять? Или я недопонял ситуацию.
Yagudron
Там вообще непонятно щачем ему фронты,если надо отслеживать изменения. Тег изменился - скрипт вызывается Всё
Iiy
Я ни разу журналов сообщений не делал, а встроенных каких то функций чтобы winCC отслеживала изменения битов и писала сообщения в журнал я не нашел. Так у меня тег побитно вмещает в себя кучу состояний. Бит 5 авария автомата защиты, бит 6 авария датчика подпора и т.д.
Rustem
Разве в выньсиси ты не приаязываешь сообщение биту допустим из слова?
Iiy
И если изменилось значение тега то нужно понять какой бит там поменялся. Для этого нужно помнить предыдущее состояние этого бита, чтобы понять он остался таким же или 0>1 либо 1>0 К примеру бит 15 сменился с 0 на 1 это будет «транспортер ХХ включен» а с 1 на 0 выключен А так разве можно? Я не находил.
Rustem
Слово.бит, или dbNN.dbxM.N не работает обращение? Раньше работало, когда с выньсиси сталкивался.
Yagudron
Все равно непонятно зачем фронт сигнала. Ну и парси слово на биты, дальше побитово работай. Или если немного состояний то сравнивать слово сразу