RSLOGIX500指令_第1页
RSLOGIX500指令_第2页
RSLOGIX500指令_第3页
RSLOGIX500指令_第4页
RSLOGIX500指令_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

1、附录第一章 位指令2第一节 数据文件3第二节 位指令6第二章 计时器和计数器指令11第三章 比较指令21第四章 算术指令26第五章 传送和逻辑指令32第六章 移位和顺序进出指令35第七章 程序流程指令42第八章 I/O,文件,PID指令46第九章 高速计数指令64第一章 位指令位指令可对数据的单个位进行操作。在运行时,处理器可以根据其所在梯级的逻辑条件置位或复位一位。应用程序可以根据需要对一位寻址任意次。本章第一节介绍位指令地址可使用的数据文件,第二节介绍基本的位指令。第一节 数据文件系统默认的数据文件分为以下几种类型:1. 输出和输入数据文件(O0:和I1:)2. 状态文件(S2:)3. 位

2、文件(B3:)4. 计时器文件(T4:)5. 计数器文件(C5:)6. 控制文件(R6:)7. 整数文件(N7:)上面的文件号也为系统默认的(即系统默认文件0为输出文件,1为输入文件,2为状态文件,等等)。下面对这些系统默认的文件类型分别予以介绍。1. 输出和输入数据文件(O0:和I1:)文件O0中的各位表示外部的输出,文件I1中的各位表示外部的输入。在大多数情况下,这些文件中的每个16位字号与位于控制器内的一槽相对应,位号与相应的输入或输出端子号对应。输出和输入的地址格式用e表示槽号,s表示字号。处理文件指令时,数据文件元素按e.s(槽号和字号)格式一起使用。格式说明O:e.s/bI:e.s

3、/bO输出I输入:元素分隔符e槽号(十进制)0号槽,即第一个框架中靠近电源的槽,用于处理器模块。接下来的是I/O槽(130)。.字分隔符s字号如果某槽的I/O点数超过16时最好用字号(0255)。/位分隔符b端子号015举例:O:3/5 槽3,输出位5I:7/8 槽7,输入位8I:2.1/3 槽2,字1,输入位3字地址:O:5 槽5,输出字0O:5.1 槽5,输出字1I:8 槽8,输入字0特别的,当一个槽的I/O点数超过16个时,寻址位有两种表示方法:使用字、位寻址和直接位寻址。如:MicroLogix 1500系列输出0槽有64点。寻址O:0.2/13时,也可写为O:0/45。缺省值:用户编

4、程设备显示的地址格式将更加正规。例如:当分配地址O:5/0时,编程设备将显示为O:5.0/0(输出文件,槽5,字0,端子0)。2. 状态文件(S2:) 状态文件允许用户监控、控制操作系统的工作状况。监控主要为监控软硬件故障及其它状态信息。控制可通过设置相应的控制位来实现,这首先需要了解状态文件中每个字、每个字节的功能。详细说明请参阅SLC 500 and Micrologix 1000 指令集参考手册附录A。状态文件不能被增加或删除,寻址状态文件的位和字的格式为:S:e/b 各位含义同I/O文件。举例:S:1/15 元素1,位15。这是“首次扫描位”用户在程序中可以使用它来初始化指令。S:3

5、元素3。这一元素的低位字节时当前扫描时间,高位字节是看门狗扫描时间。3. 位文件(B3:)文件3是位文件,主要用于位指令(继电器逻辑),移位寄存器和顺序器指令。位文件的最大容量是256个单字元素,总计为4096位。可以通过指定元素号(0255)和元素内的位编号(015)来寻址位,也可以通过位的顺序编号直接寻址位04095。用户也可以只寻址该文件的元素。举例:B:3/14 元素3,位14B:252/0 元素252,位0B:9 元素9,位015B:/64 或 B/64 位64(即元素4,位0)B:/4042 或 B/4042 位40424. 计时器和计数器文件(T4:和C5:)每个计时器地址由一个

6、3字元素组成,如下表所示: 15 14 13EN TT DN内部使用PRE(预置值)ACC(累计值)字0字1字2上表中,EN:使能位,TT:计时位,DN:完成位。寻址位和字的格式为 Tf:e.s/b举例:T4:0/13 或 T4:0/DN 完成位T4:0.1 或 T4:0.PRE 预置值 T4:0.2/0 或 T4:0.ACC/0 累计值5. 计数器文件(C5:)每个计数器地址由一个3字元素组成,如下表所示: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0CU CD DN OV UN UA内部使用PRE(预置值)ACC(累计值)字0字1字2字 上表中,CU:加计数使

