AB-PLC-5000-编程基础指令例说明

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

附录
第一章位指令 (2)
第一节数据文件 (3)
第二节位指令 (6)
第二章计时器和计数器指令 (11)
第三章比较指令 (21)
第四章算术指令 (26)
第五章传送和逻辑指令 (32)
第六章移位和顺序进出指令 (35)
第七章程序流程指令 (42)
第八章I/O,文件,PID指令 (46)
第九章高速计数指令 (64)
第一章位指令
位指令可对数据的单个位进行操作。

在运行时,处理器可以根据其所在梯级的逻辑条件置位或复位一位。

应用程序可以根据需要对一位寻址任意次。

本章第一节介绍位指令地址可使用的数据文件,第二节介绍基本的位指令。

第一节数据文件
系统默认的数据文件分为以下几种类型:
1.输出和输入数据文件(O0:和I1:)
2.状态文件(S2:)
3.位文件(B3:)
4.计时器文件(T4:)
5.计数器文件(C5:)
6.控制文件(R6:)
7.整数文件(N7:)
上面的文件号也为系统默认的(即系统默认文件0为输出文件,1为输入文件,2为状态文件,等等)。

下面对这些系统默认的文件类型分别予以介绍。

1.输出和输入数据文件(O0:和I1:)
文件O0中的各位表示外部的输出,文件I1中的各位表示外部的输入。

在大多数情况下,这些文件中的每个16位字号与位于控制器内的一槽相对应,位号与相应的输入或输出端子号对应。

输出和输入的地址格式用e表示槽号,s表示字号。

处理文件指令时,数据文件元素
举例:
O:3/5 槽3,输出位5
I:7/8 槽7,输入位8
I:2.1/3 槽2,字1,输入位3
字地址:
O:5 槽5,输出字0
O:5.1 槽5,输出字1
I:8 槽8,输入字0
特别的,当一个槽的I/O点数超过16个时,寻址位有两种表示方法:使用字、位寻址
和直接位寻址。

如:MicroLogix 1500系列输出0槽有64点。

寻址O:0.2/13时,也可写
为O:0/45。

缺省值:用户编程设备显示的地址格式将更加正规。

例如:当分配地址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 元素3。

这一元素的低位字节时当前扫描时间,高位字节是看门狗扫描时间。

3.位文件(B3:)
文件3是位文件,主要用于位指令(继电器逻辑),移位寄存器和顺序器指令。

位文件
的最大容量是256个单字元素,总计为4096位。

可以通过指定元素号(0~255)和元素内
的位编号(0~15)来寻址位,也可以通过位的顺序编号直接寻址位0~4095。

用户也可以只
寻址该文件的元素。

举例:
B:3/14 元素3,位14
B:252/0 元素252,位0
B:9 元素9,位0~15
B:/64 或 B/64 位64(即元素4,位0)
B:/4042 或 B/4042 位4042
4.计时器和计数器文件(T4:和C5:)
每个计时器地址由一个3字元素组成,如下表所示:
15 14 13 12 11 ......16位式表示法
字1
字2
上表中,EN:使能位,TT:计时位,DN:完成位。

寻址位和字的格式为 Tf:e.s/b
举例:
T4:0/13 或 T4:0/DN 完成位
T4:0.1 或 T4:0.PRE 预置值
文件名号:几位号.16位存址号(里记载预设值等)/内部状态使能位 T4:位号.1或2/0 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 0 字0 字1 字2
上表中,CU :加计数使能位
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 0 0 1 2
举例:
R :2 元素2 R :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 元素2
N:2/8 元素2,位8
N10:36 整数文件10,元素36(先前文件10已被用户定义为整数文件)注:整数文件的缺省值为7,如上 N:2 为整数文件7的元素。

若所操作元素在其它整数文件上必须注明该文件号,如上 N10:36。

第二节 位指令
位指令包括:
1. 检查闭合(XIC )
2. 检查断开(XIO )
3. 输出激励(OTE )
4. 输出锁存(OTL )
5. 输出解锁(OTU )
6. 一次启动(ONS )
7. 上升沿一次响应(OSR ) 8. 下降沿一次响应(OSF ) 下面逐个加以介绍。

1. 检查闭合(XIC )
XIC 属输入指令,用于检查某位是否导通(ON )。

它类似于常开开关。

当指令执行时,如果寻址位是导通状态(1),则指令被赋值为真;如果寻址位是断开状态(0),则指令被赋值为假。

如果寻址位使用了输入映象表的位,则其状态必须与相应地址实际输入设备的状态一致。

2. 检查断开(XIO )
XIO 属输出指令,用于检查某位是否断开(OFF )。

它类似于常闭开关。

