PDA

Просмотр полной версии : ПЛК110-30 и Weintek MT8100iE передача float



Linker1989
02.09.2014, 11:05
Добрый день. ПЛК110-30 и Weintek MT8100iE. Проблема с передачей аналоговых значений. В CoDeSys создали подэлемент Float в Modbus (slave), имеет вид MB_T AT %QD6.2.0:REAL; (* *) [CHANNEL (Q)]. Теперь в EasyBuilder необходимо написать адрес для MB_T из ПЛК. Но никак не поймем как из qd6.2.0 real получить этот самый адрес, что нужно прописывать. Скрины прилагаются.
1422814229

capzap
02.09.2014, 11:12
адрес 4 поставте

ЗЫ и кстати в параметрах цифрового индикатора точно стоит 32float ?

Linker1989
02.09.2014, 11:28
адрес 4 поставте

ЗЫ и кстати в параметрах цифрового индикатора точно стоит 32float ?
Не работает(( Поставил адрес 4х4. в плк значение есть (через CodeSys смотрим), на панель не передется. Да, 32бит FLOAT стоит.

Пантелеев Дмитрий
02.09.2014, 11:35
Адрес должен быть 2.

Linker1989
02.09.2014, 11:56
Адрес должен быть 2.
Не получается. Но уже стал показывать 00.00. При адресе 4 вообще пустота была. В кодесисе при подключении к плк видно что значение 47, т.е. точно не 0

capzap
02.09.2014, 11:59
Не получается. Но уже стал показывать 00.00. При адресе 4 вообще пустота была. В кодесисе при подключении к плк видно что значение 47, т.е. точно не 0

http://www.owen.ru/forum/showthread.php?t=11608&p=143281&viewfull=1#post143281

Linker1989
03.09.2014, 08:16
Никак не выходит :(

capzap
03.09.2014, 08:24
Сделайте индикатор читающий локальные данные, найдите в бильдере передачу данных,задайте время,откуда читать и куда писать и с помощью макроса переворачивайте слова/байты местами, последние версии среды разработки имеют возможность в настройках задавать порядок байт. Вот можно пойти таким сособом,если не получается перевернуть в конфигураторе плк

Linker1989
03.09.2014, 10:18
Поставили адрес 3 и прочиталось значение, по адресу %QD6.3.0. Но по адресу 4 значение %QD6.4.0 уже не считывается

capzap
03.09.2014, 10:33
Третий адрес вместо второго,это значит драйвер в панели Вы поставили не zero
А по четвертому адресу,не будет ни чего,потому что реал занимает два слова, тут два варианта либо в слейве нет столько слов, или вычитывать тогда надо по 5 адресу

BETEP
03.09.2014, 10:43
FLOAT через модбас от немцев, это 5x в вайнтеке. читается через код модбаса 0x03 пишется через 0x10 и Меняет байты местами.
Гляньте описание в PLC_connection_guide.pdf от вайнтека

Фан
03.09.2014, 15:49
Не выравнены переменные при размещение в области памяти. Т.е. в CoDeSys в начале у Вас установлено 8 бит (половина регистра). Надо добавить еще 8 бит.

reallis
18.10.2014, 20:37
если не разобрался то надо выложить проэкт в проэкте укажи что твоя флоат равна переменной аналогового значения и будет тебе счастье а вам уважаемые ответчики скажу что не надо лезть в дебри человек простейшее спросил