7、能位 CD:减计数使能位DN:完成位OV:上溢出位UN:下溢出位UA:更新累计值位(只用于固定式控制器的HSC指令)。寻址位和字的格式为 Cf:e.s/b举例:C5:0/13 或 C5:0/DN 完成位C5:0.1 或 C5:0.PRE 预置值 C5:0.2/0 或 C5:0.ACC/0 累计值6. 控制文件(R6:)控制文件是3字元素,各字含义如下表。位移、顺序器指令都用到控制文件。字 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0EN EU DN EM ER UL IN FD 错误代码位阵列或文件的长度(LEN)位指针或位置(POS)012举例:R:2 元素2R

8、:2/15 或 R:2/EN 使能位R:2/13 或 R:2/DN 完成位R:2.1 或 R:2.LEN 长度值 R:2.2/0 位置值的0位7. 整数文件(N7:)整数文件是1字元素,可以寻址到元素和位。根据程序的需要来使用整数文件地址。举例:N:2 元素2N:2/8 元素2,位8N10:36 整数文件10,元素36(先前文件10已被用户定义为整数文件)注:整数文件的缺省值为7,如上 N:2 为整数文件7的元素。若所操作元素在其它整数文件上必须注明该文件号,如上 N10:36。第二节 位指令位指令包括:1. 检查闭合(XIC)2. 检查断开(XIO)3. 输出激励(OTE)4. 输出锁存(O

9、TL)5. 输出解锁(OTU)6. 一次启动(ONS)7. 上升沿一次响应(OSR)8. 下降沿一次响应(OSF)下面逐个加以介绍。1. 检查闭合(XIC)XIC属输入指令,用于检查某位是否导通(ON)。它类似于常开开关。当指令执行时,如果寻址位是导通状态(1),则指令被赋值为真;如果寻址位是断开状态(0),则指令被赋值为假。如果寻址位使用了输入映象表的位,则其状态必须与相应地址实际输入设备的状态一致。2. 检查断开(XIO)XIO属输出指令,用于检查某位是否断开(OFF)。它类似于常闭开关。当指令执行时,如果寻址位是断开状态(0),则指令被赋值为真;如果寻址位是导通状态(1),则指令被赋值为

10、假。3. 输出激励(OTE)OTE指令属输出指令,用于控制存储器中的位。若OTE指令前面的梯级条件为真,寻址位导通,相应的设备接通;否则寻址位不能够导通,相应的设备不能够接通。它类似于继电器的输出线圈。OTE指令由它前面的输入指令控制,而继电器的线圈由硬触点控制。4. 输出锁存(OTL)OTL属保持型输出指令。当梯级条件为真时,OTL指令对该寻址位置位。即使梯级条件变为假,该位依然保持置位。若要复位,则需要在另一个阶梯中使用解锁指令OTU,对同一寻址位进行解锁。5. 输出解锁(OTU)OTU属保持型输出指令。常用于复位由OTL指令锁存的位,此时OTL、OTU应使用相同的地址。当梯级条件为真时,

11、OTU指令对该寻址位复位。即使梯级条件变为假,该位依然保持复位。直至另一指令对该位重新置位。下面通过具体的梯形图来进一步理解上述位指令:例1:讨论改变以下开关状态时,灯的变化情况。1) RUNG0中,当I:0/4使能时,O:0/0为真,灯亮。2) RUNG1中,当I:0/5断开时,O:0/1为真,灯亮。3) RUNG2中,只有当I:0/6和I:0/8,或者I:0/7和I:0/8使能时,O:0/2才为真,灯亮。4) RUNG3和RUNG4中,OTL和OTU指令成对出现。一旦I: 0/9使能,O:0/3就锁存为真,灯亮。即使I: 0/9在下一次扫描周期由真变假,灯仍然保持亮。直至I: 0/10使能

12、,O:0/3解锁,灯灭。5) RUNG5中,END指令表明程序结束。6. 一次启动(ONS)ONS属输入指令。当程序中ONS指令所在梯级条件由假到真变化时,它的指令逻辑为真,但只保持一个扫描周期。使用ONS指令可启动由按钮触发的事件,如从拨盘开关上取值。ONS指令中有一个位地址参数,此地址可以是位文件或整数文件地址(如B3:0/3,N7:0/0等)。该位自动存储了ONS指令所在梯级条件(为真则存储1,为假则存储0)。ONS的功能相当于限制所在梯级的输出。当输入条件由假变真时,它使输出为1且只保持一个扫描周期,在以后连续的扫描中输出为0。直到输入再次由假到真跳变。7. 上升沿一次响应(OSR)O

13、SR属输出指令。当OSR指令所在梯级条件由假到真变化时,在输出位(Output Bit)产生一个周期正脉冲(即“上升沿动作类型”)。存储位(Storage Bit)中自动存储了OSR指令所在阶梯的梯级条件(为真则存储1,为假则存储0)。8. 下降沿一次响应(OSF)OSF属输出指令。当OSF指令所在梯级条件由真到假变化时,在输出位(Output Bit)产生一个周期正脉冲(即“下降沿动作类型”)。存储位(Storage Bit)中自动存储了OSF指令所在阶梯的梯级条件(为真则存储1,为假则存储0)。下面我们通过具体的梯形图来进一步理解这三条指令:例2:讨论改变以下开关状态时,灯的变化情况。1)

14、 RUNG0和 RUNG1中,当I:0/4闭合时(即产生一个上升沿信号),ONS指令的梯级条件由假到真变化,它的指令逻辑变为真,使O:4/0和O:4/1两灯都亮。到下一个扫描周期时ONS指令逻辑不再为真,O:4/1灭,O:4/0由于锁存仍为亮。B3:0/0位存储了ONS指令的梯级条件。即I:0/4闭合,B3:0/0为1,O:4/3亮,I:0/4断开,B3:0/0为0,O:4/3灭。只要I:0/4闭合,O:4/2就锁存为亮,直到I:0/9解锁。2) RUNG2、 RUNG3和RUNG4中,当I:0/6闭合时(即产生一个上升沿信号),OSR指令的梯级条件由假到真变化,使在输出位B3:0/2产生一个

15、周期正脉冲,使O:4/5和O:4/6两灯都亮。到下一个扫描周期时,输出位B3:0/2不再有正脉冲,O:4/6灭,O:4/5由于锁存仍为亮。B3:0/1位存储了OSR指令的梯级条件。同上步的分析,I:0/6闭合,B3:0/1为1,O:4/4亮,I:0/6断开,B3:0/1为0,O:4/4灭。3) RUNG5、RUNG6和RUNG7中,当I:0/8断开时(即产生一个下降沿信号),OSF指令的梯级条件由真到假变化,使在输出位B3:0/4产生一个周期正脉冲,使O:4/8和O:4/9两灯都亮。到下一个扫描周期时,输出位B3:0/4不再有正脉冲,O:4/9灭,O:4/8由于锁存仍为亮。B3:0/3位存储了

16、OSF指令的梯级条件。分析同上。4) RUNG8中,I:0/9用于为上面锁存的小灯解锁。第二章 计时器和计数器指令计时器和计数器指令属输出指令,用于控制基于时间和事件记数的操作,包括:1. 延时导通计时器(TON)2. 延时断开计时器(TOF)3. 保持型计时器(RTO)4. 加计数(CTU)5. 减计数(CTD)6. 计时器/计数器复位(RES)下面逐个加以介绍。1. 延时导通计时器(TON)延时导通计时器(TON)的功能是梯级条件变真后经过一段延时时间对输出动作。它相当于继电器控制系统中的通电延时继电器。TON是否启动由它前面的输入指令控制,而通电延时继电器是由硬触点控制。TON的延时时间

17、可任意设定,而通电延时继电器是由它的物理结构决定,不能够任意改动。因此TON指令更加方便灵活。使用TON指令时需要提供以下参数:1) 计时器(Timer):指明所使用的计时器元素(如T4:0)。2) 时基(Time base):计时器每次计时的递增值。Micrologix 1500系列可选择 1S、0.01S和0.001S三种,共可累计32767个时基间隔。它决定了计时器的精度。3) 预置值(Preset):用于设定延时时间,可设为整数-3276832767。4) 累计值(Accum):是一个动态值,表明了到目前计时器已经延时的数值。当梯级条件变真时,TON开始计时,直到下列条件中的任何一个发

18、生为止:累计值=预置值;梯级变假;复位计时器。不论计时器是否计到时,梯级变假时计时器复位累计值(把累计值清0)。TON的状态位可用作对输出的控制信号。正确灵活的应用这些状态位是掌握TON编程的关键。TON的状态位及它们的变化情况如下:状态位置位条件保持置位直到下列情况发生DN累计值>=预置值梯级变为假TT梯级为真且累计值<预置值梯级变为假或被DN置位EN梯级为真梯级变为假注意TT位和EN位的区别。TON工作的时序图为:ONOFFONOFFONOFFONOFFONOFF2分钟3分钟通延时阶梯条件计时器使能位计时器计时位计时器完成位输出设备(完成位控制)时间累计值0120计时器预置值=

