Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
В этом проекте два 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;
Последний раз редактировалось ВладОвен; 16.02.2023 в 14:38.
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
capzap, получается в вашем коде xDone будет установлен только один цикл ПЛК?
Добрый день, подскажите почему CODESYS Control Win V3 не запускается.
Нажимая на кнопку Start PLC не происходит запуска Screenshot_1.png
Появляется окошко Screenshot_2.png
Настройки пользователей при этом не активны Screenshot_3.png
В чём может быть проблема?
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk