S7-300编程语言与指令系统
(2)BLOCK(块):指定一个块用作输入和输出,实参应为同类型的块。 (3)POINTER(指针):6字节指针类型,用来传递DB的块号和数据地址。
(3)ANY:10字节指针类型,用来传递DB块号、数据地址、数据数量以及数据类型。
PLC用户存储区的分类及功能
指令操作数
指令操作数(又称编程元件)一般在用户存储区中,操作数由操作标识符和参数组成。操作标识符由主标识符和辅助标识符组成,主标识符用来指定操作数所使用的存储区类型,辅助标识符则用来指定操作数的单位(如:位、
第5页 共35页
S7-300编程语言与指令系统
字节、字、双字等)。
主标识符有:I(输入过程映像寄存器、Q(输出过程映像寄存器)、M(位存储器)、PI(外部输入寄存器)、PQ(外部输出寄存器)、T(定时器)、C(计数器)、DB(数据块寄存器)和L(本地数据寄存器);
辅助标识符有:X(位)、B(字节)、W(字或2B)、D(2DW或4B)。
寻址方式
所谓寻址方式就是指令执行时获取操作数的方式,可以直接或间接方式给出操作数。S7-300有4种寻址方式:
? 立即寻址
? 存储器直接寻址 ? 存储器间接寻址 ? 寄存器间接寻址
1.立即寻址
立即寻址是对常数或常量的寻址方式,其特点是操作数直接表示在指令中,或以惟一形式隐含在指令中。下面各条指令操作数均采用了立即寻址方式,其中“//”后面的内容为指令的注释部分,对指令没有任何影响。
2.存储器直接寻址
存储器直接寻址,简称直接寻址。该寻址方式在指令中直接给出操作数的存储单元地址。存储单元地址可用符号地址(如SB1、KM等)或绝对地址(如I0.0、Q4.1等)。下面各
条指令操作数均采用了直接寻址方式。
3.存储器间接寻址(1/3)
存储器间接寻址,简称间接寻址。该寻址方式在指令中以存储器的形式给出操作数所在存储器单元的地址,也就是说该存储器的内容是操作数所在存储器单元的地址。该存储器一般称为地址指针,在指令中需写在方括号“[]”内。地址指针可以是字或双字,对于地址范围小于65535的存储器可以
用字指针;对于其他存储器则要使用双字指针。
【例4-3-1】 存储器间接寻址的单字格式的指针寻址。
存储器间接寻址的双字指针的格式如图所示。位序312423 位序3124231616151587807 0000 00000000 00000000 0bbb0000 0bbbbbbb bbbbbbbb bbbbbbbb bxxx第6页 共35页
说明:位0~2(xxx)为被寻址地址中位的编号(0~7)说明:位0~2(xxx)为被寻址地址中位的编号(0~7)位3~8为被寻址地址的字节的编号(0~65535)位3~8为被寻址地址的字节的编号(0~65535)
S7-300编程语言与指令系统
【例4-3-2】 存储器间接寻址的双字格式的指针寻址。
5.寄存器间接寻址
寄存器间接寻址,简称寄存器寻址。该寻址方式在指令中通过地址寄存器和偏移量间接获取操作数,其中的地址寄存器及偏移量必须写在方括号“[]”内。在S7-300中有两个地址寄存器AR1和AR2,用地址寄存器的内容加上偏移量形成地址指针,并指向操作数所在的存储器单元。地址寄存器的地址指针有两种格式,其长度均为双字,指针格式如图所示。 位序31231615807位序31242423151687 0x000 0 r r rx000 0 r r r0000 0bbbbbbb bbbb0000 0bbbbbbb bxxxbbbb bbbb说明:位0~2(xxx)为被寻址地址中位的编号(0~7)说明:位0~2(xxx)为被寻址地址中位的编号(0~7)位3~8为被寻址地址的字节的编号(0~65535)位24~26(rrr)为被寻址地址的区域标识号位3~8为被寻址地址的字节的编号(0~65535)位31的x=0为区域内的间接寻址,x=1为区域间的间接寻址位24~26(rrr)为被寻址地址的区域标识号位31的x=0为区域内的间接寻址,x=1为区域间的间接寻址
第一种地址指针格式适用于在确定的存储区内寻址,即区内寄存器间接寻址。
【例4-3-3】 区内寄存器间接寻址。
第二种地址指针格式适用于区域间寄存器间接寻址。 【例4-3-4】 区域间寄存器间接寻址。
第7页 共35页
S7-300编程语言与指令系统
第一种地址指针格式包括被寻址数据所在存储单元地址的字节编号和位编号,至于对哪个存储区寻址,则必须在指令中明确给出。这种格式适用于在确定的存储区内寻址,即区内寄存器间接寻址。
第二种地址指针格式包含了数据所在存储区的说明位(存储区域标识位),可通过改变标识位实现跨区域寻址,区域标识由位26~24确定。这种指针格式适用于区域间寄存器间接寻址。
状态字
状态字用于表示CPU执行指令时所具有的状态信息。
? 首位检测位(FC) 逻辑操作结果(RLO) 状态位(STA) 或位(OR)
? 溢出位(OV) 溢出状态保持位(OS) 条件码1(CC1)和条件码0(CC0) 二进制结果位(BR)
位逻辑指令
位逻辑指令处理的对象为二进制位信号。位逻辑指令扫描信号状态“1”和“0”位,并根据布尔逻辑对它们进行组合,所产生的结果(“1”或“0”)称为逻辑运算结果,存储在状态字的“RLO”中。
常闭触点
常闭触点(动断触点)则对“0”扫描相应操作数。在PLC中规定:若操作数是“1”则常闭触点“动作”,即触点“断开”;若操作数是“0”,则常闭触点“复位”,即触点仍保持闭合。
常闭触点所使用的操作数是:I、Q、M、L、D、T、C。 输出线圈(赋值指令)
输出线圈与继电器控制电路中的线圈一样,如果有电流(信号流)流过线圈(RLO=“1”),则被驱动的操作数置“1”;如果没有电流流过线圈(RLO=“0”),则被驱动的操作数复位(置“0”)。输出线圈只能出现在梯形图逻辑串的最右边。
输出线圈等同于STL程序中的赋值指令(用等于号“=”表示),所使用的操作数可以是:Q、M、L、D。
中间输出
在梯形图设计时,如果一个逻辑串很长不便于编辑时,可以将逻辑串分成几个段,前一段的逻辑运算结果
第8页 共35页

