PDA

Просмотр полной версии : СМИ1+ПЛК-110-32, float



LVS
18.11.2011, 14:44
Доброе время суток! Заказчик очень запросил установить на станке панель СМИ1_24 (версия 1.05). И вот тут возникли вопросы.
1. Во время конфигурации перидически выскакивает окно "обнаружен неверный аргумент!", что это за аргумент выяснить не удалось. к сожалению программа-конфигуратор никакой информации по аргументам не выдает!
2. Задача такая: иметь возможность редактировать 2 параметра и отправлять их в ПЛК, считывать с ПЛК 1 параметр и отображать его в панельке. Для этого в панели созданы 2 параметра редактирования и 1 параметр отображения. Панель мастер, протокол Modbus-RTU. Все переменные в панели Float, в ПЛК соответственно Real. С адресацией порядок(проверяла, и раньше по протоколу Modbus-RTU, но с СП270(мастер), работала). НО! значение параметра редактирования, например "1", в ПЛК имеет знаечение восьмизначное число в минус 041 степени! Где ошибка? Что я делаю не так?

P/S может вся беда в том, что конфигурирую с ноута, а на нем ОС 7 стоит?

LVS
22.11.2011, 09:59
Мне так ни кто и не ответит? Или просто не увидели вопрос?

LVS
22.11.2011, 16:30
Господа разработчики! Прошу все таки ответить.
И еще вопрос может ли панель СМИ1 принимать и отдавать переменные DWORD?

Николаев Андрей
22.11.2011, 23:53
По порядку.
Dword можно. При настройке указываем количество регистров - 2. Подробнее в руководстве...
С Real... Плотно не работал с панелькой, но думаю вопрос в том, что надо менять местами в контроллере первые и вторые два байта Real-овской переменной.
Посмотрите пример передачи чисел с плавающей точкой:
http://www.owen.ru/forum/showthread.php?t=11273

LVS
23.11.2011, 11:23
Доброе время суток, Андрей. По порядку.
1. Пробовала с DWORD. Ерунда получается: значение "1" в панели = 16... (дальше не помню) 5-ти значное число; "2" = 16...+128 и так далее. Это с переменными редактирования. Пришлось извариться и читать в ПЛК эти числа, благо что их всего 4 нужно, и заказчик может задав значение "1" с панели запустить определенный режим.
2. Переменная отображения (вот здесь самое интересное) начала отображаться на 3-и сутки с шагом начала 8 едениц, затем 5 едениц.(эта информация от заказчика, т. к. станочек уже у них).
3. Не могли бы Вы пояснить что значит "менять местами в контроллере первые и вторые два байта Real-овской переменной." Как и где?

Николаев Андрей
23.11.2011, 20:23
Можно чуть подробнее по первым двум пунктам.
По третьему: в ссылке есть пример. В одном из блоков как раз делается смена порядка регистров.

LVS
24.11.2011, 10:49
Подробнее по п.1:
в СМИ1 создана переменная редактирования тип Float, количество регистров 2, адрес 1, номер регистра 3, простокол Modbus-ASII. В ПЛК соответсственно эта переменная тип DWORD занимает 3 и 4 регистры (регистр 0 пустой, регистры 1 и 2 такая же переменная). При вводе числа "1" в панели в ПЛК появляется значение "16256", число"2" с панели в ПЛК = "16384", "3"="16448", "4"="16512". Дальше не смотрела, т.к. мне нужны только 1, 2, 3, 4.
Сначала пробовала в панели Float в ПЛК REAL, в этом случае число на панели "1" было равно пятизначному числу в -041 степени.
Подробнее по п.2 на сегодняшний день сказать не могу, ситуация описана со слов инженера заказчика, описать ситуацию смогу когда лично это увижу. В панели эта переменная тип Float , в ПЛК DWORD, регистры 5 и 6. Пробовала сначала в панели Float в ПЛК REAL, в этом случае число на панели вообще не менялось, т.е. в ПЛК меняется значение этой переменной, а на экране панели "0".

capzap
24.11.2011, 11:37
а почему номер регистра 3, а не 2? нумерация же с нуля начинается

LVS
24.11.2011, 12:56
потому что, регистр "0" пустой (резерв), регистры 1 и 2 занимет переменная DWORD

capzap
24.11.2011, 13:08
потому что, регистр "0" пустой (резерв), регистры 1 и 2 занимет переменная DWORD

дело в том, что в ПЛК используется выравнивание, о нем написано в документации, и поэтому двухсловные регистры такие как REAL DWORD в конфигураторе ПЛК должны начинатся с адресов кратным 2, хотя и визуально переменная располагается сразу за нулевым регистром она будет иметь адрес 2

LVS
24.11.2011, 13:27
да, совершенно верно. уже думала об этом, завтра поеду эксперементировать (Было бы намного проще если б панелька с контроллером были б под рукой). Видимо лучше сначала поставить переменную REAL или DWORD, а затем WORD. тогда и выравнивать не нужно.

LVS
28.11.2011, 10:10
Победила, присвоив переменным типа REAL адреса кратные 4.:)