当指令执行时,如果寻址位是断开状态(0),则指令被赋值为真;如果寻址位是导通状态(1),则指令被赋值为假。

3. 输出激励(OTE )
OTE 指令属输出指令,用于控制存储器中的位。

若OTE 指令前面的梯级条件为真,寻址位导通,相应的设备接通;否则寻址位不能够导通,相应的设备不能够接通。

它类似于继电器的输出线圈。

OTE 指令由它前面的输入指令控制,而继电器的线圈由硬触点控制。

4. 输出锁存(OTL )
OTL 属保持型输出指令。

当梯级条件为真时,OTL 指令对该寻址位置位。

即使梯级条件
变为假,该位依然保持置位。

若要复位,则需要在另一个阶梯中使用解锁指令
OTU ,对同一寻址位进行解锁。

5. 输出解锁(OTU )
OTU 属保持型输出指令。

常用于复位由OTL 指令锁存的位,此时OTL 、OTU 应使用相同的地址。

当梯级条件为真时,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使能,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)
OSR属输出指令。

当OSR指令所在梯级条件由假到真变化时,在输出位(Output Bit)产生一个周期正脉冲(即“上升沿动作类型”)。

存储位(Storage Bit)中自动存储了OSR 指令所在阶梯的梯级条件(为真则存储1,为假则存储0)。

8.下降沿一次响应(OSF)
OSF属输出指令。

当OSF指令所在梯级条件由真到假变化时,在输出位(Output Bit)产生一个周期正脉冲(即“下降沿动作类型”)。

存储位(Storage Bit)中自动存储了OSF 指令所在阶梯的梯级条件(为真则存储1,为假则存储0)。

下面我们通过具体的梯形图来进一步理解这三条指令:
例2:讨论改变以下开关状态时,灯的变化情况。

1)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产生一个周期正脉冲,使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位存储了OSF指令的梯级条件。

分析同上。

4)RUNG8中,I:0/9用于为上面锁存的小灯解锁。

