Как настроить связь Мx210 и ПЛК110 по протоколу Modbus TCP


Новые модули ввода-вывода ОВЕН под общим названием Мх210 используют для связи с контроллерами и другим оборудованием интерфейс Ethernet и протокол Modbus TCP. В этой статье мы рассмотрим пример связи ПЛК110 и модуля МК210-312. Модуль обладает восемью дискретными входами для подключения сигналов =24 В и четырьмя релейными выходами. В качестве примера реализуем опрос состояния входов и выходов МК210 и изменение состояния выходов по команде с ПЛК110.


Сетевые параметры MК210-312

МК210, так же как и другие устройства подобного класса в рамках протокола Modbus, выполняет функции slave-устройства. Первоначально для него необходимо настроить следующие сетевые параметры:

  • Адрес slave;
  • IP-адрес;
  • Маску подсети;
  • Адрес шлюза.

Настройку МК210 можно проводить через облачный сервис OwenCloud или через универсальный сетевой конфигуратор.

В отличие от устройств серии Mx110, передававших информацию по последовательному интерфейсу RS-485, в данном случае нет необходимости выбирать скорость и некоторые другие параметры, неактуальные для интерфейса Ethernet.

Адрес прибора в сети мы предварительно задали равным 1.

Параметры работы в сети в рамках этого примера выбраны следующие:

  • IP 10.10.10.230
  • Mask 255.255.0.0
  • Gate 10.10.10.1

 

 


Общие принципы подключения Мх210 к ПЛК110

Важно, чтобы у ПЛК110, с которым в дальнейшем будет производиться обмен, сетевые настройки были аналогичными (за исключением IP-адреса ПЛК).
Передача данных через Ethernet удобна тем, что один и тот же канал может связывать и модули, и контроллер, и компьютер.
Другими словами, одновременно по одному и тому же кабелю мы можем передавать информацию от модулей ввода-вывода к ПЛК и быть на связи со средой программирования CODESYS 2.3. При этом, по мере необходимости, подключаться к модулям через универсальный конфигуратор для контроля настроек. Это существенно ускоряет процедуру настройки системы.


Конфигурация ПЛК110 в проекте CODESYS 2.3

После предварительной настройки модуля МК210 необходимо создать проект в CODESYS 2.3. Важно при этом выбрать target-файл для соответствующей модификации для контроллера, в нашем примере это ОВЕН ПЛК110-24.30.Р-М. Обратите внимание, что в случае изменения target-файла ПЛК в текущем проекте, описанные ниже операции для настройки Modbus подключения придется повторить еще раз.

 

 

После выбора модификации, языка реализации программы ПЛК и сохранения нового проекта нам следует открыть в CODESYS ресурс Конфигурация ПЛК.

 

 

ПЛК110 в нашей системе традиционно будет выполнять функции Master-а сети. В открывшемся окне Конфигурации ПЛК мы нажимаем правой кнопкой на обозначении контроллера (PLC110_30). В появившемся контекстном меню выбираем пункт Добавить Подэлемент и затем ModBus (Master).

 

 

В конфигурации контроллера теперь добавлен пункт ModBus (Master). Его необходимо раскрыть, нажав на значок «+». Внутри есть элемент Debug RS-232, который указывает, какой последовательный интерфейс ПЛК должен использовать для работы по протоколу Modbus. В нашем случае будет использоваться Ethernet. Поэтому лучше изменить настройки по умолчанию. Для этого нажимаем правой кнопкой мыши на пункт Debug RS-232. В контекстном меню выбираем сначала пункт Заменить элемент, затем Empty.

 

 

Для установки связи с нужным slave-устройством (в нашем случае это модуль МК210-312) нажимаем правой кнопкой мыши на ModBus (Master). В контекстном меню выбираем пункт Добавить Universal Modbus device. Соответствующий элемент появляется под надписью Empty.

 

 

Теперь укажем для ПЛК те сетевые параметры, которые позволят ему «увидеть» в сети наш модуль. Выделяем добавленный пункт Universal Modbus device, справа вверху в окне CODESYS находим и выбираем вкладку Параметры модуля. В открывшемся окне параметров нас интересует второй сверху пункт, напротив него в столбце Значение подставляем IP-адрес модуля МК210, разделяя цифры двоеточиями, т.е. 10:10:10:230.

Также необходимо в пятом пункте выбрать из выпадающего списка настройку TCP вместо Serial, и затем в пункте номер шесть указать адрес Slave. Напомним, ранее мы договорились, что в нашем случае адрес будет равен 1.

Вы также можете указать режим опроса и частоту посылки запросов в седьмом и восьмом пункте. При этом для первого знакомства здесь вполне можно оставить указанные на рисунке параметры. В соответствии с ними ПЛК будет производить обмен информацией по времени (By poll time), каждые 100 мс формируя новый запрос к модулю.

 

 


Адреса регистров Modbus для модуля МК210-312

