Подключение модуля Seneca Z-SG к ПЛК Delta DVP-SS2

Одной из распространенных задач является подключение к ПЛК Delta Electronics серии DVP-SS2 модуля ввода сигналов тензодатчиков Z-SG/Z-SGL фирмы Seneca. Опрос происходит через интерфейс связи (RS485) по протоколу Modbus ASCII/RTU.

Значение веса нетто в регистрах Z-SG представлено в формате float32. Передача данных в формате float32 не стандартизирована и каждый производитель по-разному определяет порядок приема/передачи данных. При использовании стандартной процедуры опроса, инструкции MODRD/MODRW, ПЛК определяет полученные от модуля значения некорректно. Это связанно с тем, что ПЛК размещает полученные данные в младшую часть регистра отвечающего за полученные данные, а старшая часть остается пустой. Для корректного отображения полученной информации необходимо произвести несколько операций над полученными данными.

Рассмотрим процесс обмена более подробно. На приведенной ниже программе, показан пример считывания значения веса нетто по интерфейсу связи RS485, протоколу modbus RTU. Саму программу можно разделить на три части.

1. Настройка интерфейса и протокола

Схема настройки интерфейса и протокола
Рисунок 1 — Настройка интерфейса и протокола

0: При замыкании M1002 (при первом включении ПЛК) устанавливаются следующие настройки D1120=HC1 - скорость обмена 115200 бит/с, контроль четности - нечетный

1: D1129 = k100 время ожидания ответа по сети 100мс

2: SET D1120 - фиксация протокола коммуникации

3: SET M1143 - установка режима RTU (протокола Modbus RTU)

2. Отправка посылки по Modbus RTU

Схема отправки посылки по Modbus RTU
Рисунок 2 — Отправка посылки по Modbus RTU

4: При каждом разе срабатывания реле M1013 (0,5сек выключен, 0,5 сек включен) выполняется инструкция чтения по modbus – MODRD.
K1 – адрес устройства 1,
H3F — начальный регистр с адресом 0х3F (hex)

Согласно РЭ прибора Z-SG значение веса нетто хранятся в двух регистрах с адресом 0х3F (старшее слово) и 0х40 (младшее слово) в формате Float32 (число с плавающей запятой)

Схема значения веса нетто в единицах измерения
Рисунок 3 — Значение веса нетто в единицах измерения

К2 — читать два регистра

5: SET M1122 – отправить запрос по интерфейсу связи

3. Обработка полученных данных

Схема обработки полученных данных
Рисунок 4 — Обработка полученных данных

6: Включение реле М1127 - завершение приема данных. Копирование данных из буфера приема инструкцией BMOV. Копирование четырех (K4) регистров начиная с регистра D1073 – начальный регистр хранения принятых данных при обмене в режиме RTU, в D10 - регистр общего назначения. Соответственно «занятыми регистрами» теперь стали D10, D11, D12 и D13.

7: RST M1127 – завершение процедуры обмена по интерфейсу.

Далее, т. к. каждый байт принятых от Z-SG данных занимает младшую часть регистра, то необходимо поменять местами старшую и младшую часть каждого второго регистра. После этого необходимо как-бы соединить два регистра в один, т.е провести логическое «ИЛИ» двух чисел.
SWAP D10 – перестановка местами младшего и старшего байтов в регистре D10

8: WOR – инструкция. Логической «ИЛИ» двух регистров D10 и D11 и сохранение полученного числа в регистр D15

9: SWAP D12 – перестановка местами младшего и старшего байтов в регистре D12

10: WOR – инструкция. Логической «ИЛИ» двух регистров D12 и D13 и сохранение полученного числа в регистр D14

Теперь в регистрах D14:D15 содержится значение веса нетто в формате Float 32.


 Наверх