Также полезно почитать эту ссылочку http://se-automation.in.ua/2011/06/transparent-ready-modbus-tcp.html Обсуждение http://forum.se-automation.in.ua 1. Настройка IP в ЦПУ со встроенным Ethernet и NOE Modicon M340 модули и CPUs с Ethernet могут получать IP адрес различным способом в зависимости от положения поворотных переключателей на задней части модуля. 2. Создание и настройка Ethernet коммуникаций в UNITY PRO. 1 - создать новое соединение 2 - для соединение выбрать тип модуля (Model Family) 3 - определить IP адрес, маску, адрес шлюза (при необходимости) 4 - в настройках порта Ethernet подключить соединение: выбрать функцию и соединение 3. Доступ к данным M340 по Modbus/TCP . Наличие доступа к М340 по Ethernet (правильная настройка порта + разрешения Access Control) уже гарантирует Вам доступ к данным по Modbus/TCP. Иными словами Modbus/TCP сервер в М340 уже по умолчанию доступен. Вам будут доступны области данных %M и %MW используя следующие функции Modbus:
4. Сервис Modbus/TCP клиент. Если нужно реализовать функции Modbus/TCP клиента, можно использовать два сервиса: Modbus I/O Scaning или TCP/IP Messaging. Сервис TCP/IP Messaging дает возможность обмениваться по Modbus/TCP, используя процедуры: READ_VAR - чтение переменных WRITE_VAR - записи переменных DATA_EXCH - обмен сообщениями с приложением-сервером (используется 502-й порт) The table below lists the Modbus function codes and their
use as a client on Premium, Quantum and M340 PLCs.
Ниже показан пример чтения 40 входных регистров ('%IW' - Input Regusters) начиная с 0-го с использованием процедуры Read_Var, и записи 40-ка выходных/внутренних регистров ('%MW' - Holding Registers) с использованием процедуры Write_Var. Параметры PARA_RD и PARA_WR (массивы из 4-х INT) используются для контроля за обработки коммуникационных процедур: равность TRUE 0-го бита 0-го слова указывает на то, что предыдущий вызов ещё не обработан; 1-е и слово используется для контрля за ошибками; 2-е для таймаута; 3-е для контроля за количеством принятых байт. В примере чтение и запись производится 1раз/с но только при условии окончании обработки предыдущего вызова (NOT PARA_RD[0].0). Следует обратить внимание на 2-е (начиная с нуля) слово из массива параметров GEST (PARA_RD[2] и PARA_WR[2]). Для Modbus/TCP туда обязательно нужно прописать таймаут (в сотнях миллисекунд), иначе, при отсутствии связи, клиентская функция повиснет в ожидании ответа навсегда (до перегрузки ПЛК). Если, например, задать PARA_RD[2]=30, то при отсутствии связи на протяжении 3 секунд, функция обработается с ошибкой, то есть PARA_RD[0].0=0 (т.е. функция обработана) и PARA_RD[1]="значения кода ошибки таймаута". Функция ADDM переводит символьный адресс в спец. формат нужный входу ADR. Символьный адрес состоит из имени коммуникации(в нашем случае 'Ethernet_1') и IP-адреса Сервера Modbus/TCP (берется в фигурные скобки). Если же нужно обращаться к Modbus RTU Slave через шлюз, то после фигурных скобок с IP шлюза указывается адрес Slave. Например 'Ethernet_1{192.168.9.42}6' - обращение к 6-му Slave подключеному к шлюзу с IP=192.168.9.42 |