PDA

Просмотр полной версии : Связь ПЛК110 M2 и ПК NMODBUS - Частые обывы связи.



Alex_A
27.10.2020, 13:31
Доброго времени

Налаживаем связь между ПЛК110 M2(MODBUSTCP SLAVE) и приложением на ПК написанном на С# с использованием библиотеки NMODBUS (MODBUSTCP MASTER). Идет обмен значений в регистрах ПЛК, выделены отдельно регистры только под чтение или только под запись.

Логика основная ПО работает - она периодически работает с регистрами плк забирая - записывая данные,идет обмен значений в регистрах ПЛК, выделены отдельно регистры только под чтение или только под запись.

В процессе работы происходят частые разрывы соединения, причем закономерность и конкретно кто виноват не удается установить.

Кто нибудь сталкивался с подобным?

Вообще это вариант использовать такую конфигурацию (ПЛК и ПК )?

Используем эту доку для API NMODBUS: http://ftp.icpdas.com/pub/cd/8000cd/napdos/modbus/nmodbus/nModbus_API_Manual_v1.2_en.pdf

Там есть упоминание по таймаутам - может в этом дело ? Как вообще ModbusTCP обмен производит если в него несколько секунд ничего не пишут

Филоненко Владислав
28.10.2020, 08:14
если нет обмена - то slave сам обрывает коннект. Надо иметь постоянный обмен как индикатор актуальности канала связи

Alex_A
28.10.2020, 10:38
То есть можно создать какой нибудь регистр и читать с него постоянно - и тогда это сработает?
А какой у него таймер - сколько времени проходит между прерыванием обмена и тем что slave считает что нужно закрыть соединение ? есть возможность как-то это настроить ?
Или лучше в ПО на ПК сделать переподключение к ПЛК при потере связи ?

Это только MODBUSTCP особенность или с MODBUSRTU/ASCII тоже актуально?

Спасибо

melky
28.10.2020, 10:57
RTU не актуально, он должен слушать порт всегда. а по TCP не видел проблем при подключении из Scada. Видимо там устанавливается или проверяется коннект.

Alex_A
28.10.2020, 16:20
Если бы SCADA была.. Вопрос бы не возник. ПО на ПК Самописное с библиотекой nmodbus и легаси кодом и библиотеками , поэтому так и работаем. Можно конечно скаду поднять и перекинуть общение с программой на нее .. А как это на быстродействии скажется? Кто нибудь пробовал ?

Кто нибудь может подсказать как переподключаться к ПЛК из С-образных языков? Сейчас проблема что он не дает нормально переподключиться - нужно ПО закрывать и перезапускать.. Программер косячит ?