Добавление входов/выходов HMI в CODESYS
Два слова теории.
Устройства в сети могут быть или сервером (master), или клиентом (slave). Мастер управляет слейвами, слейвы же выполняют команды мастера и шлют ему данные.

В нашем случае мастер - это ПЛК Овен 110.60.М02, а слейв - это панель СП307. То есть контроллер будет управлять, например, лампами на панели, а панель будет слать данные, например, о состоянии кнопок:

Сейчас наша панель выглядит так:

После того, как проект загружен в панель, можно заняться написанием программы для ПЛК.
Предположим, есть простой алгоритм: если нажата кнопка Auto/man , после нажатия кнопки старт лампа Q1 мигает, а лампа Q2 горит. Если отжать auto/man, программа заканчивается.
В случае, если мы используем обычные электрические лампы/кнопки, в Codesys при создании проекта нужно пойти в конфигурацию ПЛК и прописать, какое устройство куда подключено (физически проводами в контроллер)

В случае с панелью, все значения переменных (лампы, кнопки - PSB256, 257, 258...) приходят одной "пачкой"

Настроим ПЛК в codesys. На вкладке конфигурация ПЛК нажмите правой кнопкой мыши на свободное пространство, выберите "Добавить подэлемент" и выберите "Modbus master" (потому что ПЛК - это мастер):

В дереве элементов слева у вас появится новый - Modbus Master. Внутри него есть три элемента: AT QD6.0, AT QW6.1 и Debug RS-232. Выберите Debug RS-232 и во вкладке "Параметры модуля" поставьте в 7 строке Frame oriented значение RTU:

Теперь нам нужно вручную добавить входы и выходы панели. Для этого нажмите на Modbus Master правой кнопкой мыши и выберите добавить подэлемент -> universal modbus device:

Этот universal modbus device будет для входов (то есть для сигналов, которые контроллер будет считывать с панели. Это называется опрос регистров). Подпишите его для удобства:

Также выставим настройки во вкладке "Параметры модуля" (выставьте значения в выделенных строках):

Module Slave - это адрес слейв-устройства в локальной сети (в ней только два устройства - плк и панель), Work mode = by poll time - значит данные с панели будут обновляться просто с определенной периодичностью ( ~20 мс), Byte sequence = native - это нужно для корректной передачи чисел с панели на плк
Теперь внутрь Universal Modbus device для получения сигналов с панели нужно добавить ячейки входов. Нажмите правой кнопкой мыши на Universal Modbus device -> вставить подэлемент -> 8 bit input module (input потому что это для входов):

После этого выставьте настройки (нужно указать режим работы и начальный адрес):

Теперь можно назвать элементы точно так же, как это делалось для реальных кнопок/ламп/других устройств:

Внимательно следите за нумерацией!! Считайте вручную, в какую ячейку что написать
Теперь нужно настроить выходные сигналы. Делается это аналогично. Создаем внутри Modbus Master еще один Universal Modbus Device и выставьте его настройки:

Теперь внутри него добавляем 8 bit output module и указываем настройки:

И называем выходы с нужными адресами:

Готово.
Теперь можно написать программу для ПЛК как обычно, используя названия переменных:

После этого программа загружается в ПЛК как обычно.
Связь панели и ПЛК идет по специальному проводу, который на панели подключается в разъем PLC, а на контроллере в разъем RS232 debug
Last updated