МРВ должен обмениваться с устройством по modbus. В МРВ должна задаваться уставка, например, 1.234. Это число нужно умножить на 1000 и передать в устройство, но тип данных должен быть не Float, а Int32. Как выполнить преобразование? Какой функцией выполнить передачу?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Сначала программно преобразуйте в целое число и разбейте его на 2 числа формата INT (с помощью функциональных блоков библиотеки FBD). 2 целых числа (2 слова) передайте в устройство каналом CALL.ChGroupReq, привязанным к Modbus-переменной типа W_word (16) (см. описание канала CALL.ChGroupReq). 2 регистра могут интерпретироваться в устройстве как DINT.
Posted by timchenkodn (Участник № / Member № 6436) on :
Я правильно понимаю, что в канале CALL.ChGroupReq создаю 2 аргумента типа OUT и в них передаю 2 слова? Сам канал привязан к приемнику типа W_word(16). Какой параметр задать для канала CALL.ChGroupReq?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Аргументы типа INPUT. ПАРАМЕТР=0.
Posted by Nico (Участник № / Member № 5342) on :
А если ист/приемник привязать к каналу out.hex32 ?
Posted by timchenkodn (Участник № / Member № 6436) on :
Что-то не получается, не посылает в порт. Если в МРВ в компонентах послать на вход на CALL.ChGroupReq, то в порт отсылается сообщение правильной структуры, но с нулями вместо данных. Как посмотреть не пустые ли аргументы в канале? Есть ли пример с реализацией?
Posted by timchenkodn (Участник № / Member № 6436) on :
to Nico, спасибо, помогло. Привязался к out hex32 и функцией W_Float(16) передал в порт
Posted by RomanUI (Участник № / Member № 4022) on :
Добрый день! 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 у меня проблема с ним.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1. Описанная проблема у нас не воспроизвелась. Пришлите на адрес Технической Поддержки файл проекта (*.prj) с описанием задачи.
2. обновить можно любое зарегистрированное ПО через Личный Кабинет.