SIMATIC S7-200 Примеры

реклама
S7-200 Пример
Аналоговый модуль
Приммер № 34
SIMATIC
S7-200 Примеры
Группа
6
Тема
Обработка аналоговых входов
Краткое описание
Данный пример - первое приближение к использованию аналогого модуля EM235 3AI/1AQ
вместе с CPU-212 или CPU-214. Данная программа выводит среднее значение для аналогого
входа из данного числа выборок и производит проверку для определения значения выдаваемого
на выходе. EM235 спараметрирован для диапазона (10V.
A-
Вход по напряжению
A+
L+
24 VDC
M
SIEMENS
SIMATIC
S7-200
SF
RUN
STOP
I.0
I.1
I.2
I.3
I.4
I.5
I.6
I.7
Q.0
Q.1
Q.2
Q.3
Q.4
Q.5
EXTF
CPU 212
EM235
AI 3x12 Bit
AQ 1x12 Bit
+ или L+
- или M
Рисунок 34.1
Copyright 1995 by SIEMENS
Выпуск: 10/95
Страница 1 / 7
S72_34R.DOC
Версия 1.2
S7-200 Пример
Аналоговый модуль
Приммер № 34
Vload
Iload
Current Transmitter
24V
Voltage Transmitter
+
ANALOG
In-Out-PS
RA A+
A-
+
An
Unused
Input
-
RB
B+
B-
RC
C+ C-
Vo
Io
L+
M
EM235
EXTF
AI 3x12 Bit
AQ 1x12 Bit
X 2
3 4
6ES7 235-0KD00-0XA0
Установка переключателей для
=OFF
ON
Рисунок 34.2
Структура программы
Начало главной
программы
В первом цикле вызвать
подпрограмму 0 для иициализац
Вызов подпрограммы 0 для
проверки аналог. модуля
Есть ошибки в
модуле
да
нет
Вызов подпрограммы 2:добавить
текущ. Выборку к сумме и
увелич. На 1 счетчик выборок
нет
Счптчик
выборок=кол-ву
да
Вызов подпрограммы 3 для
деления при помощи сдвига
суммы выборок
Конец главной
программы
Copyright 1995 by SIEMENS
Выпуск: 10/95
Начало
подпрограммы 2
Начало
подпрограммы 0
Устагновка счетчика выборок и
значения суммы в ноль
Конец
подпрограммы 0
Начало
подпрограммы 1
Проверка SMB8. Аналоговый
модуль подсоедин. Как
модуль ра сширения 0
да
Проверка SMB9. Есть ли
отказ питания на модуле
расширения?
нет
Конец
подпрограммы 1
Страница 1 / 7
Взять одно значение из
аналогового входа
AIIWO,добавить его к сумме
выборок и увелич. Счетчик
выборок, пока не достигнуто
макс.число выборок. Тогда делим
с двиганием по кол-ву LS-нулей в
макс. Числе выборок (используя
ENCO)
Конец
подпрограммы 2
нет
Начало
подпрограммы 3
да
Установить
флаги
ошибок
Выдать среднее напряжение на
аналоговый выход и включить выходы
на CPU
Конец
подпрограммы 3
S72_34R.DOC
Версия 1.2
S7-200 Пример
Аналоговый модуль
Приммер № 34
Описание программы
Данная программа илюстрирует функции аналогого модуля EMN235 (3AI/1AQ) принимая
вхлдные значения от AIW0, усредняя их для увеличения стабильности, и выдавая аналоговое
напряжение на AQW0 в зависимости от вычисленного среднего.
Тестирование аналогого модуля обеспечивает информацией о ошибках модуля. Если первый
модуль расширения не является аналоговым модулем, то выключается Q1.0. Другая ошибка,
которую можно определить, это пропадание питания на аналоговом модуле; включается Q1.1 на
CPU и EXTF на аналоговом модуле.
Данная программа использует однократное деление при помощи операции сдвига (используя 2
как число выборок), т.к. это занимает мало времени от времени цикла. Это число м.б. свободно
изменено в диапазоне от 2 до 32768.
4
Размер слова входов 12 бит. Если число выборок больше, чем 16 (2 ), то размер суммы будет
больше, чем целое слово (16 бит), тогда для хранения суммы необходимо использовать
двойное слово (32 бита). Для того, чтобы добавить входное значение к сумме, необходимо
преобразовать его в двойное слово.
Если входное значение - отрицательное, прибавить его к значащему слову; если положительно, прибавить ноль для правильного значения.
Размер программы составляет 118 слов.
LAD (S7-MicroDOS)
STL (IEC)
Главная программа
// Главная программа
1
2
3
4
│ SM0.1
├─┤
├────────────────────(
│
│ SM0.0
├─┤
├────────────────────(
│
│ Q1.0
Q1.1
├─┤ / ├───┤ / ├───────┬────(
│
│
│
│
│
└────(
│
│
├──────────────────────────(
│
Copyright 1995 by SIEMENS
Выпуск: 10/95
0
CALL
)
LD
CALL
LD
SM0.1
0
SM0.0
1
CALL
)
CALL
1
2
CALL
)
LDN
AN
CALL
Q1.0
Q1.1
2
3
CALL
)
CALL
3
//
//
MEND
)
MEND
Страница 1 / 7
// Инициализация
// Проверка аналогого
// модуля
// Если нет ошибок в
// аналоговом модуле
// - Выбрать входное
// значение
// - Выдать
необходимое
напряжение
S72_34R.DOC
Версия 1.2
S7-200 Пример
Аналоговый модуль
Приммер № 34
Подпрограммы
//****************************************************************
// Функция : Инициализация
//****************************************************************
┌──────────┐
│ SBR: 0 │
└───┬──────┘
│ SM0.0
MOV_W───┐
6
├─┤
├──────────────┬────┤EN
│
│
│
│
│
│
│ K0┤IN OUT├VW0
│
│
│
│
│
│
└───────┘
│
│
MOV_W───┐
│
├────┤EN
│
│
│
│
│
│
│K128┤IN OUT├VW2
│
│
│
│
│
│
└───────┘
│
│
MOV_DW──┐
│
├────┤EN
│
│
│
│
│
│
│ K0┤IN OUT├VD10
│
│
│
│
│
│
└───────┘
│
│
MOV_DW──┐
│
├────┤EN
│
│
│
│
│
│
│ K0┤IN OUT├VD14
│
│
│
│
│
│
└───────┘
│
│
MOV_DW──┐
│
└────┤EN
│
│
│
│
│
K0┤IN OUT├VD18
│
│
│
│
└───────┘
│
7
├─────────────────────────( RET )
│
SBR
0
LD
MOVW
SM0.0
0,VW0
// счетчик
MOVW
128,VW2
// Кол-во выборок
MOVD
0,VD10
// Текущая выборка
MOVD
0,VD14
// текущая сумма
// значений выборок
MOVD
0,VD18
// среднее значение
RET
//***************************************************************************
// Функция : Проверка, есть ли аналоговый модуль и раболает ли он.
//***************************************************************************
┌──────────┐
│ SBR: 1 │
└───┬──────┘
│SMB8 KH19
Q1.0
9
├─┤== B├─┤NOT├────────────(
S
│
│
│SMB9 KH0
SMB9 KH4
Q1.1
10 ├─┤== B├─┤NOT├─┤== B├─────(
S
│
│
│
11 ├─────────────────────────( RET
│
Copyright 1995 by SIEMENS
Выпуск: 10/95
SBR
1
K1
)
LDB=
NOT
K1
)
S
LDB=
NOT
SMB8,16#19
// Проверка, есть ли
// модуль - как первый
Q1.0,1
// модуль расширения
SMB9,16#00
// Проверка, есть ли
// ошибка
SMB9,16#04
Q1.1,1
// Проверка,напряжение
// питания - OK ?
AB=
S
)
Страница 1 / 7
RET
S72_34R.DOC
Версия 1.2
S7-200 Пример
Аналоговый модуль
Приммер № 34
// ВХОД
//*******************************************************************************
// Функция : Выборка аналогого значения : получение 1 значения от AIW0
//*******************************************************************************
┌──────────┐
│ SBR: 2 │
└───┬──────┘
│ SM0.0
MOV_W───┐
13 ├─┤
├───────────────────┤EN
│
│
│
Copyright 1995 by SIEMENS
Выпуск: 10/95
Страница 1 / 7
S72_34R.DOC
Версия 1.2
Скачать