- •Санкт-петербургский государственный электротехнический университет имени в.И. Ульянова (Ленина)«лэти».
- •Описание модуля wago 750-430
- •Описание модуля wago 750-457
- •Описание модуля wago 750-556
- •Блок-схема алгоритма лабораторного эксперимента.
- •Принципиальная электрическая схема подключений лабораторного эксперимента.
- •Текст программы управления контроллером.
Описание модуля wago 750-457
WAGO 750-457 представляет собой 4-канальный аналоговый модуль ввода

Рисунок 2
|
Число выходов |
4 |
|
Потребление тока (внутреннее) |
65 мА |
|
Номинальное напряжение |
Пост. 40 В (−15 % ... +20 %) |
|
Напряжение сигнала |
Пост. −10 В ... +10В |
|
Входной фильтр |
10.0 мс (750…457) |
|
Напряжение изоляции |
500 В система/питание |
|
Внутренняя размерность данных |
16 бит |
Описание модуля wago 750-556
WAGO 750-556 представляет собой 2-канальный аналоговый модуль вывода

Рисунок 3
|
Число выходов |
2 |
|
Потребление тока (внутреннее) |
65 мА |
|
Напряжение сигнала |
Пост. −10 В ... +10В |
|
Частота переключения (макс.) 2 кГц |
2 кГц |
|
Входной фильтр |
10.0 мс (750…457) |
|
Напряжение изоляции |
500 В система/питание |
|
Внутренняя размерность данных |
16 бит |
Блок-схема алгоритма лабораторного эксперимента.

Принципиальная электрическая схема подключений лабораторного эксперимента.

Рисунок 4
Текст программы управления контроллером.
Программа состоит из 4 блоков:
-
Основной программный блок – PLC_PRG
-
Функциональный блок – WAIT
-
Функция аналого-цифрового преобразования –CODE
-
Функция цифро-аналоговое преобразованию – CODE2
Функция аналого-цифрового преобразования: CODE

Входное значение массива сравнивается с нулем, преобразованным из типа INT в тип REAL. Если входное значение больше 0, то будет работать алгоритм по первому пути. Булевое значение 1, преобразуется в реальное.входное значение умножается на 32767 (215 -1), затем делится на 10, и получается новое значение. После этого, умножается на 1 и записывается уже как новое значение в CODE.
Если входное значение меньше 0, то работает алгоритм по второму пути. Булевое значение 0 преобразовывается в 1. входное значение умножается на 32767 (215 -1), затем делится на 10 и складывается с 65536 (216). Затем, умножается на 1 и записывается уже как новое значение в CODE.
Функция цифро-аналоговое преобразованию: CODE2

Входное значение массива с сравнивается с 32767, преобразованным из типа INT в тип REAL. Если входное значение больше этого числа, то будет работать алгоритм по первому пути. Булевое значение 1, преобразуется в реальное. После этого входное значение умножается на 10, затем делится на 32767, вычитается 20 и получается новое значение. Потом, умножается на 1 и записывается уже как новое значение в CODE2.
Если входное значение меньше 34767, то работает алгоритм по второму пути. Булевое значение 0 преобразовывается в 1. входное значение умножается на 10, затем делится на 34767 и складывается. После этого, умножается на 1 и записывается уже как новое значение в CODE2.
Функциональный блок: WAIT

