Форум АО "ВЗЛЕТ"

Приборы ЗАО "Взлет" => Отдел программистов => Тема начата: Алик от 07.09.2018, 11:35:51



Название: OPC-серевр и два вычислителя по Ethernet
Отправлено: Алик от 07.09.2018, 11:35:51
На объекте пытаюсь подключиться SCADA-системой к двум вычислителям ТСРВ-027 по Ethernet. Считываю, в общем то, минимум информации: температуры, давления, расходы и текущую мощность по пяти каналам каждого из вычислителей. Никаких архивов. На основе шаблона ТСРВ-023 создал конфигурацию OPC-сервера удалив абсолютно все лишние каналы. Создал два канала связи по tftp (для каждого вычислителя свой со своим индивидуальным IP). Для автозапуска канала связи создал скрипт по сути из двух строк с открытием канала связи к одному и второму вычислителю. Запускаю SCADA… Где то только через минуту-две появляются данные и то не все. Проходит еще минута другая, данные обновляются и опять не все. При этом опрос стоит каждый 5 секунд! Переделываю конфигурацию OPC убирая один из вычислителей. Запускаю - все работает, все летает. Думаю, проблема с опросом второго вычислителя. Так же переделываю конфигурацию для опроса только второго вычислителя. Опять все летает и все данные приходят. В чем может быть проблема? Два вычислителя не могут опрашиваться одновременно по Ethernet? Может какие то прерывания надо делать в скрипте по открытию каналов связи к одному и другому счетчику? Не пойму, что не так.


Название: Re:OPC-серевр и два вычислителя по Ethernet
Отправлено: Андрей Шипунов от 10.09.2018, 10:01:13
Здравствуйте!

Попробуйте использовать один канал связи, а в скриптах менять IP адрес канала


Название: Re:OPC-серевр и два вычислителя по Ethernet
Отправлено: Алик от 11.09.2018, 10:12:46
А можно попросить Вас накидать такой вариант скрипта. Просто я могу только какие то односложные скрипты писать.


Название: Re:OPC-серевр и два вычислителя по Ethernet
Отправлено: Андрей Шипунов от 14.09.2018, 17:40:40
Пример скрипта ("tftp1" - наименование объекта-соединение):
Код:
begin
  tftp1.Host := '192.168.0.1';
  Sleep(500);
end.


Название: Re:OPC-серевр и два вычислителя по Ethernet
Отправлено: Алик от 05.10.2018, 11:44:33
К сожалению, так ничего у меня толком не получилось. Изменения IP-адреса через определенное время в скрипте сделал, но OPC-сервер при этом тормозит. Предполагаю, что постоянная работа скрипта в цикле (по другому сделать постоянном меняющийся IP-адрес как еще не знаю) создает такие тормоза. Если убрать опрос всех каналов, а только оставить каналы характеризующие связь, то все отлично показывает, IP-адрес меняется четко через заданное время (каждые 10 с). Но как только добавляю хотя бы один канал, то вместо 10 с IP-адрес может измениться через 30 с  и причем уже почему то через 2 с обратно переключится на прежний адрес. Может и дольше происходить и неравномерно. Т.к. мне нужно данные с двух вычислителей выдавать на SCADA, то организовал в OPC-сервере один входной канал и два выходных, где в обработчиках прописывал условие, что бы записывался входной канал в свой выходной канал при совпадении текущего IP-адреса с заданным. Как оказалось, IP-адрес меняется, а данные по каналу приходят с задержкой. Сделал задержку записи в каналы, но из-за того, что вместо заданных 10 с переключение с работающими каналами происходят через хаотичное время (то длинный период, то короткий), то правильно запишет свои данные в канал, то в какой то момент запишет соседнего канала. В общем, склоняюсь я к тому, что надо переделывать опрос через RS485. Через Ethernet или работать можно с одним прибором, или только через программный комплекс Взлет. Не пойму, почему нельзя было сделать настройку адресации IP-адресов в OPC-сервере аналогично RS485? Тогда не пришлось бы ничего мудрить со скриптами и обработчиками.