Материал: ModbusProtocol-VKT7_ТЕД3

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ВКТ-7

Реализация протокола МОДБАС

с. 11

 

 

 

Пример:

Frame [0 ] = 0x00;

Frame [1 ] = 0x10; Frame [2 ] = 0x3F; Frame [3 ] = 0xFD; Frame [4 ] = 0x00; Frame [5 ] = 0x00; Frame [6 ] = 0x02;

Frame [7 ] = тип значений; Frame [8 ] = 0x00;

Frame [9 ] = CheckSum l; Frame [10] = CheckSum h;

Готовый вариант запроса: (тип значений– суточный архив)

0x00 0x10 0x3f 0xfd 0x00 0x00 0x02 0x01 0x00 0x71 0x42

Прибор присылает ответ в виде стандартного подтверждения записи. Возможный код ошибки - 2 (несуществующий тип значений).

4.4Запрос на запись даты

Запрос предназначен для того, чтобы указать вычислителю, относительно какой хронологической метки следует передавать архивные данные. Запрос содержит хронологическую метку с указанием даты и времени. Вычислитель передает архивные данные в ответ на запрос «Чтение данных…» относительно той хронологической метки, которая была записана в вычислитель в последний раз.

Начальный адрес = 0x3FFB; Количество регистров = 0х0000.

Дата передается в формате VT_DATA_RAP (описание в Приложении Б).

Пример:

Frame [0 ] = 0x00;

Frame [1 ] = 0x10; Frame [2 ] = 0x3F; Frame [3 ] = 0xFB; Frame [4 ] = 0x00; Frame [5 ] = 0x00; Frame [6 ] = 0x04; Frame [7 ] = день; Frame [8 ] = месяц; Frame [9 ] = год; Frame [10] = час;

Frame [11] = CheckSum l; Frame [12] = CheckSum h;

Готовый вариант запроса: (30 января 2003г. 0 часов)

0x00 0x10 0x3f 0xfb 0x00 0x00 0x04 0x1e 0x01 0x03 0x00 0xfa 0xaf

Прибор присылает ответ в виде стандартного подтверждения записи. Возможный код ошибки

3 – в архиве отсутствуют данные за эту дату.

4.5Запрос на чтение данных

Запрос предназначен для получения информации по тем элементам данных, условные адреса которых присутствовали в перечне элементов для чтения.

ВКТ-7

Реализация протокола МОДБАС

с. 12

 

 

 

Начальный адрес = 0x3FFE; Количество регистров = 0х0000.

Пример:

Frame [0] = 0x00; Frame [1] = 0x03; Frame [2] = 0x3F; Frame [3] = 0xFE; Frame [4] = 0x00; Frame [5] = 0x00; Frame [6] = CheckSum l; Frame [7] = CheckSum h;

Готовый вариант запроса:

0x00 0x03 0x3f 0xfe 0x00 0x00 0x29 0xff

Прибор присылает ответ в виде последовательности элементов разной длины. Элемент последовательности имеет следующий вид:

само значение (размер – в соответствии со значением в поле «размер…», полученным в ответ на запрос «Чтение перечня активных элементов» для соответствующей величины);

Для величин с «условным адресом» NSPrintTypeM_1, NSPrintTypeM_2 (см. ниже перечисление, описывающее все элементы данных) и имеющих «размер» 1 байт, значение является не числом, а печатным символом «*» или « ».

Для величин с «условным адресом» QntNS_1, QntNS_2 и имеющих «размер» 10 байт, значение является массивом из пяти чисел типа unsigned short (16 бит).

Величина с «условным адресом» DopInpImpP_Type имеет тип float. Для нее поле «размер…» анализировать не обязательно.

байт качества;

байт нештатных ситуаций (НС).

Значения байта качества

(Численные значения символьныхконстант качества приведены в Приложении Б):

OPC_QUALITY_BAD | OPC_QUALITY_DEVICE_FAILURE – значение элемен-

та находится вне диапазона (в приборе в данном случае на месте числового значения индицируется надпись “нет значения”);

OPC_QUALITY_UNCERTAIN | OPC_QUALITY_SENSOR_CAL – у данного элемента есть нештатная ситуация;

OPC_QUALITY_BAD | OPC_QUALITY_CONFIG_ERROR –элемент отсутству-

ет в расчетной схеме.

Байт НС

Содержит код нештатной ситуации для данного элемента.

Если код равен 0 - НС отсутствуют, если 0xff - НС для данного элемента отсутствует, но есть НС у других элементов списка. Любое другое значение означает наличие нештатной ситуации у данного элемента.

Возможный код ошибки: 5 – зафиксировано изменение схемы измерения. В этом случае нужно следовать рекомендациям, описанным в разделе «Принципы организации данных, доступных через сеть, в тепловычислителе ВКТ-7».

ВКТ-7

Реализация протокола МОДБАС

с. 13

 

 

 

4.6Запрос на чтение служебной информации

Запрос предназначен для получения служебной информации (номер версии ПО, схема измерений, идентификатор абонента, сетевой номер, дата отчета и модель исполнения).

Начальный адрес = 0x3FF9; Количество регистров = 0х0000.

Пример:

Frame [0] = 0x00; Frame [1] = 0x03; Frame [2] = 0x3F; Frame [3] = 0xF9; Frame [4] = 0x00; Frame [5] = 0x00; Frame [6] = CheckSum l; Frame [7] = CheckSum h;

Готовый вариант запроса:

0x00 0x03 0x3f 0xf9 0x00 0x00 0x98 0x3e

Сегмент данных ответа состоит из следующих элементов:

