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

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

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

метров этого контроллера, кнопкой ОК войдем в окно следующего меню NEW POU, предназначенное для выбора языка программирования. В первоначальном примере программирования контроллера мы воспользуемся языком LD, отмечая его в соответствующей строке этого меню, и кнопкой ОК выйдем в окно основного меню программы (окно PLC_PRG(PRG_LD) ).

Для просмотра конфигурационной структуры контроллера ОВЕН ПЛК-150 кнопкой 4 (Re) раскроем меню ресурсов (см. рис. 6.3) и выберем в нем позицию PLC Configuration. После раскрытия этой позиции на поле основного окна появится структура, показанная на рис. 6.4.

Рис. 6.4. Структура окна отображения конфигурации контроллера ОВЕН ПЛК-150

Эта структура состоит из следующих компонентов:

Discrete input 6 bit[FIX];

Discrete output 4 bit[FIX];

Special output[FIX];

Unifed signal sensor{slot];

Unifed signal sensor{slot];

Unifed signal sensor{slot];

161

Unifed signal sensor{slot];

Analog output[FIX];

Analog output[FIX].

Компонент Discrete input 6 bit[FIX] отображает структуру порта дискретного ввода контроллера, которая состоит из шести каналов. Структурно в конфигурации эти каналы представлены следующим образом:

Discrete input 6 bit[FIX]:

AT %IX0.0:BOOL;(* *)[CHANNTL (I)];

AT %IX0.1:BOOL;(* *)[CHANNTL (I)];

AT %IX0.2:BOOL;(* *)[CHANNTL (I)];

AT %IX0.3:BOOL;(* *)[CHANNTL (I)];

AT %IX0.4:BOOL;(* *)[CHANNTL (I)];

AT %IX0.5:BOOL;(* *)[CHANNTL (I)].

Вэтой структуре параметр %IX0.0 – уникальное имя (адрес) как порта, так и каждого канала дискретного ввода. Число после точки меняется для каждого канала в пределах от 0 до 5. Параметр BOOL – это тип переменной, которая должна соответствовать содержанию любого канала этого порта.

Аналогично конфигурация компонента Discrete output 4 bit[FIX] отображает структуру порта дискретного вывода контроллера, которая состоит из четырех каналов. Структурно в конфигурации эти каналы представлены следующим образом:

Discrete output 4 bit[FIX]:

– AT %QX1.0:BOOL;(* *)[CHANNTL (Q)];

– AT %QX1.1:BOOL;(* *)[CHANNTL (Q)];

– AT %QX1.2:BOOL;(* *)[CHANNTL (Q)];

– AT %QX1.3:BOOL;(* *)[CHANNTL (Q)].

Вэтой структуре уникальное имя (адрес) каждого из четырех каналов отображается через параметр %QX1.0.

Каждый из каналов аналогового ввода имеет два структурных компонента:

Unifed signal sensor{slot]:

– AT %ID3.0:REAL; (* value*)[CHANNTL (I)];

– AT %IW3.1:WORD;(* circular time*)[CHANNTL (I)].

162

Вэтой структуре уникальное имя (адрес) для типа компонента REAL отображается через параметр %ID3.0, для другого компонента типа WORD этот адрес отображается параметром %IW3.1. Компонент типа REAL используется для ввода стандартного аналогового сигнала в пределах от 4 до 20 мА. В то время как компонент WORD используется для циклического отображения времени в диапазоне от 0 до 65536 ед. При этом 1 ед. = 10 мс.

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

Analog output[FIX];

– AT %QD7.0:REAL; (* value*)[CHANNTL (Q)].

Вэтой структуре уникальное имя канала %QD7.0 отображается аналогично. Канал выдает сигнал соответствующей переменной ти-

па REAL.

6.3.2.Принцип программирования работы портов дискретного ввода-вывода контроллера ОВЕН ПЛК-150

Общие принципы программирования работы контроллера ОВЕН ПЛК-150 в составе объединенной сети управления рассмотрим на примере следующей задачи.

Задача: Составить программу, с помощью которой кнопкой, подключенной к нулевому каналу порта дискретного ввода контроллера ОВЕН ПЛК-150, зажигается лампа, подключенная к нулевому каналу порта дискретного вывода этого контроллера.

