好文档 - 专业文书写作范文服务资料分享网站

S7-300和S7-400寻址

天下 分享 时间: 加入收藏 我要投稿 点赞

SD T[MW0] //T1开始计时 // 上述指令可等同于: A I0.0 L S5T#10S SD T1

//用于打开DB块 L 20 T LW20

OPN DB[LW20] //打开DB20

//程序调用 L 2 T LW20

UC FC[LW20] //调用FC2 L 41 T DBW30

UC FB[DBW30] //调用FB41

?32位指针:32位地址指针用于I、Q、M、L、数据块等存储器中位、字节、字及双字的寻址,32位的地址指针可以使用一个双字表示,第0位~第2位作为寻址操作的位地址,第3位~第18位作为寻址操作的字节地址,第19位~第31位没有定义,32位指针的格式如下:

图 2

存储器32指针仅用于内部区域寻址。

寻址格式表示为: 地址存储器标识符 [ 32位地址指针 ]

例如写入一个M的双字表示为: T MD [ LD0 ]

‘MD’为区域标识符及访问宽度,而LD0为一个32位指针。

32位内部区域指针可用常数表示, 表示为P# 字节.位 。如常数 P# 10.3

为指向第10个字节第3位的指针常数。

若把一个32位整型转换为字节指针常数,从上述指针格式可以看出,应要把该数左移3位(或是乘8)即可。

如: L L#100 //Accu0装入32位整形100

SLD 3 //左移3位

T LD0 //LD0得到P#100.0指针常数

32位存储器间接寻址举例:

//DB块间接寻址举例

OPN DB 1 //打开DB1。

OPN DI 3 //打开DB3,最多可以同时打开两个DB块。 L 4 //装载4到累加器1中。 SLD 3 //累加器1中数值左移3位。

T MD 20 //将逻辑操作结果传送到MD20中,MD20 //包含地址指针为P#4.0。 L P#20.0 //将地址指针P#20.0装载到MD24中。 T MD 24

L 320 //320转换指针为P#40.0并装载到MD28中。 T MD 28

L DBW [MD 20] //装载DB1.DBW4。 L DBW [MD 24] //装载DB1.DBW20。 +I //相加

L DIW [MD 28] //装载DB3.DBW40。 -I //相减。

T DIW 2 //将运算结果传送到DB3.DBW2中。 JZ m1

//M存储器连续区域操作

L 0 //初始化MW100和MD4。 T MW 100 T MD 4

OPN DB 1 //打开DB1。

L 100 //循环操作的次数,100次。

NEXT: T MW 100 //将循环100次装载到MW100中,固定格

式。 L MW 2 //进行比较的数值存储于MW2。 L DBW [MD 4] //与DB块中存储的值进行比较,开始地址为DBW0。 ==I //如果数值相等跳到m1。 JC m1

L MD 4 //将地址指针加2(每个相邻的字地址相差2)。 L P#2.0 +D

T MD 4

L MW 100 //次数减1,跳回next,如果MW100等于0,跳 LOOP NEXT //出循环操作LOOP指令,LOOP指令固定格式。 m1: FP M 10.0 //如果数值相当,记录MD4指针的数据,将转换为数组

JCN m2 //的位置((地址值/P#2.0)+1)值存储于MD8中。 L MD 4 L P#2.0 /D + L#1

T MD 8 m2: NOP 0

2.2.2寄存器间接寻址

通过CPU的地址寄存器AR1和AR2寻址方式称为寄存器间接寻址,分为内部区域间接寻址和交叉区域寻址。使用寄存器间接寻址方式的程序语句包含以下部分:

指令,地址标识符,地址寄存器标识符,偏移量

AR1,AR2均为32位寄存器,寄存器间接寻址只使用32位指针。 与ARx相关的指令有:

LAR1, LAR2, TAR1, TAR2, +AR1, +AR2, LAR1 AR2, CAR等。

以上指令使用请参考手册:开始 -> (所有)程序 -> SIMATIC -> Documentation -> English -> STEP 7 – Statement List for S7-300 and S7-400。 或点击下载该手册中文版

S7-300和S7-400寻址

SDT[MW0]//T1开始计时//上述指令可等同于:AI0.0LS5T#10SSDT1//用于打开DB块L20TLW20OPNDB[LW20]//打开DB20//程序调用L2TLW20
推荐度:
点击下载文档文档为doc格式
2n4455r1fy38gus0yjra
领取福利

微信扫码领取福利

微信扫码分享