партнерский раздел
ФорумЭксплуатацияС2000-ПП опрос датчиков температуры и владности С2000-ВТ

Эксплуатация » С2000-ПП опрос датчиков температуры и владности С2000-ВТ

Здравствуйте!
Стоит задача: опросить показания датчиков влажности и температуры С2000-ВТ по протоколу MODBUS.
Для этого взят с2000-КДЛ (версия 2,22), С2000-ПП(версия 1,26) и пара датчиков с2000-ВТ.
Конфигурации приборов прилагаю.
C2000-КДЛ
С2000-ПП


Прибор с2000-КДЛ настроен для опроса 8-ми датчиков с2000-ВТ. Адреса датчиков с 1 до 16. На каждый датчик по два адреса (1: температура, 2: влажность). Реально на момент опроса подключено 2 датчика с адресами 7-8 и 11-12.

Когда происходит опрос с2000-ПП по протоколу MODBUS? то имеем следующую картину:
регистры 40000-40015 читаются частично:
скрин


Но возникла проблема с чтением самих значений. В инструкции написано, что для получения значения влажности/температуры необходимо записать функцией 6 номер зоны в регистр 46179. После чего в регистре 46328 можно считать значение по указанной зоне.
На практике этот регистр "не читается". Для опроса по протоколу Modbus используем программу
MasterOPC Universal Modbus Server (MasterSCADA)

Люди добрые, подскажите, как считать значения с датчиков!!

Ниже лог запросов/ответов modbus:

28-10-2017 15:05:40.101 С2000ПП:Запись в устройство будет произведена через 5 ceкунд или после восстановления соединения
28-10-2017 15:05:40.101 С2000ПП:Ошибка при записи в устройство (Адрес данных не доступен ) БОЛИД.С2000ПП
28-10-2017 15:05:40.078 Запрос:Запись в устройство для БОЛИД.С2000ПП.Запрос значение 5
28-10-2017 15:05:40.078 Запрос:Запись в БОЛИД.С2000ПП.Запрос значение 5
28-10-2017 15:05:39.878 С2000ПП:Ошибка устройства (Недопустимая величина в поле данных запроса) С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.799 С2000ПП:Запрос 16:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.799 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.719 С2000ПП:Запрос 15:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.719 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.639 С2000ПП:Запрос 14:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.639 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.559 С2000ПП:Запрос 13:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.559 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.479 С2000ПП:Запрос 12:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.479 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.399 С2000ПП:Запрос 11:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.399 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.319 С2000ПП:Запрос 10:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.319 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.239 С2000ПП:Запрос 9:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.239 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.159 С2000ПП:Запрос 8:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.159 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.079 С2000ПП:Запрос 7:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:39.079 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:38.999 С2000ПП:Запрос 6:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:38.999 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:38.919 С2000ПП:Запрос 5:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:38.919 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:38.839 С2000ПП:Запрос 4:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:38.839 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:38.759 С2000ПП:Запрос 3:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:38.759 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:38.680 С2000ПП:Запрос 2:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:38.680 С2000ПП:Oтвет  С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:38.598 С2000ПП:Запрос 1:С2000ПП:HOLDING_REGISTERS
28-10-2017 15:05:34.395 С2000ПП:Запись в устройство будет произведена через 5 ceкунд или после восстановления соединения
28-10-2017 15:05:34.395 С2000ПП:Ошибка при записи в устройство (Адрес данных не доступен ) БОЛИД.С2000ПП
28-10-2017 15:05:34.356 Запрос:Запись в устройство для БОЛИД.С2000ПП.Запрос значение 5
28-10-2017 15:05:34.356 Запрос:Запись в БОЛИД.С2000ПП.Запрос значение 5
28-10-2017 15:05:33.355 С2000ПП:Ошибка устройства (Недопустимая величина в поле данных запроса) С2000ПП:HOLDING_REGISTERS



