下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
累加器ACCU1ACCU4ACCU3ACCU2仅适用于S7-400AR2AR1地址寄存器打开的DBDB
长度数据块寄存器状态位状态字32
位32位32位32位32位32位16位16位装载器逻辑块数据块工作
器逻辑块数据块I/O
区域系统
器过程映像输入表过程映像输出表位
器定时器计数器逻辑数据堆栈中断堆栈块堆栈S7-CPU
寄存器S7-CPU
器区域T,
S,
=,...L,
A,
O,...16位打开的DIDI长度S7-CPU
的储器区域SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7状状态字各位的含义位定义值含义0/FC20首次检查位1RLO21逻辑运算结果2STA22状态位3OR23或4OS24保存溢出5OV25溢出6CC026条件代码7CC127条件代码8BR28二进制结果9...15未定义29
..210SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7检在STL中进行检查OVS>0SM
4.0M
4.0A
OVA
OSA
BR扫描溢出显示扫描
的溢出标志扫描BR标志检查条件代码(CC0,CC1)A==0
结果等于0A
>0
结果大于0A<>0
结果不等于0A=<0
结果小于或等于0,等等A
UO
无序指令在LAD
和FBD
中进行检查SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7带有令指令码含义示例SET将RLO位设置为“1“SET=
M
0.1//RLO-1CLR将RLO位设置为“0“CLR//RLO-0NOT将RLO位取反O
手动模式;
O
自动模式;
NOT;=操作模式=
M0.0SAVE以二进制形式保存RLO结果A
BR检查二进制形式结果I
1.0I
1.1||I
1.2|
|
(SAVE)|
|BR||Q4.2||Q5.0(
)SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7LADSTLNetwork
1:循环程序FC23I0.0MW10EN
ENOStep_bit
Step_dis_memory
playM100.0(
)QW12Network
2:
???MUL_II0.1ENENOM100.1(
)OUT
MW10345
IN1987
IN2Network
1:循环程序A
I
0.0JNB
_001CALL
FC
23Step_bit_memory:=MW10:=QW12_001:Step_displayA
BR=
M
100.0Network
2:???MW
10OVA
I
0.1JNB
_002L
345L
987*ITANSAVECLR_002:
A=BRM
100.1块调用或复杂SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7Bm
R位及ENO取决于状转功能JU
标号1)无条件跳转JC
标号1)如果“RLO”=1,则跳转JCN标号1)如果“RLO”=0,则跳转JCB标号1)如果“RLO”=1,则跳转,并将RLO保存在BR位中JNB标号1)如果“RLO”=0,则跳转,并将RLO保存在BR位中JBI标号1)如果“BR”=1,则跳转JNBI标号1)如果“BR”=0,则跳转JO标号1)如果状态字中的“OV”位=1,则跳转JOS标号1)如果状态字中的“OS”
位=1,则跳转1)标号可以由4位字母-数字字符组成SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7取决于条
转功能JZ标号1)如果状态字“CC
1”位=0且“CC
0”位=0,则跳转(结果=0)JN标号1)如果状态字“CC
1”位不等于“CC
0”位,则跳转(结果<>0)JP标号1)如果状态字“CC
1”位=1且“CC
0”位=0(结果=0),则跳转(结果>0)JM标号1)如果状态字“CC
1”位=0且“CC
0”位=1(结果=0),则跳转(结果<0)JPZ标号1)JZ和JP联合使用,同时满足条件,则跳转(结果>=0)JMZ标号1)JM和JZ联合使用,同时满足条件,则跳转(结果<=0)JUO标号1)如果是无效的实数或者除数为0,则跳转1)标号可以由4位字母-数字字符组成SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7装载跳转分支数JL
OVER..ACCU1>n
时的指令段跳转
程示例:带有3个分支的跳转分支程序L
Recipe
no//装载分支程序数JL
OVERJU
Rec0JU
Rec1JU
Rec2//带有3个分支的跳转分支//跳转到0号分支(ACCU1=0)//跳转到1号分支(ACCU1=1)//跳转到2号分支(ACCU1=2)OVER:JU
ERROR//如果ACCU1>2,则跳转至标号OVER...Rec0:
L
DBW4...Rec1:
L
DBW6...Rec2:
L
DBW8...ERROR:
CLR...操作模式M_n:JU
M_0JU
M_nACCU1=0
时的指令段.ACCU1=n
时的指令段OVER:M_0:SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7初始化循环计数器LOOP
NEXT将ACCU1进行减1操作,并作判断
ACCU1<>0?是否继续NEXT:将循环执行数次的代码段将循环计数器内容装入ACCU1.示例:进行4次循环扫描的循环指令编程L
+4//装载循环计数器NEXT:T
MW10//循环开始.//指令代码.//指令代码.//指令代码L
MW10//再次装载循环计数器LOOP
NEXT//循环计数器值–1,//如果Accu
1>0,则//跳转到标号NEXT处操作模式将ACCU1内容送入循环计数器循环SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7程BE块结束指令BEU无条件块结束指令(在块内)BEC条件块结束指令(取决于RLO位)(RET)
在LAD
编程语言中在FBD编程语言中RETSIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7拨码按钮-
D正值结果(>=0)将IW0
的值写入显示删除显示负值结果[JM
标号]转换为DINT转换为DINTBTDBTD123400000000100100102152720仿真器上的切换开关十进制开关:S7-300:IW4
(IW2,32位模式)S7-400:
IW30显示:
S7-300:
QW12
(QW6,
32位模式)S7-400:
QW38切换开关:S7-300:
IW0
(IW0)S7-400:IW28练
.1:减成后跳转SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:201将结果输出显示删除显示溢出[JO
标号]十进制开关:S7-300:IW4
(IW2,32位模式)S7-400:IW30显示:
S7-300:
QW12
(QW6,32位模式)S7-400:
QW38切换开关:S7-300:
IW0
(IW0)S7-400:IW28DTB转换为BCD码拨码开关*I无溢出转换为DINT转换为DINTBTDBTD123400000000100100102152720仿真器上的切换开关练
.2:成后跳转SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7编程112345Motor_let
右转Motor_let
左转马达停转喇叭开功能:拨码按钮[JL
标号]喇叭关标号:使用Jump指令,跳转到所列标号地址:S7-300
(16位)S7-300
(32位)S7-400马达右转:Q20.5Q8.5Q40.5马达左转:Q20.6Q8.6Q40.6喇叭:Q20.7Q8.7Q40.7练.w3w支mSIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7累SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:201累加
述影响多个累加器的指令:TAK:将累加器ACCU1和累加器ACCU2中的内容交换PUSH:将累加器中的内容依次“向上”传递“(从ACCU1向ACCU4传递)POP
:将累加器里中内容依次“向下”传递“(从ACCU4
向ACCU1传递)ENT
:将累加器里中内容依次“向上”传递“,但ACCU1内容不参与传递LEAVE将累加器里中内容依次“向下”传递“,但
ACCU2内容不参与传递算术指令及字逻辑指令仅影响累加器ACCU1的指令INC:累加器ACCU1-LL中的内容加1DEC
:累加器ACCU1-LL中的内容减1CAW:将ACCU1-L中的两个字节翻转CAD:将ACCU1中的双字数据翻转INVI,INVD:生成1的补码NEGI,NEGD,NEGR:生成2的补码(取反)SLW,SLD,SRW,SRD,SSI,SSD:将ACCU1中的内容逐字或双字左移或者右移RLD,RRD:将ACCU1中的内容向左或向右循环移位RLDA,RRDA:经由条件代码位CC1,将ACCU1中的内容向左或向右循环移位SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7S7-300:ACCU2ACCU1V1V2V2V1指令执行前指令执行后V4V3V2V1S7-400:ACCU4ACCU3ACCU2ACCU1V4V3V1
V2
指令执行前指令执行后TAKTAKTAK指令(交换累加器AwwCw.CgkUbp1SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7累m
加器ACU2的内容)S7-300:ACCU2ACCU1V1V2V1V1指令执行前指令执行后PUSHS7-400:ACCU4ACCU3ACCU2ACCU1V2V1V4V3V2V1V3V2V1V1指令执行前指令执行后PUSHV2V2指令执行前指令执行后POPV4V3V2V1V4V4V3V2指令执行前指令执行后POPPUSwwHw和.gkPbpOx.Pc指om
令SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7V4V3V2
V1
ENT:ACCU4ACCU3ACCU2ACCU1V3V2V2V1指令执行前指令执行后V4V3V2V1LEAVE:ACCU4ACCU3ACCU2ACCU1V4V4V3V1指令执行前指令执行后ENT和LEAVE指www令.gSIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7用于S7-400)S7-300:ACCU2ACCU1V1V2V2
op
V1V2指令执行前指令执行后V4V3V2V1S7-400:ACCU4ACCU3ACCU2ACCU1指令执行前指令执行后操作:+.,-.,*.,/.V4V4V3V2
op
V1操作:+.,-.,*.,/.SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7字S7-300:ACCU2ACCU1V1V2V2
op
V1V2指令执行前指令执行后V4V3V2V1S7-400:ACCU4ACCU3ACCU2ACCU1指令执行前指令执行后操作类型:A..,O..,
X..,V4V3V2V2
op
V1操作类型:A..,O..,
X..,SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7CAW:CAD:V4V3V2V1ACCU1-HHACCU1-HLACCU1-LHACCU1-LLV4V3V1V2V4V3V2V1V1V2V3V4ACwCwUw.1gSIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7令ACCU1-HHACCU1-HLACCU1-LHACCU1-LLINC
<const>:V4V3V2V1V4V3V2V1+<const>+
<const>DEC
<const>:V4V3V2V1V4V3V2V1-<const>-<const>ACwCwUw.1gSIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7令031INVI
(ACCU1-L
1的补码):15ACCU1-LACCU1-H01000010010010011000110001000111010000100100100101110011101110003103110111101101101100111001110111000010010011000110001000111INVD
(ACCU11的补码):15ACCU1-LACCU1-H03115生ww成w.1gSIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7NEGI(INT数取反)0NEGD(DINT数取反):3101000010010010011000110001000111101111011011011001110011101110000311的补码1011110110110110011100111011100131加上1+1=
1.312500111111101010000000000000000000NEGR(REAL类型数取反):指数=8位S尾数(23位)023
2210111111101010000000000000000000=
1
112
116
295数值取ww反w.(gkb2SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7码)010000100100100000000000000000000CC1位RLDA
(通过状态位CC1向左循环):31010000100100100000000000000000000RRDA
(通过状态位CC1向右循环):31CC1位ACCU1ACCU1经由CC1的ww3w.2SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7移位指令示例:通过连续使用PUSH和*I指令来生成一个整数的6次幂ACCU1ACCU2
用push指令进行拷贝乘以
*IACCU1Puchwheel按钮xy
0
0转换成INT类型BTI练习w2w.w1.
计m
算SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/723ACCU1-L
(指令执行前)10CAWACCU1-L
(指令执行后)2301练习2.2:AwwCw.CgkUbp1SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7的m
数据交位15位0生成1的补码:INVI1............101ACCU1-L
(指令执行前)位15位0ACCU1-L
(指令执行后)0...........010练习w2w.w3.SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7补m
码令y=LN(x)sin?cos?tan?...???实数(wwwR.gEkbApLx.)co指mSIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/701000010110100000000000000000000指数:e
=8位S尾数:f
(23位)实数(REAL)表示格式(IEEE
FP32位二进制格式):31
30
29
28 27
26 25
24
23 22
21
207
6
5
4
3
2
1
0常规REAL数值的表示方法:S
x
(1.f)
x
2
(e-127)S
=符号位,(0对应于+,1对应于-)f
=23
位尾数最高有效位MSB=2-1及最低有效位LSB=2-23e
=二进制整数形式的指数(0<e<255)常规REAL数值的范围:-
3.402
823
x
10+38
...-1.175
494
x
10-38,0,1.175
494
x
10-38
...
3.402
823
x
10+382-12-23示例:S =
0e =
1000
0101 =
133f =
1010
0000...
=
0.5
+
0.125R
=
+1.625x
2
(133-127)
=
1.625
x
64
=
104.0SIMATIC
S7中的数kbp(x.RcoEmAL)表方法SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7基本指LMD10//装载第1个实数(REAL)LMD20//装载第2个实数(REAL)+RTMD30//两个实数相加(MD10+MD20)//将结果传送到MD30中实数(REAL)
减法:LMD10//装载第1个实数(REAL)LMD20//装载第2个实数(REAL)-R//两个实数相减(MD10-MD20)TMD30//将结果传送到MD30中实数(REAL)
乘法:LMD10//装载第1个实数(REAL)LMD20//装载第2个实数(REAL)*R//两个实数相乘(MD10
*
MD20)TMD30//将结果传送到MD30中实数(REAL)
除法:LMD10//装载第1个实数(REAL)LMD20//装载第2个实数(REAL)/R//两个实数相除(MD10/MD20)TMD30//将结果传送到MD30中对实数(REwAwwL.g)k实数(REAL)
加法:SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7的m扩展数算术函数:SQRSQRT平方开方EXPLN以e为底的指数函数自然对数(e=2.718282)示例:LSQRTMD10MD30//装载实数(REAL)//计算其平方值//将结果传送到MD30中ENINSQR
ENOOUTMD10MD30(STL)(LAD)SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7三角函函数角三角函数:SINCOSTAN正弦余弦正切弧函数:ASINACOSATAN反正弦反余弦反余切示例:LMD10//装载实数(REAL)SIN//计算其正弦值TMD30//将结果传送到MD30中SINMD22INOUTMD30ENENO(STL)(LAD)SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7作指令REAL类型到DINT类型转换指令:RND+RND-RNDTRUNC返回到下一个较大的DINT型数返回到下一个较小的DINT型数返回到下一个整型数取整DINT类型到REAL类型转换指令:DTR
舍入转换其它REAL到REAL转换指令:ABSNEGR生成数的绝对值对一个实数的取反示例:L
RND+MD10//装载实数(REAL)T//转换为下一个较大的DINT类型的数MD30//将结果传送到MD30中MD22RND+EN
ENOIN
OUTMD30(STL)(LAD)其它实数(wwwR.gEkbApLx.)co操mSIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7示例:在直角坐标系中计算两点间的距离DP1P2X1X2XYY2Y1功能:
FC31
D=
(X2
-
X1)2
+
(Y2
-
Y1)2D练习w3w.w1.SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7距m
离间接寻址器指令L
W[AR1,P#200.0]12----910#Ini_Value#Counter???SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7寻址方式直接寻址间接寻址绝对寻址符号寻址器间接寻址寄存器间接寻址示例:A
I
4.0LIW10A"Mot_on"L
#NumOPN
DB[MW10]SP
T["runtime"]AI[MD30]L
IW["Number"]AI[AR1,P#0.0]L
ID[AR1,P#5.0]A[AR1,P#0.0]T
W[AR1,P#0.0]16位指针(DB,
T,
C)32位指针区域32位指针区域32位指针交叉区域STEP
7址方式SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7变址)地址单元位置(示例)附加宽度含义双字(DBD)双字(DID)双字
(LD)I37.4字节,字,双字输入Q27.7字节,字,双字输出PIB655字节,字,双字外设输入PQB653字节,字,双字外设输出M55.0字节,字,双字位(Bit)器T114--定时器C13--计数器DBXDIXL2001.6
字节(DBB),
字(DBW
通过DB寄存器寻址的数据406.1
字节(DIB),
字(DIW),
通过DI寄存器寻址的数据88.5
字节(LB),
字(LW),
本地数据堆栈SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7打开的数据块在数据块中装载和传递OPN
DB
19OPN
"Values"OPN
DI
20组合指令(包含OPN
D
DB..)L
DBB
1L
DBW
2L
5T
DBW
4L
‘A’L
DIB28==I装载数据字节1装载数据字2(字节2/3)装载数字5传递到字4装载ASCII字符A装载数据字节28比较A
DBX
0.0从0字节的第0位开始扫描L
DB19.DBW4
从DB
19中装载数据字4L
“Values”.Number_1
符号
变量Number_1.
DB19具有变量名“Values”A
DB10.DBX4.7
从DB
10
的第4个字节的第7位开始扫描中地SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7接寻址用于DB寄存器的指令:CDB:交换DB寄存器内容将DB寄存器内容装载到ACCU1中L
DBNO(将打开的DB号装载到ACCU1中)L
DINO
(将打开的DI号装载到ACCU1中)装载数据块长度L
DBLG
(将打开的DB的长度/字节装载到ACCU1中)L
DILG
(将打开的DI的长度/字节装载到ACCU1中)指令执行前:指令执行后:CDB1232424123DB寄存器DI寄存器在程序中分SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7DomB相关信息双字格式的32位指针(用于对I、Q、M...进行寻址)L
P#24.0T MD
50L
IW[MD50]L IW
24地址区域
宽度址字格式的16位指针(用于对DB、T、C进行寻址)L11T
MW
60OPN
DB[MW
60] OPN
DB
11SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7用于器指针结构16位指针的结构:0000000010010010215272000000BBBBBBBBBBBBBBBB为0...65
535
之间的无符号整数32位指针的结构( 区域):31
30
29
28 27
26 25
24
23 22
21
2076
5
4
3
2
1
0字节地址(无符号整数)20
22
20位地址215未定义装载32位指针常量( 区域):L
P#25.3(P=指针,字节地址=25,位地址:3)SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7器
特性用于
16位和32位指针的地址区域:位(Bit)例如:区(绝对寻址或符号寻址)OPN
DB[MW30],OPN
DI[“Motor_1”]等。A
I[MD30],T
QD["Speed_1"],等)本地数据堆栈(绝对寻址或符号寻址,例如:OPN
DB[LW10],OPN
DI[#DB_NO]等。A
I[LD10],T
QD[#Par_Pointer],等。)全局(共享)数据块(只能进行绝对寻址,DB必须预先打开,例如:OPN
DB[DBW0](覆盖掉DB寄存器内容!!!),OPNDI[DBW22]等。A
I[DBD10],TQD[DBD22],等。)背景数据块(只能进行绝对寻址,DI必须预先打开,例如:
OPNDB[DIW20],OPN
DI[DIW0]
(覆盖掉DI寄存器内容!!!),等。A
I[DID10],T
QD[DID22]等。)向FB和FC传递指针的特点在参数里传递的指针不能直接用于器间接寻址。用于
器间接寻址而传递的指针,在之前必须拷贝到临时变量里去SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7间例FC30:间接寻址示例Network(段)
1:使用间接寻址方式打开DBL#dbnumber//将DB号拷贝到MW100TMW
100//OPNDB[MW
100]//打开DBNetwork(段)
2:循环删除P#18.0MD
4010MB
500DBW[MD
40]MD
40P#2.0LTLnext:
TLTLL-DTMD
40L
MB
50LOOP
next//将终端地址(DBW18)作为指针//传送到MD
40;//将循环计数器值设置为10//传到MB
50中;//装载初始值//传到DB50中;//装载指针//并减去2个字节//然后再传回//到MD
40;//装载循环计数器//减去2个字节,条件满足则跳转;SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7Meas_Value[1]Meas_Value[2]Meas_Value[9]Meas_Value[10]Meas_Value[11]#Ini_Value1.02.0----9.010.011.0...等等。DB4104323640#Counter字节地址法m进行循
编SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7练习4.1:用间接程区域接寻址//设置AR1
AR1:00000000
0000
0000
0000
0000
0101
0000+
200L
MW[AR1,P#200.0]区域地址偏移扩展指令:LMW
210宽度寄存器常量AR1或AR2中的区域指针:字节地址(无符号整数)31
30
29
28 27
26 25
24
23 22
21
20
7
6
5
4
3
2
1
00
0
0
0
0
0
0
0
0
0
0
0
0 B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B215
20
22
20位地址未定义则:指令语LAR1
P#10.0SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7交叉区域接寻址P#200.0]+
200地址偏移扩展指令:L IW
210宽度
寄存器常量1
0
0
0
0
R
R
R
0
0
0
0
0 B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
BAR
1或AR
2中的交叉区域指针:31
30
29
28 27
26 25
24
23 22
21
207
6
5
4
3
2
1
0位地址字节地址(无符号整数)Bit31=0:地址标识符区域Bit
31=1:交叉区域地址标识符:000I/O001输入(PII)010输出(PIQ)011位(Bit)器100
DB寄存器中的数据110
自有本地数据101
DB寄存器2中的数据(DI)111
调用块的LD(本地数据)指令语则:LAR1
P#I10.0L
W
[AR1,//设置AR1AR1:
10000001
0000
0000
0000
0000
0101
0000SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7用于装载的指令将ACCU1中的内容装载到ARn将<地址>中的内容装载到ARn将<地址>中的地址装载到ARn装载地址寄存器LARn
(n
=1
or
2):LARn<地址>LARn
P#<地址><地址>:处理器寄存器:32位变量:32位符号变量:(全局和局域的)AR1,AR2
(比如:LAR1
AR2
及LAR2
AR1)MD,LD,DBD,DID
(比如:L
DBD5等)32位全局变量(比如:LAR1“索引”,等)以及OB,FB及FC的TEMP(临时)变量(比如:LAR1#Address,等)P#<地址>指向
型绝对地址指针:指向本地、符号地址En.m,An.m,Mn.m,Ln.m,DBXn.m,DIXn.m(比如:LAR1
P#M5.3,LAR2
P#I3.6,等)OB:TEMP(临时)变量(比如:LAR1P##Par_Pointer,等)FB:IN-,OUT-,INOUT-,STAT-及TEMP-FC:TEMP(临时)变量(LAR1
P##Loop,等)SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7其它用于的指令从Arn传送到ACCU1从Arn传送到<地址>传送出地址寄存器内容TARn
(n
=1
or
2):TARn
<Address><地址>:处理器寄存器:32位绝对地址变量:32位符号变量:(全局和局域的)AR2
(比如:TAR1
AR2
)MDn,LDn,DBDn,DIDn
(如TAR2
MD5等)32位全局变量(比如TAR1“Index”,等)及OB,FB及FC的TEMP(临时)变量(比如TAR1#Address等)地址寄存器内容交换(Swap)指令TAR
将地址寄存器AR1和AR2的内容相互交换地址寄存器加指令
+ARn+ARn
P#n.m将ACCU1-L内容加到ARn将 区域指针P#n.m加到AR1或AR2中去SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7寄存器
特性在STL/LAD/FBD编辑器内使用AR1当
FC中的参数时,如果参数为复杂数据类型(ARRAY、STRUCT、DATE_AND_TIME),则AR1寄存器和DB寄存器内容将会被覆盖掉。当
FB中的INOUT参数时,如果该INOUT参数是复杂数据类型(ARRAY、STRUCT、DATE_AND_TIME),则AR1寄存器和DB寄存器内容将会被覆盖掉。在装载地址寄存器和对目标变量进行寄存器间接寻址的时候,不允许局部参数在STL/LAD/FBD编辑器内使用AR2在对FB
所有参数和静态变量进行寻址的时候,AR2寄存器和DI寄存器均用作基址寄存器。如果用户在FB
将
AR2或DI覆盖了,之后就可以
该FB参数或静态变量。也就是说,未恢复两个寄存器时不可
。在FC内,对AR2寄存器和DI寄存器没有限制SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7#ACCU1#ACCU2Number[1]Number[2]Number[9]Number[10]Number[11]12----91011...等等。DB4204323640字节地址址m进行循
编SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7练习4.2:用寄存程地址 名称0.0
输入参数DB_Num2.0
输入参数Area_Pointer6.0
输入参数Length.
.
.类型
WORDDWORDWORDL#DB_NumT#I_DB_NumOPNDB[I_DB_Num].L#Area_PointerLAR1L#Length...分别传送实际地址的各个信息(STEP
5里的方式):DB号起始地址区域长度,等。缺点:程序员必须进行拆分在调用期间,不能使用实际地址的符号名一个地址(区域)需要好几个参数无一致性检查纠正.
名称输入Measure_1输入Measure_2地址0.0.
.
.8.0.
.
.类型POINTERANYP##Measure_1LLAR1L
W[AR1,P#0.0]T
#I_DB_NumOPN
DB[I_DB_Num]L
D[AR1,P#2.0]LAR1....FC...使用POINTER或ANY类型参数传递(STEP
7方式):调用时,程序员可以使用实际地址的符号名由LAD/FBD/STL编辑器拆分成单个信息一个地址只需要一个参数进行一致性检查纠正POINTER类型和wwwA.gNkbY
数据的块参FC...
数SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7Byte
nByte
n+2Byte
n+4Byte
n+1Byte
n+3Byte
n+5DB号(IN
T)1
O
O
O
_
O
R
R
R
_
O
O
O
O
_
O
B
B
B(32位交叉区域指针)B
B
B
B
_
B
B
B
B _
B
B
B
B
_
BPOINTER类型参数赋值指针显示P#DBn.DBX
x.yP#DIn
.DIX
x.yP#Zx.y其中:n=DB号,x=字节数,y=位数(比如P#DB5.DBX3.4,P#DI2.DIX10.0,等)其中:Z=区域,比如:P,I,Q,M及L(比如P#I5.3,P#M10.0,等)(这种情况下,DB号区域标识符及位地址自动输入到POINTER参数中)地址
:MD30#Motor_on"Motor_1".speed数据类型结构:POINTERPOINTER类w和m
参数赋SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/716#10Data
type系数DB号1
O
O
O
_
O
R
R
R
_
O
O
O
O
_
O
B
B
BB
B
B
B
_
B
B
B
B _
B
B
B
B
_
BANY数据类型指针Byte
nByte
n+2Byte
n+4Byte
n+6Byte
n+8数据类型标识符VOID00BOOL01BYTE02CHAR03WORD04INT05DWORD06DINT07REAL08DATE09TOD0ATIME0BS5TIME0CDT0ESTRING13参数类型标识符BLOCK_FB17BLOCK_FC18BLOCK_DB19BLOCK_SDB1ACOUNTER1CTIMER1DANY参数类型指针Byte
nByte
n+2Byte
n+4Byte
n+6Byte
n+816#10
参数类型16#0
00116#0
00016#0
000定时器,计数器或块的号结构SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7指针显示:P#[数据块.]位地址类型号P#DB10.DBX12.0
REAL
20指向DB10中的一个区域:从Byte
12开始的20个REAL类型的地址(ARRAY[1..20]
OF
REAL)指向IB10里的一个8位区域地址P#I
10.0
BOOL
8:绝对地址:DB5.DBD10数据类型:DWORD,
系数:1DB号:5,指针:P#DB5.DBX10.0类型:WORD,WF:1,DB
号:0,指针:P#I类型:
TIMER,
:35使用基本数据类型,编译器建立正确的数据类型,
系数1以及指针IW3232.0T35符号地址:#Motor_1.speed“Pump”.Start注意事项符号(ARRAY、STRUCT、STRING、UDT)赋值时,数据类型标识符02(BYTE)以及区域字节长度只能由编译器来建立,并输入到ANY指针。数数赋值SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7使用临时变量对ANY数据类型进行实际参数赋值在调用块中例如:tempANY数据类型临时变量aux_pointer
ANY用指针信息对ANY临时变量进行赋值例如://装载辅助指针地址//装载标识符10//并传送到Offset
0LAR1
P##aux_pointerL
B#16#10T LB
[AR1,P#0.0]L
......使用变量辅助指针对ANY
块参数进行赋值例如:CALL
FC111field:=#aux_pointer优点在运行期间,对ANY指针参数进行动态重复赋值类
数m
分配SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7初始值注释地址0.0名称
类型Par
Pointer
ANYinoutin
out0.0tempData
typeBYTE2.0tempWFWORD4.0tempDB
NrWORD6.0tempArea_PointerDWORDNetwork
1:创建数据类型、系数、DB号及区域指针P##Par_Pointer//将#Pointer地址装载到ACCU1//并从ACCU1中将其装载到AR1;//从指针创建数据类型//并装载到临时变量中;LLAR1LTLB
[AR1,P#1.0]#Data_typeW
[AR1,P#2.0]//
建立
系数//并装载到临时变量中;//
建立DB号//并装载到临时变量中;TLTLTWFW
[AR1,P#4.0]#DB_NrD
[AR1,P#6.0]#Area_Pointer//
建立区域指针//
并装载到临时变量中;评估AwwNw.Y传递SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7FC
43ENENOMeasured_values
SumMean_value名称
类型输入参数Measured_values
ANY输出参数Sum输出参数Mean_valueREALREALDB43103.452086.51.7895........P#DB43.DBX0.0
REAL
8名称类型STRUCTMeasurementARRAY[1..8]REALEND_STRUCT平均值的功SIMATIC
S7SITRAIN
TrainingforAutomation
and
DrivesDate:2011/9/7练习4.3:用于求能STEP
7wSIMATIC
S7SITRAIN
Training
forAutomation
and
DrivesDate:201和m
变量数据类型描述了数据基本特性连续区域:例如:实际速度“是/非”特性:例如:扰动,等等。)数据类型建立:允许范围(INT:-32
768
...允许使用的指令(算术指令:+,-等。)器中位的表示方法抽象出的数据类型变量可以保存并在以后继续处理数值Actual_speed:
REAL扰动:
BOOLSet_speed:REAL使能:
BOOL变量及含义SIMATIC
S7SITRAIN
Training
forAutomation
and
DrivesDate:2011/9/7变量 确定变量的如下特性:符号名数据类型有效范围类型变量可以:表中进行在全局符号表中(基本数据类型)在全局数据块的(所有数据类型)在逻辑块的 表中进行(OB,FB和FC)变量特的Meas_point[1]:
RealMeas_point[2]:
RealMeas_point[3]:
RealMeas_point[10]:
RealMeas_point:
ARRAY[1..10]SIMATIC
S7SITRAIN
Training
forAutomation
and
DrivesDate:2011/9/7基本数据类型(最长32位)复杂数据类型(长度大于32位)用户自定义数据类型(长度大于32位)位(Bit)数据类型(BOOL,BYTE,WORD,
DWORD,
CHAR)算术数据类型(INT,DINT,REAL)时间数据类型(S5TIME,TIME,DATE,TIME_OF_DAY)时间型(DATE_AND_TIME)数组型(ARRAY)结构型(STRUCT)字符串型(STRING)UDT数据类型(用户自定义型)STEPwwSIMATIC
S7SITRAIN
Training
forAutomation
and
DrivesDate:2011/9/7概述长度(单位:位)BOOLBYTEWORDDWORDCHARINTDINTREALS5TIMETIMEDATETIME-OF-DAY3216321632关键字类型常数示例1或0B#16#A9W#16#12AFDW#16#ADAC1EF5'w'12365539或L#-11.2或34.5E-12S5T#5s_200msT#2D_1H_3M_45S_12MSD#1999-06-14TOD#12:23:45.12STEP
7SIMATIC
S7SITRAIN
Training
forAutomation
and
DrivesDate:2011/9/7据类型复杂数重要性Set_speed:REALActual_speed:REALEnable:BOOLDisturbance:BOOLMotor:
STRUCTEND_STRUCT“更好地”构造数据:适合于任务具有“适当的”数据类型在块调用中数据传输的精简形式:一个参数传送“多个”数据项使结构化编程成为可能仅通过参数便实现块间“通信”可重用性..CALL
#ControllerMotor:="Hall_1".M5.
.
.....A
#Motor.Enable..in
Drive
UDT1out
...
...stat
Control.
FB1in
Motor
UDT1out
...
...SIMATIC
S7SITRAIN
Training
forAutomation
and
DrivesDate:2011/9/7DATE_AND_TIME(日期和时间)STRING(字符串,最多254个字符)ARRAY(相同数据类型一组元素的集合)STRUCT(结构,不同数据类型一组元素的集合)UDT(用户自定义类型=由基本数据类型和/或复杂数据类型组成的“模板”)648
*
(字符数+2)用户自己定义用户自己定义用户自己定义关键字长度(位)
示例DT#99-06-14-12:14:55.0´This
is
a
string´´
´Meas_vals:
ARRAY[1..20]INTMotor:
STRUCTSpeed:
INTCurrent:
REALEND_STRUCTUDT
作为块UDT
作为数组元素Drive:
ARRAY[1..4]UDT1STRUCTSpeed:
INTCurrent:
REALEND_STRUCTSTEP
7SIMATIC
S7SITRAIN
Training
forAutomation
and
DrivesDate:2011/9/7据类型长度(位)TIMERCOUNTERBLOCK_FBBLOCK_FCBLOCK_DBBLOCK_SDBPointerANY1616164880关键字示例Contact
time:
TIMER.SI
#Contact_timepParts:
COUNTER.LC
p_PartsRecall:
BLOCK_FB.UC
#RecallMeasure:
POINTER.L
P##Measure.Measured
Values:
ANY.L
P##Meas_Values.STwEwPw.g7SIMATIC
S7SITRAIN
Training
forAutomation
and
DrivesDate:2011/9/7型变量域数据块DBxDByDBz.
..位(Bit)
器PIQPIII/O
区域(P)本地数据堆栈“传统“PLC区域SIMATIC
S7SITRAIN
Training
forAutomation
and
DrivesDate:2011/9/7本地数作方式为组织块
OB1分配L
Stack如:256个字节OB1FB1FC5FC1012345..CALL
FB1....CALL
FC10..CA..LL
FC5..6LD
for
OB1LD
for
OB11LD
for
FB12循环开始LD
for
OB13
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年云南经济管理学院高职单招职业适应性考试备考试题带答案解析
- 2026年石家庄经济职业学院单招职业技能笔试备考题库带答案解析
- 2026年湖南三一工业职业技术学院单招职业技能笔试备考试题带答案解析
- 2026年上海师范大学天华学院单招综合素质考试参考题库附答案详解
- 2026年青岛电影学院单招职业技能笔试模拟试题带答案解析
- 2025年视传面试笔试及答案
- 2025年宿迁事业单位招聘考试题及答案
- 第四章光现象第节光的反射课件人教版八年级物理上册
- 剪纸(课件)-三年级下册数学人教版
- 安全绩效考核培训心得课件
- 2026年七年级历史上册期末考试试卷及答案(共六套)
- 2025年全载录丨Xsignal 全球AI应用行业年度报告-
- 资产评估期末试题及答案
- 2025年内科医师定期考核模拟试题及答案
- 郑州大学《大学英语》2023-2024学年第一学期期末试卷
- 校企合作工作室规范管理手册
- 2025年农业农村部科技发展中心招聘备考题库及1套参考答案详解
- 2025年南阳科技职业学院单招职业适应性考试模拟测试卷附答案
- 毛泽东思想和中国特色社会主义理论体系概论+2025秋+试题1
- 2025年10月自考13532法律职业伦理试题及答案
- 高中数学拔尖创新人才培养课程体系建构与实施
评论
0/150
提交评论