Владимир, смотрю код вашего ФБ для энкодера и не могу понять смысл некоторых конструкций.
Например, это что означает:
changedA := a <> prevA;
aSameAsB :=a = b;
Владимир, смотрю код вашего ФБ для энкодера и не могу понять смысл некоторых конструкций.
Например, это что означает:
changedA := a <> prevA;
aSameAsB :=a = b;
Последний раз редактировалось Newcomer; 17.01.2017 в 16:14.
Может, фазы перепутаны?
Т.е. A или B фаза подключена к "in3" и блок постоянно думает, что "достигнута Z метка и сбрасывает значение position".
Если сделать простые счётчики импульсов и считать in1, in2, in3, то оно ожидаемым образом работает?
Собственно, у Sulfur получилось и встроенный блок использовать, и свой сделать: http://www.owen.ru/forum/showthread....l=1#post233210
Владимир, а программы в CoDeSys у меня правильно написана ? Вы мои проекты смотрели ?
Кхм, точно.
Надо сделать проект со "счётчиками импульсов" на каждом из in1, in2, in3, in4 и посмотреть какие входы работают, а какие нет.
Сделаешь? (возможно, придётся убрать блок ШД, т.к. под всё это может не хватить памяти)
У меня в ближайшее время не будет доступа к железу (а там нужно физически подавать сигналы и смотреть что в программе).
Посмотрел код обработки входов (ну, которым Hardella входы опрашивает) -- выглядит верно.
Последний раз редактировалось Владимир Ситников; 17.01.2017 в 18:04.
Я сейчас сделал свой дубовый ФБ для энкодера. Посмотрите пожалуйста.