Добавлено: 25.08.2025 Автор: : admin Комментарии: 0

Чтобы вам было проще разобраться в особенностях нашего оборудования, мы готовим подробные обзорные материалы. Они будут публикуются в этой рубрике «ТехноГид». А если хотите сначала кратко ознакомиться с темой, загляните в наш Telegram-канал — там мы публикуем сжатые версии этих обзоров.

Продолжаем серию технических руководств, посвященных интеграции HMI-панелей серии LICHUAN (4, 7 и 10 дюймов) с программируемыми логическими контроллерами, использующими среду программирования FLProg.

В первой части мы рассмотрели базовые принципы совместимости оборудования и подготовку рабочей среды. Во второй части изучили базовые настройки проекта и конфигурации интерфейса Modbus RTU для корректного взаимодействия HMI-панели с контроллерами FLE. Данная статья представляет собой третью часть цикла и фокусируется на специфике адресации регистров Modbus в панели LICHUAN.

Для начала рассмотрим настройку Modbus и принцип адресации в программе FLProg для обеспечения корректной связи контроллера с панелью LICHUAN.

Мы предполагаем, что большинство из вас уже знакомы со средой FLProg. Новичкам рекомендуем обратиться к «Учебному центру» на сайте программы, где собраны обучающие материалы. Также вы можете задать вопросы на активном форуме FLProg, найти множество руководств на YouTube и в Telegram-каналах.

Для жителей России, в связи с ограничением доступа к некоторым международным ресурсам, мы создали группу ВКонтакте и канал на RuTube.

Для соединения панели с контроллером FLE рекомендуется использовать интерфейс RS232. Это позволит использовать панель в качестве Master и соединить устройства с помощью стандартного кабеля RS232 без дополнительных соединений и клеммников. Все контроллеры серии FLE, доступные на сегодняшний день в нашем магазине, имеют на борту интерфейс RS232, выведенный на стандартный разъем DB9.

Соответственно, в программе FLProg создаем новый slave и подключаем к нему интерфейс RS232. В большинстве сценариев использования также необходимо организовать доступ к данным контроллера системе диспетчеризации. Для этого удобно использовать интерфейс RS485, который также имеется на борту всех контроллеров серии FLE. Таким образом, подключаем к этому slave и интерфейс RS485. Конечно, для RS485 можно создать и отдельный slave, но в большинстве случаев набор данных, необходимых для панели и для системы диспетчеризации, практически полностью совпадает. Поэтому удобнее работать с одним набором регистров для обеих систем, не беспокоясь о необходимости синхронизации регистров из разных наборов.

Для передачи «длинных» регистров (Float, Long, UnsignedLong) в панели LICHUAN, как и в других китайских панелях, используется порядок байт CDAB, поэтому не забудьте настроить это в параметрах нашего slave в программе FLProg.

Напомним систему хранения регистров в программе FLProg.

Modbus-регистры в программе FLProg хранятся в четырех таблицах:

  • Флаги (Coils) – это битовые регистры, из которых мастер может как читать, так и писать в них.
  • Цифровые входы (DiscreteInputs) – это битовые регистры, из которых мастер может читать, но не может писать в них.
  • Аналоговые входы (InputRegisters) – это числовые регистры любого числового типа, из которых мастер может читать, но не может писать в них.
  • Регистры хранения (HoldingRegisters) – это числовые регистры любого числового типа, из которых мастер может как читать, так и писать в них.

Адресация регистров в FLProg начинается с нуля.

Переходим к панели LICHUAN.

В предыдущей статье мы настроили Modbus-соединение и создали устройство PLC1.

Для начала привяжем кнопку к регистру «Подсветка (ON/OFF)», находящемуся по адресу 0 в таблице «Флаги (Coils)». Для этого кликнем по виджету «Bit Status Button», находящемуся на панели виджетов программы LICHAN-M.

Откроется окно настройки виджета.

На первой вкладке «General Properties» и происходит привязка кнопки к регистру.

«Description» – название данной кнопки в свободной форме. Может быть удобным, чтобы не забыть, что делает этот виджет.

«Equipment» – устройство. Здесь необходимо выбрать, с каким устройством будем работать. У вас может быть несколько устройств. Например, одно устройство на интерфейсе RS232 (Com1), это как раз наш контроллер PLC1, несколько устройств на Com1 (RS485), а также некоторое количество устройств, подключенных по интерфейсу Ethernet Modbus TCP. По умолчанию установлено устройство «Local HMI», которое обозначает саму панель и позволяет обращаться к её внутренним регистрам. Выбираем интерфейс Modbus RTU и устройство PLC1.

«Address» – расположение и адрес регистра. В первом поле мы должны выбрать, из какой таблицы будем считывать значение. Рассмотрим варианты для битового виджета.

  • 0x – кнопка свяжется с регистром из таблицы контроллера «Флаги (Coils)».
  • 1x – кнопка свяжется с регистром из таблицы контроллера «Цифровые входы (DiscreteInputs)». Поскольку данная таблица только для чтения, нажатие кнопки не будет приводить к изменению значения регистра в контроллере, но отображение кнопки будет меняться в зависимости от его значения
  • 3x_bit – кнопка свяжется с одним битом регистра из таблицы контроллера «Регистры хранения (HoldingRegisters)».
  • 4x_bit – кнопка свяжется с одним битом регистра из таблицы контроллера «Цифровые входы (DiscreteInputs)». Поскольку данная таблица тоже только для чтения, нажатие кнопки не будет приводить к изменению значения бита регистра в контроллере, но отображение кнопки будет меняться в зависимости от его значения.

