Скрипт по записи в канал
Добрый день!
Потребовалось отслеживать момент изменения уставки в приборе ТРМ138.
Да запросто говорю, там есть скрипты, запускаемые по таймеру (кои мы уже широко и с удовольствием используем), а есть скрипты, запускаемые по событию. Изменение уставки прибора является событием, поэтому создадим скрипт по событию - и дело в шляпе.
Сажусь за клавиатуру, запускаю редактор каналов, добавляю виртуальный канал, создаю скрипт … и понимаю, что ничего не понимаю. А как собственно отследить момент изменения уставки в приборе. Руководство по редактору каналов содержит загадочную фразу "…и по событию записи в канал (то есть скрипт выполняется при смене значения на канала – при записи в канал значения)…".
То есть, чтобы сработал скрипт по записи … я сам должен организовать эту запись в канал:S ?
Уважаемые, поможите разобрать эту коллизию. Так как мне отследить событие изменения значения в канале?
В физическом канале я не могу использовать скрипт - там позволительна только формула. А в виртуальном канале при создании скрипта, я указываю вид скрипта "по событию" и ожидаю, что программа спросит ехидно "какое событие желаете отследить". Но не тут то было - открывается редактор и всё - делай дескать всё сам.
С уважением, Анатолий
Новочеркасск
Потребовалось отслеживать момент изменения уставки в приборе ТРМ138.
Да запросто говорю, там есть скрипты, запускаемые по таймеру (кои мы уже широко и с удовольствием используем), а есть скрипты, запускаемые по событию. Изменение уставки прибора является событием, поэтому создадим скрипт по событию - и дело в шляпе.
Сажусь за клавиатуру, запускаю редактор каналов, добавляю виртуальный канал, создаю скрипт … и понимаю, что ничего не понимаю. А как собственно отследить момент изменения уставки в приборе. Руководство по редактору каналов содержит загадочную фразу "…и по событию записи в канал (то есть скрипт выполняется при смене значения на канала – при записи в канал значения)…".
То есть, чтобы сработал скрипт по записи … я сам должен организовать эту запись в канал:S ?
Уважаемые, поможите разобрать эту коллизию. Так как мне отследить событие изменения значения в канале?
В физическом канале я не могу использовать скрипт - там позволительна только формула. А в виртуальном канале при создании скрипта, я указываю вид скрипта "по событию" и ожидаю, что программа спросит ехидно "какое событие желаете отследить". Но не тут то было - открывается редактор и всё - делай дескать всё сам.
С уважением, Анатолий
Новочеркасск
Я бы сделал след. образом.
1. Создать вирт. канал по таймеру
2. В скрипте этого канала проверять состояние опс-тега ответственного за уставку,
т.е. при первоначальном запуске запомнить состояние опс тега с уставкой, используя конструкцию if AsFirstRun then old_value:=ReadValue('opc tag')
затем проверять разницу между старым значением и текущим и если разница больше 0 или заранее заданной "мёртвой зоны", то делать то что Вам нужно. Например писать в этот же виртуальный тег какое то значение.
С уважением, Дмитрий