Доброго дня, товарищи.
Поле пары дней попыток что-то прочитать из этого удивительного тепловычислителя, появились выводы, которыми я тут поделюсь.
От слов modbus RTU, в заявках и документах производителя ничего правдивого нет, там не Modbus и даже не RTU. Выяснил это следующим образом - взял лектус ОПС и решил послушать ответы. То что автор ,который писал этот протокол на счетчике, далек от понимания регистров, распределения памяти и пр. в протоколе modbus выяснилось сразу (постом выше) , но вот сам пакет представляет интерес. Снимок во вложении. Я там красным выделил очень интересный фрагмент ответа. Кто знаком с кодом ASCII тот поймет. Когда я это увидел - удивлению моему не было предела, какой "гений" в modbus rtu вставил ascii символы??? Как это вообще в голову могло прийти? Есть предположение, что автор сего чуда, вчерашний студент, который вообще в протоколе ничего не понимает, которому начальство приказало что то написать, и чтобы не парится взял и сотворил такое.
Вот и представьте, как теперь нашему заказчику это разъяснять, когда в добавок ко всему, ответ техподдержки "логики" такой
"Это не свободно программируемый контроллер а тепловычислитель с настраиваемым интерфейсом,о чем говориться в РЭ (поддерживает протокол обмена с внешними устройствами) Ваше заявление "Значит в счетчике нет протокола ModBus." некорректно." Тем более на мою просьбу прислать логи обмена с тем же тепловычислителем, техподдержка прислала картинку (тоже во вложении) ... стою и молча развожу руками!
Вывод - если вам не угрожают расправой, не используйте этот тепловычислитель если хотите опрашивать его по modbus.
Но если эта железяка у вас уже есть и сдать обратное её нельзя, и заказчик просит что-то оттуда выковырнуть- даю рекомендации как поступать.
1. Функция чтения, единственно-работающая 04, пытались другими - в ответ ошибка. Групповой запрос - тушите свет, только одиночные, только хардкор.
2. Если к этому чуду у вас плк ОВЕН на кодесисе 2.3 , то рядом стоящие параметры - исключите из опроса, не прочиатате (нам так пришлось исключить температуру из трубопроводов, так как важнее было знать массовый расход).
3. Настройки по интерфейсу тоже не блещут разнообразием. Так что rs485 полностью выделяйте на тепловычислитель, если не хотите головную боль.
4. Чтение удобнее осуществлять 8-ми байтовым string, так как вряд ли найдете, какой прибор будет опрашивать LREAL (там почти все данные 8-байтовые)
5. Расшифровку, перестановку байт и приведение к числовому виду, придется делать либо скриптом, либо подпрограммой. Для ПЛК выложу наработку здесь. И отдельно спасибо неизвестному программеру (перестановку байт стянул у него. где то на форуме)
6. Про настройку 003 или 004 . В инструкции написано исключительно для галочки. Параметры такие 6050001112 , где первая цифра 6 - параметры четности и стоповых бит (в данном случае 8 EVEN 1) , 01 - это адрес в сети RS485 , последняя цифра 2 - скорость (в данном случае 1200 ).
Вот как то так.
Всего доброго, коллеги, всем успехов.
Эскизы прикрепленных изображений
Прикрепленные файлы
ПО.txt ( 1,96 килобайт )
Кол-во скачиваний: 265