Simple-Scada forum
Simple-Scada 2 => OPC UA/DA сервер arOPC => Тема начата: crm97 от 19 Апреля 2024, 09:48:39
-
Здравствуйте.
Подскажите как происходит передача значений для записи из SCADA в arOPC и далее в ПЛК (Modbus TCP) в следующих ситуациях.
Используем последние версии arOPC и SimpleSCADA.
1. Связь с ПЛК установлена и стабильна.
Допустим есть кнопка без фиксации. При нажатии переменной присваивается значение 1, при отпускании - значение 0.
arOPC сервер при этом в очередь на запись в ПЛК поставит последовательно условно две команды "записать значение 1", "записать значение 0"?
Другими словами любое изменение значения переменной гарантированно транслируется в отдельные команды, которые отправляются в ПЛК в том же хронологическом порядке, в котором происходили изменения значения?
2. Связь оборвалась.
Буфер команд к ПЛК очищается или arOPC хранит команды в буфере до восстановления связи?
Новые команды записи от SCADA в буфер добавляются или игнорируются до восстановления связи?
3. Общий вопрос.
Для разных ПЛК в arOPC, подключенных по одному каналу, буфер команд общий или индивидуальный?
4. Вопрос скорее к Simple SCADA.
Если в скрипте кнопки значение переменной меняем несколько раз в процессе однократного выполнения, то при каждом изменении в переменную будет записываться новое значение каждый раз, или в переменную записывается значение только после завершения скрипта?
5. На форуме был такой ответ по работе arOPC с Modbus - https://simple-scada.com/forum/index.php?topic=1323.msg10225#msg10225 (https://simple-scada.com/forum/index.php?topic=1323.msg10225#msg10225)
Да, если из Simple Scada, из одного скрипта, последовательно, в эти три тега выполнить запись, то OPC сервер сформирует единый Modbus пакет.
Для Modbus TCP работает аналогичным образом? Так работает только для тэгов одного устройства? Что делать, если требуется, чтобы не формировался единый пакет, а значения отправлялись отдельными запросами?
-
Здравствуйте.
Отвечу только на вопросы которые касаются arOPC.
По SimpleScada ответят её разработчики.
Другими словами любое изменение значения переменной гарантированно транслируется в отдельные команды, которые отправляются в ПЛК в том же хронологическом порядке, в котором происходили изменения значения?
Хронология соблюдается.
2. Связь оборвалась.
Буфер очищается. Новые команды игнорируются.
3. Общий вопрос.
Для каждого устройства свой буфер. Емкость буфера 32 команды.
Для Modbus TCP работает аналогичным образом? Так работает только для тэгов одного устройства?
Сборка команд в один запрос работает только в пределах одного устройства. Если вы в одном скрипте дадите команду на запись в несколько устройств, в каждом устройстве сформируется своя команда. Так же необходимо понимать, что если в одном скрипте даётся запись в теги одного устройства, но при этом теги разнесены, тоже будут сформировано несколько команд.
Например: есть теги с адресами 1,2,3, 8, 9, 15. В этом случае OPC сервер сформирует три команды: 1-2-3, 8-9, 15.
Айрат
-
Спасибо.
Например: есть теги с адресами 1,2,3, 8, 9, 15. В этом случае OPC сервер сформирует три команды: 1-2-3, 8-9, 15.
Для специфических устройств есть возможность разбить команду 1-2-3 на отдельные - 1, 2, 3?
-
Пока такой возможности нет.
Можете подсказать что за устройство?
Айрат.
-
Вопрос скорее из любопытства. Очень давно с такими не сталкивался. Из того что помню похожее поведение может потребоваться для С2000-ПП (Болид). У них, для примера, по протоколу Modbus прежде, чем запросить расширенное состояние зоны, необходимо отправить команду с номером зоны в прибор, и только после этого можно считать данные при условии, что есть готовность. Это пример конечно не совсем подходящий, т.к. в данном случае проще написать отдельный драйвер для обмена. Но очень давно, лет 15 назад сталкивался с приборами, которые воспринимают только ограниченный набор команд и запись в регистры возможно только отдельным запросами.
-
Поэтому и заинтересовался т.к. такие приборы пока не встречались.
С Болидами вроде проблем нет.
На текущий момент наоборот, попадаются устройства не поддерживающие команды записи в единичный регистр, только команду записи нескольких регистров, даже если речь идет об одном.
Но этот момент учтен.
Айрат
-
Здравствуйте.
4. Вопрос скорее к Simple SCADA.
Если в скрипте кнопки значение переменной меняем несколько раз в процессе однократного выполнения, то при каждом изменении в переменную будет записываться новое значение каждый раз, или в переменную записывается значение только после завершения скрипта?
Если в скрипте несколько раз изменить значение одной и той же переменной, то в переменную один раз запишется последнее значение.