Здравствуйте. Версия скады 2, opc lectus, при построении временных трендов, максимальное значение на графике 100, а переменная изменяется от 0 до 1000. Как быть?
Здравствуйте. Версия скады 2, opc lectus, при построении временных трендов, максимальное значение на графике 100, а переменная изменяется от 0 до 1000. Как быть?
Здравствуйте.
Видимо у переменной установлена шкала 0-100. Для решения проблемы установите требуемую шкалу для переменной. Если переменная может принимать значения в диапазоне 0-1000, то и шкалу для этой переменной нужно использовать 0-1000.
Ребят выручайте, запутался, почему не работает скрипт
begin
if N1Pusk.Value = FALSE and N1Stop.Value = FALSE
then
Upravlenie.Value := 0;
else
if N1Pusk.Value = TRUE and N1Stop.Value = TRUE
then
Upravlenie.Value := 3
else
Upravlenie.Value := 2;
end.
Вот смотрю на код и думаю, когда он в магазине за спитрным стоит так же мыслит?
Пожалуйста, опишите своими словами что должно случиться и по каким причинам?
Избавляйтесь от этих эшелонов, если не Вы писали.
+79104444236
С уважением,
Лапшин Вячеслав
Здравствуйте.
Вы забыли скобки:
Код:begin if (N1Pusk.AsBool = FALSE) and (N1Stop.AsBool = FALSE) then Upravlenie.Value := 0 else if (N1Pusk.AsBool) and (N1Stop.AsBool) then Upravlenie.Value := 3 else Upravlenie.Value := 2; end.
Последний раз редактировалось Simple-Scada; 29.03.2019 в 22:08.
Пишу все всегда намного проще. Причем задачи намного сложнее, чем Пуск и Стоп.
Но тут Вы правы. У каждого свой стиль
Вот пример:
FUNCTION_BLOCK EXHAUST_FAN
VAR_INPUT
STS1:WORD;(*UZ21_STS1*)
ALM1:WORD;(*UZ21_ALM1*)
FRIQ1:WORD;(*UZ21_FRIQ1*)
A1:WORD;(*UZ21_A1*)
END_VAR
VAR_OUTPUT
CMD1:WORD;(*UZ21_CMD1*)
SP1:WORD;(*UZ21_SP1*)
STS:WORD;(*Слово состояния у блока вентиляторов*)
MODE:WORD;(*Режим блока вентиляторов*)
FREQUENCY:WORD;(*Частота на скаду*)
AMPER:WORD;(*AMPER*)
ALM:WORD;(*Слово нарушений*)
State1:INT;
END_VAR
VAR_IN_OUT
CMD:WORD;(*Слово команд*)
Setpoint:WORD;(*Установленное значение частоты*)
END_VAR
VAR
TON:TON;(*Задержка для передачи команды*)
TON1:TON;(*Выработка нарушений*)
TON2:TON;(*Для сброса команд*)
Setpoint_old:WORD;
M_AUTO:BOOL;(*Выбран автоматический режим*)
M_DIST:BOOL:=TRUE;(*Выбран дистанционный режим*)
END_VAR
(* @END_DECLARATION := '0' *)
STS:=0; Mode:=0; ALM:=0;
(* ------------------------ Чтение ----------------------------- *)
IF M_AUTO THEN Mode := Mode OR 4; END_IF;(*Автоматический 1 Алгоритм в автоматическом режиме*)
IF M_DIST THEN Mode := Mode OR 2; END_IF;(*Дистанционный 2 Алгоритм в дистанционном режиме*)
(* ------------------------ Установка режима----------------------------- *)
IF (CMD AND 4)<>0 THEN M_AUTO:=TRUE; M_DIST:=FALSE; END_IF;(*Перевести в автоматический режим*)
IF (CMD AND 8)<>0 THEN M_AUTO:=FALSE; M_DIST:=TRUE; END_IF;(*Перевести в дистанционный режим*)
CASE State1 OF
0*Отключен*)
IF M_DIST AND (CMD AND 1)<>0 THEN State1:=1; END_IF;
IF M_AUTO AND (CMD AND 16)<>0 THEN State1:=1; END_IF;
1*Включается*)
TON1(IN:=TRUE, PT:=T#10s);
CMD1:=1;
SP1:=Setpoint*100;
IF FREQUENCY>=5 THEN TON1(IN:=0); State1:=2; END_IF;
IF TON1.Q THEN TON1(IN:=0); State1:=4; END_IF;
2*Включен*)
CMD1:=1;
SP1:=Setpoint*100;
IF M_DIST AND (CMD AND 2)<>0 THEN State1:=3; END_IF;
IF M_AUTO AND (CMD AND 32)<>0 THEN State1:=3; END_IF;
3*Отключается*)
TON1(IN:=TRUE, PT:=T#10s);
CMD1:=0;
SP1:=Setpoint*100;
IF FREQUENCY=0 THEN TON1(IN:=0); State1:=0; END_IF;
IF TON1.Q THEN TON1(IN:=0); State1:=4; END_IF;
4*Неисправность*)
IF M_DIST AND (CMD AND 1)<>0 THEN State1:=1; END_IF;
IF M_AUTO AND (CMD AND 16)<>0 THEN State1:=1; END_IF;
IF M_DIST AND (CMD AND 2)<>0 THEN State1:=3; END_IF;
IF M_AUTO AND (CMD AND 32)<>0 THEN State1:=3; END_IF;
IF FREQUENCY>=5 THEN State1:=2; END_IF;
END_CASE;
FREQUENCY:=FRIQ1/100;
AMPER:=A1;
IF FRIQ1=0 AND STS1=0 THEN STS:=STS OR 1; END_IF; (*Отсутствует связь*)
IF FREQUENCY>5 AND State1<>4 THEN STS:=STS OR 2; END_IF;(*Включен*)
IF FREQUENCY=0 AND State1<>4 THEN STS:=STS OR 4; END_IF;(*Отключен*)
IF State1=4 THEN STS:=STS OR 16; END_IF;(*Неисправность*)
IF NOT M_DIST AND NOT M_AUTO THEN MODE:=MODE OR 1; END_IF;
IF M_DIST THEN MODE:=MODE OR 2; END_IF;
IF M_AUTO THEN MODE:=MODE OR 4; END_IF;
IF State1=4 THEN ALM:=ALM OR 2; END_IF;
TON2(IN:=CMD<>0, PT:=T#1s);
IF TON2.Q THEN CMD:=0; END_IF;(*Сбрасываем команду после ее появления*)
Setpoint_old:=Setpoint;
END_FUNCTION_BLOCK
Последний раз редактировалось krollcbas; 29.03.2019 в 22:26.
+79104444236
С уважением,
Лапшин Вячеслав
Новый компилятор скриптов с поддержкой глобальных модулей, логарифмические шкалы в трендах, собственый proxy-сервер telegram и другое.
Изменения:
- обновлен компилятор скриптов, появилась поддержка глобальных модулей в скриптах;
- в редакторе добавлена возможность группировки объектов;
- в редакторе добавлена возможность заморозки объектов;
- шкалы теперь могут быть логарифмическими. Логарифмические шкалы удобно использовать для отображения трендов с очень большим диапазоном значений;
- telegram: можно задать свой sock-прокси сервер, либо использовать наш прокси сервер «simple-scada.proxy.de»;
- в меню скриптов добавлена кнопка «Просмотр ссылок». Позволяет увидеть все ссылки на выделенный скрипт;
- поддержка MySQL 8 с плагином аутентификации cached_sha2_password;
- web: цвет изображений теперь меняется также как в обычном клиенте (раньше в web вместо цвета изображения менялся цвет фона);
- web: CloseApplicationClient / CloseApplicationAll теперь разрывают соединение с сервером;
- web: добавлена поддержка вращения прямоугольных фигур;
- web: исправлено отображение изображений с включенными свойствами отразить по х или по у; web: формат переменной учитывается при отображении в полях ввода;
- web: улучшено сжатие данных при передаче между клиентом и сервером; web: исправлен переход по группам трендов;
- web: исправлен переход на подстраницу, если часть подстраниц скрыты от пользователя;
- web: процедуры GoToPageClient и GoToPageAll работают со скрытой панелью страниц;
- новая опция: лог пользовательских SQL-запросов. Если опция включена, то сервер автоматически записывает в лог-файл каждое выполнение RunSQL с указанием имени скрипта из которого была вызвана процедура и с текстом SQL-запроса;
- в скрипты добавлена функция FormatFloat;
- свойство DecimalMultiplier переменной теперь доступно для чтения;
- в функцию SysGet добавлен параметр для получения версии скады в которой был создан проект;
- исправлено подключение доп. мониторов к основному клиенту;
- управление камерой и т.п. отключается когда окно редактора не в фокусе;
- при просмотре трендов на клиентах теперь исключено мигание линии тренда во время загрузки данных с сервера;
- правильное отображение русских символов при работе с СУБД SQL Server независимо от COLLATION;
- кнопки страниц теперь уменьшаются пропорционально своему размеру, если не умещаются в ширину панели страниц;
- исправление в работе функции GetObjectByName при поиске объектов Календарь;
- добавлена функция поиска подстраницы по имени GetSubpageByName;
- исправление с подсчетом внешних тегов после копирования тегов;
- исправлена ошибка при удалении групп скриптов с вложенными группами;
- обновлены шрифты, добавлены недостающие символы и символы европейских языков;
- улучшена подгрузка текстур на клиентах (теперь без перемигивания);
- улучшено обновление списка модулей в меню скриптов;
- функция TimerGetState теперь возвращает результат типа Integer;
- OPC-UA: мелкие доработки и оптимизации, улучшена работа с OPC-UA серверами;