码迷,mamicode.com
首页 > 其他好文 > 详细

西门子PLC学习笔记六-(Step7指令简介)

时间:2014-09-29 13:18:20      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:plc   s7-300   西门子   

1.指令操作数

指令操作数由操作标示符和参数组成。操作标识符由主标识符和辅标识符组成。

主标识符有:I(输入过程影像寄存器)、Q(输出过程映像寄存器)、M(位寄存器)、PI(外部输入寄存器)、PQ(外部输出寄存器)、T(定时器)、C(计数器)、DB(数据块寄存器)、L(本地数据寄存器)

辅助标识符有:X(位)、B(字节)、W(字或2B)、D(2DW或4B)

详细介绍可以参看下图:

bubuko.com,布布扣

bubuko.com,布布扣

2.寻址方式

S7-300的4种寻址方式有:

1)立即寻址

立即寻址是对常数或常量的寻址方式。例子如下:

L66 				//表示把常数66装入累加器1中
AW W#16#168 	//将16进制数168与累加器1的低字进行“与”运算
SET				//默认操作数为RLC,该指令实现对RLO置“1”操作

2)存储器直接寻址

直接寻址指在指令中直接给出操作数单元地址。存储单元地址可用符号地址(如“sb1_start”等)或绝对地址(如“I0.0"、"Q4.1”等)。例子如下:

A I0.0 //对输入位I0.0执行逻辑“与”运算
= Q4.1 //将逻辑运算结果送给输出继电器Q4.1
L MW2 //将存储字MW2的内容装入累加器1
T DBW4 //将累加器1低字中的内容传送给数据字DBW4

3)存储器间接寻址

间接寻址指:在指令中以存储器的形式给出操作数所在存储单元的地址。在指令中一般写在“[]”中,采用地址指针,地址指针在地址范围小于65535的存储器中可以使用字指针;而其他的存储器则需要使用双字指针。例如:

A.存储器地址单字节地址指针寻址

OPN DB[MW0] //打开数据块,若MW0为1,则就是打开DB2.MW0的改变,则打开的数据块儿也改变
B.存储器地址双字节地址指针寻址

bubuko.com,布布扣

L P#8.7 //把指针值装载到累加器

//P#8.7的指针值为:2#0000_0000_0000_0000_0000_0000_0100_0111

T [MD2] //把指针值送到MD2

A I[MD2] //查询I8.7的信号状态

= Q[MD2} //给出输出位Q8.7赋值

4)寄存器间接寻址

寄存器间接寻址指通过地址寄存器和偏移量间接获取操作数,地址寄存器和偏移量需写在“[]”中。S7-300中有两个地址寄存器AR1、AR2。

地址寄存器地址有两种格式,其长度均为双字,格式如下:

bubuko.com,布布扣

位24~26 地址指针区域标识位的含义:

bubuko.com,布布扣

A.区内寄存器间接寻址

该寻址对于哪个存储区寻址需明确给出。

L	P#3.2	//将间接寻址的指针装入累加器1
			//P#3.2的指针值为:2#0000_0000_0000_0000_0000_0000_0001_1010
LAR1        //将累加器1的内容送入地址寄存器AR1
			//AR1的指针值为:2#0000_0000_0000_0000_0000_0000_0001_1010
A 	I[AR1,P#5.4]	//P#5.4的指针值为:2#0000_0000_0000_0000_0000_0000_0010_1100
				//AR1与偏移量相加结果:2#0000_0000_0000_0000_0000_0000_0100_0110
				//对输入位I8.6进行逻辑“与”操作
=	Q[AR1,P#1.6] //P#1.6的指针值为:2#0000_0000_0000_0000_0000_0000_0000_1110
				//AR1与偏移量相加结果:2#0000_0000_0000_0000_0000_0010_1000
				//对输出位Q5.0进行赋值操作
B.区域间寄存器间接寻址

该选择通过区域标识位26~24位确定。

L	P#I8.7	//把指针值及存储区域标识装载到累加器1
			//P#I8.7的指针值为:2#1000_0001_0000_0000_0000_0000_0100_0111
LAR1		//把存储区域I和地址8.7装载到AR1
L	P#Q8.7	//把指针值和地址标识符装载到累加器1
		//P#Q8.7的指针值:2#1000_0010_0000_0000_0000_0000_0100_0111
LAR2		//把存储区域Q和地址8.7装载到AR2
A	[AR1,P#0.0]	//查询输入位I8.7的信号状态(偏移量0.0不起作用)
=	[AR2,P#1.2]	//输出位Q10.1赋值
3.CPU中的寄存器

1)累加器(ACCUx)

累加器用于处理字节、字、双字寄存器。S7-300有2个32位累加器(ACCU1、ACCU2)。S7-400有4个32位的累加器(ACCU1~ACCU4)。数据放在累加器的低位(右对齐)。

2)状态字

bubuko.com,布布扣


西门子PLC学习笔记六-(Step7指令简介)

标签:plc   s7-300   西门子   

原文地址:http://blog.csdn.net/fengshuiyue/article/details/39665421

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!