Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Программирование задач автоматического управления объектами на различных алгоритмических языках

..pdf
Скачиваний:
2
Добавлен:
12.11.2023
Размер:
3.28 Mб
Скачать

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Пермский национальный исследовательский политехнический университет»

Р.А. Сажин

ПРОГРАММИРОВАНИЕ ЗАДАЧ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ ОБЪЕКТАМИ НА РАЗЛИЧНЫХ АЛГОРИТМИЧЕСКИХ ЯЗЫКАХ

Утверждено Редакционно-издательским советом университета

в качестве учебно-методического пособия

Издательство Пермского национального исследовательского

политехнического университета

2020

1

УДК 658.5 С147

Рецензенты:

канд. техн. наук, доцент А.В. Николаев (Пермский национальный исследовательский политехнический университет);

канд. техн. наук, доцент Б.В. Васильев (ЗАО «НИПО», г. Пермь)

Сажин, Р.А.

С147 Программирование задач автоматического управления объектами на различных алгоритмических языках : учеб.- метод. пособие / Р.А. Сажин. – Пермь : Изд-во Перм. нац. исслед. политехн. ун-та, 2020. – 224 с.

ISBN 978-5-398-02316-9

Рассмотрены особенности составления программ для реализации задач управления объектами на соответствующем алгоритмическом языке.

Предназначено в качестве методического руководства для студентов специальности ЭАГП горно-нефтяного факультета при выполнении лабораторных работ в процессе освоения курса «Автома-

тическое управление оборудованием горного производства».

УДК 658.5

ISBN 978-5-398-02316-9

© ПНИПУ, 2020

2

ВВЕДЕНИЕ

Впроцессе развития средств автоматизации аналоговые системы автоматического управления объектами были успешно заменены микропроцессорными системами. При наличии соответствующей аппаратуры работа таких систем невозможна без необходимого программного обеспечения, основу которого составляют алгоритмические языки.

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

ивлияет на выбор соответствующего алгоритмического языка при разработке соответствующего программного обеспечения.

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

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

Настоящее учебно-методическое пособие является методическим руководством для студентов специальности ЭАГП горнонефтяного факультета при выполнении лабораторных работ в про-

цессе освоения курса «Автоматическое управление оборудованием

3

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

В конце пособия (в приложении) для удобства приведен краткий справочник по операторам языков ST и IL, компонентам библиотек, а также по компонентам стандартных функций Standard.lib и специальных функций Util.lib.

4

1. ЯЗЫКИ ПРОГРАММИРОВАНИЯ ЗАДАЧ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ ОБЪЕКТАМИ

Решение задачи автоматического управления объектом начинается с выбора микропроцессорного устройства, техническая характеристика которого определяет тип его программного обеспечения, включая вид алгоритмического языка для составления соответствующих управляющих программ. При составлении таких программ используется несколько видов алгоритмических языков. К ним относятся:

1.Instruction List (IL) – список инструкций.

2.Structured Text (ST) – структурированный текст.

3.Ladder Diagram (LD) – язык релейных диаграмм.

4.Function Block Diagram (FBD) – язык функциональных бло-

ковых диаграмм.

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

6.Continuous Function Chart (CFC) – язык непрерывных функ-

циональных схем.

1.1. Список инструкций (язык IL)

Язык IL (список инструкций) представляет собой набор команд, каждая из которых представляет собой оператор, выполняющий определенное действие. Полный список этих инструкций (операторов) языка IL представлен в соответствующем руководстве [1].

Перед любым из операторов того языка может стоять метка, оканчивающаяся двоеточием (:). Эта метка является адресом обращения при ветвлении алгоритма или при циклическом обращении к любой его части. Между инструкциями (операторами) могут находиться пустые строки.

Примером программы (структурного блока), записанной на языке IL, может быть фрагмент посылки параметра времени 5 ms. в переменную timer:

5

LD

T#5ms

ST

timer

или посылка числа 10 в переменную schetchik:

LD

10

ST

schetchik.

Чаще всего указанные операторы присвоения языка IL используются в других алгоритмических языках (например, в шаговых подпрограммах языка SFC).

1.2. Структурированный текст (язык ST)

Язык ST представляет собой набор инструкций со сложной структурой, с помощью которых можно реализовывать алгоритмы ветвления и циклов, используя конструкции IF…THEN…ELSE; FOR…TO…DO; WHILE…DO; CASE… ELSE. В алгоритмах языка

ST переменные могут быть связаны в математические выражения через вычислительные операции. Перечень операторов (команд) этого языка представлен в соответствующем руководстве [1].

Примером программы (структурного блока), записанной на языке ST, может быть следующий фрагмент:

PV:=5;

Repeat;

For I:=1 to 4 do

If PV=CV then PV:=PV+5 End_If; End_For;

