ferrero : |
17.7.23 12:32 |
Добрый день, необходимо получить информацию о количестве теплосистем через MODBUS. Через штатное ПО "Архивист" удалось установить что в наличии находится 2 из 3 теплосистем. Используя MODBUS, посылаю запрос "01 03 00 С5 00 01", однако получаю в ответ нули.
Далее просто пытаюсь считать три первых параметра общей спецификации запросом: "01 03 00 04 00 20" (21*3 +1)/2 = 0x20 Получаю в ответ: 01 03 40 2D 32 2E 35 37 00 00 00 00 00 00 00 00 00 00 00 00 D2 D1 2D 31 30 31 2D 32 2D 32 2D 32 2D 31 00 00 00 00 00 00 00 32 30 30 35 36 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 30 30 30 30 Если переводить данный ответ в ASCIIZ, то получим "-2.57 ST-101-2-2 200565 00000"
1) Видно как размер в 21 байт занимает не один параметр а сразу два, один вначале и кусок второго в конце. Видно что самый первый параметр обрезан. Т.о. начальное смещение в 0х04 как указано в документации не верно?, при использовании смещения в 0х02 данные параметры располагаются как надо, каждый в свои 21 байт. 2) Как я понимаю между вторым и третьим параметром должно быть смещение в 21 регистр, когда в реальности там 11. (0х19-0х2Е). 3) Даже при правильном смещении в 0х02 после третьего параметра лежат некие "00000" и непонятные данные далее, как найти параметры которые должны идти следующими не понимаю, тем более как найти то самое количество теплосистем...Может быть я в чем то ошибаюсь или чего то не понимаю.
Ответ с начальным смещением 0х02: 01 03 40 48 43 2D 4D 2D 32 2E 35 37 00 00 00 00 00 00 00 00 00 00 00 00 D2 D1 2D 31 30 31 2D 32 2D 32 2D 32 2D 31 00 00 00 00 00 00 00 32 30 30 35 36 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 "НС-М-2.57 ST-101-2-2 200565"
[ Редактировано ferrero в 17.7.23 15:40 ]
[ Редактировано ferrero в 17.7.23 15:52 ] | |
|