Ну так есть же "Ласт еррор", если ошибок нет значит данные актуальны.
Можно реализовать как захочете, вот как нравиться так и делайте. Как-то стандартных подходов нет - каждый делает в соответствии со своим опытом и навыками.
В ПЛК_ПРГ всю программу делю на глобальный задачи (создаю отдельные подпрограммы) например:
1. Контур отопления.
2. Контур горячего водоснабжения.
3. Контур теплоносителя для системы вентиляции.
Дальше в данные программы реализую на SFC например:
1. Инициализация/проверка на достоверность переменных. и Ждем команды "пуск".
2. Пуск гидравлики.
3. Пуск регуляторов температуры.
После прихода команды "Стоп":
4. выключить насосы.
5. Закрыть регулирующий клапан.
6. Перейти в начало программы и ждать команды "пуск".
а вот внутри шагов прописываю саму логику работы.
Если куски текста программы повторяются выношу в виде функций и функциональных блоков.
Если логика шага сложная, опять разбиваю на подпрограммы и так далее.
Например: позиционирование в начальное положение исполнительных механизмов для станка ЧПУ необходимо и при включении станка и при сбросе аварии и при завершении цикла. Таким образом 100% это должна быть отдельная подпрограмма с входом "старт позиционирования" и выходом "все отпозиционированно", количество входных входных переменных может быть и больше, но не меньше.
После команды "старт позиционирования" ждем подтверждения, что все отпозиционированно и идем дальше работать)





Ответить с цитированием