Поддержка новых функций

Вопросы по программе Lectus Modbus OPC/DDE server
BThorn
Сообщения: 18
Зарегистрирован: 21 июн 2011, 08:23

Поддержка новых функций

Сообщение BThorn »

(*) Lectus Modbus OPC/DDE сервер 3.9 (build 54) 29.07.10
- Добавлено: поддержка функций Quality и DateTime в скрипте составной переменной.
- Добавлено: поддержка функций Quality и DateTime в скрипте SQL переменной.
Quality – качество/статус переменной?!
DateTime время чего? Текущие (системное) или OPC-переменной?
Информации в хелпе нет.
Можно поподробнее и с примерами скриптов сюда, и чего может и не может, чтобы потом голову не ломать.
admin
Администратор
Сообщения: 578
Зарегистрирован: 05 сен 2010, 00:51

Re: Поддержка новых функций

Сообщение admin »

В скрипте можно можно использовать функции получения (не установки) качества и даты/времени.
Логика такая же как для значения.
Item(Item1) - значение переменной Item1
Quality(Item1) - качество переменной Item1
DateTime(Item1) - дата/время переменной Item1

Например:

Код: Выделить всё

  IF (Quality(Item1) = 192) THEN { Item(Item2) := 1; }
  ELSE { Item(Item2) := 2; }
BThorn
Сообщения: 18
Зарегистрирован: 21 июн 2011, 08:23

Re: Поддержка новых функций

Сообщение BThorn »

Схожая проблема с Quality, как и с Item (описанная мною в ветке форума “Расчетные переменные/суммарная мощность”). В данном примере вторая строчка (ELSE) не отрабатывает при плохом качестве переменной Item1. И переменной, которой принадлежит данный скрипт (Item2), тоже выставляется плохое качество переменной Item1 и зависает на значении “1”.

Пример: Count – переменная симуляции (счетчик), переменной Item2 принадлежит данный скрипт:

Код: Выделить всё

x1 := Quality(Item1);
Item(Item2) := Item(Count);
При плохом качестве переменной Item1, переменная Item2 берет на себя значение качества переменной Item1 и значение Item2 зависает.

Пример выслал. Как здесь быть?
admin
Администратор
Сообщения: 578
Зарегистрирован: 05 сен 2010, 00:51

Re: Поддержка новых функций

Сообщение admin »

Пример привел для того случая когда изменяется значение другой переменной, а не составной в которой выполняется скрипт.
admin
Администратор
Сообщения: 578
Зарегистрирован: 05 сен 2010, 00:51

Re: Поддержка новых функций

Сообщение admin »

То что качество составной переменной берется из переменных скрипта, это поведения сделано для более распространенного случая когда значение составной переменной вычисляется на основе некой Modbus переменной. В этом случае, когда нет связи с устройствам или какая другая ошибка, то составная переменная получает то же качество. Раньше было так, что качество составной переменной было всегда хорошее, если нет ошибок в скрипте.
Но в этом случае жаловались что связи нет, а качество используемой составной переменной почему то хорошее.
BThorn
Сообщения: 18
Зарегистрирован: 21 июн 2011, 08:23

Re: Поддержка новых функций

Сообщение BThorn »

admin писал(а):Пример привел для того случая когда изменяется значение другой переменной, а не составной в которой выполняется скрипт.
Сделал, по-вашему. Результат схожий.

Можно выслать рабочий пример?
BThorn
Сообщения: 18
Зарегистрирован: 21 июн 2011, 08:23

Re: Поддержка новых функций

Сообщение BThorn »

admin писал(а):То что качество составной переменной берется из переменных скрипта, это поведения сделано для более распространенного случая когда значение составной переменной вычисляется на основе некой Modbus переменной. В этом случае, когда нет связи с устройствам или какая другая ошибка, то составная переменная получает то же качество. Раньше было так, что качество составной переменной было всегда хорошее, если нет ошибок в скрипте.
Но в этом случае жаловались что связи нет, а качество используемой составной переменной почему то хорошее.
Полностью согласен (сам пришел к такому выводу), что есть необходимость в таком поведении функции Item(), как в случае отсутствия связи с прибором, так и в расчетах вида (один из примеров):

Код: Выделить всё

Item(Item2) := Item(Item1) * K;
Или вот, скажем, следующий расчет (пример расчета расхода по датчикам скорости и уровня в канале):

Код: Выделить всё

Item(ItemQ) := Item(ItemV) * Item(ItemL) * K;
И как только возникает необходимость проанализировать переменные, в нашем случае при неисправности какого-либо датчика или занижение/завышение значений, согласно договорным отношениям с потребителем/поставщиком, мы обязана выставлять некую константу по несправному/занижающему/завышающему датчику в расчетах, в верхний пример необходимо ввести проверку на значение и качество переменных. И возникает необходимость в функциях для принятия решения, таких я не вижу. Такая же ситуация с расчетом суммарной мощности (убрать из расчета отключенный датчик).

Уже не знаю, как вас убедить (повторяюсь из ветки в ветки), рассмотрите возможность в следующих сборках добавить две дополнительных функции: установка/получения значения и установка/получения качества переменной не влияющих на результат (качество) составной переменной.
admin
Администратор
Сообщения: 578
Зарегистрирован: 05 сен 2010, 00:51

Re: Поддержка новых функций

Сообщение admin »

Если бы это было просто добавил бы тут же не раздумывая.
А все доработки требующие значительных трудозатрат выполняются в фоновом порядке приоритета или быстро но на платной основе.
Кроме того, существующий скриптовый интерпритатор не будет модернизироваться. А будет внедряться новый (он уже закуплен).
Повторяю это из ветки к ветке.

Поэтому в данный момент вашу задачу с качеством лучше решать на верхнем уровне в SCADA или увеличивая кол-во переменных.
BThorn
Сообщения: 18
Зарегистрирован: 21 июн 2011, 08:23

Re: Поддержка новых функций

Сообщение BThorn »

admin писал(а):Поэтому в данный момент вашу задачу с качеством лучше решать на верхнем уровне в SCADA или увеличивая кол-во переменных.
Нет у нас SCADA-системы на верхнем уровне, стоит модуль OPC2SQL (шесть OPC-серверов различных производителей опрашивает и складывает в SQL), а плодить переменные в геометрической прогрессии – занятие то еще. =)

PS Будем ждать и надеяться, что про нашу проблему не забудут.
BThorn
Сообщения: 18
Зарегистрирован: 21 июн 2011, 08:23

Re: Поддержка новых функций

Сообщение BThorn »

BThorn писал(а):
admin писал(а):Пример привел для того случая когда изменяется значение другой переменной, а не составной в которой выполняется скрипт.
Сделал, по-вашему. Результат схожий.

Можно выслать рабочий пример?
Так пример выслан будет или нет?
Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и 1 гость