西门子S7-300系列基本指令系统_第1页
西门子S7-300系列基本指令系统_第2页
西门子S7-300系列基本指令系统_第3页
西门子S7-300系列基本指令系统_第4页
西门子S7-300系列基本指令系统_第5页
已阅读5页,还剩236页未读 继续免费阅读

下载本文档

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

文档简介

1、第4章西门子S7-300系列PLC根本指令系统4.1 指令及其结构4.2 位逻辑指令4.3 定时器与计数器指令4.4 数据处理功能指令4.5 数据运算指令4.6 控制指令思考与练习题4.1 指令及其结构4.1.1 指令的组成 1. 语句指令 一条指令由一个操作码和一个操作数组成,操作数由标识符和参数组成。操作码定义要执行的功能,它告诉CPU该做什么;操作数为执行该操作所需要的信息,它告诉CPU用什么去做。例如:该指令是一条位逻辑操作指令,其中:“A是操作码,它表示执行“与操作;“I 1.0是操作数,它指出这是对输入继电器进行的操作。 有些语句指令不带操作数。它们操作的对象是惟一的,故为简便起见

2、,不再特别说明。例如:NOT是对逻辑操作结果(RLO)取反。 2. 梯形逻辑指令 梯形逻辑指令用图形元素表示PLC要完成操作。在梯形逻辑指令中,其操作码是用图素表示的,该图素形象说明CPU做什么,其操作数的表示方法与语句指令相同。如: ( )该指令中:( )可认为是操作码,表示一个二进制赋值操作。是操作数,表示赋值的对象。 梯形逻辑指令也可不带操作数。如: |NOT|是对逻辑操作结果取反的操作。4.1.2 操作数 1. 标识符及表示参数 一般情况下,指令的操作数在PLC的存储器中,此时操作数由操作数标识符和参数组成。操作数标识符告诉处理器操作数放在存储器的哪个区域及操作数位数;标识参数那么进一

3、步说明操作数在该存储区域内的具体位置。 操作数标识符由主标识符和辅助标识符组成。主标识符表示操作数所在的存储区,辅助标识符进一步说明操作数的位数长度。假设没有辅助标识符指操作数的位数是一位。 主标识符有:I(输入过程映像存储区),Q(输出过程映象存储区),M(位存储区),PI(外部输入),PQ(外部输入),T(定时器),C(计数器),DB(数据块),L(本地数据);辅助标识符有:X(位),B(字节),W(字2字节),D(双字4字节)。 PLC物理存储器是以字节为单位的,所以存储单元规定为字节单元。位地址参数用一个点与字节地址分开。如: 当操作数长度是字或双字时,标识符后给出的标识参数是字或双字

4、内的最低字节单元号。图给出了字节、字、双字的相互关系及表示方法。当使用宽度为字或双字的地址时,应保证没有生成任何重叠的字节分配,以免造成数据读写错误。图4.1 以字节单元为基准标记存储器存储单元位存储区M表4.1 存储区及其功能 表4.1 存储区及其功能 2. 操作数的表示法 在STEP7中,操作数有两种表示方法:一是物理地址(绝对地址)表示法;二是符号地址表示法。为一个物理地址定义有意义的符号名,可使程序的可读性增强,降低编程时由于笔误而造成的程序错误。 用物理地址表示操作数时,要明确指出操作数的所在存储区,该操作数的位数具体位置。例如:是用物理地址表示的操作数,其中Q表示这是一个在输出过程

5、映像区中的输出位,具体位置是第四个字节的第0位。 STEP7 允许用符号地址表示操作数,如可用符号名MOTOR_ON替代表示,符号名必须先定义后使用,而且符号名必须是惟一的,不能重名。定义符号时,需要指明操作数所在的存储区,操作数的位数、具体位置及数据类型。4.1.3 寻址方式 操作数是指令的操作或运算对象。所谓寻址方式是指令得到操作数的方式,可以直接给出或间接给出。可用作STEP7指令操作对象的有:常数;S7状态字中的状态位;S7的各种存放器、数据块;功能块FB,FC和系统功能块SFB,SFC;S7的各存储区中的单元。 S7有四种寻址方式,它们分别是:立即寻址、存储器直接寻址、存储器间接寻址

6、和存放器间接寻址。 1. 立即寻址 这是对常数或常量的寻址方式。操作数本身直接包含在指令中。有些指令中的操作数是惟一的,为方便起见不再在指令中特别写出。下面是立即寻址的例子:SET /把RLO置1OW W#16#A320 /将常量W#16#A320与累加器1“或运算L 27 /把整数27装入累加器1L ABCD /把ASCII码字符ABCD装入累加器1L C#0100 /把BCD码常数0100装入累加器1 2. 直接寻址 包括对存放器和存储器的直接寻址。在直接寻址的指令中,直接给出操作数的存储单元地址。例如:A I 0.0 /对输入位进行“与逻辑操作S L 20.0 /把本地数据位置1= M

7、115.4 /使存储区位的内容等于RLO的内容L IB 10 /把输入字节IB 10的内容装入累加器1T DBD 12 /把累加器1中的内容传送给数据双字DBD 12中 3. 存储器间接寻址 在存储器间接寻址的指令中,给出一个存储器(必须是表中的存储器),该存储器的内容是操作数所在存储单元的地址,该地址又被称为地址指针。存储器间接寻址方式的优点是,当程序执行时,能改变操作数的存储器地址,这对程序中的循环尤为重要。以下是使用存储器双字指针间接寻址的例子: A IMD 2 /对由MD 2指出的输入位进行“与逻辑操作。如:MD 2的值为 /2#0000 0000 0000 0000 0000 000

