Omron CJ2M для чтения / записи с ПК через Ethernet/IP

Я разрабатываю программу для подключения моего ПК к ПЛК Omron CJ2M для отправки команд чтения / записи.

Насколько я понимаю, ПЛК Omron могут передаваться тремя способами:

1) Hostlink,

2) FINS, (TCP или UDP) и

3) EIP.

Мое требование здесь - подключить CJ2M через EIP и отправлять команды чтения / записи по протоколу EIP(CIP).

Изначально для EIP-связи необходимо отправить 2 запроса:

1) Список сервисов и 2) Регистрация сеансов

Register Sessions возвращает дескриптор, который следует использовать при дальнейшей связи через EIP.

Я успешно могу отправить службы списков, зарегистрировать сеанс и открыть переадресацию (данные RR), и на них успешно отвечает Omron PLC. В этих 3 запросах / ответах нет проблем.

Теперь я хочу узнать, какую команду / службу нужно использовать для чтения области памяти Omron (скажем, адрес памяти DR 20).

Я отправляю сервисный код 0x4d по данным RR, но он говорит "Ошибка, специфичная для поставщика", и затем соединение прерывается.

Мне нужна спецификация протокола для Omron EIP или журналов wireshark или некоторых перехваченных пакетов, где запрос / ответ перехватываются по EIP-связи от ПК к Omron PLC (без плавников, без hostlink).

1 ответ

Мы можем отправлять запросы в Omron EIP, используя "Send Unit Data" с сервисным кодом 0x4d.

Эта служба (0x4d) используется для отправки запроса на запись согласно документации EIP, но мы можем вставить специальные команды Omron (FINS) для чтения областей памяти в данных, специфичных для команды.

0000 00 00 00 00 00 80 0e 00 01 00 80 00 02 00 00 00

0010 00 00 00 12 01 01 82 00 00 00 00 01

Другие вопросы по тегам