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

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

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

После ввода в структуру PLC_PRG программы модуля Add Action и присвоения ему имени act(ST) подпрограмма этого модуля для поставленной задачи должна состоять из следующих команд:

%QB12.3:=255;

IF PLC_PRG.CV:<=5 AND %IX0.1 THEN TP:=%QD12.3.0.0;(темп) PS:=%QW12.4.0.0; (си-8) IF TP-35<0.0001 OR PS<0 THEN %QX1.3:=TRUE; %QB12.2.0.0:=0;(шим)

%QX1.2:=FALSE; A:= TRUE; END_IF;

IF TP-38 > 0.0001 THEN %QX1.3:=FALSE; A:= FALSE; IF PS<533 AND %QB12.2.0.0=0 THEN %QB12.1.0.0:=63;(датч);

ELSE %QB12.1.0.0:=0; %QB12.2.0.0:=63; END_IF; END_IF;

IF PS<400 AND %QB12.2.0.0=63 THEN %QX1.2:=TRUE; END_IF;

END_IF;

Логика этой программы заключается в следующем. Командой %QB12.3:=255 активируются все каналы в линии управления устройствами ОВЕН. После этого условной командой проверяется числовое содержание программного счетчика, которое не должно превышать числа 5. Поскольку первоначально этот параметр равен нулю, по условию PLC_PRG.CV:<=5 AND %IX0.1 проверяется активность канала с адресом %IX0.1 (состояние кнопки К2). Исходя из этого после нажатия на кнопку К2 программа последовательно выполняет две команды. При этом первой командой TP:=%QD12.3.0.0 в переменную ТР заносятся текущие показания температуры печи, которые регистрирует измеритель РТМ-201, а командой PS:=%QW12.4.0.0 в переменную PS заносятсячисловые показания счетчика импульсовСИ8.

Следующая условная команда анализирует величину параметров ТР и PS. Если параметр ТР будет меньше числа 35 или параметр PS будет меньше числа 0, то по команде %QX1.3:=TRUE активизируется третий канал порта дискретного вывода контроллера ОВЕН,

211

к которому подключен нагреватель эмулятора печи. Одновременно командой %QB12.2.0.0:=0 выключается первый канал порта дискретного вывода модуля МДВВ, работающего в режиме ШИМ, а по команде %QX1.2:=FALSE отключается привод вентилятора печи, подключенного ко второму каналу порта дискретного вывода контроллера ОВЕН. Кроме того, командой A:= TRUE параметру A присваивается значение «истинно». Значение этого параметра в форме импульса подается на вход программного счетчика, увеличивая на единицу его числовое содержание.

После включения нагревателя температура печи будет повышаться. Как только параметр ТР превысит значение числа 38, нагреватель печи отключится по команде %QX1.3:=FALSE, а параметр A командой A:= FALSE примет значение «ложно». После этого программа перейдет к анализу следующего условия, по которому если параметр PS будет меньше числа 533 (это значение числа 215 в дво- ично-десятичной системе счисления, считанное со счетчика СИ8), то активизируется нулевой канал порта дискретного вывода модуля МДВВ, к которому подключен привод датчика импульсов прямого счета. При этом значения параметра PS начнут увеличиваться до величины 533. Как только значение PS станет больше этого числа, привод датчика по направлению ELSE и по команде %QB12.1.0.0:=0 отключится и одновременно по команде %QB12.2.0.0:=63 активизируется первый канал порта дискретного вывода модуля МДВВ, работающий в режиме ШИМ. Импульсы с этого порта подаются на вход обратного счета счетчика импульсов СИ8. В результате этого показания этого счетчика будут уменьшаться. Как только это значение достигнет величины числа 400 (это значение числа 190 в двоич- но-десятичной системе счисления), по команде %QX1.2:=TRUE в работу вступит вентилятор печи. При этом процесс обратного счета и работа вентилятора будут происходить одновременно. Температура печи будет первоначально повышаться до некоторого уровня, а затем за счет обдува вентилятором постепенно снизится до величины числа, равного 35.

Как только это произойдет, снова включится нагреватель печи и параметр А снова импульсно увеличит на единицу содержание

212