8、0 0101 0110,那么是对进行“与操作。 = DIXDBD 2 /将RLO赋值给数据位,具体数据由数据双字DBD 2指出。 L IBDID 4 /将由数据双字DID 4指出的输入字节装入累加器1。如:DID 4的值为2#0000 0000 0000 0000 0000 0000 / 0101 0000,那么是对IB 10进行装入操作。 O QLD 3 /对由本地数据双字指出的输出位进行“或逻辑操作。 依据要描述的地址复杂程度,地址指针可以是字或双字的,存储指针的存储器大小也应是字的或双字的,由于定时器(T)、计数器(C)、数据块(DB)、功能块(FB或FC)的编号范围在0到65 535之

9、内,所以用字指针就足够了,相应的也只需字存储器存储指针。其它的地址,如:输入位、输出位,那么要用到双字指针,并用双字存储器存储指针。指针的两种格式如下图。如果要用双字格式的指针访问一个字、字节或双字存储器,必须保证指针中的位编号为0。图4.2 存储器间接寻址的指针格式位3至18(范围0至65535):被寻址字节的字节编号 位0至2(范围0至7):被寻址位的位编号下面的例子显示如何产生字或双字指针并用其寻址:L +5 /将整数+5装入累加器1T MW 2 /将累加器1的内容传送给存储字MW 2,此时MW 2的内容为5OPN DBMW 2 /翻开由MW 2指出的数据块,即,翻开数据块5L P#8.

10、7 /将2#0000 0000 0000 0000 0000 0000 0100 0111(二进制数)装入累加器1T MD 2 /将累加器1的内容传送给存储字MD 2,此时MD 2的内容为/2#0000 0000 0000 0000 0000 0000 0100 0111L P#4.0 /将2#0000 0000 0000 0000 0000 0000 0010 0000装入累加器1,累/加器1原内容被装入累加器2+I /将累加器1和累加器2内容相加,在累加器1中得到的“和为 /2#0000 0000 0000 0000 0000 0000 0110 0111T MD 4 /将累加器1的当前内

11、容传送给存储字MD 4A IMD 2 /对输入位进行“与逻辑操作= QMD 4 /将RLO赋值给输出位 4. 存放器间接寻址 在S7中有两个地址存放器,它们是AR1和AR2。通过地址存放器,可以对各存储区的存储器内容实现存放器间接寻址。地址存放器的内容加上偏移量形成地址指针,该指针指向数值所在的存储单元。 地址存放器存储的地址指针有两种格式,其长度均为双字。图给出了这两种格式的细节及其差异。其中,第一种地址指针格式包括被寻址数值所在存储单元地址的字节编号和位编号,至于对哪个存储区寻址,那么必须在指令中明确直接给出。这种指针格式适用于在确定的存储区内寻址,即区内存放器间接寻址。而第二种地址指针格

12、式中还包含了数值所在存储区的说明位(存储区域标志位),这样,就可通过改变这些位,实现跨区寻址,这种指针格式用于区域间存放器间接寻址。区域标识位的组合状态见表。图4.3 存放器间接寻址的指针格式31 24 23 16 15 8 7 0位31=0表明是区域内寄存器间接寻址;=1表明是区域间寄存器间接寻址。位24、25和26(r r r):区域标识(见表3.2)位3至18(bbbb bbbb bbbb bbbb):被寻址位的字节编号(范围0至65535)位0至2():被寻址的位编号(范围0至7)表4.2 地址指针区域标识位含义 如果要用到存放器指针格式访问一个字节、字或双字,那么必须保证指针中位地址

13、编号为0。下面的例子分别说明如何使用这两种指针格式实现间接寻址:L P#8.6 /将2#0000 0000 0000 0000 0000 0000 0100 0110装入累加器1LAR1 /将累加器1的内容传送至地址存放器1A IAR1,P#0.0 /地址存放器1加偏移量结果为2#0000 0000 0000 0000 / / / 0000 0000 0100 0110,指明是对输入位进行“与操作= QAR1,P#4.1 /地址存放器1加偏移量结果为2#0000 0000 0000 0000 / / / 0000 0000 01100111,指明对输出位进行赋值操作L P#8.0 /将2#00

14、00 0000 0000 0000 0000 0000 0100 0000装入累加器1LAR2 /将累加器1的内容传送至地址存放器2L IBAR2,P#2.0 /将输入字节IB 10的内容装入累加器1T MWAR2,P#200.0 /将累加器1的内容传送至存储字MW 208L P#I8.7 /将2#1000 0001 0000 0000 0000 0000 0100 0111装入累加器1LAR1 /将累加器1的内容传送至地址存放器1L P#Q8.7 /将2#1000 0010 0000 0000 0000 0000 0100 0111装入累加器1LAR2 /将累加器1的内容传送至地址存放器2A

15、 AR1,P#0.0 /对输入位进行“与逻辑操作= AR2,P#1.1 /赋值给输出位Q10.0 L P#I8.0 /将输入位的双字指针装入累加器1LAR2 /将累加器1的内容传送至地址存放器2L P#M8.0 /将存储位的双字指针装入累加器1LAR1 /将累加器1的内容传送至地址存放器1L BAR2,P#2.0 /把输入字节IB 10装入累加器1,输入字节10为8(AR2)加2(偏移量)T DAR1,P#56.0 /把存储双字MD 64装入累加器1,存储双字64为8(AR1)/加56(偏移量)4.1.4 状态字 状态字用于表示CPU执行指令时所具有的状态。一些指令是否执行或以何方式执行可能取

