Упрощенная терминология:
Modbus может быть настроен как на итерфейсе RS232, таки и на RS485. МЫ будем использовать интерфейс RS485 с его настройкой на протокол Modbus RTU. В документации Omron находим схему подключения:
Со стороны терминала распаиваем разъем D-Sub 9-pin для порта COM2, со стороны контроллера соответствующие провода подключаем на клеммы А-В.
В этой статье не стоит задача разобраться с программированием в CodeSys, поэтому базовые понятия разбираться не будут. Рассмотрим один из возможных вариантов настройки Modbus, через конфигуркцию контроллера. Для этого во вкладке «Ресурсы» открываем окно «Конфигурация ПЛК»
В окне отображаются физические каналы контроллера (дискретные входы и выходы). Для передачи по Modbus, необходимо добавить его в конфигурацию. Это делается с помощью контекстного меню. Выбираем подэлемент “Modbus(Master)” , Master –потому, что ПЛК в нашей сети будет главным и отсылать запрос на остальные устройства (терминал в нашем случае).
В конфигурации появляется модуль Modbus с настройками. По умолчанию Modbus назначается первому попавшемуся порту «Debug RS-232».
Меняем его на требуемый нам «RS-485-1»
Далее, наконец, мы можем сделать минимальные настройки формата обмена. Для начала скорость обмена ставим 9600 и меняем формат с ASCII на RTU
Таким образом, у нас сконфигурирован Master, но нет ни одного устройства, с которым этот Master будет общаться. Нужно добавить наш терминал в конфигурацию, произвести его настройку и добавить области памяти для обмена. В качестве внешнего ведомого устройства выбираем «Universal Modbus device…» - это любое устройство, для которого фирма Овен не написала конфигурацию.
В проекте терминала вставляем модель нашего терминала и контроллер с интерфейсом Modbus RTU Slave. На самом деле это интерфейс по которому будет соединяться терминал с контроллером, т.е. в данном случае терминал будет Slave. Коннектор подключаем к порту COM2, т.к. только там есть RS485.
В свойствах терминала (двойной клик на терминале) открываем настройки порта (COM2 Settings). Выделенные настройки должны совпадать с настройками, сделанными в контроллере, а «Device№» должен быть уникальным для всех устройств Slave, если их несколько.
В документации на терминал находим распределение регистров для интерфейса Modbus RTU Slave : Битовые адреса буду находится в системной области от LB0 до LB8999, регистры данных – LW0 до LW8999. Битовые адреса будем использовать для кнопок и ламп, регистры для задания и отображения чисел. Создадим тестовый экран с кнопками с адресами LB0 -7, лампы LB8-15, Регистры ввода и отображения чисел соответственно LW0 и LW1.
Теперь в «Конфигураторе ПЛК» нужно указать, какими данным мы будем обмениваться. Для кнопок создаем «8 bit input module», для ламп «8 bit output module», Register input и output соответственно, для задания и отображения числа. Вход и выход здесь указывается относительно ПЛК.
Для того, чтобы ПЛК знал, к каким ячейкам терминала обращаться в настройках каждого модуля необходимо прописать номер регистра обращения. В терминале битовые регистры и регистры данных находятся в разных областях, и счет у обеих начинается с 0. Таким образом, получается:
Таким же образом можно добавить еще битовые и числовые регистры в требуемом объеме, не превышая ограничений сети.
Остается только проверить работоспособность созданного проекта. Нажимаем кнопку на терминале, форсируем состояние ламп, задаем значение в ячейку ввода на терминале, и ячейку вывода в CodeSys - передача всех регистров осуществляется успешно.
Соблюдая описанную последовательность действий можно успешно настроить связь с ПЛК100 с треминалом NB.