В рамках нашего примера необходимо опросить (прочитать) состояние входов модуля, состояние его выходов, а также задать (записать) новое состояние выходов. Дискретные входы и выходы МК210, по аналогии с устройствами предыдущей линейки Мх110, удобно опрашивать группами, а не по одному. Таким образом, нам понадобится добавить в опрос три регистра: два для чтения и один для записи. Для этого нажимаем правой кнопкой мыши на элементе Universal Modbus device, выбираем пункт Добавить Подэлемент, и затем Register input module для чтения входов. После этого аналогичным образом добавляем еще раз Register input module для чтения выходов. И наконец, добавляем Register output module для записи состояния выходов. Обратите внимание, что в контекстном меню это третий и четвертый варианты. Минуя долгие объяснения, отметим, что здесь важно выбрать именно такие пункты, а не их аналоги из нижней части контекстного меню.

 

 

В итоге, для элемента Universal Modbus device у нас должна получиться структура из трех регистров, как на рисунке ниже. Предположим, что для опроса входов у нас будет использоваться переменная в первом элементе Register input module. Чтение выходов мы передадим во второй Register input module, а новое состояние выходов будет формироваться с помощью Register output module.

 

 

Выделим первый элемент Register input module, затем выберем вкладку Параметры модуля, она справа вверху в окне CODESYS. Здесь необходимо указать функцию протокола Modbus и номер регистра, содержащего данные модуля МК210, которые нас интересуют. Состояние всех дискретных входов модуля находится в регистре с номером  51, это значение необходимо задать во втором пункте в столбце Значение. Для чтения этих данных с МК210 мы задействуем функцию Read holding Registers (0x03). Она указана по умолчанию в третьем пункте. Нужную функцию можно выбрать из выпадающего списка, он открывается после двойного клика мышью в поле Значение.

 

 

Аналогичные действия необходимо произвести для чтения состояния выходов. Выделяем второй элемент Register input module, затем выбираем вкладку Параметры модуля. Функция чтения останется такой же — Read holding Registers (0x03). А вот номер регистра для выходов необходимо задать равным 468. Таблица с номерами регистров всегда доступна в руководстве по эксплуатации соответствующего модуля Mx210. Номера регистров также можно уточнить в универсальном сетевом конфигураторе ОВЕН при настройке модуля.

 

 

Для завершения настройки выделим Register output module. Запись измененного состояния выходов производится в регистр с номером 470. Кроме того, нам необходима корректная функция записи Modbus. Здесь будем использовать функцию Preset singl register (0x06). Ее необходимо выбрать из выпадающего списка в столбце Значение.

 

 

Настройка опроса модуля завершена. При необходимости можно задать имена переменных, которые будут содержать полученные от модуля данные. Однако при проверке связи между приборами это не является критичным. Не забудьте сохранить проект перед загрузкой его в ПЛК (для этого можно использовать быстрое сочетание клавиш Ctrl+s).

 


Опрос и запись значений в МК210 по протоколу Modbus

 

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

 

 

После успешной загрузки напротив пунктов, добавленных нами в Конфигурацию ПЛК, должны появиться оперативные значения. Полезно проверить значение в конце строки с комментарием (*Last error*). Если ошибок обмена нет, и данные передаются с модуля на ПЛК и обратно, это значение будет равным 0.

Мы упоминали, что входы и выходы модуля опрашиваются группами. Таким образом, в ПЛК вы получаете одно целое число, в котором в двоичном виде зашифровано состояние входов, и целое число с текущим состоянием выходов. К примеру, если на модуле мы подадим сигнал на восьмой вход, то в CODESYS мы увидим значение 128. Если же включим первые три входа, получим от модуля число 7. Если все выходы выключены, в соответствующей переменной будет значение 0.

 

 

 

Для изменения состояния выходов необходимо дважды кликнуть левой кнопкой мыши на надписи AT внутри Register output module. В открывшемся окне Запись переменной во второй строчке задать новое значение. Если мы хотим одновременно включить первый и третий выходы, нужно задать значение 5 и нажать кнопку OK.

 

 

Данные будут переданы в модуль. На нем сработают выходы, загорятся соответствующие светодиоды. Затем информация о состоянии выходов вернется на ПЛК и отобразиться в Register input module. Для проверки можно еще раз поменять состояние выходов. Попробуйте задать значения 15, 10 или 0.

 

 

 

Таким образом, мы кратко рассмотрели принципы обмена между контроллером ПЛК110 и модулем МК210 по протоколу Modbus TCP. Надеемся, что эта информация будет для Вас полезной. Просим Вас переслать эту статью заинтересованным коллегам или знакомым, если она может быть им интересна.

Успехов в вашей работе!

При использовании этого текста на сторонних Интернет-ресурсах просим Вас обязательно указывать адрес источника – edu.owen.ru.


Более подробно материал этой статьи мы разберем в видео-уроках, пока они готовятся:).
Готовый проект в CODESYS из этой статьи.
Скачать эту статью в формате pdf.
Статья в PDF


Вас также заинтересуют:

Базовый курс по программированию ПЛК110 в CODESYS 2.3.
Видео-материалы и статьи по работе с протоколом Modbus.