Сначала проверяется значение Q. Если значение переменной Q уже равно TRUE (т.е. счетчик уже запущен), то в этом случае вызывается блок ZAB, чтобы проверить истек или нет период таймера. В другом случае значение переменной IN в ZAB устанавливается равным FALSE, и поэтому ET равен 0 и Q равен FALSE. В этом случае все переменные устанавливаются в начальное состояние. Затем устанавливается значение временной задержки ZAB.PT равным значению параметра TIME_IN. Далее вызывается ZAB со значением переменной IN равной FALSE. В функциональном блоке ZAB переменная ET вычисляется до тех пор, пока не достигнет значения TIME, а затем Q будет установлен в состояние FALSE.
Основной программный блок: PLC_PRG
|
|
В качестве примера рассмотрим работу одного канала, второй канал работает по идентичному алгоритму.
Переменные:
А1 и А2 массивы подаваемых значений напряжения для 1 и 2 канала соответственно.
В1 и В2 массивы значений напряжения после ЦАП для 1 и 2 канала.
С1 и С2 массивы погрешности.
I номер значения в массиве.
DELAY таймер
Шаг Init:
I:=0;
Присваиваем переменной I ноль.
Переход если ON TRUE
Шаг Step2
I:=I+1;
Увеличиваем переменную I на единицу
Переход на канал один, если переменная DI – FALSE и на канал 2, если DI –TRUE
Шаг Step4
U:= A2[I];
IF U>10 THEN U:=10;
END_IF
IF U<-10 THEN U:=-10;
END_IF
%QW1:=ADC(U);
DELAY(TIME_IN:=T#1.3S);
Если значение массива А выходит за диапазон [-10;10] то вызываем функцию ADC с входной переменной равной 10 для положительных и -10 для отрицательных.
Если значение массива А находиться в диапазоне [-10;10] то вызываем функцию ADC с входной переменной равной значению массива. .
Вызываем функциональный блок WAIT с входной переменной равной 1.3с.
Шаг Step6
B2[I]:=DAC(ACD2);
IF B2[I]>10 THEN B2[I]:=10;
END_IF
IF B2[I]<-10 THEN B2[I]:=-10;
END_IF
DELAY(TIME_IN:=t#1.3S);
Записываем значение с выхода функции DAC в массив В
Вычитаем значение из массива А из значения из массива В.записываем полученную разницу в массив С.
Переход если I не равно 7 то переходим на шаг Step2 иначе переходим на шаг Init.
Результаты эксперимента
Приведены в таблице 1.
Таблица 1
|
Номер массива, I |
Канал 1 |
Канал 2 |
||||||||
|
A1 |
B1 |
C1(A1-B1) |
A2 |
B2 |
C2(A2-B2) |
|||||
|
1 |
1 |
1,494186 |
-0,494186 |
2 |
4,001587 |
-2,001587 |
||||
|
2 |
-10 |
-6,765343 |
-3,234657 |
-9 |
-4,256721 |
-4,4743257 |
||||
|
3 |
0 |
0,747091 |
-0,7470931 |
3 |
4,74868 |
-1,74868 |
||||
|
4 |
-1 |
-8,545*10-3 |
-0,9914548 |
1 |
3,249611 |
-2,249611 |
||||
|
5 |
14 |
8,24366 |
5,75634 |
4 |
5,504318 |
-1,504318 |
||||
|
6 |
5 |
4,44766 |
0,5052338 |
6 |
6,998505 |
-0,9985046 |
||||
|
7 |
-3 |
-1,507614 |
-1,492386 |
-3 |
-3,504746 |
0,504757 |
||||
|
8 |
8 |
6,744591 |
1,250526 |
7 |
7,750481 |
-0,7504807 |
||||
|
9 |
-9 |
-6,015809 |
-2,984191 |
-9 |
-4,256721 |
-4,743279 |
||||
Вывод:
В ходе лабораторной работы были ознакомлены с принципами разработки измерительных каналов при использовании модулей АЦП и ЦАП промышленной автоматики, освоены основы программирования модулей АЦП и ЦАП. Была написана программа для ПЛК, подключены модули согласно принципиальной схеме. Был проведен эксперимент в ходе которого программа работала без сбоев и были получены результаты(таблица 1) для каждого из каналов. Результаты показали наличие шума(помехи) влияющую на точность измерения, но тем не менее погрешность мала десятитысячные и тысячные доли. Если погрешность не удовлетворяет требованиям по точности то необходимо будет принимать меры по минимизации погрешности.


