среда, 29 февраля 2012 г.

Реализация систем управления на программируемых логических контроллерах (PLC)

PLC -- это аппаратная платформа для реализации алгоритмов управления. Как можно быстро получить реализацию системы управления из готовой модели в Simulink?



1. Во-первых, язык LD (релейная схема) -- всего лишь один из языков стандарта IEC 61131-3, кроме него существуют также другие языки, например ST (http://ru.wikipedia.org/wiki/Structured_Text)

2. MATLAB позволяет автоматически генерировать код ST для логического контроллера из моделей Simulink. Это называется Simulink PLC Coder, можно почитать об этом с сайта MathWorks и даже посмотреть видео
http://www.mathworks.com/products/sl-plc-coder/
http://www.mathworks.com/products/sl-plc-coder/overview-video.html?ref=demo
http://habrahabr.ru/blogs/development/121818/

Очень краткая инструкция с картинками:
- собираем модель в Симулинке, она должна быть дискретной;
- объединяем то, что хотим сделать в контроллере, в подсистему (выделить, правый клик, Create Subsystem...);


- кликаем правой кнопкой по подсистеме, там выбираем в меню
PLC Code Generation \ Enable "Treat as atomic unit" to generate code...
- в появившемся окне выбираем флажок Treat as atomic unit,

- переходим на вкладку Code generation, выбираем там Function Packaging: Reusable function
- закрываем окно, нажатием ОК

- снова правой кнопкой по подсистеме, выбираем в меню
PLC Code Generation \ Generate Code for Subsystem;
- читаем диагностические сообщения, если все хорошо должно появится ссылка на *.exp файл с текстом функции на языке ST
- полученную функцию надо циклически вызывать в цикле работы PLC с параметрами, являющимися входами и выходами подсистемы

Вот моделька в Simulink
Вот то, что получилось на ST

3. В курсе ТАУ говорилось исключительно про системы регулирования (непрерывного управления). На практике мы всегда также сталкиваемся с логическим управлением -- алгоритмами и автоматами. Simulink позволяет моделировать и генерировать код для дискретных алгоритмов управления, которые представляются как конечные автоматы. Это называется Stateflow. В частности в приводимой выше модели блок Chart реализует конечный автомат


Подробности на сайте MathWorks
http://www.mathworks.com/products/stateflow/
http://www.mathworks.com/products/stateflow/overview-video.html?ref=demo
а также русскоязычная документация
http://matlab.exponenta.ru/stateflow/default.php
http://www.ict.edu.ru/ft/002482/MatLab_LR2.pdf

Комментариев нет:

Отправить комментарий