[FBD + C - так делают?] Есть весьма удобный подход к программированию ПЛК - FBD
http://caxapa.ru/1008213/
На мой взгляд, самое удобное - это когда:
-- смотришь на всю программу с некоторого уровня иерархи
-- часть подуровней схлопнута, их можно раскрыть
-- доходишь до самого низкого уровня - до базовых элементов FBD
-- и при этом можно создавать эти базовые элементы на C.
В пределах "базового квадратика" С ограничен:
-- нет внешних переменных. Все в и из "наружи" - это сигналы FBD
-- набор стандартных функций тоже ограничен
-- ограничения в С - "чтобы по памяти не шарахнуть"
-- но пользователь может создавать свою стандартную библиотеку, которую можно подключить к проекту и вызывать из кастомных блоков
Фокус в том, что если и "базовые квадратики" из стандарта сделать на С, то на выходе можно несложно синтезировать все FBD программу как С программу, которая будет очень надежной. Будет разумный баланс между удобством С и ограничениями для повышения надежности.
Да, есть ST, и все то же самое делают на ST, но это еще надо городить транслятор ST ->C, и отлаживать всю эту сложную конструкцию можно устать.
Идея очевидная, и я не верю, что ее никто не придумал до меня.
Вопрос - есть ли примеры подобного?