программного счетчика, при этом вентилятор и счетчик СИ8 возобновят работу в описанной последовательности. Этот процесс закончится только в том случае, когда числовое содержание программного счетчика достигнет величины числа 5.

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

Рис. 6.21. Вид окна модуля Vizo для визуализации результата задачи

Согласно поставленной задаче, в ней должны быть следующие объекты визуализации:

пусковая кнопка;

работа нагревателя печи;

работа вентилятора;

показания прибора РТМ-201 по замеру уровня температуры;

числовое состояние программного счетчика;

числовое состояние счетчика СИ8;

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

счета.

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

213

При соответствующей настройке указанных объектных модулей в файле Vizo они должны работать следующим образом. При установке курсора на контуре кнопки К2 и последующем ее нажатии она должна не только поменять свой цвет, но и запустить в работу программу задачи. Аналогично должны менять свой цвет в соответствии с режимом работы элементы печь и вентилятор. Стрелка элемента программный счетчик при каждом переходе параметра А должна перемещаться с нулевого положения в единичное состояние. Аналогично стрелка элемента счетчика СИ8 должна перемещаться с нулевого положения по часовой стрелке при каждом импульсе, переданном от датчика РТМ18-08N, и менять направление перемещения при подаче импульсного сигнала через соответствующий канал модуля МДВВ.

Сконфигурируйте систему для поставленной задачи. Составьте описанную программу с учетом модуля визуализации. Перегрузите программу в память ПЛК и проверьте ее работу.

214

СПИСОК ЛИТЕРАТУРЫ

1.Руководство пользователя по программированию ПЛК в сре-

де CoDeSys [Электронный ресурс]. – URL: http://Owen.ru/product/ Codesys_v2/documentation.

2.Логические модули Simens [Электронный ресурс]. – URL: http://avenue.ru/ new.simens.com/ru/produkty.

3.Руководство пользователя модулей LOGO Simens [Электрон-

ный ресурс]. – URL: http:// google.com/search?g=Руководство поль-

зователя+лого+сименс&g.

4.Руководство по программированию в среде LOGO [Элек-

тронный ресурс]. – URL: http:// promspecrele/ru/documents/Logo! SoftComfort_v6/0_rus.pdf.

5.Электроприводы NEPTRONIC [Электронный ресурс]. – URL: http:// rst-s,ru/catflog/clapans/Elektroprrivody.

6.Регулирующая аппаратура [Электронный ресурс]. – URL: http://armature-avenue.ru/ru/Compontnt.

215

ПРИЛОЖЕНИЕ

Краткий справочник по операторам и компонентам библиотек

Оператор языка ST

Оператор языка IL

Описание

'

 

Разграничение строк (т.е. 'string1').

.. [ ]

 

Задание индексов массива (т.е.

:

 

ARRAY[0..3] OF INT).

;

 

Разделитель операнда и типа при объ-

 

явлении (т.е. var1 :INT;).

^

 

Конец инструкции (т.е. a:=var1;).

LD var1

Обращение через указатель (т.е.

:=

pointer1^).

ST var1

Загрузить значение var1 в аккумулятор.

 

S boolvar

Записать в var1 значение аккумулятора.

 

R boolvar

Установка логического операнда boolvar в

 

TRUE, если значение аккумулятора TRUE.

 

 

Сброслогическогооперандаboolvar в

 

 

FALSE, еслизначениеаккумулятораTRUE.

<Program name>

JMP label

Переход на метку label.

Вызов программы prog1.

<Instance name>

CAL prog1

Вызов экземпляра функционального

<Fctname>(vx, vy,)

CAL inst1

блока inst1.

 

<Fctname> vx, vy

Вызов функции fctname передача пара-

(

(

метров vx, vy.

Результат вычислений в скобках ис-

)

)

пользуется как операнд.

Заканчивает вычисление в скобках.

AND

AND

Битовое AND.

OR

OR

Битовое OR.

XOR

XOR

Битовое исключающее.

NOT

NOT

Битовое NOT.

+

ADD

Сложение.

-

SUB

Вычитание.

*

MUL

Умножение.

/

DIV

Деление.

>

GT

Больше, чем.

>=

GE

Больше или.

=

EQ

Равно.

<>

NE

Не равно.

<=

LE

Меньше или равно.

<

