Просмотр полной версии : СПК107 + ТТМ-2-04-02 modbus
glider80
21.11.2018, 22:34
Здравствуйте, Подключил СПК107 и термоанемометр ТТМ-2-04 по modbus.
Настроил все это в CODESYS 3.5, данные получаю но цифры какие-то не те.
39987
В инструкции к термоанемометру написано что запрос надо делать float к двум регистрам.
Делаю через modbus_master_tool запрос ко 2,3 регистру float и получаю температуру с запятой, получаю все правильно.
39988
Codesys делает запросы по каналу через word и получаем два word. Пробовал по инструкции через объединения _2WORD_TO_REAL: не то.
39989
Как полученные 16847 и 43065 сконвертировать в 25,9111137 ? Где читать ?
Спасибо.
Приложение от ТТМ-2-04
39990
Евгений Кислов
22.11.2018, 06:58
Добрый день.
Поменяйте в Modbus Slave Com Port привязку переменных местами: к Channel0[0] привяжите ...awModbusReal[0], к Channel0[1] привяжите ...awModbusReal[1].
В этом же меню внизу для параметра Всегда обновлять переменные установите значение Вкл. 2.
glider80
22.11.2018, 23:04
Добрый день.
Поменяйте в Modbus Slave Com Port привязку переменных местами: к Channel0[0] привяжите ...awModbusReal[0], к Channel0[1] привяжите ...awModbusReal[1].
В этом же меню внизу для параметра Всегда обновлять переменные установите значение Вкл. 2.
Спасибо, помогло.
Осталось изменить адрес прибора с 1 на 31 хотя бы. Только команды $0001RR000008B1[0d] не похожи на это 01 04 00 00 00 04 F1 C9. К производителю обращаться? Или я что то не до читал?
Команда запроса сетевого адреса прибора:
Формат запроса: $FFFFGAC4(0Dh)
Ответ в случае верного выполнения команды: !FFFFGA[Addr] [ch](0Dh)
Ответ в случае ошибки выполнения команды: ?FFFFGA[ch](0Dh)
Команда изменения (установки) сетевого адреса прибора:
Формат запроса: $[Addr1]SA[Addr2] [ch](0Dh)
Ответ в случае верного выполнения команды: ![Addr1]SA[ch](0Dh)
Ответ в случае ошибки выполнения команды: ?[Addr1]SA[ch](0Dh)
[Addr1] – старый адрес прибора
[Addr2] – новый адрес прибора
Прибор переходит на новый адрес после выдачи ответа.
Команда чтения скорости и температуры потока:
Формат запроса: $[Addr]RR000008[ch](0Dh)
Ответ в случае верного выполнения команды: ![Addr]RR[Float-V] [Float-T] [ch](0Dh)
Ответ в случае ошибки выполнения команды: ?[Addr]RR[ch](0Dh)
Примеры:
Запрос чтения скорости и температуры потока термоанемометра с адресом 0001:
$0001RR000008B1[0d]
Евгений Кислов
23.11.2018, 07:09
Изменить адрес достаточно один раз перед началом эксплуатации? Тогда проще всего подключить ТТМ к ПК и отправить команду через терминал (например, Putty). Или, возможно, производитель предоставляет конфигуратор.
Если требуется периодически менять адрес в процессе работы с дисплея СПК, то требуется организовать поддержку протокола ТТМ в CODESYS.
См. этот документ: https://ftp.owen.ru/CoDeSys3/11_Documentation/01_SPK/SPK_NonstandardProtocols_v.1.1.pdf
glider80
24.11.2018, 14:12
Спасибо.
Адрес меняю один раз. Через putty не получилось, вероятно не известны точные настройки соединения или закрыто. В итоге производитель ответил.
В этом приборе два протокола обмена: modbus и наш собственный (https://www.eksis.ru/technical-support/exchange-protocol/). По modbus скорость изменить нельзя. Используйте команду из нашего протокола (https://www.eksis.ru/technical-support/exchange-protocol/) 'GA' или бесплатную программу настройки (https://www.eksis.ru/technical-support/software/analog-config.php).
В итоге скорость больше 9600 на приборе не выставить. Получается если у меня все модули и датчики работающие 115200 надо вешать на COM1 в СПК107, а эти работающие на 4800 надо вешать на другой порт COM2, правильно я понимаю?
Евгений Кислов
24.11.2018, 14:24
Да, все верно.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot