
Сообщение от
Sergey7786
Здравствуйте. Работаю с ПЛК Овен 210-03, Среда CoDeSys v 3.5 SP17 Patch 3+
Использую первый выход (Выход1) на LeftSide как Генератор импульсов для управления драйвером шагового двигателя. Генератор импульсов имеет Регистр "Количество импульсов генератора (запись)" и "Осталось сгенерировать импульсов". Я назначил в регистр "Количество импульсов генератора (запись)" переменную SetCountPWM: UDINT; а на регистр "Осталось сгенерировать импульсов" переменную LeftCountPWM: UDINT;
В чем проблема. Когда я загружаю число в регистр "Количество импульсов генератора (запись)" переменную SetCountPWM: UDINT всё нормально, импульсы загружаются и начинают расходоваться на выдачу. Когда мне необходимо срочно остановить генерацию и удалить число из регистра "Осталось сгенерировать импульсов" у меня не получается это сделать. Я пишу присвоение переменной 0, но в регистре продолжает находиться число оставшихся импульсов. Причем иногда удаление происходит, иногда не происходит. В последний раз у меня получился костыль, когда я, используя язык SFC поставил в шаге запись переменной в ноль и условие завершения шага "счетчик оставшихся импульсов равен 0 И время работы шага больше 100мс", то есть не производить 100мс ничего далее, после подачи команды на обнуление счетчика оставшихся импульсов.
Прошу помощи разъяснить что я делаю не так и как оптимизировать загрузку и удаление чисел из регистров высокочастотного выхода без костылей с задержкой шага. Заранее спасибо.