PDA

Просмотр полной версии : ПЛК160 и МДВВ в программе не работают входы МДВВ



Energet
06.10.2014, 10:27
Программа в CFC. На входе МДВВ тумблер 1/0. Подключение к ПЛК160 через Modbas (RTU). В программе не работает преобразование входного сигнала ФБ WORD_TO_BOOL, а в режиме эмуляции все работает нормально. ФБ WORD_TO_BOOL не реагирует на изменение входного сигнала. В чем моя ошибка?

приборист
06.10.2014, 13:10
Программу выкладывайте.
Индикатор работа горит? Старт нажимаете?

amn
06.10.2014, 13:33
У меня была подобная проблема. С причиной разбираться не стал, написал свою функцию. Если у Вас все остальное работает, попробуйте импортировать в программу вложенную функцию и заменить стандартную.

Energet
06.10.2014, 13:38
14638

ФБ WORD_TO_BOOL на входе сигнал меняется, а на выходе этого ФБ постоянно "1".

Energet
06.10.2014, 13:42
У меня была подобная проблема. С причиной разбираться не стал, написал свою функцию. Если у Вас все остальное работает, попробуйте импортировать в программу вложенную функцию и заменить стандартную.

Ваш файл не могу открыть в CoDeSyS, чтобы посмотреть ФБ

Energet
06.10.2014, 13:43
Программу выкладывайте.
Индикатор работа горит? Старт нажимаете?

Да все делаю по инструкции.

Вольд
06.10.2014, 14:01
14638

ФБ WORD_TO_BOOL на входе сигнал меняется, а на выходе этого ФБ постоянно "1".
В WORD должен меняться младшей бит.

amn
06.10.2014, 14:28
Ваш файл не могу открыть в CoDeSyS, чтобы посмотреть ФБ

Сначала вытаскиваете файл из архива, затем в Кодесис надо импортировать файл: заходите в меню Project -> Import и выбираете файл. ФБ сразу вставится в Ваш проект в списке POU в папке My_Functions.

Валенок
06.10.2014, 14:36
ФБ WORD_TO_BOOL на входе сигнал меняется, а на выходе этого ФБ постоянно "1".
А как меняется на входе, какие значения-то бывают ?

Energet
06.10.2014, 14:43
Сначала вытаскиваете файл из архива, затем в Кодесис надо импортировать файл: заходите в меню Project -> Import и выбираете файл. ФБ сразу вставится в Ваш проект в списке POU в папке My_Functions.

Ваш файл вставился в проект, он у Вас на ST написан. А моя программа на CFC. Как мне согласовать Ваш файл с моими ФБ WORD_TO_BOOL?

Energet
06.10.2014, 14:49
А как меняется на входе, какие значения-то бывают ?

На входе МДВВ тумблер. При каждом включении увеличивается число на "1" SIG1=1978 (вход). А после идет ФБ WORD_TO_BOOL который вообще не реагирует и постоянно "1" на выходе.

Валенок
06.10.2014, 15:04
1. Просто напишите ряд значений
1978 -> TRUE. Все правильно
2. На выходе WORD_TO_BOOL никогда не бывает 1. Так же никогда не бывает 0.
3.
"При каждом включении увеличивается число...WORD_TO_BOOL который вообще не реагирует"
Аналог:
"Идет медведь по лесу...прицеп для автомобиля"

Energet
06.10.2014, 15:39
1. Просто напишите ряд значений
1978 -> TRUE. Все правильно
2. На выходе WORD_TO_BOOL никогда не бывает 1. Так же никогда не бывает 0.
3.
"При каждом включении увеличивается число...WORD_TO_BOOL который вообще не реагирует"
Аналог:
"Идет медведь по лесу...прицеп для автомобиля"


Почему сделали так дискретные входы у МДВВ. ШИМ по входу я не использую, а тупое "вкл/ выкл" реализовать не могу. Тип данных Word на входе, просто ставит в тупик. В эмуляторе работает. И с выходами проблем нет, ФБ SEL работает без проблем. Как быть?

Валенок
06.10.2014, 15:57
Как быть?
Учить матчасть.

Почему сделали так дискретные входы у МДВВ.
Поправлю. И так тоже