19、180180 图3.21 TON时序图例4:有三个马达MTR1、MTR2、MTR3,按先后次序启动。要求MTR1先启动,三秒后MTR2启动,再过5秒后MTR3启动。停止时三个马达同时停止,请模拟这个过程。分析:I:3/0为启动按钮,I:3/1为停止按钮,它们都为点动按钮。用灯O:4/0 、O:4/1、 O:4/2模拟马达MTR1、MTR2、MTR3。当触发I:3/0时,ONS指令的梯级条件由假到真变化,所以有一个周期的正脉冲输出,小灯O:4/0锁存为亮,B3:0/0位锁存为1,计时器T4:0开始计数。当T4:0的累计值=预置值(3S)时,T4:0/DN置位,小灯O:4/1锁存为亮,且计时器T4

20、:1开始计数。当T4:1的累计值=预置值(5S)时,T4:1/DN置位,小灯O:4/2锁存为亮。当触发I:3/1时,O:4/0 、O:4/1、 O:4/2都被解锁,灯灭。例5:某交通要道,南北方向车流量大,东西方向车流量小。南北方向绿灯亮15秒,东西方向绿灯亮10秒。试编一程序模拟交通灯变化。分析:I:3/0为启动按钮,I:3/1为停止按钮,它们都为点动按钮。灯O:4/0为南北绿灯,O:4/2为南北红灯,O:4/6为东西绿灯,O:4/8为东西红灯。当触发I:3/0,使能ONS指令,灯O:4/0、O:4/8亮,O:4/2、O:4/6灭,B3:0/1置位为1,T4:0开始工作。T4:0计时15S后

21、动作,T4:0/DN闭合,O:4/0、O:4/8灭,O:4/2、O:4/6亮,T4:1开始工作。T4:1计时10S后动作,T4:1/DN闭合,其XIC(检查断开)逻辑变为假,T4:0被复位,T4:0/DN变为0,所以T4:1也被复位,其XIC逻辑又变为真,灯O:4/0、O:4/8亮,O:4/2、O:4/6灭,T4:0又开始工作。除非触发停止按钮I:3/1使它们停止和复位,程序将一直循环执行,这样就实现了交通灯交替亮灭。2. 延时断开计时器(TOF)延时断开计时器(TOF)的功能是梯级条件变假后经过一段延时时间对输出动作。它相当于继电器控制系统中的断电延时继电器。TOF指令各参数的含义与TON相

22、同。当梯级条件变假时,TOF开始计时,直到下列条件中的任何一个发生为止:累计值=预置值;梯级变真。不论计时器是否计到时,梯级变真时计时器复位累计值。TOF指令的状态位变化情况如下,注意它们和TON的区别。状态位置位条件保持置位直到下列情况发生DN梯级为真梯级变为假且累计值>=预置值TT梯级为假且累计值<预置值梯级变为真或DN被复位EN梯级为真梯级变为假无论任何情况都不要用RES指令对TOF复位。因为RES总是清零状态位及累计值,若对TOF复位,则DN,TT,EN被清零,可能会使指令逻辑陷于混乱,发生不可预知的结果。3. 保持型计时器(RTO) TON和TOF计时器在梯级条件变假时,

23、累计值和DN位都要被复位,梯级条件变为真后又重新计时,有时这会给某些应用带来不便。这时我们可以采用能累积计时的RTO指令。当梯级条件为真时,RTO指令开始计时。当下列任何情况发生时,RTO指令保持它的累计值:梯级变假;用户改变到编程方式;处理器出错或断电。 当处理器重新运行或阶梯变真时,RTO计时器从保持的值开始继续计时,直到累计值达到预置值。如果需要复位其累计值和状态位,可在另一阶梯中用RES指令对相同地址的计时器复位。无论任何情况,复位指令总是优先执行。即只要使能复位指令,无论计时器是否正在计时,累计值及状态位总被复位为0。RTO指令的状态位的变化情况如下:状态位置位条件保持置位直到下列情

24、况发生DN累计值>=预置值相应的RES指令使能TT梯级为真且累计值<预置值梯级变为假或被DN置位EN梯级为真梯级变为假4. 加计数(CTU)CTU指令在-3276832767范围内向上计数。每一次梯级条件由假变真时CTU累计值加1。当梯级再次变为假时累计值保持不变。当累计值等于或超过预置值时,CTU指令置位完成位DN。编程时可以用CTU指令计数某些动作来引发事件,比如通过计数一个存储位的变化或一个外设的导通关断变化次数来让另一外设动作。CTU指令的状态位及变化情况为:状态位置位条件保持置位直到下列情况发生OV累计值返回到-32768(即从32767继续计数)相应的RES指令使能或者