Программу составим на языке LD, который мы выбрали в процессе конфигурации проекта. Первоначально через позиции меню PLC_PRG(PRG_LD раскрываем рабочее окно программы, где

вверхней строке инструментальных средств программирования выберем элемент контакт. Установим его на рабочем поле программы и обозначим его как К1. Для этого, установив курсор на контур этого контакта, левой клавишей мыши раскроем меню Declare Variable,

впозиции Name которого автоматически будет записано К1, а в позиции Type соответственно появится тип BOOL. Переместим курсор на позицию Address в этом оконном меню и запишем там %IX0.0, что означает привязку параметра К1 к нулевому каналу дискретного

163

ввода контроллера ОВЕН ПЛК-150. Эта запись перенесется в раздел описания данных нашей программы после нажания на ОК.

Аналогичным способом в соответствующем месте установим элемент схемы катушка и обозначим его как Q1. После чего установим курсор на контур этой катушки и левой клавишей мыши раскроем снова меню Declare Variable. В соответствующих позициях этого меню будут автоматически записаны параметры Q1 и BOOL. В позиции Address на этот раз мы запишем %QX1.0, что означает привязку параметра Q1 к нулевому каналу дискретного вывода этого контроллера. На этомпроцесс составления этойпрограммызаканчивается.

После этого эта программа из оперативной памяти компьютера должна быть передана по линии связи в оперативную память контроллера ОВЕН ПЛК-150.

Для организации линии связи компьютера с контроллером нужно раскрыть позицию главного меню Online и в раскрывшемся меню активизировать команду Login. После некоторой выдержки времени на экране появится сообщение: «Программы в контроллере НЕТ. Загрузить ее?». Выбрав ответ ДА, необходимо некоторое время ожидать окончания процесса передачи данных. По окончании этого процесса на лицевойпанели контроллера загоритсязеленый индикатор связь.

Для запуска загруженной программы надо на командной строке пакета CoDeSys выбрать и нажать клавишу RUN или нажать на лицевой панели контроллера кнопку «Старт/Стоп». Действие программы проверяется нажатием на стенде кнопки К1, при этом должна загораться лампа L1. Остановка программы производится нажатием клавиши STOP на командной строке экрана монитора или повторным нажатием кнопки «Старт/Стоп» на лицевой панели контроллера. Усложним нашу задачу:

Задача: Составить программу, с помощью которой кнопкой, подключенной к нулевому каналу порта дискретного ввода контроллера ОВЕН ПЛК-150, запустить в работу таймеры, при совместной работе которых формируются и подаются на вход счетчика импульсы. Этот счетчик через заданное число импульсов зажигает на заданное время лампу, подключенную ко второму каналу порта дискретного вывода контроллера. Один из этих тайме-

164

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

Структура программы этой задачи, составленной на языке LD, показана на рис. 6.5.

Рис. 6.5. Структура программы управления состоянием ламп при совместной работе таймеров и счетчика

Для ввода таймеров типа ТР и ТON в эту программу выбираем позицию Function Block в строке инструментальных средств, при раскрытии которой появляется окно Input assistant, в котором располагается набор стандартных функций. Из них мы выбираем позиции

Timer и Counter.

Раздел описания переменных этой программы выглядит следующим образом:

VAR

K1 AT%IX0.0:BOOL;

q1 AT%QX1.0:BOOL;

K3 AT%IX0.2:BOOL;

q2 AT%QX1.2:BOOL; m 1:BOOL;

taim:TP;

165

taim1:TON;

sch:CTD; END_VAR,

где K1 и K3 − имена кнопок, подключенных соответственно к нулевому и второму каналам порта дискретного ввода контроллера;

Q1 и Q2 − имена переменных, связанных соответственно с нулевым и третьим каналами порта дискретного вывода контроллера.

При запуске этой программы нормально замкнутый контакт q1 на входе IN таймера taim1 первоначально принимает состояние TRUE, поэтому таймер сразу же запускается в его работу. После запуска этот таймер (типа TON) с задержкой в 1 с (величина параметра РТ) выдает на выходе Q сигнал TRUE и останавливает свою работу. Состояние TRUE параметра Q этого таймера через нормально замкнутый контакт K3 передается катушке с именем m1. Одновременно сигнал m1 является входным (передается на вход IN) для другого таймера taim (типа TР), поэтому запускает его

вработу. В момент этого запуска таймер taim1 уже не работает. При запуске таймера taim на его выходе Q сразу же формируется сигнал TRUE, и это состояние выхода выдерживается в течение 1 с. Это же состояние принимает катушка с именем q1, подключенная на выход Q этого таймера. В результате этого нормально замкнутое состояние параметра q1 на входе IN таймера taim1 принимает состояние FALSE, что удерживает этот таймер от запуска

втечение 1 с. В течение этого времени в состоянии FALSE будет находиться параметр m1, поэтому таймер taim лишается возможности повторного запуска.

По истечении 1 с работа таймера taim прекращается и на его выходе Q сигнал переходит в состояние FALSE. Это же состояние принимает параметр q1, соединенный с этим выходом, а его нормально замкнутый вариант на входе IN таймера taim1 принимает состояние TRUE, поэтому он снова запускает в работу таймер taim1 и процесс работы этой подпрограммы снова повторяется.

Таким образом, таймеры taim и taim1 поочередно вступают в работу на время 1 с (это время определяется величиной параметра РТ). В результате этого параметры q1 и m1 поочередно принимают

166

значение TRUE или FALSE, что соответствует непрерывному знакопеременному (колебательному) сигналу. Поскольку параметр q1 имеет адресную связь с нулевым каналом порта дискретного вывода контроллера, лама L1, подключенная к этому каналу, при работе программы будет мигать с периодом в 1 с.

Сигнал параметра m1 подается на вход CD счетчика SCH типа CTD, и каждое значение TRUE этого сигнала на указанном входе увеличивает состояние этого счетчика на единицу. Как только состояние счетчика достигнет величины поданной на его вход PV (в нашем случае PV = 5), на его выходе Q сигнал примет состояние TRUE. Это же состояние примет параметр q2, имеющий адресную связь с третьим каналом порта дискретного вывода контроллера, поэтому лампа L3, подключенная к этому каналу, загорится.

Для того чтобы этот процесс циклически возобновлялся, необходимо подачей сигнала q2 на вход LOAD обнулить счетчик SCH, при этом работа счетчика прекратится и на его выходе Q сигнал перейдет в состояние FALSE. При этом лампа L3 мгновенно погаснет.

Для продления режима работы этой лампы сигналом q2 запускается в работу таймер taim2 типа TON, который на 3 с продляет процесс горения лампы L3, после истечения этого времени этот таймер формирует сигнал SCH.LOAD, который снова обнуляет счетчик, и процесс его работы снова возобновляется. Лампа L3 при этом гаснет до тех пор, пока при новом цикле работы состояние счетчика SCH не достигнет величины параметра PV = 5.

Наберите и перенесите в оперативную память контроллера ОВЕН ПЛК-150 вышеописанным способом эту программу. Запустите программу и проверьте ее работу.

6.3.3. Принцип программирования работы порта аналогового ввода контроллера ОВЕН ПЛК-150

Порт аналогового ввода контроллера ОВЕН ПЛК-150 представляет собой отдельный модуль, который конфигурируется в зависимости от поставленной задачи функционирования. Этот модуль может быть сконфигурирован для приема сигналов от следующих устройств:

167

датчик унифицированного сигнала;

датчик термопара;

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

контактный датчик.

Каждый из этих вариантов приема аналогового сигнала может быть обеспечен выбором функции Replace Elements. Для вызова этой функции нужно раскрыть окно PLC Configuration и установить курсор на запись Unifed signal sensor[slot], после чего нажать левую клавишу мыши. Конфигурация порта для варианта «датчик унифицированного сигнала» показана на рис. 6.6.

Рис. 6.6. Структура окна конфигурации порта (модуля) аналогового ввода контроллера ОВЕН ПЛК-150

Вариант «датчик унифицированного сигнала» применяется в том случае, если элемент входа формирует стандартный тип сигнала от 4 до 20 мА или от 0 до 10 В. Вариант «датчик термопара» применяется для стандартных термопар с диапазоном измерения температуры от –200 до 800 ºС. Вариант «термосопротивление» применяется для стандартных датчиков с диапазоном измерения температуры от –200 до 750 ºС. Вариант «контактный датчик» используется в том случае, если в контроллере не хватает каналов дискретного входа.

В нашем стенде порт (модуль) аналогового ввода будет использован в варианте «датчик унифицированного сигнала». Его конфигурация должна соответствовать этому варианту. Для этого в окне PLC

168

Configuration устанавливаем курсор на первую позицию Unifed signal sensor[slot] и нажатием левой клавишимыши в правой части этого окна раскрываемменю Base parameter: Module parameters (см. рис. 6.6).

Среди этих параметров необходимо выбрать тип датчика Type of sensor и время измерения в секундах Measure interval, s. В нашем стенде показания датчика изменяются в диапазоне от 4 до 20 мА, поэтому выбираем Value-IT_4;Default-IT_0_20). Минимальное время между замерами может быть любым. По умолчанию это время принимается равным 1 с. В нашем случае оно будет таким. Остальные параметры оставим без изменения.