16、决于状态字中的某些位;执行指令时也可能改变状态字中的某些位;你也能在位逻辑指令或字逻辑指令中访问并检测它们。图显示了状态字的结构。图4.4 状态字的结构15 9 8 7 6 5 4 3 2 1 0 (1)首次检测位(FC) 状态字的位0称为首次检测位。若FC位的状态为0,则表明一个梯形逻辑网络的开始,或指令为逻辑串第一条指令。CPU对逻辑串第一条指令的检测(称为首次检测)产生的结果直接保存在状态字的RLO位中,经过首次检测存放在RLO中的0或1被称为首次检测结果。FC位在逻辑串的开始时总是0,在逻辑串指令执行过程中FC位为1,输出指令或与逻辑运算有关的转移指令(表示一个逻辑串结束的指令)将FC

17、清0。 (2)逻辑操作结果(RLO) 状态字的位1称为逻辑操作结果RLO(Result of Logic Operation)。该位存储位逻辑指令或算术比较指令的结果。在逻辑串中,RLO位的状态能够表示有关信号流的信息。RLO的状态为1,表示有信号流(通);为0,表示无信号流(断)。可用RLO触发跳转指令。 (3)状态位(STA) 状态字的位2称为状态位。状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。如果一条指令是对存储区操作的位逻辑指令,那么无论是对该位的读与写操作,STA总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA没有意义,此时它总被置为1。 (4)或位(O

18、R) 状态字的位3称为或位(OR)。在先逻辑“与后逻辑“或的逻辑串中,OR位暂存逻辑“与的操作结果,以便进行后面的逻辑“或运算。其它指令将OR位清0。 (5)溢出位(OV) 状态字的位4称为溢出位,溢出位被置1,说明一个算术运算或浮点数比较指令执行时出现错误(错误:溢出、非法操作、不标准格式)。后面的算术运算或浮点数比较指令执行结果正常的话OV位就被清0。 (6)溢出状态保持位(OS) 状态字的位5称为溢出状态保持位(或称为存储溢出位)。OV被置1时OS也被置1;OV被清0时OS仍保持。所以它保存了OV位,可用于指明在先前的一些指令执行中是否产生过错误。只有下面的指令才能复位OS位:JOS(O

19、S=1时跳转);块调用指令和块结束指令。 (7)条件码1(CC1)和条件码0(CC0) 状态字的位7和位6称为条件码1和条件码0。这两位结合起来用于表示在累加器1中产生的算术运算或逻辑运算结果与0的大小关系;比较指令的执行结果或移位指令的移出位状态。详见表和表。表4.3 算术运算后的CC1和CC0表4.4 比较、移位和循环移位、字逻辑指令后的CC1和CC0 (8)二进制结果位(BR) 状态字的位8称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确(异常)。将BR位参加程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。在LAD的

20、方块指令中,BR位与ENO有对应关系,用于说明方块指令是否被正确执行:如果执行出现了错误,BR位为0,ENO也为0;如果功能被正确执行,BR位为1,ENO也为1。 在用户编写的FB和FC程序中,必须对BR位进行管理,当功能块正确运行后使BR位为1,否那么使其为0。使用STL指令SAVE或LAD指令(SAVE),可将RLO存入BR中,从而到达管理BR位的目的。当FB或FC执行无错误时,使RLO为1并存入BR,否那么,在BR中存入0。4.2 位逻辑指令 位逻辑指令主要包括位逻辑运算指令、位操作指令和位测试指令,它们可以对布尔操作数(BOOL)的信号映态扫描并完成逻辑操作。逻辑操作结果(RLO)用以

21、赋值、置位、复位布尔操作数,也控制定时器和计数器的运行。4.2.1 位逻辑运算指令 位逻辑运算指令是“与(AND)、“或(OR)、“异或(XOR)指令及其组合。它对“0或“1这些布尔操作数扫描,经逻辑运算后将逻辑操作结果送入状态字的RLO位。 1. “与和“与非(A,AN)指令 逻辑“与在梯形图里是用串联的触点回路表示的,被扫描的操作数那么表示为触点符 号,操作数标在触点上方。如果触点是常开触点(动合触点),那么对“1扫描相应操作数。在PLC中规定:假设操作数是“1,那么常开触点“动作,即认为是“闭合的;假设操作数是“0,那么常开触点“不动作,即触点仍然翻开。如果触点是常闭触点(动断触点),那

22、么对“0扫描相应操作数。在PLC中规定:假设操作数是“1,那么常闭触点“动作,即触点“断开;假设操作数是“0,那么常闭触点“不动作,即触点仍保持闭合。 如果串联回路里的所有触点皆闭合,该回路就通“电了。在图的回路中,如果所有触点闭合,即当输入和输出的信号状态都是“1(触点闭合)、且位存储器为“0(该触点仍保持原闭合位置)时,输出才为“1;如果有一个或多个触点是翻开的,那么输出的信号状态就为“0(继电器触点翻开)。 上述梯形逻辑图,可用语句表指令完全表示。对应的语句表为:A I0.0 AN M10.1 Q4.0 图4.5 “与逻辑梯形图 ( )I0.0 Q4.1 M10.1 Q4.0 在上面的语

23、句表中,操作数是被依次扫描的,其扫描的结果再逻辑“与。对信号状态进行“1扫描,并做逻辑与运算,那么用助记符“A来标识,相关的操作数指定了要扫描对象。当操作数的信号状态是“1时,其扫描结果也是“1。如果操作数的信号状态是“0,那么扫描结果也是“0。对信号状态进行“0扫描,并做逻辑“与运算,那么用助记符“AN来标识取反的“与逻辑操作当操作数的信号状态是“0时,其扫描结果就是“1。如果操作数的信号状态是“1,那么扫描结果就是“0。 在第一条语句里,CPU扫描的是输入本次扫描也被称为首次扫描。首次扫描的结果被直接保存在RLO(逻辑操作结果)中,在下一条语句中,扫描操作数输出;这次扫描的结果和RLO中保

