У меня есть требование для портирования некоторого существующего кода C на ПЛК, совместимый с IEC 61131-3 .
У меня есть несколько вариантов разбиения кода на дискретные функциональные блоки и объединения этих блоков в стандартное решение (Ladder, FB, Structured Text и т. Д.). Но для этого потребуется разделить код на C, чтобы построить каждый функциональный блок.
При взгляде на спецификацию IEC я понял, что форма списка инструкций IEC может быть целевым языком для компилятора. В статье википедии перечислены два инструмента разработки:
- CoDeSys
- Beremiz
Но, похоже, они предназначены для компиляции языков IEC в C, а не в C в IEC.
Другое возможное решение - протолкнуть код C через переводчик C-Pascal и использовать его в качестве отправной точки для решения Структурированный текст .
Если их нет, я пойду по пути разделения кода на функциональные блоки.
Редактировать
В ответ на ответ Млисона я должен был упомянуть, что код C является существующей системой управления в реальном времени. Таким образом, алгоритмы программ уже должны соответствовать среде ПЛК.