25、用CTD指令使累计值<=32767DN累计值>=预置值累计值<预置值CU梯级为真梯级变为假或相应的RES指令使能CTU工作的时序图为:由计数器控制阶梯上的输出指令ONOFFONOFFONOFFONOFFONOFF控制计数器的阶梯条件计时器使能位.EN控制复位指令的阶梯条件完成位.DN计数器累计值012340计数器预置值=4图3.22 CTU时序图例7:试编一个自动增计数器。分析:I:0/4为保持式按钮,I:0/9为点动式按钮。在RUNG0中,当I:0/4使能,启动T4:0工作。延时1S后动作,T4:0/DN置位,其常闭断开T4:0被复位,T4:0/DN清0,其常闭闭合又启动T

26、4:0工作。如此循环执行。相当于每1S,T4:0/DN位产生一个正脉冲。这样RUNG0构成了一个1S脉冲发生器,向RUNG1中每1S提供一个正脉冲,每来一个正脉冲C5:0的累计值就增1,这样就实现了自动增计数器。只要I:0/9使能,C5:0的累计值就立即复位为0。5. 减计数(CTD)CTD指令在-3276832767范围内向下计数。每一次梯级条件由假变真时CTU累计值减1。当梯级再次变为假时累计值保持不变。当累计值等于或超过预置值时,CTU指令置位完成位DN。编程时可以用它计数某些动作来引发其它事件,比如通过计数一个存储位的变化或一个外设的导通关断变化来控制另一外设动作。状态位置位条件保持置

27、位直到下列情况发生UN累计值返回到32767(即从-32768继续计数)相应的RES指令使能或者用CTD指令使累计值>=-32767DN累计值>=预置值累计值<预置值CD梯级为真梯级变为假或相应的RES指令使能6. 计时器/计数器复位(RES)RES指令用于复位计时器(除TOF) 和计数器。当梯级条件为真时RES指令复位相同寻址位的计时器或计数器(把状态位和累计值清0)。无论任何情况RES指令优先执行。例8:现有一个液体混合容器,有两个输入液体阀和一个输出液体阀。使用程序模拟这三个阀的流量情况。分析:用计时器T4:1,T4:2,T4:3来模拟流速。在RUNG1中,当

28、使能I:0/4,运行TON指令。经过1.6S,T4:1/DN置位。其常闭断开后T4:1马上复位,T4:1/DN又立即被复位,又运行TON指令。如此循环执行。相当于每1.6S,T4:1/DN位产生一个脉冲。同理,T4:2/DN每1.5S,T4:3/DN每1S产生一个脉冲。用计数器C5:0的累计值来模拟容器中的液位。每当T4:1/DN位产生一个脉冲,C5:0的累计值就加1。形象的说,就好象每1.6S注入一单位的液体。对T4:3/DN用的是减计数器,每当T4:3/DN位产生一个脉冲,C5:0的累计值就减1。就好象每1S从容器里放掉一单位的液体。当I:0/4使能,每1.6秒 C5:0的累计值就加1。当

29、I:0/5使能,每1.5秒 C5:0的累计值就加1。当I:0/6使能,每1秒 C5:0的累计值就减1。这样就模拟了三个阀的流量情况。本程序也有不足之处,例如计数器的累计值可以无限制的增加和减小,这不符合客观实际情况,在后面的章节里我们会用另外的程序来解决这个问题。第三章 比较指令比较指令属输入指令,用于比较两值作为逻辑梯级连续的条件。例如,小于(LES)指令有两个操作数,如果第一个小于第二个,那么LES指令为真。比较指令共包括:1. 等于(EQU)2. 不等于(NEQ)3. 小于(LES)4. 小于或等于(LEQ)5. 大于(GRT)6. 大于或等于(GEQ)7. 相等屏蔽比较(MEQ)8.

30、极限比较(LIM)它们的用法大致相同,掌握了一个也就掌握了其它的。下面逐个加以介绍。1. 等于(EQU)使用EQU指令比较二值是否相等。如果源A的值和源B的值相等,指令逻辑为真,否则为假。操作数为两个数的比较指令(比如有源A和源B两个操作数的EQU指令)一般要求的数据寻址方式为:源A必须为地址,源B可为常数或地址。例1:读程序分析结果。分析:上面程序即为EQU指令的一个简单应用。RUNG0中,Source A与Source B的值相等,小灯O:4/0亮。RUNG1中,Source A与Source B的值不等,小灯O:4/1灭。2. 不等于(NEQ)使用NEQ指令比较二值是否不相等。如果源A的