24、存的上一次结果相“与,产生的新结果再存入RLO。如此逐一进行,在逻辑序列结束处的RLO可用作进一步处理。例如,用来鼓励一个输出信号。在上面的语句表中,把RLO的值赋给输出Q 4.0(Q 4.0)。 2. “或和“或非(O,ON)指令 逻辑“或在梯形图里是用并联的触点回路表示的,被扫描的操作数标在触点上方。在 触点并联的情况下,假设有一个或一个以上的触点闭合,那么该回路就“通电。在图中,驱动信号通过并联触点回路加到输出。只要有一个触点闭合,输出的信号状态就为“l。如果所有的触点都是翻开的,那么输出就为“0。在图中,仅当输入和输出两者都为“0,且为“1时,输出才为“0。图4.6 “或逻辑梯形图 I

25、1.1 M2.0 Q4.0 上述梯形逻辑图,也可用语句表指令表示。对应的语句表为: O I1.1 ON M2.0 O Q4.0 Q4.1 在上面的语句表中,操作数是依次被扫描的,其扫描的结果再逻辑“或。对信号状态进行“1扫描,并做逻辑“或运算,用助记符“O来标识。当操作数的信号状态是“1时,其扫描结果也是“1。对信号状态进行“0扫描,并做逻辑“或运算,那么用助记符“ON来标识取反的“或逻辑操作当操作数的信号状态是“0时,其扫描结果就是“1。如果操作数的信号状态是“1,那么扫描结果就是“0。 在第一条语句里,处理器扫描的是输入首次扫描的结果被直接保存在RLO中,并和下一条语句的扫描结果相“或,产

26、生的新结果再存入RLO。如此逐一进行,在逻辑序列结束处的RLO可用作进一步处理。例如,用来鼓励一个输出信号。在上面的语句表中,把RLO的值赋给输出。 3. “异或和“异或非(X,XN)指令 图是“异或逻辑梯形图,下面是与梯形图对应的语句表。在的语句表中,使用了“异或和“异或非指令,分别用助记符“X和“XN来标识。它类似“或和“或非指令,用于扫描并联回路能否“通电。 X 当执行语句表中的第一条指令时,首次扫描的结果被直接保存在RLO中,然后RLO中的值和第二条指令的扫描结果进行“异或操作,得到的新结果再存入RLO。如此扫描、“异或并刷新RLO,直到赋值指令将RLO的值赋给输出Q 4.0 。 图中

27、,仅当两个触点(输入和输入I1.1)的扫描结果不同,即只有一个为“1时,RLO才为“1,并赋值给输出使为“1。假设两个信号的扫描结果相同(均为“1或“0),那么为“0。与O和ON比较,X和XN排除了两个信号扫描结果为“1时,使输出为“1的可能。 图4.7 “异或逻辑梯形图 4.2.2 位操作指令 1. 输出指令 逻辑串输出指令又称为赋值操作指令,该操作把状态字中RLO的值赋给指定的操作数(位地址)。假设RLO为“1,那么操作数被置位,否那么操作数被复位。表列出了操作数的数据类型和所在的存储区。 逻辑串输出指令通过把首次检测位(FC位)置0,来结束一个逻辑串。当FC位为0时,说明程序中的下一条指

28、令是一个新逻辑串的第一条指令,CPU对其进行首次扫描操作。这一点在梯形图中显示得很清楚。表4.5 输出指令 LAD输出指令像继电器逻辑图中的线圈一样工作。如果电流能够流经电路到达线圈(即RLO为1)的话,那么继电器线圈通电,其常开触点闭合,否那么线圈不通电,常开触点断开。在LAD中,只能将输出指令放在逻辑符号串的最右端,但其前面必须有链路,不能将输出指令单独放在一个空网络中。 一个RLO可被用来驱动几个输出元件。在LAD中,输出线圈是上下依次排列的。在STL中,与输出信号有关的指令被一个接一个地连续编程,这些输出具有相同的优先级。图是多重输出梯形图,与之对应的语句表如下:图是多重输出梯形图 中

29、间输出指令在存储逻辑中,用于存储RLO的中间值,该值是中间输出指令前的位前的逻辑操作结果。在与其它触点串联的情况下,中间输出与一般触点的功能一样。中间输出指令不能用于结束一个逻辑串,因此,中间输出指令不能放在逻辑串的结尾或分支的结尾处,图是中间输出梯形图。 从图中可以看出,中间输出指令能够在位操作逻辑串中驱动等效继电器,并影响继电器的触点状态。这使得梯形图可以多级输出,从而提高了编程效率。图4.9 中间输出 2 . 置位复位指令 置位复位指令根据RLO的值,来决定被寻址位的信号状态是否需要改变。假设RLO的值为1,被寻址位的信号状态被置1或清0;假设RLO是0,那么被寻址位的信号保持原状态不变

30、。置位复位指令有关内容见表。 对于置位操作,一旦RLO为1,那么被寻址信号(输出信号)状态置1,即使RLO又变为0,输出仍保持为1;对于复位操作,一旦RLO为1,那么被寻址信号(输出信号)状态置 0,即使RLO又变为0,输出仍保持为0;这一特性又被称为静态的置位复位,相应地,赋值输出被称为动态赋值输出。置位复位指令也用于结束一个逻辑串,因此,在LAD中置位复位指令要放在逻辑串的最右端,而不能放在逻辑串中间。复位指令还可用于复位定时器和计数器。 表4.6 置位复位指令( S )图4.10 置位复位指令(a) 复位指令操作 3. RS触发器 RS触发器梯形图方块指令表示见表。方块中标有一个置位输入

