西门子s7-300手册集-400高级编程培训_第1页
西门子s7-300手册集-400高级编程培训_第2页
西门子s7-300手册集-400高级编程培训_第3页
西门子s7-300手册集-400高级编程培训_第4页
西门子s7-300手册集-400高级编程培训_第5页
免费预览已结束,剩余379页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

累加器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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论