timchenkodn
Junior Member / Новичок
Участник № / Member № 6436
отправлено / posted
МРВ должен обмениваться с устройством по modbus. В МРВ должна задаваться уставка, например, 1.234. Это число нужно умножить на 1000 и передать в устройство, но тип данных должен быть не Float, а Int32. Как выполнить преобразование? Какой функцией выполнить передачу?
Сообщения / Posts 22 | Из / From: Russia
| IP / IP: IP адрес / IP address |
отправлено / posted
Сначала программно преобразуйте в целое число и разбейте его на 2 числа формата INT (с помощью функциональных блоков библиотеки FBD). 2 целых числа (2 слова) передайте в устройство каналом CALL.ChGroupReq, привязанным к Modbus-переменной типа W_word (16) (см. описание канала CALL.ChGroupReq). 2 регистра могут интерпретироваться в устройстве как DINT.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
timchenkodn
Junior Member / Новичок
Участник № / Member № 6436
отправлено / posted
Я правильно понимаю, что в канале CALL.ChGroupReq создаю 2 аргумента типа OUT и в них передаю 2 слова? Сам канал привязан к приемнику типа W_word(16). Какой параметр задать для канала CALL.ChGroupReq?
Сообщения / Posts 22 | Из / From: Russia
| IP / IP: IP адрес / IP address |
timchenkodn
Junior Member / Новичок
Участник № / Member № 6436
отправлено / posted
Что-то не получается, не посылает в порт. Если в МРВ в компонентах послать на вход на CALL.ChGroupReq, то в порт отсылается сообщение правильной структуры, но с нулями вместо данных. Как посмотреть не пустые ли аргументы в канале? Есть ли пример с реализацией?
Сообщения / Posts 22 | Из / From: Russia
| IP / IP: IP адрес / IP address |
timchenkodn
Junior Member / Новичок
Участник № / Member № 6436
отправлено / posted
to Nico, спасибо, помогло. Привязался к out hex32 и функцией W_Float(16) передал в порт
Сообщения / Posts 22 | Из / From: Russia
| IP / IP: IP адрес / IP address |
RomanUI
Junior Member / Новичок
Участник № / Member № 4022
отправлено / posted
Добрый день! 1. Система состоит из RTM->MicroRTM(WinPAC8841)->PLC Pixel. Обмен WinPAC с Pixel осуществляется по Modbus, а обмен RTM->MicroRTM оп LAN. Проблема в следующем... В узле MicroRTM с Pixel считывается функцией Rin_Float(4) вещественное число, которое привязывается к каналу HEX32, в данном канале оно не преобразуется в hex, т.е. Rin_Float(4)->HEX32 = 0. При ситуации Rin_Float(4)->Float(канал) - все в порядке, но мне нужно именно в двоичном виде. При работе этого алгоритма в обычном RTM, никаких проблем не возникает. Используемые продукты: TM-6-256-P-RU-WIN 6.08 и MCTM-WCG-6-128-L1-P-RU-CE. 2. Как обновить модуль MCTM-WCG-6-128-L1-P-RU-CE, т.к. при работе RTM 6.09 у меня проблема с ним.
Сообщения / Posts 24 | Из / From: Россия
| IP / IP: IP адрес / IP address |