ЖУРНАЛ СТА №1/2023

ние кода. Также есть возможность вер- нуться на шаг назад либо выполнить остановку исполнения кода по условию. Дополнительным удобством для разра- ботчика можно считать контекстную подсветку значений переменных при наведении курсора. Одним словом, вся мощь языков С/С++ к вашим услугам. Это делает разработ- ку быстрее и качественнее, а дальней- шее сопровождение и рефакторинг про- екта – дешевле для конечного потреби- теля. Если вы – убеждённый сторонник МЭК, то, конечно, переход на такой спо- соб разработки нельзя назвать совсем простым. Но некоторые усилия, потра- ченные на изучение языков С, по край- ней мере, в рамках поставленных за- дач, с лихвой окупятся в дальнейшем. От слов – к делу. Пример реализации задачи Теперь рассмотрим, как решаются прикладные задачи средствами разра- ботки «К15». Возьмём вполне конкрет- ный пример. Допустим, у нас есть фа- кельная установка с электроискровым розжигом дежурной горелки и фото- датчиком наличия пламени. Наша за- дача: реализовать режим автоматиче- ского розжига дежурной горелки. При подаче сигнала пуска должен открываться клапан топливного газа, а розжиг должен происходить циклич- но до тех пор, пока либо не загорится пламя, либо не будет сделано 3 попытки розжига. Также алгоритм должен обес- печивать автоматический перерозжиг горелки в случае погасания пламени. Что ж, перейдём к реализации. Сначала попытаемся реализовать за- думанное средствами Codesys. Пускай это будет всеми любимый язык МЭК – FBD. Создадим необходимые перемен- ные и функциональные блоки (рис. 6): start_DI – сигнал пуска системы (на- пример, кнопка); stop_DI – сигнал остановки системы; foto_DI – фотодатчик наличия пла- мени; iskra_DO – управление подачейискры; valve_DO – управление клапаном. Затем создаём функциональную схе- му, реализующую алгоритм (рис. 7). Рассмотрим её по порядку. При по- даче сигнала пуска через детектор пе- СТА 1/2023 52 www.cta.ru ПРОЕ К ТЫ Рис. 6. Создание переменных и функциональных блоков в среде Codesys Рис. 7. Функциональная схема на языке FBD Рис. 5. Интерфейс CubeIDE

RkJQdWJsaXNoZXIy MTQ4NjUy