LT

Меньше, чем.

MOD(in)

MOD

Остаток целочисленного деления.

INDEXOF(in)

INDEXOF

Внутренний индекс POU in; [INT].

SIZEOF(in)

SIZEOF

Число байтов, занимаемых in.

SHL(K,in)

SHL

Поразрядный сдвиг влево на K бит.

SHL(K,in)

SHL

SHR(K,in)

SHR

Поразрядный сдвиг влево на K.

ROL(K,in)

ROL

Поразрядный сдвиг вправо на K бит.

ROR(K,in)

ROR

Циклический сдвиг влево на K бит.

SEL(G,in0,in1)

SEL

Циклический сдвиг вправо на K бит.

 

 

 

216

Оператор языка ST

Оператор языка IL

Описание

MAX(in0,in1)

MAX

Мультиплексор на 2 входа in0 (при G

MIN(in0,in1)

MIN

FALSE) и in1 (при G TRUE).

LIMIT(MIN,in,Max)

LIMIT

Возвращает наибольшее из 2 значений

MUX(K,in0,...in_n)

MUX

in0 и in1.

Возвращает наименьшее из 2 значений

ADR(in)

ADR

in0 и in1.

Ограничивает значение in в пределах от

 

 

MIN до MAX.

 

 

Мультиплексор выбирает K-тое значе-

 

 

ние из группы (от in0 до In_n).

ADRINST()

ADRINST

Адрес операнда в [DWORD].

Адрес экземпляра функционального бло-

BITADR(in)

BITADR

ка, из которого вызывается ADRINST.

Битовое смещение операнда в [DWORD].

BOOL_TO_<type>(in)

BOOL_TO_<type>

Преобразование типа из логического.

<type>_TO_BOOL(in)

<type>_TO_BOOL

Преобразование типа в логический.

INT_TO_<type>(in)

INT_TO_<type>

Преобразование значения операнда

REAL_TO_<type>(in)

REAL_TO_<type>

типа INT в другой базовый тип.

Преобразование значения операнда

LREAL_TO_<type>(in)

LREAL_TO_<type>

типа REAL в другой базовый тип.

Преобразование значения операнда типа

TIME_TO_<type>(in)

TIME_TO_<type

LREAL в другой базовый тип.

> Преобразование значения операнда

TOD_TO_<type>(in)

TOD_TO__<type>

типа TIME в другой базовый тип.

Преобразование значения операнда

DATE_TO_<type>(in)

DATE_TO_<type>

типа TOD в другой базовый тип.

Преобразование значения операнда

DT_TO_<type>(in)

DT_TO_<type>

типа DATE в другой базовый тип.

Преобразование значения операнда

STRING_TO_<type>(in

STRING_TO_<type>

типа DT в другой базовый тип.

Преобразование текста строки операнда в

)

 

другой базовый тип. Строка должна со-

 

TRUNC

держать соответствующий текст.

TRUNC(in)

Преобразование из REAL в INT.

ABS

Абсолютное значение in.

ABS(in)

SQRT

Квадратный корень из in.

SQRT(in)

LN

Натуральный логарифм из in.

LN(in)

LOG

Десятичный логарифм из in.

LOG(in)

EXP

E в степени in.

EXP(in)

SIN

Синус in.

SIN(in)

COS

Косинус in.

COS(in)

TAN

Тангенс in.

TAN(in)

ASIN

Арксинус in.

ASIN(in)

ACOS

Арккосинус in.

ACOS(in)

ATAN

Арктангенс in.

ATAN(in)

EXPT expt

Возведение в степень expt

EXPT(in,expt)

 

 

217

Компоненты стандартных функций Standard.lib

Оператор языка ST

Оператор языка IL

Описание

LEN(in)

LEN

Длина строки in.

LEFT(str,size)

LEFT

Левая значимая часть строки str из size

RIGHT(str,size)

RIGHT

символов.

Правая значимая часть строки str из size

MID(str,size,pos)

MID

символов.

Часть строки str с позиции pos из size сим-

CONCAT('str1','str2')

CONCAT 'str2'

волов.

I

INSERT

'str2'

Конкатенация (склеивание) 2 строк.

NSERT('str1','str2',pos)