`
第二章 计时器和计数器指令
计时器和计数器指令属输出指令,用于控制基于时间和事件记数的操作,包括: 1. 延时导通计时器(TON ) 2. 延时断开计时器(TOF ) 3. 保持型计时器(RTO ) 4. 加计数(CTU ) 5. 减计数(CTD )
6. 计时器/计数器复位(RES ) 下面逐个加以介绍。

1. 延时导通计时器(TON )
延时导通计时器(TON )的功能是梯级条件变真后经过一段延时时间对输出动作。

它相当于继电器控制系统中的通电延时继电器。

TON 是否启动由它前面的输入指令控制,而通电延时继电器是由硬触点控制。

TON 的延时时间可任意设定,而通电延时继电器是由它的物理结构决定,不能够任意改动。

因此TON 指令更加方便灵活。

使用TON 指令时需要提供以下参数:
1) 计时器(Timer ):指明所使用的计时器元素(如T4:0)。

2) 时基(Time base ):计时器每次计时的递增值。

Micrologix 1500系列可选择 1S 、
0.01S 和0.001S 三种,共可累计32767个时基间隔。

它决定了计时器的精度。

3) 预置值(Preset ):用于设定延时时间,可设为整数-32768~32767。

4) 累计值(Accum ):是一个动态值,表明了到目前计时器已经延时的数值。

当梯级条件变真时,TON 开始计时,直到下列条件中的任何一个发生为止: 累计值=预置值; 梯级变假; 复位计时器。

不论计时器是否计到时,梯级变假时计时器复位累计值(把累计值清0)。

TON 的状态位可用作对输出的控制信号。

正确灵活的应用这些状态位是掌握TON 编程的关键。

TON
的状态位及它们的变化情况如下:
状态位 置位条件
保持置位直到下列情况发生 DN 累计值>=预置值
梯级变为假
TT 梯级为真且累计值<预置值 梯级变为假或被DN 置位 EN
梯级为真
梯级变为假
注意TT 位和EN 位的区别。

TON 工作的时序图为:
图3.21 TON 时序图
例4:有三个马达MTR1、MTR2、MTR3,按先后次序启动。

要求MTR1先启动,三秒后MTR2启动,再过5秒后MTR3启动。

停止时三个马达同时停止,请模拟这个过程。

ON
OFF ON OFF ON OFF ON OFF ON OFF
2分钟 3分钟

延时 阶梯条件
计时器使能位 计时器计时位
计时器完成位 输出设备 (完成位控制) 时间 累计值
0 120 计时器预置值=180
180
分析: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: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后动作,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相同。

当梯级条件变假时,TOF开始计时,直到下列条件中的任何一个发生为止:累计值=预置值;
梯级变真。

不论计时器是否计到时,梯级变真时计时器复位累计值。

TOF
状态位置位条件保持置位直到下列情况发生
DN 梯级为真梯级变为假且累计值>=预置值
TT 梯级为假且累计值
<
预置值梯级变为真或DN被复位
EN 梯级为真梯级变为假
无论任何情况都不要用RES指令对TOF复位。

因为RES总是清零状态位及累计值,若对TOF复位,则DN,TT,EN被清零,可能会使指令逻辑陷于混乱,发生不可预知的结果。

3.保持型计时器(RTO)
TON和TOF计时器在梯级条件变假时,累计值和DN位都要被复位,梯级条件变为真后又重新计时,有时这会给某些应用带来不便。

这时我们可以采用能累积计时的RTO指令。

当梯级条件为真时,RTO指令开始计时。

当下列任何情况发生时,RTO指令保持它的累计值:
梯级变假;
用户改变到编程方式;
处理器出错或断电。

当处理器重新运行或阶梯变真时,RTO计时器从保持的值开始继续计时,直到累计值达到预置值。

如果需要复位其累计值和状态位,可在另一阶梯中用RES指令对相同地址的计时器复位。

无论任何情况,复位指令总是优先执行。

即只要使能复位指令,无论计时器是否正在计时,累计值及状态位总被复位为0。

RTO指令的状态位的变化情况如下:
状态位置位条件保持置位直到下列情况发生
DN 累计值>=预置值相应的RES指令使能
TT 梯级为真且累计值<预置值梯级变为假或被DN置位
EN 梯级为真梯级变为假
4.加计数(CTU)
CTU指令在-32768~32767范围内向上计数。

每一次梯级条件由假变真时CTU累计值加1。

当梯级再次变为假时累计值保持不变。

当累计值等于或超过预置值时,CTU指令置位完成位DN。

编程时可以用CTU指令计数某些动作来引发事件,比如通过计数一个存储位的变化或一个外设的导通关断变化次数来让另一外设动作。

CTU指令的状态位及变化情况为:
状态位
置位条件保持置位直到下列情况发生OV 累计值返回到-32768(即
从32767继续计数)
相应的RES指令使能或者用CTD指令
使累计值<=32767
DN 累计值>=预置值累计值<预置值
CU 梯级为真梯级变为假或相应的RES指令使能CTU工作的时序图为:
图3.22 CTU时序图
例7:试编一个自动增计数器。

由计数器控制阶
梯上的输出指令
ON
OFF
ON
OFF
ON
OFF
ON
OFF
ON
OFF
控制计数器
的阶梯条件
计时器使能位.EN
控制复位指令
的阶梯条件
完成位.DN
计数器累计值0
1
2 3
4
计数器预置值=4
分析:I:0/4为保持式按钮,I:0/9为点动式按钮。

在RUNG0中,当I:0/4使能,启动T4:0工作。

延时1S后动作,T4:0/DN置位,其常闭断开T4:0被复位,T4:0/DN 清0,其常闭闭合又启动T4:0工作。

如此循环执行。

相当于每1S,T4:0/DN位产生一个正脉冲。

这样RUNG0构成了一个1S脉冲发生器,向RUNG1中每1S提供一个正脉冲,每来一个正脉冲C5:0的累计值就增1,这样就实现了自动增计数器。

只要I:0/9使能,C5:0的累计值就立即复位为0。

5.减计数(CTD)
CTD指令在-32768~32767范围内向下计数。

每一次梯级条件由假变真时CTU累计值减1。

当梯级再次变为假时累计值保持不变。

当累计值等于或超过预置值时,CTU指令置位完成位DN。

编程时可以用它计数某些动作来引发其它事件,比如通过计数一个存储位的变化
状态位
置位条件保持置位直到下列情况发生
UN 累计值返回到32767(即从-32768继续计数)相应的RES指令使能或者用CTD指令使累计值>=-32767
DN 累计值>=预置值累计值<预置值
CD 梯级为真梯级变为假或相应的RES指令使能
6.计时器/计数器复位(RES)
RES指令用于复位计时器(除TOF)和计数器。

当梯级条件为真时RES指令复位相同寻址位的计时器或计数器(把状态位和累计值清0)。

无论任何情况RES指令优先执行。

例8:现有一个液体混合容器,有两个输入液体阀和一个输出液体阀。

使用程序模拟这三个阀的流量情况。

分析:用计时器T4:1,T4:2,T4:3来模拟流速。

在RUNG1中,当使能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。

当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.极限比较(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 的值和源B 的值不相等,指令逻辑为真,否则为假。

3. 小于(LES )
使用LES 指令比较一个值是否小于另一个值。

如果源A 的值小于源B 的值,指令逻辑为真,否则为假。

4. 小于或等于(LEQ )
使用LEQ 指令比较一个值是否小于或等于另一个值。

如果源A 的值小于或等于源B 的值,指令逻辑为真,否则为假。

5. 大于(GRT )
使用GRT 指令比较一个值是否大于另一个值。

如果源A 的值大于源B 的值,指令逻辑为真,否则为假。

6. 大于或等于(GEQ

使用GEQ 指令比较一个值是否大于或等于另一个值。

如果源A 的值大于或等于源B 的值,指令逻辑为真,否则为假。

7. 相等屏蔽比较(MEQ )
使用MEQ 指令比较源地址中的数据和比较地址中的数据,允许被一个独立字屏蔽。

MEQ 相当于把源值和比较值的数据分别与屏蔽字作位与位的逻辑与操作,然后比较两个所得结果。

如果相等,指令逻辑为真,否则为假。

可看作屏蔽字中复位的位屏蔽数据,置位的位通过数据。

因此只比较源值和比较值的在屏蔽字中的相应位为1的那些位。

例如:上面程序中,屏蔽字设为了00FFh ,所以只比较B :3/0和B :3/1的低八位,而屏蔽掉了高八位。

只要低八位相等,指令逻辑就为真,小灯O :4/0亮。

8. 极限比较(LIM )
使用LIM指令,根据用户设定的极限值,比较某值是在指定范围之内或之外。

指令的真假状态:
如果下限值小于或等于上限值,当比较值在极限范围内或等于任一极限值时,指令逻辑为真,否则为假。

如果下限值大于上限值,当比较值在极限范围内,指令逻辑为假。

如果比较值等于任一极限值或超出极限范围,指令为真。

下限值,比较值,和上限值可以是字地址或常数,组合受到以下限制:
如果比较参数是一个常数,下限参数和上限参数必须是字地址。

如果比较参数是一个字地址,下限参数和上限参数可以是常数或字地址。

例2:现有一个液体混合容器,有两个输入液体阀和一个输出液体阀。

使用程序模拟这三个阀的流量情况。

并设置液位上下限报警,使相应阀门关闭。

分析:本程序为第二章例8的问题。

前半部分和例8的思想一样。

在后面加上了范围判断的指令,实现了上下限的报警,和相应阀门关闭。

若同时有注入和流出阀门打开,上面程序可自动循环。

第四章 算术指令
算术指令属输出指令,当梯级条件为真时,执行指定的算术运算,输出结果存放到一个指定的存储单元。

并根据结果自动设置状态位。

例如,加和减指令都是取两个输入值,进行加或减运算,运算结果存放到指定的目的地址内。

并根据结果自动设置了状态位。

算术指令包括:
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 )
ADD 指令使源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 指令改变源值的符号然后存放到目的地址内。

例如,如果源的值是3,目的数据将是-3。

7. 整数转换成BCD 码(TOD )
BCD 指令把16-位整数值转换成BCD 码。

如果输入的整数是负数,则转换其绝对值。

例:试编制一个6位数的自动计数器,用BCD 码分别在N7:0和N :1上表示。

分析:MicroLogix1500中,计数器向上计数只能计到32767
,在计数范围较大的场合常感
到不够用,但是如果采用多个数据进位的关系来表达,几乎可以计到无限。

我们可以先用一个计数器来表示六位计数器的低四位,用另一个计数器来模拟六位计数器的高两位。

本程序中,RUNG0产生计数脉冲,RUNG1用一个计数器来表示六位计数器的低四位,RUNG2用另一个计数器来表示六位计数器的高两位。

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为希望得到的转换结果的范围。

当梯级条件为真,它可以把输入值(Input)线性转化到Scaled Min ~ Scaled Max中。

转换规则根据下面方程:
10.编码(ENC)
ENC指令可以把Source编码。

Source为16位字,并且只能有一位为1,其余位均为0。

转换规则如下:
Source Dest
0000 0000 0000 0001 0
0000 0000 0000 0010 1
0000 0000 0000 0100 2
0000 0000 0000 1000 3
0000 0000 0001 0000 4
0000 0000 0010 0000 5
0000 0000 0100 0000 6
0000 0000 1000 0000 7
0000 0001 0000 0000 8
0000 0010 0000 0000 9
0000 0100 0000 0000 10
0000 1000 0000 0000 11
0001 0000 0000 0000 12
0010 0000 0000 0000 13
0100 0000 0000 0000 14
1000 0000 0000 0000 15
11.解码(DCD)
DCD指令为ENC指令的逆运算。

它把源数据(Source)的最低4位的转化结果置入目的地址(Dest)中。

转换规则为上表的逆。

相关文档
最新文档