Записная книжка разработчика

Мои проекты

Старый проект

| Comments

Когда-то давно была идея разработать собственный программируемый логический контроллер (ПЛК). Тогда эта идея казалась вполне здравой, и ряд подобных отечественных разработок существовал.
Понятно, что аппаратная составляющая ПЛК довольно проста, и затруднений с ее реализацией не возникло. Самое сложное - программная часть.

Известные мне ПЛК работают либо в стандарте IEC-61131-3 (самый распространенный вариант), либо программируются иными способами: в среде Matlab (некоторые контроллеры ICP DAS), в собственной среде разработки (Siemens Logo), на языке С (фактически, контроллеры под IEC61131-3 очень часто поддерживают написание собственных функций на С).

В общем, было решено, что наиболее удобным для пользователей, не имеющих подготовки в области программирования, является графическая среда разработки, похожая на язык FBD стандарта IEC 61131-3 (FBD - Functional Block Diagram), или на среду разработки Siemens Logo.

Такая среда была мной разработана, носила название MicroSwitch и включала в себя графические редакторы диаграмм двух видов: FBD и конечных автоматов. Скриншоты приведены ниже.


Рис. 1. Редактор диаграмм функциональных блоков. (нажмите на картинку для увеличения)


Рис. 2. Редактор диаграмм конечных автоматов. (нажмите на картинку для увеличения)

Среда позволяла в графическом виде описывать работу программы, используя разнообразные функции и типы данных: логические, вещественные и целочисленные. Среда должна была позволять редактировать "схемы", производить эмуляцию их работы и генерировать исполняемый код для микроконтроллера (т.е. генерировать С-код, который затем компилировался штатным компилятором).

Однако разработка была завершена на этапе графического редактора, и вряд ли будет когда-либо продолжена. Тем не менее, сама идея была красивая. Она состояла в том, что программа описывалась в виде множества иерархических конечных автоматов, при этом было возможно графическое описание параллельных потоков, различных взаимодействий этих автоматов, функций переходов автоматов и т.п., всё это делалось с помощью всего лишь двух вышеупомянутых видов диаграмм. Пример такой диаграммы приведен на рис. 3.

Рис. 3. Пример диаграммы автомата. (нажмите на картинку для увеличения)

На графический редактор было получено свидетельство о государственной регистрации.

Весь этот проект был моим личным (не по работе), и все права на него принадлежат, соответственно, только мне. Я мог бы выложить исходные тексты в общий доступ, на случай, если кто-либо заинтересуется и возьмётся продолжать, однако всё это написано на Delphi, который давно вышел из моды. Переписывать всё на чём-либо более современном у меня нет ни времени, ни желания.