Расчетные переменные

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

Расчетные переменные

Сообщение BThorn »

Здравствуйте.

Накидал небольшую конфигурацию из двух базовых узлов и нескольких составных переменных. И там и там есть нарастающий счетчик (копия), в первом узле есть два параметра Level и Speed (синусоида по счетчику). Заметил странность, что в первом узле счетчик бежит в два раза быстрее – такого не должно быть т.к. они одинаковы. Если в первом узле оставить только счетчик или дополнительно параметр Speed, то скорость изменения счетчиков становится одинаковой, как и должно быть. А вот если в первом узле оставить только счетчик и параметр Level, то скорость изменения счетчика удваивается. Не могу понять в чем дело. Конфигурацию высылаю вам на ящик.
Версия 3.9 сборка 70.
BThorn
Сообщения: 18
Зарегистрирован: 21 июн 2011, 08:23

Re: Расчетные переменные

Сообщение BThorn »

Опытно установил, что если переменную счетчик перемесить в начало списка, то скорость изменения счетчиков приходит в норму, а вот если переместить в конец списка (третьим), то скорость уже утраивается. Вот формулы для расчета переменных (период опроса узлов 0.1сек):

(1*) Item(Count) := Item(Count) + 0.1;
(2*) Item(Level) := Sin(3.1415926 * Item(Count) / 15) + 4;
(3*) Item(Speed) := 0.5 * Cos(3.1415926 * Item(Count) / 20);

PS Возник вопрос по ходу написания скриптов к переменным: Как писать комментарии в коде (в описании не нашел) ?
Последний раз редактировалось BThorn 22 июн 2011, 05:30, всего редактировалось 1 раз.
admin
Администратор
Сообщения: 578
Зарегистрирован: 05 сен 2010, 00:51

Re: Расчетные переменные

Сообщение admin »

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

Re: Расчетные переменные

Сообщение BThorn »

В данном примере первое значение Count не критично, интересуют последующие циклы (n+1) – формула для этой переменной выдает конкретные значения с хорошим статусом.

И к тому же возникает надобность в подобных переменных – пример масса теплоносителя нарастающим итогом с момента запуска OPC сервера. Сразу возникает вопрос, какими путями можно установить первоначальное значение (число или SQL значение) для составной переменной???

Ну не сходится задачка. Могу предположить, что есть некий флаг расчета, который устанавливается только при последовательном опросе переменных в цикле опроса. Если значение переменной(1) запрашивается в другой переменной(2), при этом если переменная(2) находится выше в списке цикла опроса чем переменная(1), то для переменной (1) не устанавливается этот флаг, пока цикл опроса не дойдет до этой переменной. Тем самым происходит накручивание переменной в разы.
admin
Администратор
Сообщения: 578
Зарегистрирован: 05 сен 2010, 00:51

Re: Расчетные переменные

Сообщение admin »

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

Ошибка в скрипте

Сообщение BThorn »

Код:

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

x := Item(Item2);
IF x>-50 THEN {Item(Item2_Status):=16} ELSE {Item(Item2_Status):=192}
Выскакивает ошибка:
Ошибка в скрипте.
? operand
формула: x>-50


Если в сравнении использовать положительные значения, то все работает, а вот любые отрицательные значения вызывают ошибку. Как быть?

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

Re: Расчетные переменные

Сообщение admin »

Возьмите в скобки:

x := Item(Item2);
IF x>(-50) THEN {Item(Item2_Status):=16} ELSE {Item(Item2_Status):=192}

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

Re: Расчетные переменные

Сообщение BThorn »

Повторю вопросы:
1) Как вставлять комментарии в скриптах???
2) Как установить первоначальное значение (число или SQL значение) для составной переменной?
admin
Администратор
Сообщения: 578
Зарегистрирован: 05 сен 2010, 00:51

Re: Расчетные переменные

Сообщение admin »

1) Никак к сожалению;
2) Не использовать для счетчиков составную переменную.
BThorn
Сообщения: 18
Зарегистрирован: 21 июн 2011, 08:23

Re: Расчетные переменные

Сообщение BThorn »

admin писал(а):2) Не использовать для счетчиков составную переменную.
Вопрос был не применительно конкретно к счетчику, а, в общем, к составной переменной. Тоже никак?!

Получается, что реализовать простую составную переменную с функцией накопления массы теплоносителя нарастающим итогом не выполнима средствами _одного_ OPC-сервера. Будем писать в SQL.
Ответить

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей