PDA

Просмотр полной версии : Разработка собственных поагинов в Multi-protol MasterOPS Server



alexave
23.06.2021, 10:44
Приветствую всех участников форума.
Прошу помочь разобраться в сложившейся ситуации.

Возникла необходимость написать написать пару собственных плагинов. Для этого были взят с сайта пакет Multi-Protocol SDK MasterOPCсервер 32. Версия 4.1.5 с примерами, и все было сделано и отлажено. После переноса в ключевую версию (4.3.87 32бит) начались проблемы. Без видимых причин прекращается опрос с сообщением OPC сервера "Error plugin read". Может прекратиться через сутки, может после 1 цикла, может вообще не начаться. Просто нажатием старт/стоп перезапускаем опрос. Попытались обновиться до последней версии 5.0.10, но она уничтожила все скрипты, заменив русские буквы на знаки вопроса, "Error plugin read" при этом не исчезло. Пришлось вернуться к старой версии.

Вопрос - Как избавиться от "Error plugin read"? Почему останавливается опрос?

SCADAMaster
23.06.2021, 10:55
Скорее всего у вас падает драйвер.
Что-то не обрабатываете. Добавьте диагностику, сделайте вывод в лог и смотрите что у вас происходит.

alexave
23.06.2021, 11:42
Я ни разу не видел, чтобы он падал в демо-версии и в отладочной. ключ стоит на другой машине, может дело в ней?
А еще, падают почему-то выборочно. Не обязательно, что перестают работать все приборы с данным протоколом. один может упасть, а другой продолжать работать.

в логах написано ровно то же самое
[2021-06-23 11:29:54.030] Information : <<TERMOTRONIK1.ТВ7 04.1М>> : MPS plugin init
[2021-06-23 11:29:54.030] SCRIPT : <<TERMOTRONIK1.ТВ7 04.1М>> : plugin: init
[2021-06-23 11:29:54.030] SCRIPT : <<TERMOTRONIK1.ТВ7 04.1М>> : plugin: end init
[2021-06-23 11:29:54.030] Information : <<TERMOTRONIK1.ТВ7 04.1М>> : MPS plugin init OK
[2021-06-23 11:29:54.030] Information : <<TERMOTRONIK1>> : Попытка соединения
[2021-06-23 11:29:54.031] Error : <<TERMOTRONIK1>> : Соединение установлено
[2021-06-23 11:29:54.031] SCRIPT : <<TERMOTRONIK1.ТВ7 04.1М>> : error plugin read

alexave
23.06.2021, 11:48
смущает предпоследняя строчка

SCADAMaster
23.06.2021, 12:10
Так вы хоть что из своего драйвера в лог выводите?
Начало опроса, конец опроса, ошибки какие нибудь.
Включите нормальный лог (в файл) и смотрите по нему что происходит. Возможно приходит какой то поврежденный пакет и вы его неверно разбираете.
Для этого в свойствах сервера включите запись журнала и всех его событий, размер лога задайте равным 10000. Лог пишется в папку:
c:\Users\All Users\InSAT\Multi-Protocol*MasterOPC*Server\SERVERLOGS\

alexave
23.06.2021, 13:51
Драйвер уже просто напичкан отладочными сообщениями. Последнее сообщение из функции инициализации. Функция чтения уже не запускается. где и что происходит между ними - в отладчике не отследить. Даже до открытия порта дело не доходит, тем более до разбора пакетов.

Сейчас в конфигурации 2 устройства. Одно стабильно работает, второе стабильно не работает. Один и тот же драйвер.

melky
23.06.2021, 14:23
alexave так может проблема в "кто первый встал, того и тапки" ?

в коде драйвера, в коде МастерОРС при взаимодействии с драйвером. Тем более вы пишите в старой версии работало, а в новой нет.

SCADAMaster
23.06.2021, 14:42
Такая ошибка возникает если чтение прошло, но в тег записалось не корректное значение (т.е. эта ошибка возникает на этапе обработки тегов).
В отладчике если смотреть - проходит ли вообще цикл чтения?
Пока лучше оставить в конфигурации одно устройство (которое не работает) и смотреть что с ним происходит.

alexave
23.06.2021, 14:59
Я тоже думал про совместный доступ. Но версия как-то не подтверждается. Бывает, что и одно не запускается, а бывает, что и 4 работают. Объяснить это не могу.

alexave
23.06.2021, 15:08
Такая ошибка возникает если чтение прошло, но в тег записалось не корректное значение (т.е. эта ошибка возникает на этапе обработки тегов).
В отладчике если смотреть - проходит ли вообще цикл чтения?
Пока лучше оставить в конфигурации одно устройство (которое не работает) и смотреть что с ним происходит.

первой строкой в коде функции чтения должно быть сообщение о начале чтения данных с устройства. Оно не появляется,значит, видимо, цикл чтения не начинается. Последнее, что выдает драйвер - это завершение блока PLUGIN_INIT.

Может это быть из-за того, что запускается на виртуальной машине?

SCADAMaster
23.06.2021, 15:17
Это вряд ли.
Пришлите проект студии тогда, pcf и конфигурацию ОРС

alexave
23.06.2021, 16:12
Это вряд ли.
Пришлите проект студии тогда, pcf и конфигурацию ОРС

Еще одно уточнение. На отладочной машине прибор подключался по проводу к железному ком-порту. А на рабочей машине - к виртуальному, либо через TCP. С этим не может быть связано? Может есть какие-то особенные настройки? (таймауты, скорость интернета, пинги...)

SCADAMaster
23.06.2021, 16:24
Нет. Все стандартно.

alexave
24.06.2021, 09:33
Это вряд ли.
Пришлите проект студии тогда, pcf и конфигурацию ОРС


Отправил на почту

melky
24.06.2021, 09:36
Посоветовал бы опробовать разные виртуальные COM порты. Наблюдались глюки иногда, когда через одно ПО косячило, а через другое работало все ровненько.

alexave
24.06.2021, 09:48
Посоветовал бы опробовать разные виртуальные COM порты. Наблюдались глюки иногда, когда через одно ПО косячило, а через другое работало все ровненько.

Я пробовал HW Virtual Serial Port и Лантан. Но в последних попытках и их перестал использовать, настроил по TCP.

melky
24.06.2021, 10:39
Ethernet-RS485 разных производителей тоже ведут себя по разному бывает. Все вот жаба душит купить себе Moxa для проверки. Использую дома USR-IOT шный. Тоже бывают нарекания...