31、(S)端,一个复位输入(R)端,输出端标为Q。触发器可以用在逻辑串最右端,结束一个逻辑串,也可用在 逻辑串中,影响右边的逻辑操作结果。 表4.7 RS触发器 如果置位输入为1,即有电加到S端,那么触发器置位。此时,即使置位输入为0,触发器也保持置位不变。如果复位输入为1,即有电加到R端,那么触发器复位。此时,即使复位输入为0,触发器也保持复位不变。RS触发器分为置位优先和复位优先型两种。 置位优先型RS触发器的R端在S端之上,当两个输入端都为1时,下面的置位输入最终有效。既置位输入优先,触发器或被复位或保持复位不变。 复位优先型RS触发器的S端在R端之上,当两个输入端都为1时,下面的复位输入最

32、终有效既复位输入优先,触发器或被置位或保持置位不变。图给出了使用置位优先型RS触发器的梯形图例子,图中也给出了与梯形图对应的语句表程序。A I0.0 A M0.0 = Q4.0 图4.11 置位优先型RS触发器 4. 对RLO的直接操作指令 这一类指令直接对逻辑操作结果RLO进行操作,改变状态字中RLO位的状态。有关内容见表。表4.8 对RLO的直接操作指令4.2.3 位测试指令 当信号状态变化时就产生跳变沿。当从0变到1时,产生一个上升沿(或正跳沿);假设从1变到0,那么产生一个下降沿(或负跳沿)。跳变沿检测的原理是:在每个扫描周期中把信号状态和它在前一个扫描周期的状态进行比较,假设不同那么

33、说明有一个跳变沿。因此,前一个周期里的信号状态必须被存储,以便能和新的信号状态相比较。 S7中有两类跳变沿检测指令,一种是对RLO的跳变沿检测的指令,另一种是对触点跳变沿直接检测的梯形图方块指令。具体内容见表。表4.9 跳变沿检测指令 图是使用RLO正跳沿检测指令的例子。这个例子中,假设CPU检测到输入有一个正跳沿,将使得输出的线圈在一个扫描周期内通电。对输入常开触点扫描的RLO值(在本例中,此RLO正好与输入的信号状态相同)存放在存储位中。图4.12 RLO正跳沿检测 在扫描周期中,CPU对信号状态扫描并形成RLO值,假设该RLO值是1而存放在中的上次RLO值是0,这说明FP指令检测到一个R

34、LO的正跳沿,那么FP指令把RLO位置1。如果RLO在相邻的两个扫描周期中相同(全为1或0),那么FP语句把RLO位清0。同样,如果FN指令检测到一个RLO的负跳沿,那么FN指令把RLO位置1。如果RLO在相邻的两个扫描周期中相同(全为1或0),那么FN语句把RLO位清0。 需要注意的是,在编程时必须考虑到,FP和FN检测到的是在RLO中表现出的变化,而不是触点的状态变化(前面的图中是特例)。因为,一般情况下,RLO可能由一个逻辑串形成,并不单独与某触点的状态直接相关。假设需要在逻辑串中单独检测某触点的跳变沿,可使用对触点跳变沿直接检测的梯形图方块指令。图是使用触点负跳沿检测指令的例子。图中,

35、由给出需要检测的触点编号(I 0.3),(M 0.0)用于存放该触点在前一个扫描周期的状态。图4.13 触点负跳沿检测 执行触点正跳沿检测指令时,CPU将的当前触点状态与存在中的上次触点状态相比较,假设当前为1上次为0,说明有正跳沿产生,那么输出Q置1;其它情况下,输出Q被清0。对于触点负跳沿指令,假设当前为0上次为1,那么输出Q置1,其余情况Q被清0。由于不可能在相邻的两个扫描周期中连续检测到正跳沿(或负跳沿),因此,输出Q只可能在一个扫描周期中保持为1(单稳输出)。 在梯形图中,触点跳变沿检测方块和RS触发器方块可被看做一个特殊常开触点。该常开触点的特性是:假设方块的Q为1,那么触点闭合;

36、假设Q为0,那么触点断开。 4.2.4 位逻辑指令编程举例 1. 传送带控制 图表示一个能够电气启动的传送带。在传送带的起点有两个按钮开关:用于START的S1和用于STOP的S2。在传送带的尾部也有两个按钮开关:S3用于START,S4用于STOP。可以从任一端启动或停止传送带。另外,当传送带上的物件到达末端时,传感器S5使传送带停机。图4.14 传送带示意图表4.10 用于传送带系统符号编程的元素图4.15 控制传送带的梯形图与相应的语句表 2. 串并联组合表示法 当逻辑串是复杂组合时,CPU的扫描顺序是先“与后“或。图4.16 (a)给出的梯形逻辑是触点先并后串的例子,与其对应的语句表为

37、: A( ) A( ) Q4.0 图4.16(b)是先串后并的例子,与其对应的语句表如下: A( A I0.0 O A I0.2 A M0.3 ) 图4.16 串并联组合逻辑梯形图 (a) 先并后串逻辑梯形图;(b) 先串后并逻辑梯形图 3. 风机监控程序 某设备有三台风机,当设备处于运行状态时,如果风机至少有两台以上转动,那么指示灯常亮;如果仅有一台风机转动,那么指示灯以0.5 Hz的频率闪烁;如果没有任何风机转动,那么指示灯以2 Hz的频率闪烁。当设备不运行时,指示灯不亮。实现上述功能的梯形图程序见图。图4.17 风机监控程序 图中,输入位,分别表示风机1,2,3。当风机转动时,信号状态为

