PDA

Просмотр полной версии : Увеличение попыток записи значений в MasterOPC Universal Modbus Server



fizhimik
14.06.2023, 15:23
Добрый день! Подскажите как увеличить число попыток записи. В графе "Повторы при ошибке записи" можно указать число, однако как настроить сервер чтобы команды на запись шли постоянно? Вдруг выдернули провод, команда на запись отправилась 3 раза(значения по умолчанию), затем провод вставили, но устройство дальше не включается, не изменяет температуру.... так как команды больше не отправляются.

b_aleks2
14.06.2023, 15:29
Добрый день! Подскажите как увеличить число попыток записи. В графе "Повторы при ошибке записи" можно указать число, однако как настроить сервер чтобы команды на запись шли постоянно? Вдруг выдернули провод, команда на запись отправилась 3 раза(значения по умолчанию), затем провод вставили, но устройство дальше не включается, не изменяет температуру.... так как команды больше не отправляются.

В скаде включить периодическую запись. В MasterSCADA это так:
68309

fizhimik
14.06.2023, 15:38
В скаде включить периодическую запись. В MasterSCADA это так:
68309

Понятно, спасибо! Я уж думал городить тег с записью и чтением, а не только с записью.

SCADAMaster
14.06.2023, 16:06
В скаде включить периодическую запись. В MasterSCADA это так:
68309
Не надо давать плохих советов. Включать периодическую запись нельзя ни в коем случае.

fizhimik
14.06.2023, 16:07
Знаете, что то все равно количество попыток запроса="Повторы при ошибке записи". Я думал в ОРС сервере будут постоянные попытки записи с заданной периодичностью опроса из MasterSCADA, но так же наблюдаю 3 попытки записи при изменении параметра.

SCADAMaster
14.06.2023, 16:08
Подскажите как увеличить число попыток записи. В графе "Повторы при ошибке записи" можно указать число, однако как настроить сервер чтобы команды на запись шли постоянно? Вдруг выдернули провод, команда на запись отправилась 3 раза(значения по умолчанию), затем провод вставили, но устройство дальше не включается, не изменяет температуру.... так как команды больше не отправляются.
Нужно выключить эту настройку.
Только убедитесь что версия 5.0.22 - ранее этот функционал некорректно работал.

b_aleks2
14.06.2023, 16:14
Не надо давать плохих советов. Включать периодическую запись нельзя ни в коем случае.

Ты вы сами посоветовали человеку то, что ему не совсем подходит. А в этом случае как раз уместна периодическая запись, чтобы человек "не ждал у моря погоды", пока связь привалится. Ну и касаемо того плохого совета - включал эту настройку и абсолютно ничего смертельного не происходило :confused:

fizhimik
14.06.2023, 16:18
Спасибо! А где можно скачать версию 5.0.22? На сайте и ФТП только версия 5.0.20.
И этой настройки нет для тега SERVER_ONLY

SCADAMaster
14.06.2023, 16:33
Демо версии тут:
https://insat.ru/products/?category=1666
Зачем вам это для тега ServerOnly? ОН не связан с оборудованием.
Если у вас какой то свой протокол на скриптах, то это уже вам нужно в коде реализовывать самостоятельно.

SCADAMaster
14.06.2023, 16:34
Ну и касаемо того плохого совета - включал эту настройку и абсолютно ничего смертельного не происходило
Каждый запрос записи со стороны скады будет приводить к записи в устройство.
То есть если у вас будет 100 тегов на чтение запись, каждый цикл вы будете вызывать 100 запросов записи. Это полностью завалит весь обмен с прибором.

fizhimik
14.06.2023, 16:40
Демо версии тут:
https://insat.ru/products/?category=1666
Зачем вам это для тега ServerOnly? ОН не связан с оборудованием.
Если у вас какой то свой протокол на скриптах, то это уже вам нужно в коде реализовывать самостоятельно.
Демо версия 5.0.20 с сайта.
Да, свой протокол на скриптах. Есть пример как это в коде реализуется? Все примеры что есть - для чтения с устройств, а не записи. И из справки по "function OnWrite()" - нет указания, что выполняется с соответствующим периодом опроса.

b_aleks2
14.06.2023, 16:55
Каждый запрос записи со стороны скады будет приводить к записи в устройство.
То есть если у вас будет 100 тегов на чтение запись, каждый цикл вы будете вызывать 100 запросов записи. Это полностью завалит весь обмен с прибором.

Какой каждый цикл? В этом поле задается период. В свое время, я ставил около 15 секунд, в устройстве у меня было около 10 переменных на запись. И никакого завала обмена с прибором у меня не было, при этом в самом OPC было порядка 60 объектов.

SCADAMaster
14.06.2023, 17:08
Какой каждый цикл? В этом поле задается период. В свое время, я ставил около 15 секунд, в устройстве у меня было около 10 переменных на запись.
Тогда запись от оператора значение будет уходить в прибор только через 15 секунд.
А при изменении - сразу

SCADAMaster
14.06.2023, 17:14
Да, свой протокол на скриптах. Есть пример как это в коде реализуется? Все примеры что есть - для чтения с устройств, а не записи. И из справки по "function OnWrite()" - нет указания, что выполняется с соответствующим периодом опроса.
Похоже на данный момент тут никак не решить проблему - если вы выйдете из скрипта Write, то снова туда не зайдете до следующего запроса записи.
Если пропала связь, то она пропадет и по чтению, может вам просто при восстановлении связи из скады вызвать инициативную запись всех значений в теги? Если их не много, это можно сделать через Действие Присвоить, если много - то через скрипт.

fizhimik
14.06.2023, 17:30
Похоже на данный момент тут никак не решить проблему - если вы выйдете из скрипта Write, то снова туда не зайдете до следующего запроса записи.
Если пропала связь, то она пропадет и по чтению, может вам просто при восстановлении связи из скады вызвать инициативную запись всех значений в теги? Если их не много, это можно сделать через Действие Присвоить, если много - то через скрипт.

Спасибо за помощь! Раз не получается изначально все предусмотреть и соломки постелить, то и ладно. Изменяемый параметр будет периодически увеличиваться во времени, так что какая то команда, да и пройдет, увеличу число попыток записи с запасом.

fizhimik
14.06.2023, 18:43
В принципе получилось решить задачу удвоением количества тегов: один тег-на запись, другой тег-на чтение(данные для тега на чтение опрашиваются из тега на запись). При общем количестве тегов 4 шт. думаю это не критично.

fizhimik
20.06.2023, 11:15
В итоге оказалось, что я перехитрил сам себя:
Энергонезависимая память, в которой хранятся настройки блока регулирования (БР) имеет физическое ограничение примерно в 1 миллион циклов перезаписи. Если количество циклов перезаписи будет больше этого значения, то настройки перестанут сохраняться и каждый раз при включении БР их значение будет восстановлено по умолчанию. 1 миллион циклов - это примерно 12 суток ежесекундных изменений настроек.
Теперь понятно почему команда на запись в MasterOPC Universal Modbus Server - не периодическая, в этом просто нет смысла, это своеобразная защита от дурака)))).

SCADAMaster
20.06.2023, 11:22
Не совсем поэтому. Мы уже объясняли что если делать периодически, то можно просто положить весь обмен.
Но да, некоторые устройства команду записи по Modbus воспринимают как запрос который нужно записать в энергонезависимую память. В том числе и приборы ОВЕН.