PDA

Просмотр полной версии : плк63(мастер)+мва8+сп270



AVit
09.08.2010, 15:00
Задача такая, ПЛК63 должен считывать показания с МВА8 и передавать их на панель СП270. Все устройства сидят на 485, протокол modbus rtu.
Первую часть реализовал с помощью библиотеки, а вот со второй затык, данные формата float.
Как их передать через библиотеку modbus не понятно....
Подскажите в какую сторону копать

lara197a
09.08.2010, 15:20
Преобразуйте в инт, умножте если нужно с точностью до n*. В панеле укажите нужное количество цифр после запятой

AVit
09.08.2010, 16:06
Преобразуйте в инт, умножте если нужно с точностью до n*. В панеле укажите нужное количество цифр после запятой
там есть несколько параметров температуры, которые могут быть как положительными так и отрицательными, из за этого и хотел float, а с int, что то со знаком не получается...

lara197a
09.08.2010, 16:14
тип Int от -32768 до +32767,
а Float-это с запятой 64 бит

AVit
09.08.2010, 16:27
тип Int от -32768 до +32767,
а Float-это с запятой 64 бит

проблема в том что у меня отрицательное число при этом на сп270 почему то не выводится, хотя... наверное надо завтра еще раз попробывать на свежую голову....

спасибо.

AVit
10.08.2010, 09:02
вроде на свежую голову получилось..., но появился еще вопрос, как оптимально отследить отсутствие обмена с одним или несколькими устройствами в сети?

файл проекта прилагаю.

(его можно использовать как пример для опроса мва8 по модбас рту, ибо такого примера еще не было)

AVit
11.08.2010, 09:03
Руководство по эксплуатации МВА8 , пункт 6.3.1.2, таблица 5 - адреса регистров Modbus.

Измеренное значение входа 1 формата Float32 считывается вопреки данным таблице (4 и 5 регистры) с 3 и 4 регистров.
Вопрос в том, где искать статус измерения входа 1?
методом тыка не получается...


ну и прошлый вопрос остается в силе...

vlkv
13.08.2010, 00:12
данные формата float.
Как их передать через библиотеку modbus не понятно....
Подскажите в какую сторону копать

Когда я передавал float с ПЛК150 на СП270, то приходилось перед отправкой на панель менять местами старшее и младшее слово в переменной (float как раз 64 байта). Может в этом проблема.

Если точности нужно пара-тройка символов после запятой, то проще умножить на 10, 100 или 1000, преобразовать в int и передавать в таком виде.

AVit
13.08.2010, 06:33
vlkv: спасибо, с этим уже разобрались.

Техподдержке: Руководство по эксплуатации МВА, та же таблица.... статус измерения первого канала нашелся во втором регистре, что то у вас напутано в этой таблице...
у меня получилось так (для первого канала):
0 регистр -положение десятичной точки;
1 регистр - целое значение
2 регистр - статус измерения
3,4 регистры - значение с плавающей точкой

циклическое время не искал, но похоже оно в 5 регистре

по прежнему не ясно как с помощью библиотеки отследить отсутствие обмена с одним из нескольких устройств в сети...

!!!!!!!!!!!!!!!!!!!!
16.10.2010 Сказанному выше на счет регистров не верить, там все как в инструкции.
!!!!!!!!!!!!!!!!!!!!

Nazar
15.12.2010, 15:14
циклическое время не искал, но похоже оно в 5 регистре



Господа модераторы подскажите в каком регистре искать циклическое время? :confused:

Александр Ч.
29.08.2011, 09:24
Прогнал проект предложенный AVit ПЛК63+МВА8...( проба.rar выше) , обмен между плк63 и мва8 длится несколько секунд. Это особенность ПЛК63? Или можно ускорить процесс?
Делаю проект , в котором кроме МВА8 будут еще ИП320 и МВУ8. С ними задержек по обмену нет(взял пример ПЛК63+МДВВ - по аналогии) . Может есть пример рабочий ПЛК63+МВА8? Неделю рыскаю по форуму....
Для скорости конечно же читаю INT не FLOAT как в примере

Александр Ч.
14.09.2011, 13:57
Все дело было в скорости, прописал 115200, скорость обмена выросла в 10 раз примерно. Далее по проекту -связал ПЛК63 с МВА8,МВУ8 и ИП320. Проект получился не сильно короткий, и дабы облегчить жизнь себе переименовал проект в "Modbus(ST)", в PLC_PRG естественно добавил эту пользовательскую программу. К сожалению в таком виде обмен не идет, полагаю, что порт не успевает открываться.. В чем может быть причина и как заставить его работать?

capzap
14.09.2011, 18:39
не понял.
машина красивая, но не ездит ?:confused:

как продолжение шутки : "надо сменить прокладку между рудем и сиденьем водителя"

Александр Ч.
15.09.2011, 09:42
как продолжение шутки : "надо сменить прокладку между рудем и сиденьем водителя"

http://www.owen.ru/forum/showthread.php?p=56358#post56358
А ведь еще 11.03.2011 то же самое можно было сказать ..., но ведь помогли , научили, просветили.... Поздравляю

capzap
15.09.2011, 11:07
а мои то глупости хоть ответы находятся (почти на все :) ), а на Ваш вопрос мне очень хочется посмотреть кто же ответит.
Не совсем понятно, как можно определить что обмен вырос на порядок и при этом жалуетесь что его нет. Порт открывается единожды при инициализации, закрыться может только по истечении таймаута

Александр Ч.
15.09.2011, 11:32
Да, скорее всего не переписал переменные в Gobal_variable