https://owen.ru/forum/showthread.php...l=1#post401227
Вид для печати
В этом проекте два POU. Один написан на CFC, второй на ST.
В обоих POU реализован одинаковый шаговый автомат CASE.
Алгоритм такой:
Шаг1. Некий функциональный блок. Работает 1 секунду. Далее устанавливает флаг xDone. Автомат переключается на следующий шаг.
Шаг2. Некий функциональный блок. Работает 1 секунду. Далее устанавливает флаг xDone. Автомат переключается на следующий шаг.
Шаг3. Некий функциональный блок. Работает 1 секунду. Далее устанавливает флаг xDone. Автомат переключается на следующий шаг.
Шаг4. Увеличивается счетчик циклов на 1. И перевод указателя автомата на шаг 1.
Получается, что счетчик циклов должен увеличиваться на 1 за 3 секунды.
Но в POU на CFC это не так. Там счетчик циклов бежит существеннее быстрее.
А в POU на ST отрабатывает правильно.
Почему так?
Евгений. Я разорался....
Спасибо за помощь. Не ломайте голову.
Сейчас напишу что было не так...
Код, который ловит спад состояния флага xExecute работал неправильно. И не переводил по спаду функциональный блок в исходное состояние. А из-за этого флаг xDone оставался поднятым. Поэтому автомат работал некорректно.
В функциональном блоке functionBlock (исправленный правильный код):
Код:// Логика xExecute
IF xExecute AND NOT xExecuteTrig THEN // Передний фронт xExecute
// Сброс в исходное состояние и запуск
xDone := FALSE;
statusFB := 010;
ELSIF NOT xExecute AND xExecuteTrig THEN // Задний фронт xExecute
// Сброс в исходное состояние и остановка
xDone := FALSE;
statusFB := 000;
END_IF
xExecuteTrig := xExecute;
capzap https://owen.ru/forum/images/statusicon/user-online.png, получается в вашем коде xDone будет установлен только один цикл ПЛК?
Добрый день, подскажите почему CODESYS Control Win V3 не запускается.
Нажимая на кнопку Start PLC не происходит запуска Вложение 65991
Появляется окошко Вложение 65992
Настройки пользователей при этом не активны Вложение 65993
В чём может быть проблема?