Для версии ПО менее 1.5:

• дата отчета целое 8-ми разрядное число; Для версии ПО 1.5 и более:

номер версии ПО............................................

целое 8-ми разрядное число;

• схема измерения по ТВ1×2 ...........................

целое 16-ти разрядное число;

• схема измерения по ТВ2×2 ...........................

целое 16-ти разрядное число;

идентификатор абонента...........................................

8 байт формата ASCI;

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

целое 8-ми разрядное число;

дата отчета......................................................

целое 8-ми разрядное число;

модель исполнения........................................

целое 8-ми разрядное число.

Примечания:

1.Номер версии ПО отображается в двух тетрадах. Старшая – номер версии, младшая – номер реализации. Например, версия 1.8 имеет вид

0001 1000=0х18.

2.Ответ по схеме измерения по каждому из тепловых вводов содержит информацию непосредственно о схеме измерений, а также о назначении ТР3 и t5. Соответствие разрядов ответа необходимой информации представлено на рисунке.

 

 

мл. байт ответа

 

 

 

 

 

ст. байт ответа

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ст. байт ответа

 

 

 

 

мл. байт ответа

 

 

7

6

 

5

4

3

2

 

1

0

7

6

 

5

4

3

2

 

1

0

 

 

 

 

 

Схема измерений

 

Назначение ТР3

Назначение t5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВКТ-7

Реализация протокола МОДБАС

с. 14

 

 

 

4.7Запрос “Начало сеанса связи”

Запрос предназначен для подготовки вычислителя к сеансу связи и определения значения «Версия сервера». Должен быть выполнен первым.

Начальный адрес = 0x3FFF; Количество регистров = 0х0000.

Пример:

Frame [0 ] = 0x00;

Frame [1 ] = 0x10; Frame [2 ] = 0x3F; Frame [3 ] = 0xFF; Frame [4 ] = 0x00; Frame [5 ] = 0x00; Frame [6 ] = 0xCC; Frame [7 ] = 0x80; Frame [8 ] = 0x00; Frame [9 ] = 0x00; Frame [10] = 0x00; Frame [11] = CheckSum l; Frame [12] = CheckSum h;

Готовый вариант запроса:

0x00 0x10 0x3f 0xff 0x00 0x00 0xcc 0x80 0x00 0x00 0x00 0x64 0x54

Ответ на запрос анализировать не нужно. При дальнейшей посылке запроса «Чтение данных» в ответе вычислителя необходимо проанализировать поле «Версия сервера». Это поле располагается в 65-ом по счету байте от начала ответа. Поле «Версия сервера» необходимо при получении «свойств» (см. ниже).

4.8Запрос “Чтение интервала дат”

Запрос предназначен для получения дат начала/конца архива в приборе и текущей даты (только для версий ПО прибора 1.7 и более).

Начальный адрес = 0x3FF6; Количество регистров = 0х0000.

Пример:

Frame [0 ] = 0x00;

Frame [1 ] = 0x03; Frame [2 ] = 0x3F; Frame [3 ] = 0xF6; Frame [4 ] = 0x00; Frame [5 ] = 0x00; Frame [6 ] = CheckSum l; Frame [7 ] = CheckSum h;

Готовый вариант запроса:

0x00 0x03 0x3f 0xf6 0x00 0x00 0xa8 0x3d

Прибор присылает ответ следующего формата:

Дата начала часового архива;

Текущая дата;

Дата начала суточного архива (только для версий ПО прибора 1.6 и более). Даты передаются в формате VT_DATA_RAP (см. Приложение Б).

ВКТ-7

Реализация протокола МОДБАС

с. 15

 

 

 

4.9Запрос “Чтение номера схемы измерения”

Запрос предназначен для получения номера схемы измерения для заданного теплового ввода (только для версий ПО прибора 1.9 и более). Для использования этого запроса необходимо не менее одного раза за сеанс связи подать запрос «Запись типа значений». Поле «Количество регистров» должно быть установлено в указанное значение, т.к. при обработке данного запроса вычислитель анализирует это поле.

Начальный адрес = 0x3ECD, для Тв1 и 0x3F5B для Тв2. Количество регистров = 0х0001.

Пример:

Frame [0 ] = 0x00;

Frame [1 ] = 0x03; Frame [2 ] = 0x3E(0xCD); Frame [3 ] = 0x3F(0x5B); Frame [4 ] = 0x00; Frame [5 ] = 0x00; Frame [6 ] = CheckSum l; Frame [7 ] = CheckSum h;

Готовый вариант запроса:

0x00 0x03 0x3e 0xcd 0x00 0x01 0xd8 0x0c

Прибор присылает ответ следующего формата:

Номер схемы измерения (1 байт);

Байт качества;

Байт НС.

4.10Запрос “Чтение состояний дискретных выходов”

Запрос предназначен для получения состояний дискретных выходов (только для версий ПО прибора 2.0 и более).

Начальный адрес = 0x3FEE. Количество регистров = 0х0000.

Пример:

Frame [0 ] = 0x00;

Frame [1 ] = 0x03; Frame [2 ] = 0x3F; Frame [3 ] = 0xEE; Frame [4 ] = 0x00; Frame [5 ] = 0x00; Frame [6 ] = CheckSum l; Frame [7 ] = CheckSum h;

Готовый вариант запроса:

0x00 0x03 0x3f 0xee 0x00 0x00 0x28 0x3a

Прибор присылает ответ следующего формата:

Состояние выхода №1 (1 байт);

Состояние выхода №2 (1 байт).

Возможный код ошибки: 7 – дискретные выходы не являются управляемыми дистанционно.