28-10-2017 15:18:15.534 БОЛИД::С2000ПП:(COM7) Rx: [0005] 01 83 03 01 31
28-10-2017 15:18:15.503 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 4F 00 01 9B 8D
28-10-2017 15:18:15.453 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 23 2F E0 A8
28-10-2017 15:18:15.423 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 4E 00 01 CA 4D
28-10-2017 15:18:15.373 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 23 2F E0 A8
28-10-2017 15:18:15.343 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 4D 00 01 3A 4D
28-10-2017 15:18:15.293 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 23 2F E0 A8
28-10-2017 15:18:15.264 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 4C 00 01 6B 8D
28-10-2017 15:18:15.214 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 A5 2F 82 C8
28-10-2017 15:18:15.183 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 4B 00 01 DA 4C
28-10-2017 15:18:15.133 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 A5 2F 82 C8
28-10-2017 15:18:15.104 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 4A 00 01 8B 8C
28-10-2017 15:18:15.054 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 23 2F E0 A8
28-10-2017 15:18:15.024 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 49 00 01 7B 8C
28-10-2017 15:18:14.974 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 23 2F E0 A8
28-10-2017 15:18:14.944 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 48 00 01 2A 4C
28-10-2017 15:18:14.894 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 A5 2F 82 C8
28-10-2017 15:18:14.864 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 47 00 01 1A 4F
28-10-2017 15:18:14.814 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 A5 2F 82 C8
28-10-2017 15:18:14.784 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 46 00 01 4B 8F
28-10-2017 15:18:14.734 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 23 2F E0 A8
28-10-2017 15:18:14.698 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 45 00 01 BB 8F
28-10-2017 15:18:14.648 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 23 2F E0 A8
28-10-2017 15:18:14.432 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 44 00 01 EA 4F
28-10-2017 15:18:14.382 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 23 2F E0 A8
28-10-2017 15:18:14.352 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 43 00 01 5B 8E
28-10-2017 15:18:14.302 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 23 2F E0 A8
28-10-2017 15:18:14.272 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 42 00 01 0A 4E
28-10-2017 15:18:14.222 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 23 2F E0 A8
28-10-2017 15:18:14.193 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 41 00 01 FA 4E
28-10-2017 15:18:14.143 БОЛИД::С2000ПП:(COM7) Rx: [0007] 01 03 02 23 2F E0 A8
28-10-2017 15:18:14.106 БОЛИД::С2000ПП:(COM7) Tx: [0008] 01 03 9C 40 00 01 AB 8E
 

8 месяцев 20 дней назад

avatar
Может типы не совпадают, температура имеет целую и дробную часть, а у вас Int выставлен, ну это как вариант.

Тремасов Константин Александрович 8 месяцев 20 дней назад

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

1 ответ

Рекомендую для опроса значений температуры использовать  "modbus tester 2.0.5 "

Проблема заключается в скорости запросов и ответов, разбирая данный пример:
 
Работая с MasterOPC Universal Modbus Server происходит следующее:
1) Записываете в регистр 46179 значение требуемой зоны
2) Опрашиваете регистр 46328 с целью получить там результат.
3) Инкрементируете значение, записываемое в регистр 46179
4) Опрашиваете регистр 46328 с целью получить там результат.

Данную последовательность действий Вы производите не дожидаясь пока С2000-ПП через протокол Орион (работающий на скорости 9600) запросит у С2000-КДЛ значение температуры и выставит в свой регистр 46328.

Пока С2000-ПП ещё не получил значение температуры на первом датчике, Вы выдаёте С2000-ПП задачу на опрос следующего датчика. 

При этом С2000-ПП выставляет требуемую команду в очередь, и то, что Вы считываете в регистре 46328 уже зависит исключительно от того, насколько быстро С2000-ПП по шине Орион опросит С2000-КДЛ. При наличии большого числа приборов это заничает разное время.
Соответственно после этого очередь переполняется, и прибор в итоге выдаёт ошибки. Прошу понять производителя, данная логика работы не обусловлена желанием программиста усложнить работу, данная логика работы маленького преобразователя протокола отталкивается от скоростей и логики опроса именно С2000-КДЛ и является на самом деле простой. Хранить таблицу значений в С2000-ПП и выдавать её " на лету", к сожалению, невозможно, исходя из логики опроса системы с опросом С2000-КДЛ и возможным наличием в системе других приборов системы Орион.

Рекомендую между записью номеров зон выставить задержку. Величина задержки будет зависить и от количества датчиков, и от скорости на которой опрашиваете С2000-ПП. Как именно в данном ОРС сервере поставить задержку лучше подскажут в компании Инсат - разработчике ОРС- сервера.

Дополнительно напишу, что если в перерывах между этими задачами запросить у С2000-ПП версию прибора в регистре 46152 командой 3, два байта, то очередь задачь сброситься, это может помочь построить более правильный алгоритм работы опросчика.
По телефону техподдержка может переключить на специалиста, который поможет с данной проблемой.

8 месяцев 15 дней назад

avatar
Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

Добавить ответ

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

ПОКАЗАН

1033 раза

ЗАДАН

8 месяцев 20 дней назад

По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.