Описание протокола

<< Click to Display Table of Contents >>

Navigation:  Modbus Universal MasterOPC Server > Руководство по языку Lua 5.1 > Примеры и полезности > Реализация протокола RNet >

Описание протокола

С помощью функции server.SendAndReceiveDataByMask() можно выполнять запросы не только Modbus или DCON протоколу, но и реализовать собственные протоколы. Для реализации собственного протокола необходимо самостоятельно производить подсчет контрольной суммы, передавать ее в прибор и анализировать при ответе.

Для примера рассмотрим поддержку протокола Rnet. Это протокол фирмы "Контравт", предназначенный для опроса многоканальных измерителей-регуляторов. Описание протокола можно найти на официальном сайте https://www.contravt.ru/?id=1661

Кадр протокола состоит из следующих полей:

Название поля

Условное обозначение

Длина поля (байт)

Примечания

Поле сетевого адреса прибора

DEV

1

Сетевой номер прибора

Поле адреса канала прибора

CHA

1

Номер канал прибора. Нумерация идет с нуля

Поле адреса регистра

REG

1

Регистр канала

Поле команды

CMD

1

00 – чтение регистра, 01 - запись

Поле типа данных

TYP

1

Тип регистра

Поле данных

DATA

1..32

Данные

Поле контрольной суммы

CRC

1

Циклический код вычисляемый по специальному алгоритму

Для чтения состояния регистра от OPC нужно послать следующий набор команд:

DEV CHA REG RD CRC

Если запрос будет принят, то прибор ответит:

DEV CHA REG RD TYP DATA CRC

Для примера будет опрашивать прибор "Метакон 562", первый канал, будем опрашивать измеренное значение – оно имеет номер регистра 0x01.