31、值和源B的值不相等,指令逻辑为真,否则为假。3. 小于(LES)使用LES指令比较一个值是否小于另一个值。如果源A的值小于源B的值,指令逻辑为真,否则为假。4. 小于或等于(LEQ)使用LEQ指令比较一个值是否小于或等于另一个值。如果源A的值小于或等于源B的值,指令逻辑为真,否则为假。5. 大于(GRT)使用GRT指令比较一个值是否大于另一个值。如果源A的值大于源B的值,指令逻辑为真,否则为假。6. 大于或等于(GEQ)使用GEQ指令比较一个值是否大于或等于另一个值。如果源A的值大于或等于源B的值,指令逻辑为真,否则为假。7. 相等屏蔽比较(MEQ)使用MEQ指令比较源地址中的数据和比较地址中

32、的数据,允许被一个独立字屏蔽。MEQ相当于把源值和比较值的数据分别与屏蔽字作位与位的逻辑与操作,然后比较两个所得结果。如果相等,指令逻辑为真,否则为假。可看作屏蔽字中复位的位屏蔽数据,置位的位通过数据。因此只比较源值和比较值的在屏蔽字中的相应位为1的那些位。 例如:上面程序中,屏蔽字设为了00FFh,所以只比较B:3/0和B:3/1的低八位,而屏蔽掉了高八位。只要低八位相等,指令逻辑就为真,小灯O:4/0亮。8. 极限比较(LIM)使用LIM指令,根据用户设定的极限值,比较某值是在指定范围之内或之外。指令的真假状态:如果下限值小于或等于上限值,当比较值在极限范围内或等于任一极限值时,指令逻辑为

33、真,否则为假。如果下限值大于上限值,当比较值在极限范围内,指令逻辑为假。如果比较值等于任一极限值或超出极限范围,指令为真。下限值,比较值,和上限值可以是字地址或常数,组合受到以下限制:如果比较参数是一个常数,下限参数和上限参数必须是字地址。如果比较参数是一个字地址,下限参数和上限参数可以是常数或字地址。例2:现有一个液体混合容器,有两个输入液体阀和一个输出液体阀。使用程序模拟这三个阀的流量情况。并设置液位上下限报警,使相应阀门关闭。分析:本程序为第二章例8的问题。前半部分和例8的思想一样。在后面加上了范围判断的指令,实现了上下限的报警,和相应阀门关闭。若同时有注入和流出阀门打开,上面程序可自动

34、循环。第四章 算术指令算术指令属输出指令,当梯级条件为真时,执行指定的算术运算,输出结果存放到一个指定的存储单元。并根据结果自动设置状态位。例如,加和减指令都是取两个输入值,进行加或减运算,运算结果存放到指定的目的地址内。并根据结果自动设置了状态位。算术指令包括:1. 加指令(ADD)2. 减指令(SUB)3. 乘指令(MUL)4. 除指令(DIV)5. 平方根(SQR)6. 取反指令(NEG)7. 整数转换成BCD码(TOD)8. 从BCD码转换成整数(FRD)9. 线性转换(SCP)10. 编码(ENC)11. 解码(DCD)它们的用法也大致相同,下面逐个加以介绍。1. 加指令(ADD)A

35、DD指令使源A和源B的值相加,结果存放到目的地址内。例1:读程序分析结果。分析:上面程序为ADD指令的一个简单应用。ADD指令把Source A和Source B的值相加,结果存入Dest中(4+9,结果13存入N7:2)。2. 减指令(SUB)SUB指令使源A的值减去源B的值,结果存放到目的地址内。3. 乘指令(MUL)MUL指令使源A的值乘以源B的值,结果存放到目的地址内。4. 除指令(DIV) DIV指令使源A的值被源B的值所除。商四舍五入存放在目的地址内。5. 平方根(SQR)SQR指令计算源值绝对值的平方根,结果四舍五入存放在目的地址内。6. 取反指令(NEG)NEG指令改变源值的符

36、号然后存放到目的地址内。例如,如果源的值是3,目的数据将是-3。7. 整数转换成BCD码(TOD)BCD指令把16-位整数值转换成BCD码。如果输入的整数是负数,则转换其绝对值。例:试编制一个6位数的自动计数器,用BCD码分别在N7:0和N:1上表示。 分析:MicroLogix1500中,计数器向上计数只能计到32767,在计数范围较大的场合常感到不够用,但是如果采用多个数据进位的关系来表达,几乎可以计到无限。我们可以先用一个计数器来表示六位计数器的低四位,用另一个计数器来模拟六位计数器的高两位。本程序中,RUNG0产生计数脉冲,RUNG1用一个计数器来表示六位计数器的低四位,RUNG2用另