38、1。使用CPU中的时钟存储器功能,并将其存储在字节MB 9中,那么存储位为2 Hz频率信号,为0.5 Hz频率信号。存储位为1时用于表示至少有两台风机转动,为1表示没有风机转动。设备运行状态用输出位表示,为1时设备运行。风机转动状态指示灯由控制。 下面给出实现风机状态检测的语句表程序,从中可看出中间输出指令的用法: A( A( O O ) O( ) O )4.3 定时器与计数器指令4.3.1 定时器指令 定时器是PLC中的重要部件,它用于实现或监控时间序列。定时器是一种由位和字组成的复合单元,定时器的触点由位表示,其定时时间值存储在字存储器中。S7-300/400提供了多种形式的定时器:脉冲定

39、时器(SP)、扩展定时器(SE)、接通延时定时器(SD)、带保持的接通延时定时器(SS)和断电延时定时器(SF)。 1. 定时器的组成 在CPU的存储器中留出了定时器区域,该区域用于存储定时器的定时时间值。每个定时器为2 B,称为定时字。在S7-300中,定时器区为512 B,因此最多允许使用256个定时器。因为定时器区域的编址(以T打头后跟定时器号,只能按字访问)以及存储格式的特殊性,所以只有通过使用有关的定时器指令才能对该区域进行访问。 S7中定时时间由时基和定时值两局部组成,定时时间等于时基与定时值的乘积。当定时器运行时,定时值不断减1,直至减到0,减到0表示定时时间到。定时时间到后会引

40、起定时器触点的动作。 定时器的第0位到第11位存放二进制格式的定时值,第12、13位存放二进制格式的时基(如下图)。这12位二进制代码表示的数值范围是04096,实际使用范围是0999。时基和时间值可以任意组合,以得到不同的定时分辨率和定时时间。表中给出了可能的组合情况。从表中可以看出,时基小,那么定时分辨率高,但定时时间范围窄;时基大,那么定时分辨率低,但定时时间范围宽。图4.18 累加器1低字的内容(定时值127,时基l s)表4.11 时基与定时范围 当定时器启动时,累加器1低字的内容被当作定时时间装入定时字中。这一过程是由 操作系统控制自动完成的,用户只需给累加器1装入不同的数值,即可

41、设置需要的定时时 间。为累加器1装入数值的指令很多,但在累加器1低字中的数据应符合图所示的格式。为防止格式错误,推荐采用下述直观的句法: L W#16#wxyz其中,w,x,y,z均为十进制数。w为时基,取值为0,1,2或3,分别表示时基为10 ms,l00 ms,1 s或10 s;xyz为定时值,取值范围为1999。 也可直接使用S5中的时间表示法装入定时数值,例如: L S5T#aH_bbM_ccS_dddMS其中,a:小时,bb:分钟,cc:秒,ddd:毫秒,范围:1MS到2H_46M_308;此时,时基是自动选择的,原那么是根据定时时间选择能满足定时范围要求的最小时基。 2. 定时器的

42、启动与运行 PLC中的定时器相当于时间继电器。在使用时间继电器时,要为其设置定时时间,当时间继电器的线圈通电后,时间继电器被启动。假设定时时间到,继电器的触点动作。当时间继电器的线圈断电时,也将引起其触点的动作。该触点可以在控制线路中控制其它继电器。 S7中的定时器与时间继电器的工作特点相似,对定时器同样要设置定时时间,也要启动定时器(使定时器线圈通电)。除此之外,定时器还增加了一些功能,如随时复位定时器、随时重置定时时间(定时器再启动)、查看当前剩余定时时间等。S7中的定时器不仅功能强,而且类型多。图给出了为定时作业如何正确选择定时器的示意图。以下将以LAD方块图为主详细介绍定时器的运行原理

43、及使用方法。图4.19 五种类型定时器总览3. 定时器梯形图方块指令1) 脉冲定时器(见表4.12)表4.12 脉 冲 定 时 器 如果RLO有正跳沿,那么脉冲定时器启动指令,以给出的时间值启动指定的定时器。只要RLO为1,定时器就保持运行。在定时器运行时,其常开触点闭合,即对该定时器按1扫描的结果为1。当定时时间到,常开触点断开,对1信号的扫描结果为0。假设在给定的时间(即定时时间)过去之前RLO由1变为0,那么定时器被复位至启动前的状态,在这种情况下定时器的常开触点断开。 图是使用脉冲定时器的梯形图编程例子,图是脉冲定时器的时序。以下是与梯形图对应的语句表:A I0.0 L S5T#2S

44、SP T5 /以脉冲定时器方式启动T5 R T5 /复位定时器T5 A T5 Q4.0 /使用定时器T5的触点图4.20 脉冲定时器指令图4.21 脉冲定时器时序2) 扩展脉冲定时器(见表4.13)表4.13 扩展脉冲定时器 如果RLO有正跳沿,那么扩展(输入)脉冲定时器启动指令,以给出的时间值启动指定的定时器。即使RLO变为0,定时器仍保持运行,直到定时时间到后才停止(定时器被复位)。在定时器运行时,其常开触点闭合,即对该定时器按1扫描的结果为1。当定时时间到后,那么常开触点断开,对1信号的扫描结果为0。 图是使用扩展脉冲定时器的梯形图编程例子,图是扩展脉冲定时器的时序。以下是与梯形图对应的

45、语句表: A I0.0 L S5T#2S SE T5 /以扩展脉冲定时器方式启动T5 R T5 /复位定时器T5 A T5 Q4.0/使用定时器T5的触点图4.22 扩展脉冲定时器指令图4.23 扩展脉冲定时器时序3) 接通延时定时器(见表4.14)表4.14 接通延时定时器 如果RLO有正跳沿,那么接通延时定时器启动指令,以给出的时间值启动指定的定时器。当定时时间到后,那么常开触点闭合并保持(对1信号的扫描结果为1)。直到RLO变为0,定时器才被复位至启动前的状态,此时定时器的常开触点断开。假设在给定的时间(即定时时间)过去之前RLO由1变为0,那么定时器也被复位。 图是使用接通延时定时器的