"ШИМ по входу" - что новое для МВДД я пропустил ?
Что хотим от счетчика ? Ловить п.фронты ?
1.При включении определить стартовое фактическое состояние входов. Например по маске
2.Дальше - определять разницу по модулю 2

Ну чем просто маска не угодила ?

lara197a
06.10.2014, 16:16
шим сделали для универсальности, на случай если выходы аналоговые.
с дискретными- по маске.

amn
06.10.2014, 17:29
Ваш файл вставился в проект, он у Вас на ST написан. А моя программа на CFC. Как мне согласовать Ваш файл с моими ФБ WORD_TO_BOOL?

Это довольно просто. Надо изменить имя блока WORD_TO_BOOL на WORD_TOO_BOOL.

Energet
06.10.2014, 19:25
Это довольно просто. Надо изменить имя блока WORD_TO_BOOL на WORD_TOO_BOOL.

Спасибо, огромное. Поправил. На железе завтра на работе попробую. Я как Вы догадались новичек, пока не силен в этом деле. Но начало положено. И матчасть перечитываю. Это первый, но не последний мой вопрос по программированию в CoDeSyS.

Energet
06.10.2014, 19:48
шим сделали для универсальности, на случай если выходы аналоговые.
с дискретными- по маске.

Получается в конфигурации МДВВ использовать входы с масками Bit mask for input вместо Value of input counter?

lara197a
06.10.2014, 22:27
Стр 41 ИЭ Таблица В.4.
Регистр выходов-dec 50
входов 51

Николаев Андрей
07.10.2014, 20:49
http://www.owen.ru/forum/showthread.php?t=13580

Energet
08.10.2014, 09:10
Стр 41 ИЭ Таблица В.4.
Регистр выходов-dec 50
входов 51

Я на входе 1 МДВВ устанавливаю адрес регистра 51 и все работает. Но у меня еще четыре входа. При установке на остальных входах адреса 51, получается что при подаче сигнала на любой из пяти входов МДВВ, в схеме срабатывают все пять ФБ WORD_TO_BOOL.
Да и настройки и пример программы МДВВ я изучал. Но в примере только один вход используется.

приборист
08.10.2014, 09:26
Я на входе 1 МДВВ устанавливаю адрес регистра 51 и все работает. Но у меня еще четыре входа. При установке на остальных входах адреса 51, получается что при подаче сигнала на любой из пяти входов МДВВ, в схеме срабатывают все пять ФБ WORD_TO_BOOL.
Да и настройки и пример программы МДВВ я изучал. Но в примере только один вход используется.
Вы примеры смотрели? Форум читали?

Маска это один Word, где каждый вход соответствует каждому биту этого Word.
В Вашем случае нужно так:
Переменная MDVV - в конфигураторе имеет адрес 51. В эту переменную приходят значения всех входов.
В программе -
MDVV.0 - первый вход
MDVV.1 - второй вход
MDVV.2 - третий вход и так далее.

Energet
08.10.2014, 16:39
Вы примеры смотрели? Форум читали?

Маска это один Word, где каждый вход соответствует каждому биту этого Word.
В Вашем случае нужно так:
Переменная MDVV - в конфигураторе имеет адрес 51. В эту переменную приходят значения всех входов.
В программе -
MDVV.0 - первый вход
MDVV.1 - второй вход
MDVV.2 - третий вход и так далее.

Да все понял. В стандартных настройках МДВВ адреса регистров входов идут с 64-го и дальше. Исправил с 0-го по 4-й и все пять входов заработали. Не обращал внимания на эту деталь. С трудом, но начинаю понимать работу железа. Втянусь потихоньку)))
Огромное Всем спасибо, что помогли разобраться!

reallis
15.02.2015, 09:30
Сделал как в инструкции но как только приравниваю тип BOOL ко входу мдвв пишет ошибку (тип данных BOOL недопустим для прямого битового подключения) хотя в примере указанно bMdvvIn1 := wInputsMdvv.0; первый тип bool второй word подскажите что не так ! программа работает мдвв видит, осталось к выходам привязать

Почему в этом проекте типы не конфликтуют одни word другие bool, как работает ? или я что то недопонимаю?

вопрос снят почему то плк не любит коротких имен переменных + перезапись всех переменных и будет вам счастье