当前位置:文档之家› 西门子S7-300 400高级编程培训教材 STEP_7中的数据类型和变量

西门子S7-300 400高级编程培训教材 STEP_7中的数据类型和变量


Byte n1)
Byte 1
Byte n+1
Byte 2
Byte n+2
Byte 3
...
l WORD, DWORD,...数据类型
Byte n1) Byte n+1
Word 1
Byte n+2
Byte n+2 1) n = 偶数
Byte 3 Word 2
...
多维数组
l 示例 ARRAY[1..2,1..3,1..2] OF BYTE
...
in Motor
UDT1
out
...
... .
.
A
#Motor.Enable
.
.
. .
STEP 7中的复杂数据类型
关键字
长度(位) 示DT例#99-06-14-12:14:55.0
DATE_AND_TIME
(日期和时间)
64
´This is a string´
STRING
8 * (字符数 +2) ´SIEMENS´
...
结构(STRUCT)的声明
示例: 数组 – 结构 – 数组的声明
DB6 "Declaration view"
DB6 "Data view"
存储器中STRUCT变量的存
储基本数据类型结构
复杂数据类型结构
7 1
Byte n1) Byte n+1 Byte n+2 Byte n+3 Byte n+4 Byte n+5 Byte n+6 Byte n+7 Byte n+8 Byte n+9
1
1或0
长度(单8位:位)B#16#A9 类型常数示例
16
W#16#12AF
32
DW#16#ADAC1EF5
CHAR
8
'w'
INT DINT REAL
16
123
32
65539或L#-1
32
1.2或34.5E-12
S5TIME
16
S5T#5s_200ms
TIME
32
DATE
16
TIME-OF-DAY 32
FC. 10
..
5
.
.
CALL
FC10
6
.
为组织块 . LD for OB1 LD for OB1 LD for OB1 LD for OB1 LD for OB1
OB1分配
LD for FB1 LD for
LD for FB1
L Stack free
FB1 LD for FC5
free
free
free
Byte
n+(201
日 ...
31)
小时 (00 ... 23)
Byte n+3
分钟
Byte n+(400 ... 59)
秒 (00 ... 59)
Byte n+51=星期日
2=星期一
Byte n+6
毫秒 (000 ... 999)
星期
3=星期二
(1..7) Byte n+745==星星期期三四
6=星期五
UDT 作为块
STRUCT Speed: INT Current: REAL END_STRUCT
UDT 作为数组元素
Drive: ARRAY[1..4] UDT1
STEP 7参数类型
关键字
TIMER
COUNTER
BLOCK_FB BLOCK_FC BLOCK_DB BLOCK_SDB Pointer
STEP 7数据类型和变量
变量及数据类型含义
数据类型描述了数据基本特性 l 连续区域:例如:实际速度 l “是/非” 特性:例如:扰动
数据类型建立:
l 允许范围 (INT:-32 768 ... +32 767,等等。)
l 允许使用的指令 (算术指令: +,- 等。)
l 存储器中位的表示方法抽象出的数据类型
数据类型:STRUCT
STRUCT(结构):
l 结构是不同数据类型 元素的组合
Motor: STRUCT Set_Speed: REAL
l 结构的声明:
结构名称: STRUCT 元素1名称: 数据类型; 元素2名称: 数据类型;
...
END_STRUCT
Actual_Speed: REAL
Enable:
80
Measured Values: ANY
.
L P##Meas_Values
.
变量建立的区域
位(Bit)存储器 PIQ PII I/O 区域(P)
DBz DBy
...
DBx
“传统“ PLC区域
本地数据 堆栈
数据块
本地数据堆栈工作方式
OB1
FB1
1
.
.
2
.
.
CALL FB1
4
CALL
FC5
3
5.
ANY
长度(位) 示例
16
Contact time: TIMER
.
SI #Contact_time
16
NoCompParts: COUNTER
.
LC #No_Comp_Parts
16
Recall: call
48
Measure: POINTER
.
L P##Measure
.
UDT1: STRUCT Set_Speed: REAL
Actual_Speed: REAL
Enable:
BOOL
Disturbance:
BOOL
END_STRUCT
...
UUDT5DT的使用
FC23
数据类型:
结构D: ATE_AND_TIME


Byte n1)(90 ... 89) (01 ... 12) Byte n+1
• 一维:Meas_value: ARRAY[1..10] OF REAL; • 多维:Position: ARRAY[1..5,2..8,...] OF INT;
l 数组变量的访问:
• L #Meas_value[5]
中去 • T #Result[10,5]
// 装载数组的第5个元素 // 将Meas_value装载到ACCU1
功能块 FB1
FB1的背景DB
背景数据 DB5
数据类型:ARRAY
ARRAY(域):
Meas_value: ARRAY[1..10]
l 数组是相同数据类型 元素的组合
Meas_value[1]: Meas_value[2]: Meas_value[3]:
Real Real Real
.
l 数组的声明:
free
如:256个字节
循环开始
1
2
3
4
FC5
LD for OB1 LD for FC10
free 5
LD for OB1 free 6
LD= 本地数据
示例:暂存器的替换
LAD中的分支
STL表示
分支位置
来自本地数据堆栈的 帮助变量
数据块(DB)
OB1
功能 FC10
功能 FC20
可以被所有块访问
全局数据块 DB20
复杂数据类型 (长度大于32位)
用户自定义数据类型 (长度大于32位)
•时间型 (DATE_AND_TIME) •数组型 (ARRAY) •结构型 (STRUCT) •字符串型(STRING)
UDT数据类型 (用户自定义型)
STEP 7中的基本数据类型
BOOL B关Y键T字E WORD DWORD
l FC6 (DT_DATE) :功能FC 6是从DATE_AND_TIME格式中提取日期。 l FC7 (DT_DAY) :功能FC 7是从DATE_AND_TIME格式中提取星期。. l FC8 (DT_TOD) :功能FC 8是从DATE_AND_TIME格式中提取TIME_OF_DAY。 l DT#变量比较函数: FC9 (EQ_DT),FC12 (GE_DT),
Byte n1)
Byte n+1
Byte n+2
...
Byte 1.1.1 Byte 1.1.2 Byte 1.2.1 Byte 1.2.2 Byte 1.3.1 Byte 1.3.2 Byte 2.1.1 Byte 2.1.2 Byte 2.2.1 Byte 2.2.2 Byte 2.3.1 Byte 2.3.2
Word limit
STRUCT类型 元素
...
用户自定义数据类型:UDT
UDT用户自定义数据类型:
l 在声明部分创建了 一个数据模板 供以后使用
l 对程序文件夹的所有 块来说,是全局有效的
示例:
l 新数据类型(结构)的定义:
UDT1 STRUCT SetSpeed : REAL; ActualSpeed: REAL;
BOOL
END_STRUCT
在块调用中 数据传输的精简形式:
l 一个参数传送“多个”数据项 l 使结构化编程成为可能 l 仅通过参数便实现
块间“通信” l 软件可重用性
in Drive
UDT1
out ...
...
stat Control.
FB1.
.
5
CALL #Controller
Motor:="Hall_1" .M5
相关主题