Сообщение
uni » Вт мар 28, 2017 6:00 pm
Наши заказчики просят все исходники проекта с тем же посылом, мол, а что если? Естественно мы не даём ни каких исходников. Хотя бы потому, что они требуют КБ программистов, чтобы их поддерживать. Хотите исходники - пишите сами, ПЛК и SDK есть.
Мы тоже хотим исходники CoDeSys'а, так как разрабатываем драйвера для нашего ПЛК, которые будут использоваться совместно. Дадут нам их? Даже не продадут.
Если вы по поводу open source портирования picoc. На avr это по-моему бессмысленно из-за отсутствия нормального отладчика и среды. Он очень дорогой, среда разработки не стабильная. Вот для stm это больше имеет смысл, у меня и отладчик есть, но никакой платы для проверки нету. Без реального железа колупаться нет смысла.
По поводу всех мк я не уверен, я просто показал, что вы можете работать с периферией на скрипте точно также как на си обычном. За исключением обработки прерываний и прочих подобных вещей. Я в принципе могу назначить на обработчики прерывания функцию внутри скрипта, но сделаю наверное это по-другому. Вообще, если вы хотите работать с периферией напрямую, то зачем вам интерпретатор? Работайте напрямую вообще. Скрипт должен поддерживать периферию как некие объекты с набором свойств и методов, а реализовывать модбас самому на скрипте нет никакого смысла. То же касается всего остального.
По поводу внешних библиотек я не понял вопроса. Вы можете отобразить любые функции из своих библиотек на внутренние (в скрипте) и дать им такое же имя. На самом деле так подключены все стандартные библиотеки. Для каждой такой функции нужно объявить обёртку, которая описывает её полностью.
Если посмотреть на исходники, а их можно собрать в Visual Studio (там есть проект, но я не собирал), то можно увидеть, что вы можете подгрузить столько скриптов, сколько памяти хватит. Я лично не планировал такого использования, так как мне памяти точно не будет хватать. Мне достаточно 31 параллельной задачи и набора библиотек, реализующих драйвера и протоколы для частых применений.
Как правило для пользователя ПЛК требуется только написать алгоритм работы, который должен только манипулировать тегами. Теги появляются от модбаса (входы/выходы у самого ПЛК - ещё проще), который знает как их читать и писать. Ещё нужно меню для настройки, ввода коэффициентов и прочего, я это обязательно добавлю. Ещё мне нравятся графические экраны, я добавлю работу с графикой. Вот в общем и всё. Это даже не типовое применение, так как экранов обычно нет и кнопок. Ещё можно добавить возможность реализации произвольного протокола. Это тоже можно сделать.
Забыл про работу с файлами.
По поводу стандартизации ПЛК не соглашусь. Все они разные, то есть вы не сможете взять одну мэковскую программу и записать её в другой ПЛК, если только они не одного семейства. Можете попробовать. Я пишу драйвера для нашего ПЛК, на котором стоит CoDeSys, так вот заменить вы его не сможете, так как нет таких же ПЛК с экраном и кнопками. А если что-то и найдётся, то наши API будут несовместимы. Проще будет написать заново. Вы сможете заменить только на очень похожий ПЛК той же фирмы с тем же runtime'ом.
Кроме того, не все мэковские языки одинаково реализованы. В апреле вступит в силу новый отечественный стандарт на языки, там есть поддержка ООП. Это копия импортного. Так вот я пишу драйвера с использованием ООП на ST. Не много найдётся софтин, на котором это будет работать.
Россия навсегда!