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

Описание модуля 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 блоков:

  1. Основной программный блок – PLC_PRG

  2. Функциональный блок – WAIT

  3. Функция аналого-цифрового преобразования –CODE

  4. Функция цифро-аналоговое преобразованию – 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) для каждого из каналов. Результаты показали наличие шума(помехи) влияющую на точность измерения, но тем не менее погрешность мала десятитысячные и тысячные доли. Если погрешность не удовлетворяет требованиям по точности то необходимо будет принимать меры по минимизации погрешности.

Соседние файлы в папке ЛИВС Лаб 3