История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Топ:
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Интересное:
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Дисциплины:
2017-09-26 | 2387 |
5.00
из
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
Программы написаны в среде CoDeSys 2.3 для контроллера ОВЕН ПЛК-150, 154.
При создании проекта используется язык непрерывных функциональных схем CFC, реализующий структуры, подобные языку FBD.
После запуска CoDeSys 2.3 новый проект открывается из главного меню: FileàNew. В открывшемся окне выбирается тип контроллера (Configuration) подтверждается нажатием клавиши ОК.
После выбора проекта выводится экранная форма, задающая тип, имя и язык программирования первичного компонента New POU, главной программы контроллера.
После подтверждения выбора нажатием клавиши ОК откроется окно нового проекта с именем по умолчанию Untitled. В нем присутствует одна вкладка POUs. Весь проект хранится в одном файле, имя которого отображается в заголовке окна.
При отсутствие реального подключенного контроллера в CoDeSys 2.3 предусмотрен режим симуляции работы контроллера. Для его включения устанавливается флаг во вкладке главного меню OnlineàSimulation mode.
Программное соединение с контроллером, в том числе и ассимиляционное, включается из главного меню CoDeSys командой OnlineàLogin.
При работе с реальным контроллером флаг перед строкой меню Simulation Mode должен быть снят.
В обоих режимах работы контроллера, запуск работы программы осуществляется выбором команды OnlineàRun.
Программа защиты от обрыва, выброса или провала сигнала для контроллера фирмы Овен представлена на рис.129 Эта программа, аналогична программе приведённой на рис.11.
При отсутствии возможности непосредственного аппаратного имитирования аналоговых сигналов, как например на рис.121, возможно их имитировать средствами среды разработки. Ситуации выброса, провала, обрыва, как следствие, также имитируются программно. Для этого допустимо использовать один из вариантов программного функционального блока аналогового входа analog_in, приведенного на рис. 123.
|
Примечание: Для создания в проекте среды CoDeSys 2.3 функционального блока, не входящего в стандартную библиотеку доступных алгоритмов, необходимо в основном меню сверху последовательно выбрать ProjectàObjectàAdd. В появившейся форме выбирается тип Function Block (функциональный блок), его имя и желаемый язык программирования.
Для блока analog_in использовался язык CFC, язык непрерывных функциональных схем, аналогичный языку функциональных блоков[26].
FUNCTION_BLOCK analog_in
VAR_INPUT (*входа функционального блока*)
x: REAL; (*переменная - входной аналоговый сигнал*)
D_vybr: BOOL; D_obr: BOOL; D_prov: BOOL; (*дискретные переменные имитирования выброса, обрыва, провала*)
END_VAR
VAR_OUTPUT (*выходы функционального блока*)
x_out: REAL; (*переменная основного аналогового выхода*)
END_VAR
VAR (*внутренние переменные функционального блока*)
tp1: TP; tp2: TP; (*переменные типа «таймер»*)
END_VAR
Рис. 124 – Функциональный блок для имитации обрыва, выброса и провала сигнала
Суть работы алгоритма в том, что при имитации кратковременного выброса или провала сигнала к входному аналогового сигналу прибавляется (в блоке суммирования ADD) значение 35 или -35 (допустимо как меньшее так и большее значение) в зависимости от команд в течение 1,5 секунд, определяемых при помощи двух таймеров. При отсутствии выбросов и провалов входное значение аналогового сигнала суммируется с величиной 0, то есть остается неизменной. Значения 0 и -35, 35, согласно рисунку 124, подаются на входа блоков переключения SEL Обрыв имитируется переключением на значение ноль.
В библиотеке алгоритмов CoDeSys 2.3 нет блока запоминания, советующего алгоритму для контроллера Ремиконт Р-130. Ниже приведена одна из возможных реализаций алгоритма на языке ST- структурированный текст, полностью соответствующий работе аналогичного блока для контроллера Ремиконт Р-130.
Описание переменных:
|
FUNCTION_BLOCK Zapom
VAR_INPUT
c: BOOL; (*команда к запоминанию*)
x: REAL; (*входной аналоговый сигнал*)
END_VAR
VAR_OUTPUT
d1: BOOL;
y: REAL; (*выходной аналоговый сигнал*)
END_VAR
VAR
Rtr: R_TRIG; (*тип переменной R-триггер, необходим для использования в коде. R_TRIG является алгоритмом выделения переднего фронта*)
tp_time:TP; (*тип переменной «таймер», В алгоритм введен для формирования кратковременного выходного сигнала d1 о моменте запоминания*)
d: BOOL;
END_VAR
Текст программы на языке ST.
tp_time(IN:=c, PT:=T#0.3s);
d1:=tp_time.Q;
Rtr(CLK:=c);
d:=Rtr.Q;
IF d=TRUE THEN y:=x;
END_IF;
Ниже приведено описание стандартных для среды CoDeSys функциональных блоков.
TP - Функциональный блок «таймер».
TP(IN, PT, Q, ET) Входы IN и PT типов BOOL и TIME соответственно. Выходы Q и ET аналогично типов BOOL и TIME.
Пока IN равен FALSE, выход Q = FALSE, выход ET = 0. При переходе IN в TRUE выход Q устанавливается в TRUE и таймер начинает отсчет времени (в миллисекундах) на выходе ET до достижения длительности, заданной PT. Далее счетчик не увеличивается. Таким образом, выход Q генерирует импульс длительностью PT по переднему фронту сигнала на входе IN.
Примечание: Задание времени импульса в секундах осуществляется присвоением входу PT постоянной вида T#1.5s, где Т – определяет временной тип, а #1.5s соответствующее время в секундах. Для задания времени в миллисекундах используется T#100ms. Аналогично задается любая временная постоянная.
По сути своей работы функциональный блок «таймер» схож с алгоритмом одновибратор из библиотеки алгоритмов для контроллера Ремиконт Р-130.
Рис. 125 Диаграмма работы функционального блока «таймер»
BLINK - Функциональный блок «генератор прямоугольных импульсов».
Рис. 126 Функциональный блок «генератор прямоугольных импульсов» с заданием времени импульса 2 секунды и паузы 3 секунды
Входы: ENABLE типа BOOL, TIMELOW и TIMEHIGH типа TIME. Выход OUT типа BOOL. Генератор запускается по входу ENABLE = TRUE. Длительность импульса задается TIMEHIGH, длительность паузы TIMELOW.
Генератор прямоугольных импульсов тоже что и мультивибратор библиотеки алгоритмов Ремиконта Р-130, только без функции сброса.
TON - Функциональный блок «таймер с задержкой включения».
TON(IN, PT, Q, ET) Входы IN и PT типов BOOL и TIME соответственно. Выходы Q и ET аналогично типов BOOL и TIME.
Пока IN равен FALSE, выход Q = FALSE, выход ET = 0. Как только IN становится TRUE, начинается отсчет времени (в миллисекундах) на выходе ET до значения, равного PT. Далее счетчик не увеличивается. Q равен TRUE, когда IN равен TRUE и ET равен PT, иначе FALSE. Таким образом, выход Q устанавливается с задержкой PT от фронта входа IN.
|
В программе аналоговой защиты таймер с задержкой включения используется для задержки включения перезаписи достоверного значения в случае исправности канала после исчезновения нарушения.
Рис. 127 Диаграмма работы «таймера с задержкой включения»
Прочие стандартные функциональные блоки программы на рис.129:
- RS - переключатель с доминантой выключения (RS-триггер);
- OR – логический элемент ИЛИ;
- AND – логический элемент И;
- SUB - вычитание из первого входа второй;
- ABS – модуль значения;
- MUL – перемножение значений;
- GT – больше, возвращает TRUE, если первое значение больше второго;
Программа мажоритарного выбора 2 из 3-х приведена на рис.130.
Для соответствия с программой на рис. 18 был необходим нестандартный для CoDeSys алгоритм переключателя. Его работа полностью соответствует работе одноименного алгоритма библиотеки алгоритмов для контроллера Ремиконт Р-130 в случае трех каналов.
Описание переменных:
FUNCTION_BLOCK PER
VAR_INPUT
c1, c2, c3: BOOL; (*Команды подключения соответствующих входов x1, x2, x3*)
x1, x2, x3:REAL;
END_VAR
VAR_OUTPUT
y:REAL; (*Выход переключателя*)
END_VAR
VAR
END_VAR
Текст программы на языку ST:
IF c3=TRUE THEN y:=x3; END_IF;
IF c2=TRUE THEN y:=x2; END_IF;
IF c1=TRUE THEN y:=x1; END_IF;
IF c1=FALSE AND c2=FALSE AND c3=FALSE THEN y:=x1; END_IF;
Прочие стандартные функциональные блоки программы на рис.130:
- AND – логический элемент И;
- SUB - вычитание из первого входа второй;
- ABS – модуль значения;
- DIV – деление первого значения на второе;
- GT – больше, возвращает TRUE, если первое значение больше второго.
На рис. 131 приведена программа циклограммы. Эта циклограмма реализована по циклограмме, изображённой на рис.23 и соответствует программе (рис.28).
В наборе алгоритмов CoDeSys не имеется идентичного алгоритма таймеру для контроллера Ремиконт Р-130, то есть нет такого алгоритма отсчета времени, в котором предусмотрена и остановка и сброс. Необходимо реализовать приведенный ниже функциональный блок таймера с остановкой и сбросом.
Описание переменных:
|
FUNCTION_BLOCK Timer_mit_Stop
VAR_INPUT
Csb: BOOL;
Cstop: BOOL;
END_VAR
VAR_OUTPUT
T:TIME;
END_VAR
VAR
ton1:TON;
pam: TIME;
C: BOOL:=TRUE;
Time_ton: TIME;
pt:TIME:=T#10000s;
END_VAR
Текст программы:
ton1(IN:=C, PT:=PT, ET=>Time_ton);
IF Csb=TRUE THEN
C:=FALSE;
pam:=T#0s;
T:=T#0s;
END_IF;
IF Cstop=TRUE THEN
pam:=T;
T:=pam;
C:=FALSE;
END_IF;
IF Csb=FALSE AND Cstop=FALSE THEN
C:=TRUE;
T:=pam+Time_ton;
END_IF;
К стандартному функциональному блоку, используемому в программе относится CTU - функциональный блок «инкрементный счетчик». Входы CU, RESET и выход Q типа BOOL, вход PV и выход CV типа WORD. По каждому фронту на входе CU (переход из FALSE в TRUE) выход CV увеличивается на 1. Выход Q устанавливается в TRUE, когда счетчик достигнет значения, заданного PV. Счетчик CV сбрасывается в 0 по входу RESET = TRUE.
Прочие стандартные функциональные блоки программы на рис. 131:
- AND – логический элемент И;
- OR - логический элемент ИЛИ;
- GT – больше, возвращает TRUE, если первое значение больше второго. Используется в качестве порогового элемента таймера на рис 18.
На рис.132 приведена программа циклограммы, соответствующая рис.32.
Для генерации периодического треугольного сигнала в библиотеке алгоритмов CoDeSys имеется специальный блок генератор GEN.
Входы блока: перечисление MODE предопределенного типа GEN_MODE, BASE типа BOOL, PERIOD типа TIME, CYCLES и AMPLITUDE типа INT и RESET типа BOOL. Выход OUT типа INT.
Вход MODE задает вид генерируемой функции. Перечисление включает следующие значения: TRIANGLE и TRIANGLE_POS - треугольники, SAWTOOTH_RISE и SAWTOOTH_FALL – пила, RECTANGLE – прямоугольники, SINE и COSINE – синусоиды:
Рис. 128 Пример работы алгоритма генератор в зависимости от входа MODE и Amplitude
BASE определяет представление единиц периода по времени (BASE=TRUE) или по числу циклов, т.е. по количеству вызовов функционального блока (BASE=FALSE).
Входы PERIOD или CYCLES определяют период выходного сигнала. Вход AMPLITUDE задает амплитуду сигнала. Сброс генератора происходит при установке RESET=TRUE.
На рис.133 фактически реализована та же программа дискретного автомата, что и на рис.40.
Алгоритм проверки на достоверность дискретного сигнала (рис.10) также был реализован в виде функционального блока.
Описание переменных:
FUNCTION_BLOCK Diskr_Zshita
VAR_INPUT
D: BOOL;
END_VAR
VAR_OUTPUT
D1: BOOL;
END_VAR
VAR
ton1: TON; ton2: TON; rs1: RS;
END_VAR
Рис. 129 Программа проверки на достоверность дискретного сигнала в CoDeSys.
Описание работы таймера задержки по времени TON и RS-триггера приводилось выше.
На рис. 134 представлен дискретный автомат с памятью, соответствующий программе на рис. 43. Все функциональные блоки, составляющие программу, были рассмотрены выше.
Рис. 130 - Программа защиты от обрыва, выброса или провала сигнала
Рис. 131 Алгоритм мажоритарного выбора два из трёх
Рис. 132 Программа реализации циклограммы
Рис. 133
Рис. 134
Рис. 135
Учебное издание
|
Борис Георгиевич Севастьянов
|
|
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!