Установив курсор на записи первого модуля Unifed signal sensor[slot] в окне PLC Configuration, двойным щелчком левой кла-

виши мыши раскрываем эту запись. Этот модуль имеет два канала:

канал Value (Значение), формат Real;

канал Circular time (циклическое время), формат Word.

Канал Value используется для ввода в модуль аналогового сигнала, в то время как в канале Circular time фиксируется время (в секундах) наличия сигнала в канале Value. Отчет времени начинается с момента старта программы ПЛК и обнуляется при переходе через его максимальное значение.

Принцип работы модуля аналогового ввода в варианте «датчик унифицированногосигнала» рассмотримнапримереследующейзадачи.

Задача: Составить программу, по которой изменение уровня сигнала в модуле Unifed signal sensor[slot] в пределах от 4 до 6 мА вызывает включение нулевого канала порта дискретного вывода контроллера ОВЕН ПЛК-150, а изменение этого сигнала в диапазоне от 10 до 14,5 мА приводит к переключению нулевого канала на первый. В других диапазонах изменения сигнала аналогового ввода указанные каналы порта дискретного выводадолжны быть отключены.

В разделе описания переменных для этой программы запишем: VAR

I1:REAL;

I3:WORD;

k1: AT%QX1.0:BOOL; k2: AT%QX1.1:BOOL;