37、一个计数器来表示六位计数器的高两位。RUNG3两位计数器一旦完成计数(即六位计数器已完成999999),两位计数器清0复位并输出信号。RUNG4和RUNG5用TOD指令把两个计数器的累计值变为BCD码在整数文件中显示,N7:0显示低四位,N7:1显示高两位。8. 从BCD码转换成整数(FRD)FRD指令把BCD码转换成16-位整数值。如果源数据不符合BCD码格式则发生处理器出错。9. 线性转换(SCP)SCP指令可对一个数进行线性转换。Input 为转换的输入值。Input Min Input Max为设定的输入值的范围。Scaled Min Scaled Max为希望得到的转换结果的范围。当

38、梯级条件为真,它可以把输入值(Input)线性转化到Scaled Min Scaled Max中。转换规则根据下面方程:10. 编码(ENC)ENC指令可以把Source编码。Source为16位字,并且只能有一位为1,其余位均为0。转换规则如下: Source Dest0000 0000 0000 0001 00000 0000 0000 0010 10000 0000 0000 0100 20000 0000 0000 1000 30000 0000 0001 0000 40000 0000 0010 0000 50000 0000 0100 0000 60000 0000 1000 00

39、00 70000 0001 0000 0000 80000 0010 0000 0000 90000 0100 0000 0000 100000 1000 0000 0000 110001 0000 0000 0000 120010 0000 0000 0000 130100 0000 0000 0000 141000 0000 0000 0000 1511. 解码(DCD)DCD指令为ENC指令的逆运算。它把源数据(Source)的最低4位的转化结果置入目的地址(Dest)中。转换规则为上表的逆。第五章 传送和逻辑指令传送和逻辑指令属输出指令,当梯级条件为真时,执行相应的传送或逻辑操作。指令

40、执行后,并根据结果自动设置状态位。传送和逻辑指令包括:1. 传送(MOV)2. 屏蔽传送(MVM)3. 逻辑与(AND)4. 逻辑或(OR)5. 逻辑异或(XOR)6. 逻辑非(NOT)7. 清零(CLR) 下面逐个加以介绍。1. 传送(MOV )MOV指令将数据从源地址传送到目的地址。只要梯级保持为真,每次扫描指令都重新传送数据。2. 屏蔽传送(MVM)MVM指令将数据从源地址传送到目的地址,并且允许部分目的数据被一个独立的字屏蔽。只要梯级条件保持为真,每次扫描该指令都重新传送数据。上面程序中,数据传送的方式为:屏蔽字中位为0时,源值相应位的数据不传送,相当于源值和目的值的相应位数据保持不变

41、。屏蔽字中位为1时,源值相应位的数据传送到目的地址的相应位,相当于MOV指令。1514131211109876543210B3:01100000000110011Mask0000000011111111B3:100001100001100113. 逻辑与(AND)AND指令使源A与源B执行位与位的逻辑与操作。结果存储在目的地址内。4. 逻辑或(OR)OR指令使源A与源B执行位与位的逻辑或操作。结果存储在目的地址内。5. 逻辑异或(XOR)XOR指令使源A与源B执行位与位的逻辑异或操作。结果存储在目的地址内。6. 逻辑非(NOT)NOT指令使源A与源B执行位与位的逻辑非操作。结果存储在目的地址内

42、。7. 清零(CLR)CLR指令使目的地址的值清为0。第六章 移位和顺序进出指令移位和顺序进出指令属输出指令。每一次梯级条件由假变真时,移位指令把指定地址内的所有位都移动一个位的位置,顺序进出指令完成一次顺序进出或比较操作。移位和顺序进出指令包括:1. 位左移(BSL)2. 位右移(BSR)3. 顺序器装入(SQL)4. 顺序器比较(SQC)5. 顺序器输出(SQO)6. FIFO装入(FFL)7. FIFO卸出(FFU)8. LIFO装入(LFL)9. LIFO卸出(LFU)下面逐个加以介绍。1. 位左移(BSL)当梯级条件由假变真时,BSL指令对File文件指定的数据向左(向高位)移动一位

43、。由Bit Address指定的一位被移入最右位(最低位)。MicroLogix1500中Length的设定范围为02048,含义为文件中参与移位的数据块的位数。但是实际上只能移位整数个字的所有位。参与移位的字数为对Length除以16,再向上取整。如上例,当Length的值为16时,实际上都是移动N7:0的16位。2. 位右移(BSR)当梯级条件由假变真时,BSR指令对File文件指定的数据向右(向低位)移动一位。由Bit Address指定的一位被移入最左位(最高位)。Length的含义与BSL中的相同。例1:O:0.0的预置状态为1111000000000000。试编一程序,其前20S,

