
ЛИВС Курсовая / Kurs_2_М
.docx
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования
«Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им.В. И. Ульянова (Ленина)» (СПбГЭТУ)
Кафедра ИИСТ
Отчёт по курсовому проекту по дисциплине
«Локальные ИВС».
Часть 2.Разработка канала для измерения температуры на базе ПЛК
Санкт – Петербург
201 год
-
Общие сведения
Цель работы: создать макет программируемого измерительного канала, построенного на основе терморезистора, рассчитанного в первой части задания.
Структурная схема канала:
,где ПЛК – программируемый логический контроллер, R – магазин сопротивлений, АЦП – аналогово-цифровой преобразователь.
-
Блок-схема алгоритма
-
Листинг основных блоков и описание алгоритма программы.
Программа состоит из
-
Основного блока программы PLC_PRG
-
Функционального блока WAIT
-
Функции DAC
Основная программа PLC_PRG написана на языке SFC. Представлена на рисунке 1. Состоит из двух шагов:
-
Step2 – на этом этапе программа считывает код N полученный на выходе модуля WAGO 750-461(модуль преобразует входное значение сопротивления, поступающего с магазина сопротивлений, в код. Функциональная зависимость сопротивления от температуры в модуле реализована для датчика Pt500 с диапазоном измерений
от -200 до 850ºС.) Далее полученный код преобразуем в значение температуры.
Так же на данном этапе рассчитывается значение температуры Ti для терморезистора 500П который был дан в задании по формуле Ti=T-T.
где Т находиться по функциональной зависимости Т(Т). Также на этом этапе значение температуры Тr переводиться в двоично-десятичную систему исчисления.
-
Step3 – на данном шаге реализуется вывод полученного значения температуры на индикаторы.
Между первым и вторым шагом реализована временная задержка длительностью 1.5с. между вторым и третьим. После прохождения третьего шага программа возвращается в шагу один.
Рисунок. 1
Листинг шага Step2:
T:=DAC(N:=%IW4); вызов функции DAC с входной переменной N равной значению поступающего с адреса IW4. Выходное значение записывается в переменную Т.
Ti:=LREAL_TO_INT(EXPT(Rt,3)*1.356303E-08+EXPT(Rt,2)*1.459498E-05+Rt*0.479099-244.884001);рассчитываем и округляем значение Ti
IF Ti>=-100 AND Ti<=150 THEN проверка входит ли измеряемая величина в диапазон измерений.
IF Ti<0 THEN
T0:=TRUE; бит отвечающий за отрицательные числа
Ti:=ABS(Ti); модуль Ti
ELSE
T0:=FALSE;
END_IF
T1:=INT_TO_BYTE(TRUNC(Ti/100)); находим значение сотой части
Ti:=Ti-T1*100;
T2:=INT_TO_BYTE(TRUNC(Ti/10)); находим значение десятой части
Ti:=Ti-T2*10;
T3:=INT_TO_BYTE(TRUNC(Ti)); находим значение единичной части
ELSE
T1:=9; если значение температуры выходит из диапазона измерений выводим на индикаторе значение 999.
T2:=9;
T3:=9;
END_IF
DELAY(TIME_IN:=T#1S); вызов функционального блока WAIT с входной переменной равной 1с. реализует временную задержку
Листинг шага Step3:
Tm:=ROL(T2,4); переменная Im типа байт содержит значение единичной
Tm:=Tm OR T3; и десятой доли значения температуры
Ts:=T1; переменная Ts типа байт содержит значение сотой доли значения температуры
Is.5:=I0; а также знак.
Листинг функционального блока WAIT
IF ZAB.Q=TRUE THEN
ZAB();
ELSE
ZAB(IN:=FALSE);
ZAB.PT:=TIME_IN;
ZAB(IN:=TRUE);
END_IF
OK:=NOT ZAB.Q;
RETURN;
Сначала проверяется значение Q. Если значение переменной Q уже равно TRUE (т.е. счетчик уже запущен), то в этом случае вызывается блок ZAB, чтобы проверить истек или нет период таймера. В другом случае значение переменной IN в ZAB устанавливается равным FALSE, и поэтому ET равен 0 и Q равен FALSE. В этом случае все переменные устанавливаются в начальное состояние. Затем устанавливается значение временной задержки ZAB.PT равным значению параметра TIME_IN. Далее вызывается ZAB со значением переменной IN равной FALSE. В функциональном блоке ZAB переменная ET вычисляется до тех пор, пока не достигнет значения TIME, а затем Q будет установлен в состояние FALSE.
Листинг функции DAC:
IF N>16#2134 THEN
N:=NOT(N)+1;
DAC:=-(WORD_TO_REAL(N)*0.1);
ELSE
DAC:=WORD_TO_REAL(N)*0.1;
END_IF
Преобразуем значение кода N типа WORD в значение температуры типа REAL. Функциональная зависимость температуры от кода было взято из документации модуля WAGO 750-761.
Выводы:
Был создан макет программируемого измерительного канала и написан алгоритм его работы.
Модуль WAGO 750-461 рассчитан на датчик терморезистор Pt500, была произведена коррекция полученных результатов с модуля под характеристики и функциональные зависимости датчика данного в условии задания.
Результаты измерительного канала удовлетворяют требованиям по точности.