169

m1: REAL; m2: REAL; m3: REAL; 4: REAL; END_VAR,

где k1 и k2 − имена переменных, связанных соответственно с нулевым и первым каналами порта дискретного вывода контроллера;

I1 и I3 − имена переменных, связанных соответственно с кана-

лами Value и Circular time первого модуля Unifed signal sensor[slot]; m1, m2, m3, m4 − имена переменных памяти для хранения сиг-

налов.

Программу этой задачи составим на языке ST. Текст этой программы представлен следующими командами:

I1:=%ID3.0;

I3:=%IW3.1’

I2:=I1;

M1:=1.030000E+009;

M2:=1.077000E+009;

IF (I1>M1) AND (I1<M2) THEN K1:=TRUE; ELSE K1:=FALSE; END_IF;.

M3:=1.09E+009;

M4:=1.09E+009;

IF (I1>M3) AND (I1<M4) THEN K2:=TRUE; ELSE K2:=FALSE; END_IF;.

По этой программе командами I1:=%ID3.0 и I3:=%IW3.1 на экран монитора выводятся значения уровня сигнала, который задается потенциометром, подключенным к первому каналу порта аналогового ввода контроллера ОВЕН ПЛК-150. На экране монитора параметр I1 будет представлен числом с плавающей запятой в форме 1.ХХХХХХХХХе+009, где символы Х являются символами мантиссы числа формата REAL, а символ е представляет десятичную точку, положение которой в числе определяется числом +009 (показателем разрядности смешанного числа). Параметр I3 на экране монитора будет представлен числом формата WORD, значение которого будет каждую секунду постоянно меняться от 1 до 65 535. При достижении последнего значения этот параметр обнулится и снова уве-

170

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