44、按每秒一次的速度进行左移位;后20S,按每秒一次的速度进行右移位。循环进行。分析:本程序借鉴了前面的交通灯设计的思想。RUNG1和RUNG2即为交通灯交替亮的实现方式。只不过这里让它使B3:1/0和B3:1/1交替置1。RUNG0为1S脉冲发生器。RUNG3和RUNG4中,B3:1/0、B3:1/1和T4:2/DN共同作为移位控制信号,实现了循环左右移位的要求。下面的顺序器指令一般用来控制具有连续和重复操作特性的自动化生产线。顺序器指令包括:顺序器装入指令SQL、顺序器比较指令SQC、顺序器输出指令SQO。我们结合下面的程序来体会这三条指令。3. 顺序器装入(SQL)4. 顺序器比较(SQC)

45、5. 顺序器输出(SQO)例2:读程序分析结果。分析:RUNG0为3S脉冲发生器。为RUNG1RUNG3提供脉冲信号。RUNG1中,#File N9:0为顺序器装入文件,Source N7:0为数据源。当梯级条件由假到真变化时,SQL指令从数据源读入16位数据,把它存入顺序器装入文件。当梯级条件再由假到真变化时,SQL指令再从数据源读入16位数据,把它存入顺序器装入文件的下一步(字)。如此执行Length次(这里为10)。所以上例RUNG1的执行结果为每3S从N7:0读一次数据,然后把它们顺序装入N9:0、N9:1、N9:2、一直到N9:9,共执行了10次。这时就可以轻松的读懂RUNG3了。只

46、不过它还可以设置独立的屏蔽字。每3S从顺序器文件读出一个数据(第1次读N10:0,第2次读N10:1,依次类推)。经过屏蔽后都送到N11:0。屏蔽位为1的可以通过数据,屏蔽位为0的不能通过数据。这里屏蔽字设为了0FFFFH,数据都可以通过。RUNG2为顺序器比较指令SQC。它的执行结果为:每3S从顺序器文件N12:0顺序读入一个数据,经过屏蔽后和源数据相比较,如果相等则FD位被置1,否则被置0。例3:每2S从I:0.0读入一个数据,共读9次,完成顺序器装载。然后将顺序器文件按每2S一次的速度依次传到O:0.0显示。分析:上面程序为顺序器输入输出的一个简单应用。需注意它们需使用不同的控制字。否则

47、将处以混乱状态。6. FIFO装入(FFL)7. FIFO卸出(FFU)FFL和FFU 指令是成对使用的。它们实际为对数据结构中队列(FIFO,First In First Out,先进先出)的操作。FFL相当于进队操作,FFU相当于出队操作。例4:试编一程序,可以从输入口I0:0置入10个数,然后依次在输出口O0:0显示。分析:本程序中FFL、FFU指令成对使用,此时应使用相同的控制字。程序运行后,前20S,每2S从I0:0读入一个数据,然后存入队列文件#N7:0中。后20S,每2S从队列文件#N7:0中读出一个数据,然后显示在O0:0上(按先进先出的顺序读数)。8. LIFO装入(LFL)

48、9. LIFO卸出(LFU)LFL和LFU 指令是成对使用的。它们实际为对数据结构中堆栈(LIFO,Last In First Out,后进先出)的操作。LFL相当于进栈操作,LFU相当于出栈操作。若将上例的FFL、FFU指令换为LFL、LFU指令,则在输出口O0:0上,首先显示最后输入的数据,然后再显示倒数第2次输入的数据,依次类推,最后显示第1次输入的数据。第七章 程序流程指令程序流程指令控制梯形图程序执行的顺序。有代表性的应用这些指令,可提高程序的执行效率和可读性,也有利于程序的故障检测。程序流程指令包括:1. 程序跳转(JMP、LBL)2. 跳转到子程序(JSR、SBR、RET)3. 暂停(TND)4. 中断(SUS)5. 主控程序(MCR)下面分别加以介绍。1. 程序跳转(JMP、LBL)JMP指令使处理器在执行梯形图程序时跳过一些梯级,LBL指令是具有相同标号的JMP指令的跳转目标。成对使用跳转和标号指令,可以跳转到程序的某一部分。若跳转指令为真,则处理器从JMP梯级跳到LBL梯级继续执行程序,而且既可以可以向前跳,也可以向后跳。若跳转指令为假,则程序忽略JMP指令。向后跳向一个标号省略了某段程序,故而缩短了扫描时间。向前跳转可使处理器反复执行一段程序,直到其逻辑完成为止。设JMP和LBL指令标号的设置范围为0999。上例中,当I:0/6使

温馨提示

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

评论

0/150

提交评论