эти два устройства плк не являются,первое это продолжение сервера,для расширения его возможностей,имеет простейшие условия типа если-то,отсутствие какой либо сложной логики,второе просто ардуино в другой обертке.
Да, согласен.
Решение на линуксе кроме того, что стартует через 30-40 секунд, тоже требует порога вхождения. Его надо уметь администрировать. Если что настроено не так, то ты один на один с системой. По-моему это отпугивает больше, чем изучение C.
Как видно, простой скрипт запустился. Но вот заставить работать функции пользователя пока не получается. Я добавил в образ системы библиотеку из двух функций sbi() и cbi() и пока не получается заставить интерпретатор понять что я от него хочу. Он тыкает в них пальцем и пишет, что что-то не так. Я хотел с их помощью меандр вывести, чтобы узнать что-то о быстродействии.
Кстати, судя по содержимому ОЗУ, интерпретатор не исполняет код непосредственно. Похоже, что он сканирует исходник, переводит его в промежуточное представление и уже его исполняет. Получается, что какой-нить бесконечный цикл будет работать быстрее, так как промежуточное представление заведомо корректное и оптимизированное. Но это пока только догадки, т.к. в полном объёме пока разобраться очень трудно даже имея отладчики. Видимо придётся всё-таки изучать его устройство в Visual Studio.
Есть ещё один интересный проект:
OpenPLC. Часть исходников доступна на github. Там есть компилятор из lad в С, т.е. можно писать программу в "ПЛК-стиле", преобразовывать её в C, собирать и заливать на целевое устройство. Можно в raspberry всякие заливать и прочие клоны за 500 р. Пока всё сыровато, но некоторые ролики на youtube по использованию PLCOpenEditor'а впечатляют.
Так вот, автор проекта ответил мне, что вряд ли runtime получившийся будет влезать в ATmega2560. Я вот усомнился на этот счёт, я собрал его компилятор lad и посмотрел на получающийся код C (без привязки к железу). Вроде бы вполне всё может влезть и ещё останется. Идея в том, что можно использовать его программу как IDE для Arduino Mega2560, чтобы писать программы на МЭК языках, а компилировать их скрытно, как это делает Arduino IDE.
Если будет время, то попробую и этот вариант тоже. Итого, можно сделать одну плату, на которой можно делать проекты тремя способами:
- через Arduino IDE, чтобы сохранить армию ардуинщиков как пользователей;
- используя интерпретатор C;
- используя PLCOpenEditor, собирая прошивку налету.
Жалко только то, что этот редактор МЭК языков сделан на python'е, насколько я понял. Я не знал, что он позволяет графический интерфейс пользователя сделать. Интересно, что за IDE используется для разработки. Так бы если на чём другом, я бы посмотрел как там всё устроено внутри.