Скачиваний:
63
Добавлен:
19.06.2015
Размер:
134.91 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

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

«Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им.В. И. Ульянова (Ленина)» (СПбГЭТУ)

Кафедра ИИСТ

Отчёт по курсовому проекту по дисциплине

«Локальные ИВС».

Часть 2.Разработка канала для измерения температуры на базе ПЛК

Санкт – Петербург

201 год

  1. Общие сведения

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

Структурная схема канала:

,где ПЛК – программируемый логический контроллер, R – магазин сопротивлений, АЦП – аналогово-цифровой преобразователь.

  1. Блок-схема алгоритма

  1. Листинг основных блоков и описание алгоритма программы.

Программа состоит из

  • Основного блока программы PLC_PRG

  • Функционального блока WAIT

  • Функции DAC

Основная программа PLC_PRG написана на языке SFC. Представлена на рисунке 1. Состоит из двух шагов:

  1. Step2 – на этом этапе программа считывает код N полученный на выходе модуля WAGO 750-461(модуль преобразует входное значение сопротивления, поступающего с магазина сопротивлений, в код. Функциональная зависимость сопротивления от температуры в модуле реализована для датчика Pt500 с диапазоном измерений

от -200 до 850ºС.) Далее полученный код преобразуем в значение температуры.

Так же на данном этапе рассчитывается значение температуры Ti для терморезистора 500П который был дан в задании по формуле Ti=T-T.

где Т находиться по функциональной зависимости Т(Т). Также на этом этапе значение температуры Тr переводиться в двоично-десятичную систему исчисления.

  1. 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, была произведена коррекция полученных результатов с модуля под характеристики и функциональные зависимости датчика данного в условии задания.

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

Соседние файлы в папке ЛИВС Курсовая