46、梯形图编程例子,图是接通延时定时器的时序。以下是与梯形图对应的语句表: A I0.0 L S5T#2S SD T5 /以接通延时定时器方式启动T5 R T5/复位定时器T5 A T5 Q4.0/使用定时器T5的触点图4.24 接通延时定时器指令图4.25 接通延时定时器时序4) 保持型接通延时定时器(见表4.15)表4.15 保持型接通延时定时器 如果RLO有正跳沿,那么保持型接通延时定时器启动指令,以给出的时间值启动指定的定时器,即使RLO变为0,定时器仍保持运行。此时,定时器常开触点断开(即对该定时器按1扫描的结果为0),当定时时间到后,常开触点闭合并保持。假设RLO再有一个正跳沿,定时器

47、重新启动,只有用复位指令才能复位该定时器。 图是使用保持型接通延时定时器的梯形图编程例子,图是保持型接通延时定时器的时序。图4.26 保持型接通延时定时器指令图4.27 保持型接通延时定时器时序以下是与梯形图对应的语句表:L S5T#2SSS T5 /以保持型接通延时定时器方式启动T5R T5 /复位定时器T5A T5 Q4.0 /使用定时器T5的触点5) 关断延时定时器(见表4.16)表4.16 关断延时定时器 如果RLO有负跳沿,那么关断延时定时器启动指令,以给出的时间值启动指定的定时 器。当RLO为1或在定时器运行时,其常开触点闭合,即对该定时器按1扫描的结果为1。当定时时间到后,那么常

48、开触点断开。假设在给定的时间(即定时时间)过去之前RLO由0变为1,那么定时器被复位至启动前的状态。一直到RLO从1变为0之前,定时器不再启动(使用FR指令除外)。 图是使用关断延时定时器的梯形图编程例子,图是关断延时定时器的时序。以下是与梯形图对应的语句表:A I0.0 L S5T#2S SF T5 /以关断延时定时器方式启动T5 R T5 /复位定时器T5 A T5 Q4.0/使用定时器T5的触点图4.28 关断延时定时器指令图4.29 关断延时定时器时序4. 定时器线圈指令表4.17 定时器线圈指令 图以扩展脉冲定时器为例说明定时器线圈指令的用法。与梯形图功能对应的语句表程序如下: L

49、S5T#2S SE T5 /以扩展脉冲定时器方式启动T5 R T5 /复位定时器T5 A T5 Q4.0 /使用定时器T5的触点图4.30 扩展脉冲定时器线圈指令4.3.2 计数器指令 S7中的计数器用于对RLO正跳沿计数。计数器是一种复合单元,它由表示当前计数值的字和表示其状态的位组成。S7中有三种计数器,它们分别是加计数器、减计数器和可逆计数器。 1. 计数器组成 在CPU中保存一块存储区作为计数器计数值存储区,每个计数器占用两个字节,称为计数器字。计数器字中的第011位表示计数值(二进制格式),计数范围是0999。当计数值到达上限999时,累加停止。计数值到达下限0时,将不再减小。对计数

50、器进行置数(设置初始值)操作时,累加器1低字中的内容被装入计数器字。计数器的计数值,将以此为初值增加或减小。可以用多种方式为累加器1置数,但要确保累加器1低字符合图规定的格式。图4.31 累加器1低字的内容计数值1272. 计数器梯形图方块指令表4.18 计数器梯形图方块指令 使用复位指令R可复位计数器。计数器被复位后,其计数值被清0,计数器输出状态也为0(常开触点断开)。计数器的各项操作应按以下顺序(编程顺序)进行:加计数、减计数、计数器置数、计数器复位、使用计数器输出状态信号和读取当前计数值。 在图中使用了梯形图可逆计数器方块指令,输入的正跳沿使计数器C10的计数值增加,输入使计数值减小。

51、计数器C10的状态用于控制输出。给C10预置的初始值放在MW10中,当有正跳沿时,该值被置入计数器C10。以下是与梯形图对应的语句表程序:图4.32 可逆计数器梯形图方块应用CU C10 /假设有正跳沿,那么计数器C10的计数值加1A I0.1 CD C10 /假设有正跳沿,那么计数器C10的计数值减1 L MW10S C10 /假设有正跳沿,那么C1置数R C10 /假设有正跳沿,那么C10复位A C10= Q4.0 /假设C10数值不为0,那么为13. 计数器线圈指令表4.19 计数器线圈指令 图以加计数器为例说明计数器线圈指令的用法。与梯形图功能对应的语句表程序如下: L C#100 S

52、 C10 CU C10 R C10 AC10 Q4.0 这个例子用于对输入的正跳沿计数。每一个正跳沿使计数器C10的计数值加1。输入的信号状态从0变为1,那么计数器C10被置初始值100,C#表示以BCD码格式输入一个数值。假设没有正跳沿,计数器C10的计数值保持不变。输入假设为1,计数器被复位。计数器C10的计数值假设不等于0,那么C10输出状态为1,也为1。4.3.3 应用举例 1. 脉冲发生器 用定时器构成一个脉冲发生器,使其产生如下图的脉冲时序,脉冲信号的周期为3 s,脉冲宽度为1 s。我们知道,用两个定时器可以产生频率占空比均可设置的脉冲信号。在本例程序中,用定时器T1设置输出为1的