Во втором поле вводим адрес регистра. В панели, как и в контроллере, адресация регистров начинается с нуля. В случае выбора расположений 0x или 1x вводится номер регистра, а в случае расположения 3x_bit или 4x_bit формат записи адреса такой: a.b, где а – адрес регистра, а b – номер бита.

«Format» – подсказка по формату и возможным значениям при вводе адреса.

«Output (Reverse)» – при установке этого чекбокса при отображении значение будет инвертироваться.

«Read/Write using different addresses» – при установке этого чекбокса для записи значения и отображения будут использованы разные регистры, при этом появится новое поле для выбора регистра записи с функционалом, аналогичным вышеописанному.

«When the button is released, the command is issued» – при установке данного чекбокса запись нового значения в регистр происходит не в момент нажатия кнопки, а в момент отпускания.

«Operation type» – выбор действия при нажатии кнопки. Возможны следующие варианты:

  • «Set» – при нажатии кнопки в регистр запишется лог.1
  • «Reset» – при нажатии кнопки в регистр запишется лог.0
  • «Alternate» – при нажатии кнопки значение в регистре инвертируется
  • «Inching» – при нажатии кнопки в регистр запишется лог.1, а при отпускании – лог.0

Раздел «Macro instruction» и остальные вкладки данного окна мы рассмотрим в других статьях.

Теперь привяжем поле отображения и ввода цифрового значения к регистру «Уставка перегрева» в контроллере, расположенном в таблице «Регистры хранения (HoldingRegisters)» по адресу 1.

Для этого кликнем по виджету «Value Display», находящемуся на панели виджетов программы LICHAN-M.

Окно настроек.

Рассмотрим отличия от предыдущего виджета. Прежде всего, для числового значения изменился список возможных расположений регистра:

  • 3x – поле свяжется с одним регистром из таблицы контроллера «Регистры хранения (HoldingRegisters)». При выборе этого расположения данные будут только читаться из регистра, при этом запись в регистр не будет производиться.
  • 4x – поле свяжется с одним регистром из таблицы контроллера «Цифровые входы (DiscreteInputs)». Поскольку данная таблица только для чтения, данные будут только читаться из регистра, при этом запись в регистр не будет производиться.
  • 3x_dw – расположение аналогичное 3x, но читаться будет «длинный» регистр (Float, Long, UnsignedLong), состоящий из двух последовательных адресов – заданного и следующего за ним.
  • 4x_dw – расположение аналогичное 4x, но читаться будет «длинный» регистр (Float, Long, UnsignedLong), состоящий из двух последовательных адресов – заданного и следующего за ним.
  • 6x – поле свяжется с одним регистром из таблицы контроллера «Регистры хранения (HoldingRegisters)». При этом будет производиться как запись, так и чтение. Запись будет производиться функцией записи одного регистра (0x6).
  • 10x – поле свяжется с одним регистром из таблицы контроллера «Регистры хранения (HoldingRegisters)». При этом будет производиться как запись, так и чтение. Запись будет производиться функцией одновременной записи нескольких регистров (0x10). Следует использовать только при работе с устройствами, которые не поддерживают функцию 0x6.

«Offset address» – при установке данного чекбокса появляется возможность задать адрес регистра, в котором будет находиться смещение заданного выше адреса. Работает это так: к заданному выше адресу добавляется значение из регистра смещения, и поле работает с регистром по получившемуся в результате сложения адресу.

Это очень удобная функция. Например, у вас контроллер отображает температуру, влажность и освещённость в нескольких помещениях.

ПомещениеАдресЗначение
Помещение 110Температура
Помещение 111Влажность
Помещение 112Освещённость
Помещение 220Температура
Помещение 221Влажность
Помещение 222Освещённость
Помещение 330Температура
Помещение 331Влажность
Помещение 332Освещённость

Без этой функции для каждого помещения необходимо создавать отдельное окно, при этом эти окна будут копиями. И при любом изменении, например, количества параметров, необходимо изменять все три окна.

При использовании данной функции достаточно нарисовать одно окно, задав адреса полей для первого помещения. Переключение между ними производится изменением значения регистра смещения. Для первого помещения значение данного регистра будет 0, для второго – 10, для третьего – 30. При этом этот регистр может находиться в памяти самой панели (расположение Local HMI).

«Invalid notification entered» – при установке данного чекбокса появляется возможность задать битовый регистр, в который будет записываться лог.1 или лог.0 при ошибочном вводе в поле.

Также в контексте данной статьи нас интересует вкладка «Format».

«Data type» – тип данных в регистре, с которым работает поле. Возможные значения:


В случае 32-битного типа поле работает с двумя регистрами – заданным в основных настройках поля и следующим за ним.

Остальные параметры мы рассмотрим в статье, посвященной внешнему оформлению виджетов.

В остальных виджетах привязка к регистрам производится аналогично.

Оставить комментарий