《西门子S系列PLC基本指令系统.pptx》由会员分享,可在线阅读,更多相关《西门子S系列PLC基本指令系统.pptx(141页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、4.1 指令及其结构4.1.1 指令的组成 1.语句指令 一条指令由一个操作码和一个操作数组成,操作数由标识符和参数组成。操作码定义要执行的功能;操作数为执行该操作所需要的信息,例如:A I 1.0 是一条位逻辑操作指令,其中:“A”是操作码,它表示执行“与”操作;“I 1.0”是操作数,对输入继电器I 1.0进行的操作。有些语句指令不带操作数。它们操作的对象是惟一的。例如:NOT (是对逻辑操作结果(RLO)取反。)第1页/共141页 2.梯形逻辑指令 梯形逻辑指令用图形元素表示PLC要完成操作。在梯形逻辑指令中,其操作码是用图素表示的,该图素形象表明CPU做什么,其操作数的表示方法与语句指
2、令相同。如:Q 4.0 ()该指令中:()可认为是操作码,表示一个二进制赋值操作。Q 4.0是操作数,表示赋值的对象。梯形逻辑指令也可不带操作数。如:|NOT|是对逻辑操作结果取反的操作。第2页/共141页4.1.2 操作数 1.标识符及表示参数 一般情况下,指令的操作数在PLC的存储器中,此时操作数由操作数标识符和参数组成。操作数标识符由主标识符和辅助标识符组成。主标识符表示操作数所在的存储区,辅助标识符进一步说明操作数的位数长度。若没有辅助标识符指操作数的位数是一位。主标识符有:I(输入过程映像存储区),Q(输出过程映象存储区),M(位存储区),PI(外部输入),PQ(外部输入),T(定时
3、器),C(计数器),DB(数据块),L(本地数据)。第3页/共141页 辅助标识符有:X(位),B(字节),W(字2字节),D(双字4字节)。PLC物理存储器是以字节为单位的,所以存储单元规定为字节单元。位地址参数用一个点与字节地址分开。如:M 10.1 当操作数长度是字或双字时,标识符后给出的标识参数是字或双字内的最低字节单元号。图4.1给出了字节、字、双字的相互关系及表示方法。当使用宽度为字或双字的地址时,应保证没有生成任何重叠的字节分配,以免造成数据读写错误。第4页/共141页图4.1 以字节单元为基准标记存储器存储单元位存储区M第5页/共141页表4.1 存储区及其功能 第6页/共14
4、1页表4.1 存储区及其功能 第7页/共141页 2.操作数的表示法 在STEP7中,操作数有两种表示方法:一是物理地址(绝对地址)表示法;二是符号地址表示法。用物理地址表示操作数时,要明确指出操作数的所在存储区,该操作数的位数具体位置。例如:Q 4.0。STEP7 允许用符号地址表示操作数,如Q 4.0可用符号名MOTOR_ON替代表示,符号名必须先定义后使用,而且符号名必须是惟一的,不能重名。定义符号时,需要指明操作数所在的存储区,操作数的位数、具体位置及数据类型。第8页/共141页4.1.3 寻址方式 操作数是指令的操作或运算对象。所谓寻址方式是指令得到操作数的方式,可以直接给出或间接给
5、出。STEP7指令操作对象的有:常数;S7状态字中的状态位;S7的各种寄存器、数据块;功能块FB,FC和系统功能块SFB,SFC;S7的各存储区中的单元。S7有四种寻址方式:立即寻址、存储器直接寻址、存储器间接寻址和寄存器间接寻址。第9页/共141页 1.立即寻址 这是对常数或常量的寻址方式。操作数本身直接包含在指令中。下面是立即寻址的例子:SET /把RLO置1OW W#16#A320 /将常量W#16#A320与累加器1“或”运算L 27 /把整数27装入累加器1L ABCD /把ASCII码字符ABCD装入累加器1L C#0100 /把BCD码常数0100装入累加器1 第10页/共141
6、页 2.直接寻址 包括对寄存器和存储器的直接寻址。在直接寻址的指令中,直接给出操作数的存储单元地址。例如:A I 0.0 /对输入位I 0.0进行“与”逻辑操作S L 20.0 /把本地数据位L 20.0置1=M 115.4 /使存储区位M 115.4的内容等于RLO的内容L IB 10 /把输入字节IB 10的内容装入累加器1T DBD 12 /把累加器1中的内容传送给数据双字DBD 12中第11页/共141页 3.存储器间接寻址 在存储器间接寻址的指令中,给出一个存储器(必须是表4.1中的存储器),该存储器的内容是操作数所在存储单元的地址,该地址又被称为地址指针。存储器间接寻址方式的优点是
7、,当程序执行时,能改变操作数的存储器地址,这对程序中的循环尤为重要。例如:A IMD 2 /对由MD 2指出的输入位进行“与”逻辑操作。如:MD 2的值为 /2#0000 0000 0000 0000 0000 0000 0101 0110 则是对I 10.6进行“与”操作。第12页/共141页图4.2 存储器间接寻址的指针格式位3至18(范围0至65535):被寻址字节的字节编号位0至2(范围0至7):被寻址位的位编号第13页/共141页 4.寄存器间接寻址 在S7中有两个地址寄存器,它们是AR1和AR2。通过地址寄存器,可以对各存储区的存储器内容实现寄存器间接寻址。地址寄存器的内容加上偏移
8、量形成地址指针,该指针指向数值所在的存储单元。地址寄存器存储的地址指针有两种格式:区内寄存器间接寻址区域间寄存器间接寻址。其长度均为双字。图4.3给出了这两种格式的细节及其差别,区域标识位的组合状态见表4.2。第14页/共141页图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)第15页/共141页表4.2 地址
9、指针区域标识位含义第16页/共141页4.1.4 状态字 状态字用于表示CPU执行指令时所具有的状态。一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位;你也能在位逻辑指令或字逻辑指令中访问并检测它们。图4.4显示了状态字的结构。图4.4 状态字的结构15 9 8 7 6 5 4 3 2 1 0第17页/共141页(1)首次检测位(FC)状态字的位0称为首次检测位。若FC位的状态为0,则表明一个梯形逻辑网络的开始,或指令为逻辑串第一条指令。(2)逻辑操作结果(RLO)逻辑操作结果RLO(Result of Logic Operation)。该位存储位
10、逻辑指令或算术比较指令的结果。(3)状态位(STA)状态位不能用指令检测,它只是在程序测试中被CPU解释并使用。第18页/共141页(4)或位(OR)状态字的位3称为或位(OR)。在先逻辑“与”后逻辑“或”的逻辑串中,OR位暂存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。其它指令将OR位清0。(5)溢出位(OV)溢出位被置1,表明一个算术运算或浮点数比较指令执行时出现错误(错误:溢出、非法操作、不规范格式)。第19页/共141页(6)溢出状态保持位(OS)OV被置1时OS也被置1;OV被清0时OS仍保持。只有下面的指令才能复位OS位:JOS(OS=1时跳转);块调用和块结束指令。(7)
11、条件码1(CC1)和条件码0(CC0)状态字的位7和位6称为条件码1和条件码0。这两位结合起来用于表示在累加器1中产生的算术运算或逻辑运算结果与0的大小关系;比较指令的执行结果或移位指令的移出位状态。详见表4.3和表4.4。第20页/共141页表4.3 算术运算后的CC1和CC0第21页/共141页表4.4 比较、移位和循环移位、字逻辑指令后的CC1和CC0第22页/共141页 (8)二进制结果位(BR)它将字处理程序与位处理联系起来,用于表示字操作结果是否正确(异常)。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。在LAD的方块指令中,BR位与ENO有对应关系,用于表明
12、方块指令是否被正确执行:如果执行出现了错误,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。第23页/共141页4.2 位逻辑指令 位逻辑指令主要包括:位逻辑运算指令、位操作指令和位测试指令,逻辑操作结果(RLO)用以赋值、置位、复位布尔操作数,也控制定时器和计数器的运行。4.2.1 位逻辑运算指令 位逻辑运
13、算指令是“与”(AND)、“或”(OR)、“异或”(XOR)指令及其组合。它对“0”或“1”这些布尔操作数扫描,经逻辑运算后将逻辑操作结果送入状态字的RLO位。第24页/共141页 1.“与”和“与非”(A,AN)指令 逻辑“与”在梯形图里是用串联的触点回路表示的,如果串联回路里的所有触点皆闭合,该回路就通“电”了。在图4.5的回路所示:图4.5“与”逻辑梯形图 上述梯形逻辑图,可用语句表指令完全表示,对应的语句表为:A I0.0 A Q 4.1AN M10.1 Q4.0 ()I0.0 Q4.1 M10.1 Q4.0 第25页/共141页 2.“或”和“或非”(O,ON)指令 逻辑“或”在梯形
14、图里是用并联的触点回路表示的,被扫描的操作数标在触点上方。在图4.6中,只要有一个触点闭合,输出4.1的信号状态就为“l”。I1.1 M2.0 Q4.0 图4.6“或”逻辑梯形图及语句表O I1.1 ON M2.0 O Q4.0 Q4.1()Q4.1第26页/共141页 3.“异或”和“异或非”(X,XN)指令 图4.7是“异或”逻辑梯形图,下面是与梯形图对应的语句表。在的语句表中,使用了“异或”和“异或非”指令,分别用助记符“X”和“XN”来标识。它类似“或”和“或非”指令,用于扫描并联回路能否“通电”。X I 0.0 X I 0.1 Q 4.0图4.7“异或”逻辑梯形图 第27页/共141
15、页4.2.2 位操作指令 1.输出指令 逻辑串输出指令又称为赋值操作指令,该操作把状态字中RLO的值赋给指定的操作数(位地址)。表4.5列出了操作数的数据类型和所在的存储区。表4.5 输出指令第28页/共141页A I0.0A I0.1ON I0.2 Q4.0 A I0.3 Q4.1图4.8 多重输出梯形图 一个RLO可被用来驱动几个输出元件。在LAD中,输出线圈是上下依次排列的。在STL中,与输出信号有关的指令被一个接一个地连续编程,这些输出具有相同的优先级。图4.8是多重输出梯形图,与之对应的语句表如下:第29页/共141页 2.置位复位指令 置位复位指令根据RLO的值,来决定被寻址位的信
16、号状态是否需要改变。若RLO的值为1,被寻址位的信号状态被置1或清0;若RLO是0,则被寻址位的信号保持原状态不变。置位复位指令有关内容见表4.6。表4.6 置位复位指令第30页/共141页 图4.10 置位复位指令(a)复位指令操作 (b)置位指令操作第31页/共141页 3.RS触发器 RS触发器梯形图方块指令表示见表4.7。方块中标有一个置位输入(S)端,一个复位输入(R)端,输出端标为Q。触发器可以用在逻辑串最右端,结束一个逻辑串,也可用在 逻辑串中,影响右边的逻辑操作结果。表4.7 RS触发器第32页/共141页 RS触发器分为置位优先和复位优先型两种,置位优先型RS触发器的R端在S
17、端之上,当两个输入端都为1时,下面的置位输入最终有效。既置位输入优先,触发器或被复位或保持复位不变,如图4.11。A I0.0 R M0.0A I0.1S M0.0A M0.0=Q4.0 图4.11 置位优先型RS触发器 第33页/共141页 4.对RLO的直接操作指令 这一类指令直接对逻辑操作结果RLO进行操作,改变状态字中RLO位的状态。有关内容见表4.8。表4.8 对RLO的直接操作指令第34页/共141页4.2.3 位测试指令 当信号状态变化时就产生跳变沿。当从0变到1时,产生一个上升沿(或正跳沿);若从1变到0,则产生一个下降沿(或负跳沿)。S7中有两类跳变沿检测指令,一种是对RLO
18、的跳变沿检测的指令,另一种是对触点跳变沿直接检测的梯形图方块指令。具体内容见表4.9。图4.12是使用RLO正跳沿检测指令的例子。这个例子中,若CPU检测到输入I 1.0有一个正跳沿,将使得输出Q 4.0的线圈在一个扫描周期内通电。对输入I 1.0常开触点扫描的RLO值存放在存储位M 1.0中。第35页/共141页表4.9 跳变沿检测指令第36页/共141页图4.12 RLO正跳沿检测第37页/共141页图4.13 触点负跳沿检测 图4.13是使用触点负跳沿检测指令的例子。图中,由给出需要检测的触点编号(I 0.3),(M 0.0)用于存放该触点在前一个扫描周期的状态。第38页/共141页4.
19、2.4 位逻辑指令编程举例 1.传送带控制 图4.14表示一个能够电气启动的传送带。在传送带的起点有两个按钮开关:用于START的S1和用于STOP的S2。在传送带的尾部也有两个按钮开关:S3用于START,S4用于STOP。可以从任一端启动或停止传送带。另外,当传送带上的物件到达末端时,传感器S5使传送带停机。第39页/共141页图4.14 传送带示意图第40页/共141页表4.10 用于传送带系统符号编程的元素第41页/共141页图4.15 控制传送带程序第42页/共141页 2.串并联组合表示法 当逻辑串是复杂组合时,CPU的扫描顺序是先“与”后“或”。图4.16(a)给出的梯形逻辑是触
20、点先并后串的例子,与其对应的语句表为:A(O I0.0 O I0.2 )A(O M10.0 O M0.3 )A M10.1 Q4.0 图4.16 串并联组合逻辑梯形图 第43页/共141页图4.16(b)是先串后并的例子,与其对应的语句表如下:A(A I0.0 A M10.0 O A I0.2 A M0.3 )A M10.1 Q4.0第44页/共141页 3.风机监控程序 某设备有三台风机,当设备处于运行状态时,如果风机至少有两台以上转动,则指示灯常亮;如果仅有一台风机转动,则指示灯以0.5 Hz的频率闪烁;如果没有任何风机转动,则指示灯以2 Hz的频率闪烁。当设备不运行时,指示灯不亮。实现上
21、述功能的梯形图程序见图4.17。第45页/共141页图4.17 风机监控程序 注:输入位I0.0,I0.1,I0.2分别为风机1,2,3的反馈输入端。M9.3 为2 Hz频率CPU中的时钟信号;M9.7为0.5 Hz频率信号。第46页/共141页 下面给出实现风机状态检测的语句表程序,从中可看出中间输出指令的用法:A(A(A I0.0 A I0.1 O A I0.0 A I0.2 O A I0.1 A I0.2 )M10.0 A M10.0 O(AN I0.0 AN I0.1 AN I0.2 M10.1 A M10.1 A M9.3 )O AN M10.0 AN M10.1 A M9.7 )A
22、 Q4.0 Q4.1第47页/共141页4.3 定时器与计数器指令4.3.1 定时器指令 定时器是PLC中的重要部件,它用于实现或监控时间序列。定时器是一种由位和字组成的复合单元,定时器的触点由位表示,其定时时间值存储在字存储器中。S7-300/400提供的定时器有:脉冲定时器(SP)扩展定时器(SE)接通延时定时器(SD)带保持的接通延时定时器(SS)和断电延时定时器(SF)。第48页/共141页 1.定时器的组成 在CPU的存储器中留出了定时器区域,用于存储定时器的定时时间值。每个定时器为2 B,称为定时字。在S7-300中,最多允许使用256个定时器。S7中定时时间由时基和定时值两部分组
23、成,定时时间等于时基与定时值的乘积。采用减计时。定时时间到后会引起定时器触点的动作。定时器的第0位到第11位存放二进制格式的定时值,第12、13位存放二进制格式的时基(如图4.18所示)。表4.11给出了可能出现的组合情况。第49页/共141页图4.18 累加器1低字的内容(定时值127,时基l s)表4.11 时基与定时范围第50页/共141页 设置定时时间,用户需给累加器1装入需要的数值,避免格式错误,推荐采用下述直观的句法:L W#16#wxyz其中,w为时基,取值为0,1,2或3,分别表示时基为10 ms,l00 ms,1 s或10 s;xyz为定时值,取值范围为1999。也可直接使用
24、S5中的时间表示法装入定时数值,例如:L S5T#aH_bbM_ccS_dddMS其中,a:小时,bb:分钟,cc:秒,ddd:毫秒,时基是自动选择的,原则是能满足定时范围要求的最小时基。第51页/共141页2.定时器的启动与运行 S7中的定时器与时间继电器的工作特点相似,对定时器同样要设置定时时间,也要启动定时器(使定时器线圈通电)。除此之外,定时器还增加了一些功能,如随时复位定时器、随时重置定时时间(定时器再启动)、查看当前剩余定时时间等。S7中的定时器不仅功能强,而且类型多。图4.19给出了为定时作业如何正确选择定时器的示意图。以下将以LAD方块图为主详细介绍定时器的运行原理及使用方法。
25、第52页/共141页第53页/共141页图4.19 五种类型定时器总览第54页/共141页图4.20 脉冲定时器指令S_PULSET5SQRTVBCDBI()Q4.0S5T#2SI0.0I0.13.定时器梯形图方块指令1)脉冲定时器 A I0.0 L S5T#2S SP T5 A I0.1 R T5 A T5 Q4.0 第55页/共141页图4.21 脉冲定时器时序第56页/共141页图4.22接通延时定时器指令S_ODTT5SQRTVBCDBI()Q4.0S5T#2SI0.0I0.1 A I0.0 L S5T#2S SD T5 A I0.1 R T5 A T5 Q4.03)延时接通定时器第5
26、7页/共141页图4.23 延时接通定时器时序第58页/共141页4.定时器线圈指令表4.12 定时器线圈指令第59页/共141页图4.24 扩展脉冲定时器线圈指令 A I0.0 L S5T#2S SE T5 A I0.1 R T5 A T5 Q4.0 第60页/共141页4.3.2 计数器指令 *S7中的计数器用于:对RLO正跳沿计数。*计数器是由表示当前计数值的字及状态的位组成。*S7中有三种计数器 加计数器 (S_CU)减计数器 (S_CD)可逆计数器(S_CUD)第61页/共141页图4.25 累加器1低字的内容计数值1271.计数器组成 在CPU中保留一块存储区作为计数器计数值存储区
27、,每个计数器占用两个字节,计数器字中的第011位表示计数值(二进制格式),计数范围是0999。第62页/共141页2.计数器梯形图方块指令表4.13 计数器梯形图方块指令第63页/共141页图4.26 可逆计数器梯形图方块应用A I0.0CU C10 A I0.1 CD C10 A I0.2L MW10S C10A I0.3R C10 A C10=Q4.0第64页/共141页3.计数器线圈指令表4.14 计数器线圈指令第65页/共141页4.3.3 应用举例 1.脉冲发生器 用定时器构成一个脉冲发生器,使其产生如图4.27所示的脉冲时序,脉冲信号的周期为3 s,脉冲宽度为1 s,图4.35为梯
28、形图及语句表程序。图4.27 脉冲发生器时序第66页/共141页 网络1 A I0.0 AN T1 L S5T#2S SD T2 网络2 A T2 L SST#1S SD T1 A T2 Q4.0 2图4.28 脉冲发生器梯形图第67页/共141页 2.频率监测器 频率监测器用于监测脉冲信号的频率,若其低于下限,则指示灯亮,“确认”按键能使指示灯复位。为此,使用了一个扩展脉冲定时器,即每当频率信号有一个上升沿就启动一次定时器。如果超过了定时时间没有启动定时器,则表明两个脉冲之间的时间间隔太长,即频率太低了。图4.29为频率监测器时序。第68页/共141页图4.29 频率监测器时序 第69页/共
29、141页图4.30 频率监测梯形图程序 在频率监测程序中,输入I0.0用于关闭监测器,I0.1用于确认频率低;输出Q4.0用以控制指示灯。定时器T1的定时时间为2 s,即设置脉冲信号M10.0的频率监测下限为0.5 Hz。A M10.0 AN I0.0 L S5T#2S SE T1 AN T1 S Q4.0 O I0.1 O I0.0 R Q4.0第70页/共141页4.4 数据处理功能指令4.4.1 装入和传送指令 装入(L)和传送(T)指令可以在存储区之间或存储区与过程输入、输出之间交换数据。CPU执行这些指令不受逻辑操作结果RLO的影响。L指令将源操作数装入累加器1中,而累加器原有的数据
30、移入累加器2中,累加器2中原有的内容被覆盖。T指令将累加器1中的内容写入目的存储区中,累加器的内容保持不变。第71页/共141页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
31、加偏移加偏移 /量确定的存储字中量确定的存储字中第72页/共141页 2.读取或传送状态字 L STW /将状态字中08位装入累加器1中,累 加器93l位被清0 T STW /将累加器1中的内容传送到状态字中 第73页/共141页 3.装入时间值或计数值L T1 /将定时器T1中二进制格式的时间值直接装入累加器1的低字中 LC T1/将定时器T1的时间值和时基以BCD码装入累加器1的低字中L C1/将计数器C1中二进制格式的计数值直接装入累加器1的低字中LC C1/将计数器C l中的计数值以BCD码格式装入累加器1的低字中第74页/共141页4.地址寄存器装入和传送 对于地址寄存器,可以不经过
32、累加器l而直接将操作数装入或传送,或将两个地址寄 存器的内容直接交换。下面的例子说明了指令的用法:LAR1 P#I 0.0 /将输入位I0.0的地址指针装入AR1 LAR2 P#0.0 /将二进制数2#0000 0000 0000 0000 0000 0000 0000 0000装入AR2 LAR1 P#Start /将符号名为Start的存储器的地址指针装入AR1 LAR1 AR2 /将AR2的内容装入AR1 LAR1 DBD 20 /将数据双字DBD 20的内容装入AR1 TAR1 AR2 /将ARl的内容传送至AR2 TAR2 /将AR2的内容传送至累加器1 TAR1 MD 20 /将A
33、Rl的内容传送至存储器双字MD 20 CAR /交换AR1和AR2的内容第75页/共141页5.梯形图方块传送指令表4.15 梯形图方块传送指令第76页/共141页图4.31 使用MOVE方块指令MOVEENINENOOUTDBW12()Q4.0MW10I0.0 A I0.0 JNB _0001 L MW10 T DBW12 SET /使RLO为1 SAVE /使BR为1 CLR_0001:A BR Q4.0第77页/共141页4.4.2 转换指令 转换指令首先将源数据按照规定的格式读入累加器,然后在累加器中对数据进行类型转换,最后再将转换的结果传送到目的地址。能够实现的转换操作有:*BCD码
34、和整数及长整数间的转换 (BTI,ITB,ITD,BTD,DTB,DTR)*实数和长整数间的转换(RND,TRUNC,RND+,RND-)*数的取反、取负等(INVI,INVD,NEGI,NEGD,NEGR)第78页/共141页1.BCD和整数间的转换表4.16 BCD和整数间的转换第79页/共141页表4.16 BCD和整数间的转换第80页/共141页 2.实数和长整数间的转换 实数和长整数间的转换见表4.17。因为实数的数值范围远大于32位整数,所以有的实数不能成功地转换为32位整数。如果被转换的实数格式非法或超出了32位整数的表示范围,则得不到有效结果,而且状态字中的OV和OS被置1。第
35、81页/共141页表4.17 实数和长整数间的转换第82页/共141页3.数的取反、取负表4.18 数的取反、取负第83页/共141页4.4.3 比较指令 1.比较指令表4.19 比 较 指 令第84页/共141页表4.19 比 较 指 令第85页/共141页表4.19 比 较 指 令第86页/共141页图4.32 整数比较CMP=1IN1IN2MW0MW2I0.1I0.1(S)Q4.0 A I0.0 A I0.1 A(L MW0 L MW2 =I )S Q4.0第87页/共141页 2.比较指令应用实例 图4.33示出包括两台传送带的系统,在两台传送带之间有一个仓库区。传送带1将包裹运送至临
36、时仓库区。传送带1靠近仓库区一端安装的光电传感器确定已有多少包裹运送至仓库区。传送带2将临时库区中的包裹运送至装货场,在这里货物由卡车运送至顾客。传送带2靠近库区一端安装的光电传感器确定已有多少包裹从库区运送至装货场。含5个指示灯的显示盘表示临时仓库区的占用程度。图4.34给出了启动显示盘上指示灯的梯形逻辑程序。第88页/共141页图4.33 装有计数器和比较器的仓库区第89页/共141页图4.34 启动显示盘上指示灯的梯形逻辑程序段1:MW200中保存计数器C1当前值的BCD码,Q12.1指示“仓库区不空”程序段2:Q12.0指示“仓库区空”I0.0I0.1I0.2I0.3C#100第90页
37、/共141页图4.34 启动显示盘上指示灯的梯形逻辑第91页/共141页与图4.34对应的语句表程序如下:A I12.0CU C1A I12.1CD C1AN C1=Q12.0A C1=Q12.1L +50L C1=I=Q15.3L C1L +100=I=Q15.4第92页/共141页4.4.4 移位和循环移位指令 移位指令将输入IN中的内容向左或向右逐位移动。移动次数由输入值N提供的数值确定。移位后空出的位填以0或符号位(0代表正,1代表负),被移动的最后一位保存在状态字中的CCl里,CC0和OV被复位为0。可使用条件跳转指令对CCl进行判断。循环移位指令与一般移位指令的差别是:循环移位指令
38、的空位填以从IN中移出的位。第93页/共141页1无符号数移位指令表4.20 无符号数移位指令第94页/共141页图4.35 输入IN左移5位第95页/共141页2.有符号数移位指令 表4.21 有符号数移位指令第96页/共141页图4.36 输入IN带符号右移4位第97页/共141页3.循环移位指令表4.22 循环移位指令第98页/共141页图4.37 输入IN循环左移3位第99页/共141页图4.38 输入IN循环右移3位第100页/共141页4.4.5 累加器操作和地址寄存器指令 1.累加器操作指令表4.23 累加器操作指令第101页/共141页图4.39 CAW、CAD指令执行时累加器
39、1的变化第102页/共141页 下面的例子说明了在有条件触发的程序中INC指令是如何工作的。本例以存储字节MB10作为循环次数计数暂存器,用INC指令修正循环次数,循环体中的程序连续执行5次。LOOP:L MB10 /循环体开始,装载存储字节至累加器1 INC 1 /循环计数器加1 T MB10 /保存循环次数 L B#16#5 I /比较 JC ERR /如果数据块长度大于50,则跳转至ERR标号处 A I0.0 BEU /无条件结束当前块ERR:CALL FC10 /对于块长度大于50的情况,调用FC10做相应的处理第107页/共141页4.显示和空操作指令表4.26 显示和空操作指令第1
40、08页/共141页4.5 数据运算指令4.5.1 算术运算指令 在STEP 7中可以对整数、长整数和实数进行加、减、乘、除算术运算。算术运算指令在累加器l和2中进行,累加器2中的值作为被减数或被除数。算术运算的结果保存在累加器l中,累加器1中原有的值被运算结果覆盖,累加器2中的值保持不变。算术运算指令对状态字的某些位将产生影响,这些位是CCl和CC0,OV,OS。可以用位操作指令或条件跳转指令对状态字中的标志位进行判断操作。第109页/共141页1.整数算术运算 表4.27 整数算术运算第110页/共141页图4.40 使用整数加法方块指令第111页/共141页下面是与图4.40所示梯形图完全
41、对应的语句表程序:A(A I0.0 JNB _0001 L MW0 L MW2 +I T MW10 AN OV /若OV为1,则RLO为0,否则RLO为1 SAVE /使BRRLO CLR _0001:A BR )NOT S Q4.0第112页/共141页2.实数算术运算 表4.28 实数算术运算第113页/共141页4.5.2 字逻辑运算指令表4.29 字逻辑运算指令第114页/共141页4.5.3 数据运算指令应用举例 1.运用算术运算指令完成方程式运算 运用算术运算指令完成下面的方程式运算,其梯形逻辑图如图4.41所示。MW4(IW 0DBW 3)15)/MW 0图4.41 算术运算指令
42、梯形逻辑第115页/共141页实现相同运算的语句表程序如下:L IW0 /将输入字IW0的内容装入累加器1 L DBW3 /将DBW3的内容装入累加器1,累加器1原内容装入累加器2 +I /累加器2与累加器1相加,结果存在累加器1中 L +15 /将常数15装入累加器1,累加器l原内容(和)装入累加器2 *I /累加器2与累加器1相乘,结果为长整数放在累加器1中 L MW0 /将存储双字MD0的内容装入累加器1,累加器1原内容装入累加器2 /I /累加器2除累加器1,结果的整数部分存在累加器1中 T MW4 /将运算结果传送至存储双字MD4完成相同运算功能的梯形图程序和语句表程序各有优缺点:梯
43、形图程序直观易读;语句表程序简洁,而且使用中间结果存储器较少。第116页/共141页 2.用位逻辑运算指令实现对信号的跳变沿检测 对输入位I12.0I13.7进行跳变沿检测,并将正跳沿的检测结果存入存储位M14.0M15.7的对应位中(1表示有跳变,0表示无跳变),负跳沿的结果存入M16.0M17.7中。为此,在检测正跳沿时,使用存储位M10.0M11.7存储对应输入位在前一个扫描周期时的状态;在检测负跳沿时用M12.0M13.7。相应的语句表程序如下:第117页/共141页网络10:正跳沿检测 L MW10 /将输入位的上一个周期状态装入累加器1低字中 L IW12 /将输入位的当前状态装入
44、累加器1低字中,上一个周期状态被移入累加器 2 T MW10 /保存当前状态,供下一个扫描周期使用 XOW /异或运算后,当前状态与以前不同的位在累加器1低字中被置为1 L IW12 /重新装入当前状态,累加器 1原内容移入累加器2 AW /与运算后,当前状态为0的位被清0(负跳变被屏蔽)T MW14 /将正跳变检测结果送入MW 14第118页/共141页 网络11:负跳沿检测 L MW12/将输入位的上一个周期状态写入累加器1低字中 L IW12 /将输入位的当前状态装入累加器l低字中,上一个周期状 态被移入累加器2 T MW12 /保存当前状态,供下一个扫描周期使用 XOW /异或运算后,
45、当前状态与以前不同的位在累加器1低字中 被置为1 L IW12 /重新装入当前状态,累加器1原内容移入累加器2 INVI /将当前状态取反 AW /与运算后,当前状态为1的位(上条指令中已被取反)被清 0(正跳变被屏蔽)T MW16 /将负跳变检测结果送入MW 16第119页/共141页4.6 控 制 指 令4.6.1 逻辑控制指令 逻辑控制指令是指逻辑块内的跳转和循环指令,这些指令中止程序原有的线性逻辑流,跳到另一处执行程序。跳转或循环指令的操作数是地址标号,该地址标号指出程序要跳往何处,标号最多为4个字符,第一个字符必须是字母,其余字符可为字母或数字。第120页/共141页 1.无条件跳转
46、指令(JU)无条件跳转指令(JU)将无条件中断正常的程序逻辑流,使程序跳转到目标处继续执行,见图4.42。图4.42 使用跳转指令控制程序流第121页/共141页2.条件跳转指令表4.30 条件转移指令第122页/共141页表4.31 条件跳转指令与CC0、CC1的关系第123页/共141页图4.43 条件跳转指令控制程序流程第124页/共141页 3.循环指令 使用循环指令(LOOP)可以多次重复执行特定的程序段,重复执行的次数存在累加器1中,即以累加器1为循环计数器。LOOP指令执行时,将累加器1低字中的值减1,如果不为0,则回到循环体开始处继续循环过程,否则执行LOOP指令后面的指令。循
47、环体是指循环标号和LOOP指令间的程序段。由于循环次数不能是负数,因此程序应保证循环计数器中的数为正整数(数值范围:032 767)或字型数据(数值范围:W#16#0000W#16#FFFF)。图4.44是使用LOOP指令的例子。在本例中,考虑到循环体(程序段A)中可能用到累加器1,特设置了循环计数暂存器MB10。第125页/共141页图4.44 使用LOOP指令第126页/共141页 4.梯形图逻辑控制指令 梯形逻辑控制指令只有两条,可用于无条件跳转或条件跳转控制。由于无条件跳转时 对应STL指令JU,因此不影响状态字;由于在梯形图中目的标号只能在梯形网络的开始处,因此条件跳转指令会影响到状
48、态字。在图4.45和图4.46中给出了梯形跳转指令的用法及其对应的语句表。第127页/共141页图4.45 无条件跳转第128页/共141页图4.46 条件跳转第129页/共141页表4.32 状态位常开/常闭触点第130页/共141页表4.32 状态位常开/常闭触点第131页/共141页 这些LAD单元可以用在梯形图程序中,影响逻辑运算结果RLO,最终形成以状态位为条件的跳转操作。图4.47给出了使用状态位的一个例子。图4.47 使用状态位指令第132页/共141页相应的语句表程序如下:A(A I0.0 JNB _0001 L IW0 L IW2 -I T MW10 AN OV /若OV为1
49、,则RLO为0,否则RLO为1 SAVE /使BRRLO CLR _0001:A BR )A 0 S Q4.0 第133页/共141页4.6.2 程序控制指令 程序控制指令是指功能块(FB、FC、SFB、SFC)调用指令和逻辑块(OB、FB、FC)结束指令。调用块或结束块可以是有条件的或是无条件的。STEP 7中的功能块实质上就是子程序。1.STL程序控制指令表4.33 STL程序控制指令第134页/共141页2.梯形图程序控制指令表4.34 梯形图程序控制指令第135页/共141页4.6.3 主控继电器指令 主控继电器(MCR)是一种美国梯形图逻辑主控开关,用来控制信号流(电流路径)的通断。
50、如图4.48所示:图4.48 主控继电器MCR线圈MCR触点电源母线BI12.0I1.0I1.1I1.2I1.3Q4.0Q4.1电源母线A第136页/共141页MCRAAI2.0MCR(OI1.0OI1.1Q4.0AI1.2AI1.3Q4.1)MCRMCRD第137页/共141页表4.35 STEP 7中与主控继电器相关的指令第138页/共141页思考与练习题1.S7-300系列系列PLC如何直接寻址如何直接寻址?什么是间接寻址什么是间接寻址?如何使用如何使用?采用间接寻址方式设计一段程序,将采用间接寻址方式设计一段程序,将10个字节的数据从个字节的数据从100 MB开始的存储单元转移到从开始