Ну, т.е. это предложение "а давайте сделаем свой runtime для ПЛК" (набор библиотек, прошивку ПЛК)?
Простите, но не думал, что именно это вы имели ввиду под "простейшей мониторной программой". В моём мозгу ПЛК runtime ни коем образом с "простейшей программой" не клеится.
Сделать runtime непросто. Там кучу всего отлаживать придётся: Ethernet/TCP/RS-232/Modbus/GPIO/файловая система/task scheduler/simulation/on-line visualization. В конце концов, библиотеки делать под это добро (чтобы пользователи пользовались, а продукт при этом мог развиваться).
Какую часть можно переиспользовать из opensource (или из имеющихся прошивок для ПР) -- фиг знает. Я не знаком с тем, что есть в opensource на тему embedded.
Потом всё это документировать.
И потом отвечать на вопросы пользователей, которые "неправильно" используют, и жалуются что "не работает".
Я соглашусь, что это немалые ресурсы. На это большие ресурсы нужны.
Более того, без среды разработки создавать runtime по-моему тоже смысла нет. В чём пользователь будет программы составлять/отлаживать/визуализировать? В блокноте что-ли?
Меня на эту тему Владислав пытался троллить:
С оценкой 40-50 человеколет я не согласен (на мой взгляд, всё гораздо быстрее можно сделать, если делать среду для устройства класса ПЛК110[М02]), но, на текущий момент, предложение "создать свой компилятор ПЛК и использовать его _вместо_ КДС" я рассматриваю исключительно как троллинг.
На мой взгляд, правильный подход это создать среду-редактор, и, если реально пойдёт, то на базе этой среды уже смотреть в сторону runtime. Ещё раз: в создании языка (ST/CFC/IL) проблем почти нет. А разработка прошивки для "Ethernet/TCP/RS-232/Modbus/GPIO/файловая система/далее по списку" это непросто.
Например, сделать runtime для PRU -- вполне по силам компании ОВЕН. В соответствующей теме есть прогресс: http://www.owen.ru/forum/showthread.php?t=22169
В подтверждение тому -- у ОВЕН _уже_ есть runtime для PRU. Вот среды разработки для PRU нет, это да (на мой взгляд, её довольно просто сделать). Но сам принцип работы PRU именно такой, как вы описываете: создаётся файл, и он загружается контроллером при старте. КДС используется исключительно для того, чтобы залить файл с программой в память ПЛК.
Сделать PRU runtime проще, т.к. по сути там нет внешних коммуникаций. Всё сводится к арифметическим операциям и работой с памятью.





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