Вставитьстрокуstr1 вstr2 спозицииpos.

DELETE('str1',len,pos)

DELETE

len,pos

Удалить часть строки, len символов,

с позиции pos 'str2',len,pos.

REPLACE('str1','st

REPLACE

Заменить часть строки str1 с позиции pos

r2',len,pos)

 

 

на len символов из str2.

FIND('str1','str2')

FIND 'str2'

Поиск подстроки str2 в str1.

Переключатель с доминантой включения.

SR

SR

Переключатель с доминантой выключения.

RS

RS

Семафор (interruptable).

SEMA

SEMA

Детектор переднего фронта импульса.

R_TRIG

R_TRIG

Детектор заднего фронта импульса.

F_TRIG

F_TRIG

Инкрементный счетчик.

CTU

CTU

Декрементный счетчик.

CTD

CTD

Реверсивный счетчик.

CTUD

CTUD

Триггер.

TP

TP

Таймер включения.

TON

TON

Таймер выключения.

TOF

TOF

Часы

RTC

RTC

 

Компоненты специальных функций Util.lib

Компонент

Описание

BCD_TO_INT

Преобразование значения операнда BCD в INT.

INT_TO_BCD

Преобразование байта INT в BCD.

EXTRACT(in,n)

Определяет значение n-го бита DWORD, результат типа

PACK

BOOL.

PUTBIT

Упаковка значений 8 бит в байт.

UNPACK

Присвоить значение определенному биту в DWORD.

DERIVATIVE

Распаковка байта в 8 логических переменных.

INTEGRAL

Производная.

LIN_TRAFO

Интеграл.

STATISTICS_INT

Преобразование REAL-значений.

STATISTICS_REAL

Макс., мин., среднее значения в INT-формате.

VARIANCE

Макс., мин., среднее значения в REAL-формате.

PD

Дисперсия.

 

 

218

Компонент

Описание

PID

ПД-регулятор.

BLINK

ПИД-регулятор.

FREQ_MEASURE

Генератор импульсов.

GEN

Частотомер.

CHARCURVE

Функциональный генератор.

RAMP_INT

Интерполятор.

RAMP_REAL

Ограничитель скорости изменения сигнала (INT).

HYSTERESIS

Ограничитель скорости изменения сигнала (REAL).

LIMITALARM

Гистерезис.

 

Компаратор

219

ОГЛАВЛЕНИЕ

 

ВВЕДЕНИЕ.............................................................................................

3

1. ЯЗЫКИ ПРОГРАММИРОВАНИЯ ЗАДАЧ

 

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

5

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

5

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

6

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

7

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

8

2. ПРОГРАММИРОВАНИЕ РАБОТЫ ЛОКАЛЬНЫХ

 

МИКРОКОНТРОЛЛЕРОВ СЕРИИ LOGO

 

ДЛЯ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ

 

ОБЪЕКТАМИ ПО ЗАДАННОМУ АЛГОРИТМУ............................

13

2.1. Цель работы...............................................................................

13

2.2. Описание стенда........................................................................

13

2.3. Порядок включения в работу микроконтроллера LOGO ......

16

2.3.1. Описание программного пакета

 

LOGO Soft-Comfort V6.0.............................................................

17

2.3.2. Порядок составления программы управления

 

задвижкой с помощью микроконтроллера LOGO...................

18

3. ПРОГРАММИРОВАНИЕ РАБОТЫ МИКРОКОНТРОЛЛЕРОВ

 

СЕРИИ ZELIO-TWIDO ФИРМЫ SCHNEIDER ELECTRIC

 

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

 

ПО ЗАДАННОМУ АЛГОРИТМУ......................................................

29

3.1. Цель работы...............................................................................

29

3.2. Описание стенда........................................................................

29

3.3. Порядок включения в работу микроконтроллера

 

Zelio-Twido........................................................................................

33

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

 

Zelio-Twido........................................................................................

35

3.4.1. Язык Ladder ........................................................................

35

3.4.2. Типы контактов..................................................................

36

3.4.3. Типы катушек.....................................................................

37

3.4.4. Принципы программирования в пакете TwidoSoft.........

37

3.4.5. Программирование действия всех видов

 

битовых сигналов в пакете TwidoSoft........................................

44

220

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