This is topic modbus in forum Пользователи для пользователей at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/50/t/000003.html

Posted by drooha (Участник № / Member № 3306) on :
 
Для записи в контроллер 4-х байтового значения необходима функция 16(10 Hex) Preset Multiple Regs, протокола Modbus RTU.
В TM6 для работы с 4-х байтовыми значениями имеется W_Float(16), которая передаёт значение с плавающей точкой типа out,и естественно с использованием этой функции передается совсем другое число. Может кто нибудь сталкивался с подобной проблемой, подскажите пожалуйста как быть.
 
Posted by Dmitry.niimm (Участник № / Member № 3380) on :
 
А в чем, собственно, проблема?

По стандарту Modbus отсутствует такое понятие как 4-байтовое целое (впрочем как и вещественное любой длины) - есть только 16-битные регистры и битовые поля. То, что некоторые девайсы получают такие данные - это нестандартизованное расширение стандарта и реализуется как использование двух последовательных 16-битных регистров, причем какой из них используется в качестве старшей половины, а какой - младшей, это уже остается на совести производителей.

Поэтому выход только один:
1) создать источник/приемник Modbus/hex16 out, указывающий на _первый_ из регистров;
2) к источнику привязать канал ChGroupReq с двумя аргументами UINT;
3) в аргументы канала из п.2 вручную (т.е. отдельным каналом call.program) ложить две половинки значения hex32 _в_нужном_порядке_.

Короче говоря, rtfm:
"Канал CALL.ChGroupReq...
...Привязка источника MODBUS чтения или записи.
Выполняется соответственно групповое чтение или групповая запись (WORD, FLOAT) при обмене с заданным устройством по MODBUS (в том числе по MODBUS TCP/IP). Устройство и начальный адрес задаются в источнике, количество считываемых/устанавливаемых параметров определяется числом аргументов канала."
 
Posted by drooha (Участник № / Member № 3306) on :
 
Спасибо, я решил задачу немного подругому
 
Posted by Сергей_Регион_Автоматика (Участник № / Member № 4003) on :
 
Простите пожалуйста, а каким образом еще можно решить эту задачу с чтением/передачей 3 или 4 байтового числа?
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2