Добрый день. Я вот думаю как на winCC unified сделать журнал сообщений. Сам журнал я сделал и отправлять сообщения в него умею. Только как сделать так чтобы скада видела изменение бита переменной и там где есть изменение писала сообщение в журнал. Вкратце у меня есть механизмы к примеру транспортер и у каждого механизма своё слово управления и состояние. То есть бит 0 это ручной режим, бит 5 к примеру это авария датчика и т.п. Получается мне нужно будет только делать дублирующие слова которые будут запоминать прошлое состояние механизма. К примеру есть скрипт который вызывается в случае изменения переменной Tr1, там он сравнивает переменную Tr1 с переменной PredTr1, если видит разницу к примеру в бите номер 5 то >>>> авария датчика в журнал, и за тем PredTr1 = Tr1. Типа увидел скрипт разницу, на основе этого сделал запись в журнал и перезаписал переменную которая отображает предыдущее состояние. Теперь переменные опять одинаковы и в случае какого то события в переменной Tr1 скрипт увидит снова где произошло изменение. Я правильно всё понял как это делать или есть ещё какие то пути?

Комментарии: 12

  1. 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

                  Все равно непонятно зачем фронт сигнала. Ну и парси слово на биты, дальше побитово работай. Или если немного состояний то сравнивать слово сразу

Не нашли ответ?

Вам также может быть интересно

Доброго дня всем , не так давно начал менять стекла , подскажите пожалуйста, чем можно очистить клей когда он плохо отходит... Читать далее