Можно ли писать части программы PMP20 на языке C?
Да. Основных языков у PMP20 два — список инструкций и лестничная диаграмма, они взаимно преобразуются в среде PROMPOWER PLC Studio. Вдобавок к ним поддерживаются функциональные блоки на языке C: блок пишется отдельно и вызывается из лестничной диаграммы как обычная команда.
Где это оправдано:
- Вычисления, неудобные в лестнице. Пересчёт таблиц, разбор посылки прибора, нелинейная характеристика датчика, фильтрация — всё это на языке C пишется компактнее и читается лучше.
- Повторно используемые алгоритмы. Один раз написанный блок переносится между проектами без переделки логики.
- Обработка массивов. Циклы в лестничной диаграмме растягивают время сканирования и плохо читаются.
Два ограничения, о которых надо знать заранее:
- Расширенный режим хранения файлов. В нём блоки на языке C из контроллера не выгружаются. Если проект хранится только в контроллере, восстановить исходный текст блока будет невозможно — держите исходники у себя и передавайте их заказчику вместе с проектом.
- Режим приоритетных внешних прерываний. Когда подпрограмма внешнего прерывания переведена в настоящий режим прерывания системным flash-регистром, вызывать в ней функциональные блоки на языке C нельзя.
Организационное замечание: программу, в которой половина логики спрятана в блоках на C, тяжело обслуживать чужому наладчику. Разумная граница — держать в блоках вычисления, а всю логику включений и блокировок оставлять в лестничной диаграмме, где она видна в мониторе.
Прикреплённая документация
Георгий Жуков
Ведущий инженер