Приложение: косвенный доступ к параметрам FC и FB
Вызов функции с параметрами комплексного типа
Передача параметров комплексных типов
Косвенный доступ к сложным типам данных
Передача параметра типа POINTER
Передача параметров параметрического типа
Специальные возможности для элементарных фактических параметров в DB и константах
Упражнение A.1: Оценка параметров типа DATE_АND_TIME в FC
Вызов FB с параметрами сложных типов
Косвенная адресация входных и выходных параметров
Косвенная адресация in_out - параметров
Передача параметров
Упражнение A.2: Оценка параметра типа DАTE_AND_TIME в FB
Упражнение A.3: Оценка In_Out параметров в FB
Решение к упражнению A.1: Доступ к DT параметрам в FC
Решение к упражнению A.2: Доступ к DT параметрам в FB
Решение к упражнению A.3: Доступ к I/O параметрам в FB (Part 1)
Решение к упражнению A.3: Доступ к I/O параметрам в FB (Part 2)
255.50K
Категория: ПрограммированиеПрограммирование

Приложение: косвенный доступ к параметрам FC и FB

1. Приложение: косвенный доступ к параметрам FC и FB

OB 1
FB1
FB5
Motor 1
Motor 1
Regler
Regler
FB1
FC10
Meas_Value ARRAY[1..20]
REAL
Sum
REAL
Mean_value REAL
Motor 2
Motor 2
FB2
Ventilinsel
Ventilinsel
SIMATIC S7
Siemens AG 1999. All rights reserved.
. . .
Datum:
Datei:
L P##Meas_Value
LAR1
L
W [AR1,P#0.0]
T
#DB_Num
OPN DB[DB_Num]
L
D [AR1,P#2.0]
LAR1
.
.
.
.
11.02.19
PRO2_15D.1
. . .
. . .
Informations- und Trainings-Center
Wissen für Automatisierung

2. Вызов функции с параметрами комплексного типа

Пример: Передача массива (ARRAY) в функцию
FC21
DB5 "Temperature"
Назначение параметров cложного типа возможно только символически
Network 1: Meas_Val объявлен как array в FC21
CALL FC
21
Meas_Val:="Temperature".sequence
SIMATIC S7
Siemens AG 1999. All rights reserved.
Datum:
Datei:
11.02.19
PRO2_15D.2
Informations- und Trainings-Center
Wissen für Automatisierung

3. Передача параметров комплексных типов

L-стеке
Блоке данных
L-Stack (OB1)
1 установка
Комплексный фактич. парам. в:
DB5: “values”
"POINTER"
в L-Stack
DB-No: 5
межзонный
указатель
Field ARRAY[1..10]
INT
LB 21
...
Function FC10
OB1
Выполнение
программы
CALL FC10
On
Off
:= “Value”.Field
:= Q8.0
OB1
BLD
=
L
T
L
T
UC
BLD
SIMATIC S7
Siemens AG 1999. All rights reserved.
1
L
20.0
5
LW 21
P#DBX0.0
LD23
FC 10
P#L 21
P#Q 8.0
2
Datum:
Datei:
11.02.19
PRO2_15D.3
in On
out Off
...
2
ARRAY[1..10]
INT
BOOL
...
L #On[8]
...
= #Off
...
Informations- und Trainings-Center
Wissen für Automatisierung

4. Косвенный доступ к сложным типам данных

Address
0.0
*4.0
32.0
36.0
0.0
Declaration Name
Type
in
Meas_Val
out
out
in_out
temp
Sum
Mean_Val
ARRAY[1..8]
REAL
REAL
REAL
DB_Num
WORD
Start value
Comment
Network 1: Определение номера DB и начального адреса
L
LAR1
L
T
OPN
L
LAR1
P## Meas_Val
//
//
//
//
//
//
//
Загрузите адрес POINTER в ACCU1,
и оттуда загрузите в AR1;
Определите номер DB
и загрузите его во временную переменную;
Oткрыть DB
Определите указатель на область
и загрузите его в AR1;
BEGN;
//
//
//
//
//
//
//
//
//
0 в ACCU1 (sum =0.0)
Счетчик в ACCU1; Sum=0 в ACCU2
сумма в ACCU1, счетчик в ACCU2
счетчик в ACCU3
элемент массива в ACCU1
сумма в ACCU1, счетчик в ACCU2
Увеличение AR1 на 4 байта
Счетчик цикла в ACCU1, сумма в ACCU2
Уменьшить на 1 счетчик цикла и переход, если
#Sum
// необходимо
// Запись суммы в #Sum
W [AR1,P#0.0]
#DB_Num
DB[DB_Num]
D [AR1,P#2.0]
Network 2: Вычисление суммы
L
L
BEGN: TAK
ENT
L
+R
+AR1
TAK
LOOP
T
0.000000e+000
8
D[AR1,P#0.0]
P#4.0;
SIMATIC S7
Siemens AG 1999. All rights reserved.
Datum:
Datei:
11.02.19
PRO2_15D.4
Informations- und Trainings-Center
Wissen für Automatisierung

5. Передача параметра типа POINTER

Параметры типа
"POINTER" и
"ANY"
L-Stack (OB1)
...
Установка
указателя "ANY"
в L-стек
1
OB1
OB1
Выполнение
программы
CALL FC10
On
Off
:= P#I0.0 10 INT
:= Q8.0
BLD
=
L
T
L
T
L
T
L
T
L
T
AC
BLD
SIMATIC S7
Siemens AG 1999. All rights reserved.
1
L
20.0
W#16#1005
LW 21
10
LW 23
0
LW25
P#I0.0
LD27
P#DBX0.0
LD23
FC 10
P#L 21
P#Q 8.0
2
Datum:
Datei:
11.02.19
PRO2_15D.5
LB 21
10H
Тип данных: 05
Коэфф.повтор.: 10
Номер DB: 0
межзонный
указательr: P#I0.0
...
Function FC10
in
out
...
2
On
Off
ANY
BOOL
...
L P##On
...
= #Off
...
Informations- und Trainings-Center
Wissen für Automatisierung

6. Передача параметров параметрического типа

Блоковые параметры:
TIMER, COUNTER
BLOCK_x
OB1
Function FC10
OB1
Выполнение
программы
CALL FC10
On
Off
:= DB35
:= A8.0
SIMATIC S7
Siemens AG 1999. All rights reserved.
in On
out Off
...
BLD
=
AC
BLD
1
L
20.0
FC 10
P#4.3
P#A 8.0
2
Datum:
Datei:
11.02.19
PRO2_15D.6
BLOCK_DB
BOOL
...
OPN #ON
...
= #Off
...
Informations- und Trainings-Center
Wissen für Automatisierung

7. Специальные возможности для элементарных фактических параметров в DB и константах

Элементарные
фактические параметры в:
Константах
Блоках данных
L-Stack (OB1)
1
...
DBB2 0 0 0 1 0 1 0 0
.. .. .. .. .. 0 1 ..
3
LB 20
...
DB5
OB1
Выполнение
программы
CALL FC10
On_1 := I0.1
On_2 := DB5.DBX2.2
Off
:= DB6.DBX2.6
SIMATIC S7
Siemens AG 1999. All rights reserved.
Функция FC10
OB1
BLD
=
OPN
A
=
AC
1
L
DB
DBX
L
FC
P#I
P#L
P#L
A
L
OPN
DB
= DBX
BLD
2
Datum:
Datei:
20.0
5
2.2
20.1
10
0.1
20.1
20.2
20.2
5
2.6
11.02.19
PRO2_15D.7
in
in
out
...
2
On_1
On_2
Off
BOOL
BOOL
BOOl
...
A #On_1
A #On_2
= #Off
...
Informations- und Trainings-Center
Wissen für Automatisierung

8. Упражнение A.1: Оценка параметров типа DATE_АND_TIME в FC

FC51
EN
OB1_DATE_TIME
SIMATIC S7
Siemens AG 1999. All rights reserved.
ENO
IN_DT
Min
QB1
3
QB12
Hour
QB8
Sec
Datum:
Datei:
11.02.19
PRO2_15D.8
Informations- und Trainings-Center
Wissen für Automatisierung

9. Вызов FB с параметрами сложных типов

Пример: Передача массивов в функциональный блок
FB17
DB2 "Temperature"
Назначение сложных параметров
возможно только символически
Network 1:
CALL FB
Meas_1
Sum_1
Sum_2
Meas_2
17, DB 30
:="Temperature".Cylinder
:=MD20
:=MD30
:="Temperature".Shaft
SIMATIC S7
Siemens AG 1999. All rights reserved.
Datum:
Datei:
11.02.19
PRO2_15D.9
Informations- und Trainings-Center
Wissen für Automatisierung

10. Косвенная адресация входных и выходных параметров

Address
0.0
*4.0
40.0
44.0
48.0
*4.0
54.0
Declaration Name
Type
in
Meas_1
out
out
in_out
in_out
stat
Sum_1
Sum_2
Meas_2
ARRAY[1..10]
REAL
REAL
REAL
ARRAY[1..15]
REAL
INT
DB_Num
Start value
Comment
0.000000e+000
0.000000e+000
0
Network 1: Определение стартового адреса Meas_1
LAR1 P##Meas_1
TAR2
+AR1
Network 2: Доступ к Meas_1
L
L
BEGN: TAK
ENT
L
+R
+AR1
TAK
LOOP
T
0.000000e+000
10
D[AR1,P#0.0]
P#4.0;
BEGN;
#Sum_1
SIMATIC S7
Siemens AG 1999. All rights reserved.
//
//
//
//
//
//
Загрузите межзонный указатель на параметр без
смещения адреса (мультиэкземпляр)в AR1
Загрузить смещение адреса в ACCU1
Добавить смещение адреса к AR1;
AR1 теперь указывает на параметр в экземпляре DB
экземпляр DB уже открыт
//
//
//
//
//
//
//
//
//
//
//
0 в ACCU1 (сумма =0.0)
Счетчик в ACCU1; сумма =0 в ACCU2
Сумма в ACCU1, счетчик в ACCU2
Счетчик в ACCU3
Компонент массива в ACCU1
Сумма в ACCU1, счетчик в ACCU2
Увеличение AR1 на 4 байта
Счетчик цикла в ACCU1, сумма в ACCU2
Уменьшить счетчик цикла на 1 и переход, если это
необходимо
Запись суммы в #Sum_1
Datum:
Datei:
11.02.19
PRO2_15D.10
Informations- und Trainings-Center
Wissen für Automatisierung

11. Косвенная адресация in_out - параметров

Address
0.0
*4.0
40.0
44.0
48.0
*4.0
54.0
Declaration Name
in
Meas_1
out
out
in_out
in_out
stat
Sum_1
Sum_2
Meas_2
DB_Num
Type
ARRAY[1..10]
REAL
REAL
REAL
ARRAY[1..15]
REAL
INT
Start value
Comment
0.000000e+000
0.000000e+000
0
Network 3: Определение начального адреса Meas_2
LAR1 P##Meas_2
TAR2
+AR1
L
W [AR1,P#0.0]
T
#DB_Num
OPN
DB [#DB_Num]
L
D [AR1,P#2.0]
LAR1
//
//
//
//
//
//
//
//
Загрузка межзонного указателя на POINTER
Загрузка смещения адреса в ACCU1, прибавление к AR1;
AR1-новый указатель на POINTER в экземпляр DB
Загрузка номера DB из POINTER в ACCU1
Запись номера DB (или 0)в статическую переменную
Открытие DB
Загрузка межзонного указателя на параметр
Загрузка указателя в AR1, AR1 указатель на параметр
//
//
//
//
//
//
//
0 в ACCU1 (сумма =0.0)
Счетчик в ACCU1; сумма=0 в ACCU2
Сумма в ACCU1, счетчик в ACCU2
Счетчик в ACCU3
Элемент массива в ACCU1
Сумма в ACCU1, счетчик в ACCU2
...
Network 4: Доступ к Meas_2
L
L
BEGN: TAK
ENT
L
+R
...
0.000000e+000
15
D[AR1,P#0.0]
SIMATIC S7
Siemens AG 1999. All rights reserved.
Datum:
Datei:
11.02.19
PRO2_15D.11
Informations- und Trainings-Center
Wissen für Automatisierung

12. Передача параметров

Глубина вложения:
S7-300: max. 8
S7-400: max. 16
...
Передача зависит от блока, типа данных и вида параметра:
OB
Вызов
Тип данных
Input -> Input
Output -> Output
in/out -> Input
in/out -> Output
in/out -> in/out
FB
FB
FC выз. FC
E CP
x - x - x - x - x - -
FB выз. FC
E CP
x x x x x - x - x - -
FC выз. FB
E CP
x - x
x - x - x - x - -
FC
FB выз. FB
ECP
x x x
x x x - x - x - -
E: Элементарный тип данных
C: Комплексный тип данных
P: Параметрический тип (Timer, Counter, Block_x)
SIMATIC S7
Siemens AG 1999. All rights reserved.
Datum:
Datei:
11.02.19
PRO2_15D.12
Informations- und Trainings-Center
Wissen für Automatisierung

13. Упражнение A.2: Оценка параметра типа DАTE_AND_TIME в FB

FB83
0.0 in
IN_DT
out
in_out
8.0 stat
DUMMY
*2.0 stat
208.0 stat
FB63_DT
OB1_DATE_TIME
SIMATIC S7
Siemens AG 1999. All rights reserved.
IN_DT
DATE_AND_TIME
DT#90-1-1-0:0:0.0
ARRAY[1..100]
INT
FB63
FB63
EN
ENO
IN_DT
Sec
QB13
Min
QB12
Hour
QB8
Datum:
Datei:
11.02.19
PRO2_15D.13
Informations- und Trainings-Center
Wissen für Automatisierung

14. Упражнение A.3: Оценка In_Out параметров в FB

FB84
0.0 in
IN_DT
out
in_out
8.0 stat
DUMMY
*2.0 stat
208.0 stat
FB64_DT
...
OB1_DATE_TIME
SIMATIC S7
Siemens AG 1999. All rights reserved.
IN_DT
DATE_AND_TIME
DT#90-1-1-0:0:0.0
ARRAY[1..100]
INT
FB64
FB64
EN
ENO
IO_DT
Sec
QB13
Min
QB12
Hour
QB8
Datum:
Datei:
11.02.19
PRO2_15D.14
Informations- und Trainings-Center
Wissen für Automatisierung

15. Решение к упражнению A.1: Доступ к DT параметрам в FC

SIMATIC S7
Siemens AG 1999. All rights reserved.
Datum:
Datei:
11.02.19
PRO2_15D.15
Informations- und Trainings-Center
Wissen für Automatisierung

16. Решение к упражнению A.2: Доступ к DT параметрам в FB

SIMATIC S7
Siemens AG 1999. All rights reserved.
Datum:
Datei:
11.02.19
PRO2_15D.16
Informations- und Trainings-Center
Wissen für Automatisierung

17. Решение к упражнению A.3: Доступ к I/O параметрам в FB (Part 1)

SIMATIC S7
Siemens AG 1999. All rights reserved.
Datum:
Datei:
11.02.19
PRO2_15D.17
Informations- und Trainings-Center
Wissen für Automatisierung

18. Решение к упражнению A.3: Доступ к I/O параметрам в FB (Part 2)

SIMATIC S7
Siemens AG 1999. All rights reserved.
Datum:
Datei:
11.02.19
PRO2_15D.18
Informations- und Trainings-Center
Wissen für Automatisierung
English     Русский Правила