PDA

Просмотр полной версии : Переменные в ИП320



gvr
03.03.2008, 12:01
Вопрос. как передать с/на ИП320 переменные типа REAL?

gvr
04.03.2008, 14:15
АУ! Кто-нибудь из уважаемых ГУРУ может объяснить если я на контроллере MODBUS slave создаю Float и завязываю к ней переменную типа REAL (температуру), а в ИП320 создаю двойной регистр с соответствующим номером, почему у меня в этом регистре какая-то фигня на панели отображается??

gvr
04.03.2008, 16:24
благодарю всех за супероперативную помощь:(
скачал новый конфигуратор для ИП320, попробовал, вроде пока с float проблем нет. Посмотрим что дальше будет:(

Николаев Андрей
04.03.2008, 23:16
Протокол ModBus не поддерживает передачу переменных с плавающей точкой. Поступить можно следующим образом: Преобразовать real_to_word (dword) и умножить число на 10 в степени знаков после запятой. А в панели указать сколько знаков после запятой Вам необходимо отображать.

gvr
06.03.2008, 07:49
С преобразованием типов я уже вариант тоже опробовал. Это понятно как работает.
Насчет поддержки Modbus переменных с плавающей точкой не совсем понял...
Метод научного тыка с конфигуратором ИП320 версии 6.4f показал, что при записи в регистр Modbus(slave) - float переменной REAL, на панели, работающей в режиме мастер, все вполне корректно отображается (например real=41.5686971467 -> на панели в регистре видим 41.6) как тогда это объяснить?

gvr
06.03.2008, 08:23
Протокол ModBus не поддерживает передачу переменных с плавающей точкой.

А зачем тогда в PLC Configuration в Modbus slave в принципе вcтавляется float?

Филоненко Владислав
06.03.2008, 09:17
Для ПЛК и TraceMode и панели. Работа с float для панели ведётся.

Сергей_К
06.03.2008, 11:47
В конфигураторе V6.4f появилась возможность конфигурить панель как slave устройство, как сделать поддержку в КоДеСис, если ПЛК - Мастер, возможно с помошью Universal Modbuse devise?
Если так, то какие переменные нужно использовать для обмена с панелью?

gvr
06.03.2008, 14:12
Для ПЛК и TraceMode и панели. Работа с float для панели ведётся. Я так и не понял с версией 6.4f можно real с ИП320 считать/записать и обойтись без преобразований типа данных?? Если можно ответьте немного более развернуто, нужно мне уже как-то с принципом приема передачи данных ИП320 определиться, а то вся работа стоит.

Kirill
13.03.2008, 12:04
Я так и не понял с версией 6.4f можно real с ИП320 считать/записать и обойтись без преобразований типа данных?? Если можно ответьте немного более развернуто, нужно мне уже как-то с принципом приема передачи данных ИП320 определиться, а то вся работа стоит.

В версии программного обеспечения 6.4f возможность работы с float появилась. Но до конца нами этот режим пока не оттестирован, гарантировать его работу не можем. Поэтому очень интересны результаты вашей работы с данной функцией.

Kirill
13.03.2008, 12:05
В варианте: конфигуратор ИП320 V6.4f, CoDeSys V2.3.8.7, и таргет 2.02 для ПЛК150.У-L легко передаются REAL переменные, правда у меня вариант ПЛК - мастер, ИП320 - слейв.
Пример выложить не могу - форум не пущает, стучите в аську.

попробуйте упаковать пример в архив и выложить в таком виде.

gvr
17.03.2008, 16:58
В версии программного обеспечения 6.4f возможность работы с float появилась. Но до конца нами этот режим пока не оттестирован, гарантировать его работу не можем. Поэтому очень интересны результаты вашей работы с данной функцией.

теперь новая беда...
вставил в регистры панели float. загрузил проект. ПЛК 150И.М.
Связь устанавливается при включении питания. какие-то регистры на первом экране частично считываются и отображаются . потом появляется надпись "потеря связи" и больше ничего добиться не могу. на тестовом примере с одним экраном и одной переменной float связь работала, все показывало. Ничего вроде не менял. параметры связи уже на 5 раз проверил.
Может это быть связано с проектом или чисто в связи дело?
:confused:

Kirill
17.03.2008, 18:28
теперь новая беда...
вставил в регистры панели float. загрузил проект. ПЛК 150И.М.
Связь устанавливается при включении питания. какие-то регистры на первом экране частично считываются и отображаются . потом появляется надпись "потеря связи" и больше ничего добиться не могу. на тестовом примере с одним экраном и одной переменной float связь работала, все показывало. Ничего вроде не менял. параметры связи уже на 5 раз проверил.
Может это быть связано с проектом или чисто в связи дело?
:confused:

выложите проект ИП. И ПЛК. дело может быть в адресации переменных типа float. Они имеют только четные номера регистров (тк состоят из 4 байт)

Сергей_К
18.03.2008, 09:10
Я выложил пример настройки передачи данных ПЛК(мастер) - ИП320(слэйв) в теме "Средства отображения (HIM)/ип-320 слэйв".
Посмотрите, может поможет.

gvr
25.03.2008, 14:29
теперь новая беда...
вставил в регистры панели float. загрузил проект. ПЛК 150И.М.
Связь устанавливается при включении питания. какие-то регистры на первом экране частично считываются и отображаются . потом появляется надпись "потеря связи" и больше ничего добиться не могу. на тестовом примере с одним экраном и одной переменной float связь работала, все показывало. Ничего вроде не менял. параметры связи уже на 5 раз проверил.
Может это быть связано с проектом или чисто в связи дело?
:confused:
В результате длительного пошагового тестирования проблема была локализована таким образом:
1. от float я решил отказаться - проще использовать функцию REAL_TO_WORD, чем разбираться что да почему, хотя есть подозрение, что работать может.
2. связь восстановилась после того как номер начального бита alarm сделал 0х00. Этого требования кстати нигде !!! в инструкциях нет!

Рекоммендации: резервировать с запасом количество бит на Modbus, достаточное для добавления alarm'ов, начиная с 0. т.к. идут они только по порядку. если потом по ходу у вас придумаются дополнительные события, а вставлять их будет некуда - придется, передвигать другие регистры.

Дополнительно обнаруженные траблы:
Так и не смог пока заставить панель возвращаться автоматически на экран, указанный в настройках (у меня стоит номер1).
С контролером периодически отваливается связь по TCP, закономерности не выявил, такое ощущение, что контроллер перегревается, хотя частота цикла у меня 50 мс.