53、时间(脉冲宽度),为0的时间由定时器T2设置为2 s。当输入为1时,输出为1或为0来交替进行。图为梯形图程序,对应的语句表程序如下: 网络12 AN T1 L S5T#2S SD T2 网络13 A T2 L SST#1S SD T1 A T2 Q4.0 图4.34 脉冲发生器时序图4.35 脉冲发生器梯形图 2. 频率监测器 频率监测器用于监测脉冲信号的频率,假设其低于下限,那么指示灯亮,“确认按键能使指示灯复位。为此,使用了一个扩展脉冲定时器,即每当频率信号有一个上升沿就启动一次定时器。如果超过了定时时间没有启动定时器,那么说明两个脉冲之间的时间间隔太长,即频率太低了。图为频率监测器时序。

54、图4.36 频率监测器时序 在频率监测程序中,输入用于关闭监测器,用于确认频率低;输出用以控制指示灯。定时器T1的定时时间为2 s,即设置脉冲信号的频率监测下限为0.5 Hz。梯形图程序见图,以下是频率监测语句表程序: L S5T#2S SE T1 AN T1图4.37 频率监测梯形图程序4.4 数据处理功能指令4.4.1 装入和传送指令 装入(L)和传送(T)指令可以在存储区之间或存储区与过程输入、输出之间交换数 据。CPU执行这些指令不受逻辑操作结果RLO的影响。L指令将源操作数装入累加器1 中,而累加器原有的数据移入累加器2中,累加器2中原有的内容被覆盖。T指令将累加 器1中的内容写入目

55、的存储区中,累加器的内容保持不变。L和T指令可对字节(8位)、字(16位)、双字(32位)数据进行操作,当数据长度小于32位时,数据在累加器右对齐(低位对齐),其余各位填0。装入和传送操作有三种寻址方式,即立即寻址、直接寻址和间接寻址。1. 对累加器1的装入和传送指令L 5 /将立即数5装入累加器1中L MW 10 /将MW10中的值装入累加器1中L IBDID 8 /将由数据双字DID8指出的输入字节装入累加器1中T MW 20 /将累加器1中的内容传送给存储字MW20 T MWAR1,P#10.0 /将累加器1中的内容传送给由地址存放器1加偏移量确定的存储字中 2. 读取或传送状态字 L

56、STW /将状态字中08位装入累加器1中,累 加器93l位被清0 T STW /将累加器1中的内容传送到状态字中 3. 装入时间值或计数值 定时器字中的剩余时间值以二进制格式保存,用L指令从定时器字中读出二进制时间值装入累加器1中,称为直接装载。也可用LC指令以BCD码格式读出时间值,装入累加器1低字中,称为BCD码格式读出时间值。以BCD码格式装入时间值可以同时获得时间值和时基,时基与时间值相乘就得到定时剩余时间。同理,对当前计数值也有直接装载和以BCD码格式读出计数值之分。例如: L T1 /将定时器T1中二进制格式的时间值直接装入累加器1的低字中 LC T1 /将定时器T1中的时间值和时

57、基以BCD码格式装入累加器1的低字中 L C1 /将计数器C1中二进制格式的计数值直接装入累加器1的低字中 LC C1 /将计数器Cl中的计数值以BCD码格式装入累加器1的低字中 4. 地址存放器装入和传送 对于地址存放器,可以不经过累加器l而直接将操作数装入或传送,或将两个地址寄 存器的内容直接交换。下面的例子说明了指令的用法: LAR1 P# I 0.0 /将输入位的地址指针装入AR1 LAR2 P# 0.0 /将二进制数2#0000 0000 0000 0000 0000 0000 0000 0000装入AR2 LAR1 P#Start /将符号名为Start的存储器的地址指针装入AR1

58、 LAR1 AR2 /将AR2的内容装入AR1 LAR1 DBD 20 /将数据双字DBD 20的内容装入AR1 TAR1 AR2 /将ARl的内容传送至AR2 TAR2 /将AR2的内容传送至累加器1 TAR1 MD 20 /将ARl的内容传送至存储器双字MD 20 CAR /交换AR1和AR2的内容5. 梯形图方块传送指令表4.20 梯形图方块传送指令 方块传送(MOVE)指令用于为变量赋值。如果允许输入端EN为1,就执行传送操作,使输出OUT等于输入IN,并使ENO为1;如果EN为0,那么不进行传送操作,并使ENO为0。ENO总保持与EN相同的信号状态。 用MOVE方块指令,能传送数据长

59、度为8位、16位或32位的所有根本数据类型(包括常数)。但传送用户自定义的数据类型,如数组或结构,那么必须用系统集成功能(SFC)进行。图给出了MOVE方块指令的用法。图4.38 使用MOVE方块指令下面是与图的梯形图方块指令根本相同的语句表程序: JNB _0001 L MW10 T DBW12 SET /使RLO为1 SAVE /使BR为1 CLR_0001: A BR 4.4.2 转换指令 转换指令首先将源数据按照规定的格式读入累加器,然后在累加器中对数据进行类型转换,最后再将转换的结果传送到目的地址。能够实现的转换操作有:BCD码和整数及长整数间的转换,实数和长整数间的转换,数的取反、

60、取负等。在STEP 7中,整数和长整数是以补码形式表示的。BCD码数值有两种:一种是字(16位)格式的BCD码数,其数值范围是999999;另一种是双字(32位)格式的BCD码数,范围为9 999 9999 999 999。1. BCD和整数间的转换表4.21 BCD和整数间的转换表4.21 BCD和整数间的转换 由于3位BCD数所能表示的范围是999999,小于16位整数的数值范围,因此,一个整数到BCD数的转换并不总是可行的。在执行ITB指令时,如果整数超出了BCD码所能表示的范围,那么将得不到有效的转换结果。同时,状态字中的溢出位(OV)和溢出保持位(OS)将被置为1。在程序中,一般需要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论