Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

8. Языки программирования промышленных контроллеров




 

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

При создании АСУ ТП любой сложности всегда существовала тяжело решаемая проблема по взаимопониманию программистов и технологов. К сожалению, практика показывает как трудно добиться от «главного специалиста по... » формализованного описания алгоритма. Пока успешнее всего работы по созданию АСУ ТП идут там, где программисты вникают во все тонкости конкретного технологического процесса. Зачастую при таком подходе программист остается единственным человеком, способным разобраться в своем творении, со всеми вытекающими отсюда последствиями. Абсурдность такой ситуации породила стремление создать некие технологические языки программирования, доступные инженерам и технологам и максимально упрощающими процесс программирования.

За последнее десятилетие появилось несколько технологических языков. Более того, Международной Электротехнической Комиссией разработан стандарт IEC-1131, концентрирующий все передовое в области языков программирования для систем автоматизации технологических процессов. Этот стандарт требует от различных изготовителей ПЛК предлагать команды, являющиеся одинаковыми и по внешнему виду, и по действию.

Стандарт специфицирует 5 языков программирования:

· Sequential Function Chart (SFC) – язык последовательных функциональных блоков;

· Function Block Diagram (FBD) – язык функциональных блоковых диаграмм;

· Ladder Diagrams (LАD) – язык релейных диаграмм;

· Statement List (STL) – язык структурированного текста;

· Instruction List (IL) – язык инструкций.

STLи ILявляются неким программистским «эсперанто» – они вобрали в себя наиболее общие операторы языков типа Pascalи ассемблер. Они обеспечивают совместимость стандарта с ранними версиями программного обеспечения производителей контроллеров. Язык SFCпозволяет осуществлять программирование на алгоритмическом уровне, но предполагает конечную реализацию программы на других языках. Язык LADотдает дань поклонникам стиля, когда программы похожи на электрические схемы релейной логики. Язык FBD напоминает создание схем на логических элементах.

Наибольшее распространение в настоящее время получили языки LAD, STL и FBD. Охарактеризуем их более детально.

Язык релейных диаграмм (язык контактного плана) является графическим языком программирования. При создании программы в форме контактного плана используются графические компоненты, с помощью которых строятся логические сети, сходные с электрическими релейными схемами.

В LAD можно использовать следующие элементы и основные правила:

· контакты: каждый контакт представляет собой переключатель, через который при замкнутом состоянии может протекать ток.

· катушки: каждая катушка представляет собой реле, которое включается при протекании тока.

· блоки: каждый блок представляет собой функцию, которая выполняется, когда к блоку течет ток.

· сети: сеть образует полную цепь тока, который течет от левой шины тока через замкнутые контакты к катушкам или блокам – за счет этого они активизируются.

Графическое представление элементов программы воспринимается более легко, чем текстовое, поэтому этот язык и ему подобные максимально наглядны (особенно для тех, кто привык работать с электрическими схемами), позволяет исключить многие ошибки программирования свойственные «обычным» языкам. Этот язык можно рекомендовать для использования начинающими программистами.

Рассмотрим составление программы с помощью релейных диаграмм на нескольких небольших примерах.

Всем возможным типам переменным в контроллерах присвоены системные имена. Обозначения «I» и «Q» присвоены соответственно дискретным входам и выходам. Для элементов логической схемы, алгоритма предусматриваются специальные обозначения, напоминающие обозначения элементов электрических схем. На рис. 1. 20 показаны, последовательно включенные, ключ (вход) I0. 1 и катушка реле (выход) Q0. 1. Вертикальная линия условно определяет собой цепь подачи питания. Выход Q0. 1 активизируется тут же, как только появится сигнал на входе I0. 1.

 

 

Р и с. 1. 20.  Пример представления одной логический цепи в языке LAD.

 

Выход Q0. 1 в программе на рис1. 21 активизируется тогда, когда появится сигнал на входе I0. 3 и сигналы хотя бы на одном из входов I0. 1 или I0. 2.

 

 

 

 

Р и с. 1. 21. Пример представления в языке LAD цепи реализующей.

логическую функции 2ИЛИ-И.

 

На рис. 1. 22 представлена программа, включающая в себе блок таймера. Указанный в программе таймер, имеет дискретность отсчета 10 мс. Уставка таймера равна 300 и он сработает через 3000 мс после поступления сигнала на вход I0. 1. При этом замкнутся управляющий контакт таймера Т32 и выход Q0. 1 будет активизирован. Все действия программы выполняются по очереди – шаг за шагом, поэтому программа состоит из двух цепей.

 

 

 

Р и с. 1. 22. Пример представления в языке LAD программы с таймером.

 

 

Программа, представленная на рис. 1. 23, будет по очереди выполнять сложение, умножение и деление соответствующих переменных после поступления сигнала на вход I0. 1 (используемые в примере типы переменных и их адресация будет рассмотрена далее).

 

 

Р и с. 1. 23.  Пример представления в языке LAD программы для. выполнения

арифметических операций

 

Язык функциональных блоковых диаграмм FBD (язык функционального плана) описывает функции между входными переменными и выходными переменными функциональных блоков (рис. 1. 24). Эти функции описываются в виде сочетания элементарных функциональных блоков. Каждый функциональный блок представляется прямоугольником, внутри которого имеется обозначение функции, выполняемой блоком.

 

Р и с. 1. 24. Функциональный блок языка FBD.

 

Выход функционального блока может быть соединен с другими блоками. Логика программы выводится из соединений между этими блоками. Иными словами, выход одной команды (например, блока AND) может использоваться для того, чтобы разрешить другой команде (например, таймеру) создать необходимую логику управления. На рис. 1. 25 показан элемент программы, созданной при помощи языка функционального плана.

 

 

Р и с. 1. 25. Вид программы на языке FBD

 

В качестве библиотечных блоков используются не только элементарные функции, но и алгоритмы П-, ПИ-, ПИД-регулирования, фильтрация сигналов, стабилизация заданных параметров. Набор из математических и статистических функциональных блоков позволяет просто организовать необходимые вычисления и обработку сигналов.

Приведем основные формальные правила языка FBD:

· функциональные блоки могут располагаться в поле программы произвольно;

· не может быть свободных (несоединенных) входов и выходов функционального блока;

· любая связь (NET) может иметь имя переменной;

· входы и выходы функциональных блоков, присоединенные к связям, имеющим одинаковые имена, считаются соединенными;

· очередность выполнения блоков в программе: слева направо, сверху вниз.

Переменные FBD-программ присоединяются к входным/выходным точкам функциональных блоков.

На входе FBD-блока может быть

· константное выражение;

· любая внутренняя или входная переменная;

· выходная переменная.

На выходе FBD-блока может быть любая внутренняя или выходная переменная.

В табл. 1. 1 приведены примеры базовых функций языка FBD.

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

 

 

Таблица 1. 1.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...