Until K3; Exit;

В этом фрагменте используется структура цикл в цикле. При этом внешний цикл представлен командами Repeat – Until, а во внутреннем цикле используются команды For...do – End. Первоначально параметру PV присваивается значение 5, после чего сначала открывается внешний цикл Repeat – Until, а затем внутренний цикл For do – End с числом повторений, равным четырем. В теле внутреннего цикла условный оператор If сравнивает значение параметра

6

CV (значение этого параметра определяется за пределами этого программного фрагмента) с исходным значением параметра PV. При выполнении этого условия значение параметра PV увеличивается на число 5. Приращение этого параметра во внутреннем цикле выполняется 4 раза. Внешний цикл выполняется до тех пор, пока логический параметр K3 будет сохранять ложное значение. При истинном значении этого параметра происходит выход из внешнего цикла, а по команде Exit этот программный фрагмент прекращает работу.

1.3. Язык релейных диаграмм (язык LD)

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

Примером программы, записанной на языке LD, может быть фрагмент, показанный на рис. 1.1.

Рис. 1.1. Фрагмент LD-программы

7

Рабочее поле программы, показанной на рис. 1.1, делится на строки и столбцы. Каждая строка обеспечивает определенное функциональное взаимодействие между элементами, расположенными в соответствующих столбцах. Так, в строке с номером 001 контакт Z1 (расположен в столбце Contact 1) взаимодействует с катушкой ТТ1 (расположена в столбце Coil), выполняющей роль таймера. При замыкании контакта этот таймер включается в работу и через заданное время включает свой контакт Т1, который располагается в следующей программной строке под номером 002. Этот контакт включает в работу катушку управления Q4.

В следующей программной строке под номером 003 контакт Z1 одновременно включает катушки трех таймеров ТТ2, ТТ3 и ТТ4. Поскольку эти таймеры расположены в разных программных строках (в одной программной строке может располагаться только одна катушка), эти катушки должны быть соединены с контактом Z1 одной вертикальной связью.

Непременным условием при разработке программ на языке LD должно быть то, что цепь, состоящая из элементов, последовательно расположенных между двумя шинами, должна быть всегда замкнута. Такие замкнутые цепи всегда располагаются параллельно друг другу, и число их ограничивается только возможностями программного пакета. Кроме контактов и катушек в этих цепях могут присутствовать и другие элементы, которые входят в состав конкретного программного пакета. К этим элементам относятся таймеры различных типов, разные по типу счетчики, разновидности триггеров,

регистры сдвигов и другие элементы.

1.4. Язык функциональных блоковых диаграмм (язык FBD)

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

8

Рис. 1.2. Фрагмент FBD-программы работы реверсивного счетчика

По этой программе генератор (элемент В00) подает импульсы на вход реверсивного счетчика (элемент В02), который сначала работает в режиме прямого счета. К выходу этого счетчика подключена лампа (элемент В01), которая загорается в том случае, когда текущее состояние счетчика достигает заданного значения (пять счетных импульсов). Одновременно сигнал с выхода этого счетчика подается на вход таймера (элемент В03), выход которого соединен со входом обнуления счетчика. Этот таймер поддерживает горение лампы в течение 2 с, после чего переводит счетчик в нулевое состояние.

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

Язык Sequential Function Chart (SFC)

Язык SFC – это графический язык, который позволяет программно описать хронологическую последовательность действий. Эта последовательность выполняется с помощью пошаговых действий (этапов), выполнение которых определяется заданными условиями. Шаг в программе представляет собой отдельную подпрограмму, написанную на языке IL или ST.

9

В более сложном варианте шаги могут быть оформлены и на графических языках типа FBD или LD.

Примером программы, записанной на языке SFC, может быть фрагмент, показанный на рис. 1.3.

Вэтом примере представлено три последовательных шага, из которых шаг Init является начальным, а шаг Step2 выполняется только тогда, когда параметр IN будет истинным. Аналогично переход от этого шага к шагу Step3 будет возможен только тогда, когда параметр L1 будет истинным. При повторной истинности этого параметра происходит возврат к исполнению шага Step2.

Вданной программе каждый шаг представлен подпрограммой, написанной на языке IL. Так, шаг Init представлен следующей подпрограммой:

 

LD

T#1S

 

ST

Y

 

LD

4

 

ST

X

В этой подпрограмме временному па-

раметру

Y присваивается

значение 1S,

а параметру X аналогично присваивается

значение 4. Значения этих параметров

считаются начальными в данной програм-

Рис. 1.3. SFC-фрагмент ме и могут быть изменены в следующих

шагах.

 

 

Шаг Step2 меняет значение параметров Y и X:

 

LD

T#2S

 

ST

Y

 

LD

2

 

ST

X

 

10

Соседние файлы в папке книги