6. Языки программирования промышленных контроллеров (Лекции по дисциплине "Управляющие ЭВМ и комплексы")
Описание файла
PDF-файл из архива "Лекции по дисциплине "Управляющие ЭВМ и комплексы"", который расположен в категории "". Всё это находится в предмете "электронные вычислительные машины (эвм)" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
6. Языки программирования промышленных контроллеров (ПРК)Прикладное программное обеспечение (ПО) современных ПРК, имеющих встроенную операционную систему (ОС), может быть разработано как с использованием традиционных инструментальных программныхсредств (языки Си, Паскаль и т.д.), так и на основе специализированных языковых средств.Традиционная технология требует от разработчика прикладного ПО знаний не только в области алгоритмических языков программирования, но и особенностей ОС, а также аппаратных возможностей данного ПРК иорганизации системы ввода-вывода.
При этом разработанное ПО будет привязано только к данному типу ПРК ине может быть перенесено на другую аппаратно-программную платформу.Специальные платформо-независимые языки программирования ПРК могут быть применены для различных типов ПРК и разработанные с их помощью программы являются переносимыми, т.к. языки этого типастандартизированы.Одной из первых реализаций стандарта IEC1131-3 стала инструментальная система ISaGRAF, разработанная компанией CJInternational (Франция), в ней используется 5 языков программирования ПРК: 3 графических (SFC, FBD, LD) и 2 текстовых (ST, IL).Широкое распространение находит программная среда CoDeSys (Controller Development System) — инструментальный программный комплекс промышленной автоматизации (Германия), в ней доступны для программирования все пять определяемых стандартом языков.В них заложена методология структурного программирования, позволяющая пользователю представитьавтоматизируемый процесс в наиболее простой и понятной форме.
На рис. 1 отображены области примененияязыков программирования ПРК.УровеньязыкаРис. 1.SFCFlow ChartSTFBDILОбластьпримененияLDАнализПроектированиеПрограммированиеСовременные интегрированные многоязыковые системы программирования ПРК:- позволяют осуществлять разработку и тестирование прикладных программ для ПРК;- обеспечивают единую среду разработки программ для различных типов систем на нескольких языках;- соответствуют стандартам графического интерфейса пользователя Microsoft Windows;- предоставляют возможность создавать пользовательские функциональные блоки (ФБ).- содержат встроенный программный эмулятор работы ПРК (отладка без подключения к реальному ПРК).Язык последовательных функциональных схем - SFC (Sequential Function Chart)Характер многих объектов и технологических процессов предполагает выполнение отдельных операцийпоследовательно. В этих случаях разработчику ПО очень важно иметь средство программирования, которое позволяло бы наглядно воспроизводить структуру процесса.
Именно таким средством и является высокоуровневыйграфический язык SFC. Его основой является математический аппарат сетей Петри, позволяющий описатьпроцессы в форме двудольных ориентированных графов (рис. 2).М(Р2)=2Р1Р2Т1Т2Р3Т1Т3Р2Т2М(Р1)=1М(Р1)=1Р3Р1Р4Рис. 2.а)М(Р4)=1б)Т4М(Р3)=01Язык SFC позволяет описать блок-схему программы на уровне последовательных шагов (steps) и условных переходов (transitions), которые могут включать в себя элементы других языков (ST, IL, LD, FBD).
Каждому переходу сопоставлено логическое условие, а шагу – совокупность действий.Условные обозначения компонентов SFC-программ приведены на рис. 3.Программирование на SFC обычно разделяется на 2 различных уровня:уровень 1 - показывает графически блок-схемы, номера ссылок на шаги, переходы и комментарии, присоединённые к ним; описание шагов и переходов дается внутри прямоугольников, присоединенных к символам шага и перехода, в виде свободного комментария (который не является частью языка);уровень 2 – программирование действий внутри шага или условий, присоединённых к переходу, на языкеST или IL; подпрограммы, написанные на других языках (FDB, ST, LD или IL) могут обращаться к этим действиям или переходам.Начальный шагМакрошагИнициализация1Переход1Номер переходаНомер шага2Длинный переход(переход наконкретныйшаг)12Запуск двигателя2ШагКомментарий шагасравнениеКомментарий перехода33Рис. 3.
Условные обозначения в SFC-программах2Атрибуты шагаУ шага имеются атрибуты, которые могут быть использованы в любом другом языке:- GSnnn.x – характеризует его активность (логическая переменная);- GSnnn.t – характеризует продолжительность (время) его активного состояния;nnn – номер шага.На рис.
4 приведен пример SFC-программы, разработанной в среде ISaGRAF.КомментарийБулево действиеРис. 4.Действия внутри шагов и условия, соответствующие переходам.На втором уровне программирования осуществляется детальное описание действий, которые выполняются во время активности шага, и условий, которые соответствуют переходам. Переходы программируются чаще всего простыми булевыми выражениями, а шаг может содержать несколько различных типов действий (булевы, импульсные, не сохраняемые, SFC-действия).Действия внутри шагов могут быть следующих типов:- Булевы действия и SFC-действия (управление дочерними SFC-программами), описываемые с помощьюограниченных текстовых возможностей самого языка SFC (рис. 5);2- Импульсные действия (“Pulse” и “Non-stored”), программируемые на ST и IL;- Вызов подпрограмм, написанных на любом языке кроме SFC.В одном и том же шаге может быть описано несколько действий одного или разных типов.GS10.х - Атрибут шага - активность шагаGS10.х10Рис.
5. Пример булевскихдействий в шаге SFC-программы(*Булевские действия*)BdirectBdirect(N) ;/Binvert ;Bset(S) ;Breset(R) ;BinvertBsetBresetТипы параллельных соединенийРасхождения – множественные связи от одного шага или перехода ко многим. Схождения – множественные связи от более чем одного шага или перехода к одному другому. При обозначении схождений и расхождений используются одиночные или двойные линии.Альтернативные расхождения и схождения обозначаются одиночными линиями. Расхождение альтернативное (рис.
6) – это множественная связь от одного шага к нескольким переходам. Активной становится однаиз ветвей (в зависимости от активности того или иного перехода). Проверка активности переходов осуществляется слева направо.Рис. 6. Фрагменты программ, написанных на языке SFC(альтернативное расхождение)Каждая альтернативная ветвь начинается и заканчивается собственным условием перехода. Если верноеусловие найдено, то прочие альтернативы не рассматриваются.
В таких ветвях всегда работает только одна изних, поэтому ее окончание и будет означать переход к следующему за альтернативной группой шагу.При создании альтернативных ветвей желательно задавать взаимоисключающие условия.Схождение альтернативное используется для того, чтобы объединить несколько ветвей SFC, начавшихсяиз альтернативного расхождения.Параллельные расхождения (параллельные ветви) и схождения обозначаются двойными горизонтальными линиями.
Каждая параллельная ветвь начинается и заканчивается шагом. Т.е. условие входа в параллельностьвсегда одно, условие выхода тоже всегда одно на всех. Параллельные ветви выполняются теоретически одновременно. Практически – в одном рабочем цикле, слева направо. Условие перехода, завершающее параллельность,проверяется только в случае, если в каждой параллельной ветви активны последние шаги.Расхождение параллельное – это множественная связь от одного перехода к нескольким шагам. Она соответствует параллельному функционированию процесса. Схождение параллельное – это множественная связьот нескольких шагов к одному и тому же переходу.
Используется, чтобы объединить несколько ветвей SFC,начавшихся их параллельного расхождения.Иерархия программы SFC. В системе ISaGRAF каждая SFC-программа может управлять (запускать, уничтожать, и т.д.) другими программами на этом же языке (SFC), которые в таком случае называют дочерними про3граммами той программы, которая ими управляет. SFC-программы объединяются в иерархическое дерево на основе “родственных” отношений (родитель-наследник).Язык функциональных блок-схем - FBD (Function Block Diagram)FBD – графический язык - применяется для построения комплексных процедур, состоящих из различныхфункциональных библиотечных блоков – арифметических, логических, регуляторов и т.д. При этом осуществляется представление функций посредством блоков, связанных между собой.Объектами языка FBD являются: 1) элементарные функции и элементарные функциональные блоки(ФБ), находящиеся в библиотеке; логика их работы/программа написана на языке С и не может быть изменена вредакторе FBD; изменять можно только их параметры; 2) функции и ФБ пользователя (конструируются пользователем из элементов языка FBD).Разработка программы осуществляется с помощью графического редактора посредством формированияблок-схемы из перечисленных выше компонентов, которые объединяются друг с другом.
Последовательностьобработки отдельных компонентов в программе определяется потоком данных.FBD-программа строится из стандартных элементов библиотеки (например, ISaGRAF, КОНГРАФ и др.).На рис. 7,8 приведены примеры FBD-программ в среде КОНГРАФ и ISaGRAF.Рис. 7Рис. 84Язык релейных диаграмм - LD (Ladder Diagram)Язык LD – это графический язык - применяется для описания логических выражений различного уровнясложности, графического представления булевых уравнений. Он содержит контакты (входные аргументы) икатушки (выходные переменные).
Элементы организуются в сеть релейно-контактных схем. При необходимостиможно реализовывать более сложную логику, используя, например элементы языка FBD.Каждому контакту ставится в соответствие логическая переменная, определяющая его состояние. Ее имяставится над контактом и служит его названием. Если контакт замкнут, то переменная имеет значение true, еслиразомкнут – false.Последовательное соединение контактов или цепей соответствует логической операцииИ/AND, параллельное – ИЛИ/OR.
Нормально замкнутый (инверсный) контакт равнозначен логической операцииНЕ.Релейно-контактные схемы и элементыРелейная схема представляет собой 2 вертикальные шины питания, между которыми расположены горизонтальные цепи из контактов и катушек реле. Графические символы языка LD соответствуют элементам электрических цепей и имеют те же названия и обозначения (табл.