Вопрос. как передать с/на ИП320 переменные типа REAL?
Вид для печати
Вопрос. как передать с/на ИП320 переменные типа REAL?
АУ! Кто-нибудь из уважаемых ГУРУ может объяснить если я на контроллере MODBUS slave создаю Float и завязываю к ней переменную типа REAL (температуру), а в ИП320 создаю двойной регистр с соответствующим номером, почему у меня в этом регистре какая-то фигня на панели отображается??
благодарю всех за супероперативную помощь:(
скачал новый конфигуратор для ИП320, попробовал, вроде пока с float проблем нет. Посмотрим что дальше будет:(
Протокол ModBus не поддерживает передачу переменных с плавающей точкой. Поступить можно следующим образом: Преобразовать real_to_word (dword) и умножить число на 10 в степени знаков после запятой. А в панели указать сколько знаков после запятой Вам необходимо отображать.
С преобразованием типов я уже вариант тоже опробовал. Это понятно как работает.
Насчет поддержки Modbus переменных с плавающей точкой не совсем понял...
Метод научного тыка с конфигуратором ИП320 версии 6.4f показал, что при записи в регистр Modbus(slave) - float переменной REAL, на панели, работающей в режиме мастер, все вполне корректно отображается (например real=41.5686971467 -> на панели в регистре видим 41.6) как тогда это объяснить?
Для ПЛК и TraceMode и панели. Работа с float для панели ведётся.
В конфигураторе V6.4f появилась возможность конфигурить панель как slave устройство, как сделать поддержку в КоДеСис, если ПЛК - Мастер, возможно с помошью Universal Modbuse devise?
Если так, то какие переменные нужно использовать для обмена с панелью?
теперь новая беда...
вставил в регистры панели float. загрузил проект. ПЛК 150И.М.
Связь устанавливается при включении питания. какие-то регистры на первом экране частично считываются и отображаются . потом появляется надпись "потеря связи" и больше ничего добиться не могу. на тестовом примере с одним экраном и одной переменной float связь работала, все показывало. Ничего вроде не менял. параметры связи уже на 5 раз проверил.
Может это быть связано с проектом или чисто в связи дело?
:confused:
Я выложил пример настройки передачи данных ПЛК(мастер) - ИП320(слэйв) в теме "Средства отображения (HIM)/ип-320 слэйв".
Посмотрите, может поможет.
В результате длительного пошагового тестирования проблема была локализована таким образом:
1. от float я решил отказаться - проще использовать функцию REAL_TO_WORD, чем разбираться что да почему, хотя есть подозрение, что работать может.
2. связь восстановилась после того как номер начального бита alarm сделал 0х00. Этого требования кстати нигде !!! в инструкциях нет!
Рекоммендации: резервировать с запасом количество бит на Modbus, достаточное для добавления alarm'ов, начиная с 0. т.к. идут они только по порядку. если потом по ходу у вас придумаются дополнительные события, а вставлять их будет некуда - придется, передвигать другие регистры.
Дополнительно обнаруженные траблы:
Так и не смог пока заставить панель возвращаться автоматически на экран, указанный в настройках (у меня стоит номер1).
С контролером периодически отваливается связь по TCP, закономерности не выявил, такое ощущение, что контроллер перегревается, хотя частота цикла у меня 50 мс.