HCBBS Forum (Русский)
Submit Chemical Projects / Find Solutions
Amplify Your Requirements on a Broader Chemical Platform *Engineering · Technology · Equipment · Solutions*
Submit Request

Проблемы с коммуникацией MODBUS RTU

2015-11-17View Original

Thread Content

У нас существует система, которая взаимодействует с DCS по протоколу MODBUS. DCS — это система централизованного управления JX-300XP. Проблема заключается в следующем: данные, передаваемые другой системой, бывают двухбайтными и четырехбайтными. Двухбайтные данные обрабатываются корректно, но четырехбайтные данные не могут быть правильно интерпретированы. Проблема в основном ясна: речь идет о адресе регистра, который был предоставлен собеседником; это 32-битная четырехбайтовая переменная. Однако DCS не может напрямую считывать четырехбайтовые переменные. Как можно это решить?
Reply #22015-11-18
Если речь идет о 32 битах, то это должны быть действительные числа. В системе собеседника они преобразуются в 16-битные целые числа, а затем снова преобразуются обратно на стороне центрального контроллера.
Reply #32015-11-18
В протоколе Modbus не определен тип данных 32 бита; указаны только регистры размером 16 бит. Поэтому необходимо самостоятельно написать код для решения этой проблемы, будь то на стороне слейва или мастера — в любом случае придется сами разобраться с типом данных
Reply #42015-11-21
Вполне возможно, что высокие 16 бит и низкие 16 бит слова поменялись местами. Можно преобразовать числа с плавающей точкой в 16-битные целые числа на слэйв-узле, или же на мастер-узле обменять местами высокими и низкими 16 битами
Reply #52015-11-23
Сделайте сканирование с помощью Modbus, чтобы определить тип данных. Возможно, это будет 64-битный тип double; в некоторых системах значения, хранящиеся для накопления, действительно имеют формат double. Например, в расчетниках расхода Daniel значения, хранящиеся для накопления, имеют именно такой тип. Как правило, числа с плавающей точкой занимают 4 байта, а порядок их размещения обычно соответствует последовательностям 1234/3412/2143/4321 и т. п. . . . Особенно плохо, когда тошнит. . . . В PLC Siemens при использовании модуля связи Modbus формат чисел с плавающей точкой — 3412, а для обычных чисел — 1234
Reply #62015-11-24
Посмотрите в руководстве DCS, как определяются типы данных: у некоторых они называются real, у других — dword
Reply #72015-11-26
Автор поста и все участники форума используют протокол MODBUS. При использовании протокола MODBUS_RTU можно передавать по n элементов данных за одну операцию. Каково максимальное значение для n? То есть, сколько данных может передаваться за один раз через MODBUS_RTU? n не может быть бесконечным, иначе передача данных никогда не закончится.

Submit a Project

**Looking for Chemical Technology, Equipment & Solutions?** No Registration Required Broader Platform Exposure | Global Chemical Service Provider Connections

Submit Request — Free Consultation

Disclaimer

This is an automated machine translation of the original thread. Some technical terms may have inaccuracies; the original text shall prevail. Click "View Original" at the top right to access the source page, which supports IP-based automatic real-time language translation. Please watch out for contact details and sales inducements to prevent fraud. All content and translations are for reference only, representing solely the poster's personal views. For enquiries, email service@hcbbs.com.