首页 资格考试rslogix500指令[1]

资格考试rslogix500指令[1]

举报
开通vip

资格考试rslogix500指令[1]资格考试rslogix500指令[1] 附录 第一章 位指令.............................................2 第一节 数据文件 .................................................3 第二节 位指令 .....................................................7 第二章 计时器和计数器指令 ........................12 第三章 比较指令.............

资格考试rslogix500指令[1]
资格考试rslogix500指令[1] 附录 第一章 位指令.............................................2 第一节 数据文件 .................................................3 第二节 位指令 .....................................................7 第二章 计时器和计数器指令 ........................12 第三章 比较指令........................................22 第四章 算术指令........................................27 第五章 传送和逻辑指令 ..............................33 第六章 移位和顺序进出指令 ........................36 第七章 程序流程指令 .................................43 第八章 I/O,文件,PID指令 .......................47 第九章 高速计数指令 .................................65 第一章 位指令 位指令可对数据的单个位进行操作。在运行时,处理器可以根据其所在梯级的逻辑条件置位或复位一位。应用程序可以根据需要对一位寻址任意次。本章第一节介绍位指令地址可使用的数据文件,第二节介绍基本的位指令。 第一节 数据文件 系统默认的数据文件分为以下几种类型: 1. 输出和输入数据文件(O0:和I1:) 2. 状态文件(S2:) 3. 位文件(B3:) 4. 计时器文件(T4:) 5. 计数器文件(C5:) 6. 控制文件(R6:) 7. 整数文件(N7:) 上面的文件号也为系统默认的(即系统默认文件0为输出文件,1为输入文件,2为状态文件,等等)。下面对这些系统默认的文件类型分别予以介绍。 1. 输出和输入数据文件(O0:和I1:) 文件O0中的各位 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示外部的输出,文件I1中的各位表示外部的输入。在大多数情况下,这些文件中的每个16位字号与位于控制器内的一槽相对应,位号与相应的输入或输出端子号对应。 输出和输入的地址格式用e表示槽号,s表示字号。处理文件指令时,数据文件元素按e.s(槽号和字号)格式一起使用。 格式 说明 输出 O O:e.s/b 输入 I I:e.s/b : 元素分隔符 槽号(十进制) 0号槽,即第一个框架中靠近电源的槽,用e 于处理器模块。接下来的是I/O槽(1~30)。 字分隔符 . 字号 如果某槽的I/O点数超过16时最好用字号s (0~255)。 位分隔符 / 端子号 b 0~15 举例: 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 字0EN TT DN 内部使用 PRE(预置值) ACC(累计值) 字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 0 字CU CD DN OV UN UA 内部使用 0PRE(预置值) ACC(累计值) 字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 EN EU DN EM ER UL IN FD 错误代码 0 位阵列或文件的长度(LEN) 位指针或位置(POS) 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 ,为假则存储0)。指令所在阶梯的梯级条件(为真则存储1 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工作的时序图为: ON 阶梯条件 OFF ON 计时器使能位 OFF ON 计时器计时位 OFF ON 计时器完成位 OFF ON 输出设备 OFF (完成位控制) 通 2分钟 3分钟 时间 延时 180 120 累计值 0 计时器预置值=180 图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: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指令的状态位变化情况如下,注意它们和TON的区别。 状态位 置位条件 保持置位直到下列情况发生 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(即相应的RES指令使能或者用CTD指 从32767继续计数) 令使累计值<=32767 DN 累计值>=预置值 累计值<预置值 CU 梯级为真 梯级变为假或相应的RES指令使能 CTU工作的时序图为: 控制计数器ON 的阶梯条件 OFF ON 计时器使能位.EN OFF ON 控制复位指令 OFF 的阶梯条件 ON 完成位.DN OFF ON 由计数器控制阶 OFF 梯上的输出指令 4 3 2 1 0 0 计数器累计值 计数器预置值=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,其常闭闭合又启动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(即相应的RES指令使能或者用CTD指 从-32768继续计数) 令使累计值>=-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)中。转换规则为上表的逆。 第五章 传送和逻辑指令 传送和逻辑指令属输出指令,当梯级条件为真时,执行相应的传送或逻辑操作。指令执行后,并根据结果自动设置状态位。传送和逻辑指令包括: 1. 传送(MOV) 2. 屏蔽传送(MVM) 3. 逻辑与(AND) 4. 逻辑或(OR) 5. 逻辑异或(XOR) 6. 逻辑非(NOT) 7. 清零(CLR) 下面逐个加以介绍。 1. 传送(MOV ) MOV指令将数据从源地址传送到目的地址。只要梯级保持为真,每次扫描指令都重新传送数据。 2. 屏蔽传送(MVM) MVM指令将数据从源地址传送到目的地址,并且允许部分目的数据被一个独立的字屏蔽。只要梯级条件保持为真,每次扫描该指令都重新传送数据。 上面程序中,数据传送的方式为:屏蔽字中位为0时,源值相应位的数据不传送,相当于源值和目的值的相应位数据保持不变。屏蔽字中位为1时,源值相应位的数据传送到 目的地址的相应位,相当于MOV指令。 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 B3:0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 Mask 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B3:1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 3. 逻辑与(AND) AND指令使源A与源B执行位与位的逻辑与操作。结果存储在目的地址内。 4. 逻辑或(OR) OR指令使源A与源B执行位与位的逻辑或操作。结果存储在目的地址内。 5. 逻辑异或(XOR) XOR指令使源A与源B执行位与位的逻辑异或操作。结果存储在目的地址内。 6. 逻辑非(NOT) NOT指令使源A与源B执行位与位的逻辑非操作。结果存储在目的地址内。 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文件指定的数据向左(向高位)移动一位。由Bit Address指定的一位被移入最右位(最低位)。 MicroLogix1500中Length的设定范围为0~2048,含义为文件中参与移位的数据块的位数。但是实际上只能移位整数个字的所有位。参与移位的字数为对Length除以16,再向上取整。如上例,当Length的值为,~16时,实际上都是移动N7:0的16位。 2. 位右移(BSR) 当梯级条件由假变真时,BSR指令对File文件指定的数据向右(向低位)移动一位。由Bit Address指定的一位被移入最左位(最高位)。Length的含义与BSL中的相同。 例1:O:0.0的预置状态为1111000000000000。试编一程序,其前20S,按每秒一次 的速度进行左移位;后20S,按每秒一次的速度进行右移位。循环进行。 分析:本程序借鉴了前面的交通灯 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 的思想。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) 5. 顺序器输出(SQO) 例2:读程序分析结果。 分析:RUNG0为3S脉冲发生器。为RUNG1~RUNG3提供脉冲信号。 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了。只不过它还可以设置独立的屏蔽字。每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显示。 分析:上面程序为顺序器输入输出的一个简单应用。需注意它们需使用不同的控制字。否则将处以混乱状态。 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) 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指令标号的设置范围为0~999。 上例中,当I:0/6使能,程序便跳过RUNG1,直接执行RUNG2。当I:0/6断开,程序不跳转,继续执行RUNG1。 2. 跳转到子程序(JSR、SBR、RET) 在梯形图程序中,可以把在很多处都要执行的部分做成子程序,这样可以使程序更加清晰,并且节省存储空间。 新建子程序的方法为: 1) 打开RSLogix 500编程界面。 2) 鼠标右键点击左边目录中的“Program Files”。 3) 在弹出的菜单中单击“New”。 4) 弹出“Create Program File”对话框。填入所欲创建的子程序号(3~255),单击“OK” 即可。 主程序的文件号为2(即LAD 2)。 JSR、SBR和RET指令使得处理器跳到梯形图图程序中的一个独立的子程序文件,并对它进行一次扫描,然后返回出发点。JSR指令使处理器跳到指定的子程序文件。如上例,在主程序中需要跳转到子程序的地方加入JSR指令,参数为子程序的文件号。SBR指令必须在子程序的第一条指令的第一梯级。是否使用该指令是可选的,为了使程序清晰建议大家使用它。在子程序的末尾用RET指令返回到主程序。 当JSR指令的梯级条件变真时,处理器便跳转到子程序中。在用JSR指令编程时,应注意: 1) 每一个属于主程序外部的子程序必须有自己的文件并且由唯一的描述符来识别。 2) 除了子程序文件的第一个SBR指令外,主程序不能跳转到子程序中任何别的地方。 3) 可以嵌套多达8个子程序文件。 子程序文件嵌套:可在一个程序文件中嵌套多达8个子程序。也就是说,只要子程序不超过7级,便可让处理器从主程序跳向一个子程序,然后再从一个子程序跳转到另一个子程序。处理器返回路径与此相反,在RET指令处,处理器自动的返回到先前JSR指令后的下一条指令,并且在返回主程序之前一直遵循此执行过程。 3. 暂停(TND) 当TND指令梯级条件为真时,处理器停止扫描程序的其余部分并更新I/O,并从主程序的第一条指令处恢复执行程序扫描。 在调试程序或查找程序故障时,可插入TND指令,它只允许程序运行到它所在的程序为止。在程序中逐步的移动此指令,以调试一段新的程序,还可以用它来作为主程序和本地子程序的一个分界线。 4. 中断(SUS) 当SUS指令使能时,它使处理器进入挂起模式并且在状态文件的字7(S:7)存储挂起ID。所有的输出被停止使能。在程序调试和系统故障检测时用这一指令可获得或查明具体条件。 当编程该指令时输入挂起ID,编号范围是-32768 ~ 32767。 如上例,当I:0/8使能,执行SUS指令,它使处理器挂起,程序中断执行。打开状态文件,可看到S:7的值为4444,中断文件号为2(主文件)。 5. 主控程序(MCR) 成对使用MCR指令可创建一程序区域。它可关断此区域内所有非保持型输出。非保持型输出在其所在梯级条件变假时被复位。当开始的MCR梯级条件为真时,每个梯级根据各自的输入条件执行MCR区域(好象MCR不存在一样)。当开始的MCR梯级条件为假时,无论每个梯级各自的输入条件怎样,MCR都复位所有非保持型输出指令。 如上例,当I:0/8断开时,好象MCR指令不存在,程序继续执行下一步。当I:0/8使能时,无论I:0/6是否使能,O:0/6都不亮。 当用MCR指令编程时,应注意: 1) 一定要成对使用MCR指令,用无条件MCR指令结束程序区。 2) 不能在一个MCR区内嵌套另一个MCR区。 3) 不要从程序外部跳转到MCR区内。如果MCR区条件为假,跳转到此区会使此区 被激活。 4) 如果MCR区连接到梯形图的结尾,就不必编写另一条MCR指令来结束此MCR 区。 第八章 I/O,文件,PID指令 本章指令大都涉及到I/O输入输出,文件的操作,模拟量输入输出,PID运算与控制。具体包括: 1. 立即输入输出(IIM、IOM) 2. 通讯服务(SVC) 3. 通讯(MSG) 4. 更新I/O(REF) 5. 文件拷贝(COP) 6. 文件填充(FLL) 7. 数据整定(SCL) 8. I/O中断子程序(INT) 9. STI中断启动(STS) 10. PID控制(PID) 11. 脉冲串输出(PTO) 12. 脉宽调制(PWM) 13. 用户中断屏蔽(UID) 14. 用户中断使能(UIE) 15. 用户中断 (UIF) 下面逐个加以介绍。 1. 立即输入(IIM) IIM指令可以优先于正常的扫描顺序刷新输入的值。当它使能,程序扫描被中断,从指定的输入口中读来数据,经过屏蔽后,刷新其数据文件的值。然后再恢复程序扫描。屏蔽字中,为0的位屏蔽数据,为1的位通过数据。 2. 立即输出(IOM) IOM指令可以优先于正常的扫描顺序刷新输出的值。当它使能,程序扫描被中断,从输出数据文件中读来数据,经过屏蔽后,刷新指定的输出口。然后再恢复程序扫描 3. 通讯(MSG) MicroLogix 1500的通讯体系结构由三个基本的部分组成: 梯形图扫描(Lader Scan); 通讯缓冲区(Communications Buffers); 通讯队列(Communication Queue)。 它们决定了处理器什么时候传送消息。 当MSG指令使能,假如指令内定义的是写命令,则指定的信息和数据被传送到通讯缓冲区内。处理器继续扫描梯形图程序的其他部分。一般在一个扫描周期结束后,信息被处理,并且通过通讯通道发出处理器。 MicroLogix 1500内共4个通讯缓冲区。当在一个通讯指令结束前,如果又有一条通讯指令要处理,则它的信息和数据被传送到其余未用的一个通讯缓冲区内。当四个缓冲区全满,第五个通讯指令又要处理时,通讯请求信息放在通讯队列中(注意,不是要传送的数据)。通讯队列是一个信息存储空间,存储了那些还没有被分配缓冲区的通讯指令。通讯队列的操作顺序是先进先出(FIFO),它可容纳得下梯形图中所有的通讯指令。缓冲区和队列机制都是完全自动执行的。通讯缓冲区被自动分配和释放,当缓冲区满时,再来请求则自动进入队列。 因为通讯队列中不是存储要传送的数据,所以如果一条通讯指令在队列中移出,处理器实际发送的数据和通讯指令第一次被扫描时可能不同。 MicroLogix1500可以本地或远程通信. 本地通信中所有设备都可直接到达,没有单独的设备用作网桥(Bigdge),组网中可能用到不同类型的接口,但是这样的网络依然被分类为本地网。远程通信用远程网,设备连接通过或路由过一个专门的设备。 用1761-NET-AIC配置的DH485本地网 DH485远程网 MSG属输出指令,它可以使控制器和其他设备通讯。 下面介绍MSG屏幕参数的含义。 通信命令(Communication Command):指定选择的通信类型。包括目标设备类型,以及是信息读(Read)还是信息写(Write)。读是指本地处理器(指令驻留的处理器是本地处理器)接收数据,写是指本地处理器发送数据。目标设备类型共有三种可以选择:500CPU 、485CIF 、PLC5,它们分别支持的设备如下: 500CPU READ:如果目的设备为SLC500或兼容(包括所有的MicroLogix1000,1500)。 485CIF: 如果目的设备为PLC2或兼容(支持485CIF)。 PLC5: 如果目的设备为PLC5或兼容。 MicroLogix 1500支持6种不同的通信类型:500CPU READ、500CPU WRITE、485CIF READ、485CIF WRITE、PLC5 READ、PLC5 WRITE。如果目标设备支持这6种通信类型中的任何一中,MicroLogix 1500就可以和它通信。 数据表地址(Data Table Address):参数指定了本地处理器要处理数据的开始地址。 元素大小(Size in Elements):参数指定了要和其他设备交换数据的大小(本地元素的大小)。MSG指令可传送的数据最大量为103字(206个字节),也被目的数据类型决定。 通信通道选择(Channel):参数指定了传送通信请求时选用的通信通道。 MicroLogix1500通过通道0(配置DF1全双工、DF1半双工或DH485协议)启动通讯指令。只有MicroLogix 1500 LRP Series B 可使用通道0或1。 以下是目标设备通信的参数: 通信超时(Message Timeout):定义了通信指令开始后,几秒应该完成,超过设定时间后,发生通信错误。默认为5秒。 数据表地址(Data Table Address):参数指定了目的处理器数据的开始地址。 本地节点地址(Local Node Addr):连接在网络上的目标设备的节点地址。 本地/远程(Local/Remote):指定选用的通信类型。 选择远程通信时还需要设置: 远程站地址(Remote Station Address) :目标站的DH地址。 远程桥地址(Remote Bridge Address) :要访问的远程处理器的所在地址。 桥连接ID(Bridge Link ID) :要访问的数据的地址。 下面我们通过一个实例体会MSG指令的具体应用。 问题描述:在一个DH485网络上,有两台可编程序控制器MicroLogix 1500(节点地址为2)和MicroLogix 1000(节点地址分别为1)。现要求用1500 的输入口(I:0.0)控制1000的电机启动、停止、变频调速。 1500中运行的程序 MSG指令屏幕参数的设置 1000中运行的程序 分析:MicroLogix 1500的程序实现把输入端(I:0.0)的数据送到MicroLogix 1000。只用到了一条通讯指令MSG,当I:3/0使能时启动通讯。屏幕参数中,因为要发送数据,且目标设备是MicroLogix 1000,所以选择500CPU Write。要传送的数据表地址为I:0.0,长度为1个字。通过通道0传送。目标设备配置的参数中,最大通信延时设为默认的5S,数据传送到目标设备的N7:0中。目标设备的节点地址为1,采用本地网通信类型。 MicroLogix 1000的程序实现根据传送来的N7:0的数据控制电机工作。RUNG0~RUNG2分别控制电机的正转、反转、停止。RUNG3~RUNG5可通过三个开关为 0或1的状态组合而改变电机的工作频率(共可组合为8种)。 4. 通讯服务(SVC) SVC属输出指令。用于优于正常扫描周期执行通讯程序。当使能时,程序扫描被中断以执行操作周期的通讯服务部分。然后从SVC指令的下一条指令恢复扫描。SVC指令允许选择指定的通讯服务通道。 处理器一般在梯形图程序一个扫描周期结束后扫描通讯端口。如果要求通讯端口被更多次的扫描,或者梯形图程序很长,要优先执行 MSG指令,可以选择使用SVC指令。SVC可以提高通讯的性能和吞吐量,但它以整个梯形图程序扫描时间变的更长为代价。 5. 更新I/O(REF) 当REF指令使能,它中断程序的正常扫描,执行I/O扫描(读输入口,写输出口),然后程序重新开始。 6. 文件拷贝(COP) COP指令是一条输出指令。当梯级条件为真,它把源文件拷贝到目的文件。源文件和目的文件的长度要求至少有Length指定的长度。它们可为不同的文件类型。目的文件类型决定了要传送的字数。 例如,将文件#N7:100的10个字拷贝到#N7:110。 分析:闭和I:0/8,使能COP指令,就完成了COPY。把N7:100~N7:109的数据分别写到了N7:110~N7:119,N7:100~N7:109的数据保持不变。 7. 文件填充(FLL) FLL指令为一条输出指令。它用源值来填充目的文件。目的文件类型决定了填充每个元素时需要传送的字节数。 8. 数据整定(SCL) SCL指令把源值乘以比率(Rate),再加上一个偏移量(OFFSET)作为输出。 9. I/O中断子程序(INT) INT指令把一个程序文件作为中断子程序而不是一般的SBR子程序。INT指令必须在子程序的第一条指令的第一梯级。它不是必须,但是我们推荐使用。 10. STI中断启动(STS) STS指令有启动和停止STI(Selectable Timed Interrupt)功能,并可改变STI用户中断的时间间隔。当梯级条件由假变真,STI功能文件的用户中断使能位UIE自动置1(UIE位在程序中没有被其它位控制);设定STI的中断时间间隔值Time,定时中断使能位TIE自动置1,这样就启动了可选定时中断STI。如果时间值Time为0,TIE自动置0,STI功能无效。 STS指令只有一个参数:Time。它设定了STI中断每隔多少毫秒执行一次,如上图,若定时中断被启动,则每隔2300毫秒执行一次中断子程序,它必须大于执行一次中断子程序所需的时间。 下面我们通过实例体会STS指令的具体应用。 问题描述:监控模拟量输入口,每隔3S检查一次,当它变为负值时指示灯亮,并记录检查的总次数。 分析:将STI功能文件中的程序文件号子元素(PFN)设置为4,表示4号子程序为STI中断子程序。N7:10中置入3000,表示3000毫秒执行一次子程序。 当I:0/8使能(只需一个周期的正脉冲就可),启动STS指令。STS指令所做的操作为:对STI功能文件中的用户中断使能位(UIE)置1,表示发生定时中断后,执行用户中断子程序。将参数值3000写入STI功能文件中的设定中断时间间隔子元素位(SPM),因为此值非0,所以定时中断使能位(UIE)置1,启动定时中断计时器工作,计时到,则发生定时中断。每隔3S,执行一次STI子程序。 STI子程序开始的标志是INT指令,以区别于一般的SBR子程序。当执行时,检查输 入口的值是否变为负,并将累计的次数加1。 若要停止执行STI中断,只要将N7:10的值设为0,则定时中断使能位(UIE)被清0,不在启动定时中断计时器工作。也可在程序中用指令控制用户中断使能位(UIE),则UIE位只跟随它的输入条件的变化,而不再由STS指令自动设置。这样再启动STS指令时(若参数值非0),是否执行中断子程序由UIE位控制。当程序中UIE位被置1时,则执行中断子程序,否则禁止执行中断子程序。 MicroLogix 1500还支持事件输入中断(EII)。事件输入中断是指处理器扫描到外部输入(I1:0.0/0~I1:0.0/7)有触发信号时,将自动去执行特定的中断子程序。执行完后处理器将从中断的位置恢复正常的扫描。共可设定4个事件输入中断:EII0、EII1、EII2和EII3。 下面是一个事件输入中断应用的实例。本例中,EII用来保证所有的瓶子在流出生产线时,瓶盖机已经给它们盖上了瓶盖。 瓶子接近开关I:0/6用来作为EII输入。当有一个瓶子经过这个接近开关时,处理器执行EII子程序。在子程序中,处理器读瓶盖接近开关的状态。如果瓶子已经盖上瓶盖,滑行槽电磁线圈不得电,允许瓶子从流水线上流过。如果没有瓶盖,滑行槽电磁线圈得电,使不合格的瓶子转到滑行槽进入废品箱。 使用EII需要设定EII功能文件子元素。本例中,程序文件号PFN设为5,表示5号子程序为EII事件输入中断子程序。自动开始位AS设为1,表示EII自动启动。触发类型选择位ES设为1,表示上升沿触发。输入口选择位ES设为6,表示事件输入中断以I:0/6为触发信号。 每个开关的状态的含义为: I:0/6-上升沿表示有瓶子流过。 I:0/8-0表示有瓶盖,1表示没有瓶盖。 O:0/8-0表示正常位置,1表示不合格品位置。 5号子程序为: 分析:当处理器检测到I:0/6触发信号时,执行5号中断子程序。RUNG1:如果瓶子上有瓶盖,且滑行槽在不合格品位置,把滑行槽设置到正常位置。RUNG2:如果没有瓶盖,则滑行槽设置到不合格品位置。 11. PID控制(PID) PID控制在工业过程控制中有广泛的应用。它可以控制诸如温度、压力、液位等物理量。 PID指令通常用于闭环控制。它从模拟量输入通道采集信号,经过PID运算后,提供一个模拟量输出信号作为反应,以使一个过程量稳定在一个期望点。 PID方程决定了输入和输出信号的关系。 Output=Kc*[(E)+1/Ti*?(E)dt+Td*d(Pv)/d(t)]+Bias 上式中各变量含义为: E:为输入信号对期望点的偏移量。 Kc:比例系数,也叫开环增益。 Ti:积分时间常数。 Td:微分时间常数。 Output:PID运算输出。 Bias:给输出加上的一个偏移量。 当输入信号偏移期望点越大,这个调整量就越大。另外,可再加上一个值Bias(可看 作偏移量Offset)作为运算的结果输出,它使得被控过程量快速、平滑、超调量小的向期望点靠近(只要PID参数选择合适)。 下面介绍PID指令的参数。 PID File:只能使用PD文件类型,输入文件号和字号,若不存在系统将自动创建。 Process Variable PV:欲控制的过程量。可选已设置为Scaled for PID的模拟量输入口,也可为整数0~16383。 Control Variable CV:PID运算结果的输出地址。运算结果的取值范围也为0~16383,16383作为100%“ON”值输出。 屏幕参数(Setup Screen):包括Turning Parameters、 Inputs、 Outputs。 Turning Parameters: Gain Kc:比例系数,一般设置为引起输出振荡所需值的一半。 Reset Ti:积分系数,一般设置为上述Kc标定时测定的自然周期。 Rate Td:微分系数,一般设置为1/8*Ti。 Loop update:PID运算的时间间隔,一般设置为一个自然周期的5~10倍。STI方式运行时这个值应设定为等于STI Time Interval(STI:0.SPM)。 当为STI方式运行时,PID指令应放在STI中断子程序里。然后当每次执行STI子程序时更新输出。 Control mode:可选择为: Reverse Acting:E=SP-PV 当PVSp时,CV增加。 PID control: 可选择为: Auto:PID控制输出。 Manual:用户控制输出。 Time Mode: 可选择为: Timed:定时执行方式,每隔设定的时间间隔更新PID输出。 STI:以STI方式运行,前面已介绍。 Limit Output CV: 可选择为: Yes:输入受限(在设定的最小最大值之间)。 NO:输入不受限。 Deadband DB:死区设置。只有在PV进入了死区且通过了设定点(Setpoint)才起作用。可调整的死区允许用户设定上下偏差范围,只要偏差保持在这个范围输出就不更改。 Inputs: Setpoint SP:期望的控制点。 Setpoint Max:当输入为16383时,起作用。 Setpoint Min:当输入为0时,起作用。 Process Variable PV:(不用填写,只供显示PV)。 Outputs: Control Output CV(%):只有手动(Manual)时有效。 Output Min(CV%):设定输出最小值。当设定了输出受限时(If Limit Output CV is Yes):如果CV小于这里设定的最小值,则置CV为这里的设定值,同时设标志位;如果没有设输出受限,则不改变CV值,只用于警告。 Output Max(CV%):参数设置的含义同上。 Scaled Error SE: (不用填写,只供显示)。 12. 脉冲串输出(PTO) PTO为高速输出指令。高速输出指令允许用户有选择性的刷新数据,而无需等待输入 输出扫描。PTO指令只有一个参数,我们可选择PTO0或者PTO1。 PTO子系统可组态为三种工作方式:脉冲点动状态、连续点动状态和正常工作状态。脉冲点动状态在输出端只输出一个正脉冲。连续点动状态在输出端输出连续正脉冲序列正常工作状态输出一个脉冲串序列,这个脉冲串序列有加速、匀速、减速三个阶段。 现在我们通过程序体会PTO子系统的三种工作方式,功能文件中子元素的作用,先设PTO功能文件中输出位子元素OUT为2,表示输出端为O:0/2。其它子元素在程序中设定。 程序如下: 分析:PTO可组态为三种工作方式:脉冲点动状态、连续点动状态和正常工作状态。不能同时组态为两种以上方式。脉冲点动状态和连续点动状态运行时PTO指令的梯级条件应为假。当B3:0/,为真,脉冲点动状态位PTO:0.JP位置1,在O:0/2位输出一个正脉冲,脉冲的宽度由点动频率位PTO:0. JF控制,本程序中PTO:0.JF就是N7:2的数值。输出完成后脉冲点动状态位PTO:0.JP自动复位。当B3:0/1为真,连续点动状态位PTO:0.JC位置1,在O:0/2位输出连续正脉冲序列,直到B3:0/1为假。脉冲频率也由点动频率位PTO:0.JF控制。当B3:0/2由0变1时,ONS指令输出一个周期正脉冲,急停位PTO:0.EH置1,无论任何工作模式都停止产生脉冲,PTO子系统产生1号急停错误。只有当控制位复位后重新置1,系统才可正常工作,系统自动清除错误。 当PTO指令有上升沿触发,PTO子系统工作在正常工作状态。此时输出一个具有加速、匀速、减速的脉冲序列,脉冲序列匀速时的频率为PTO:0.OF,脉冲总数为PTO:0.TOP,加减速时的脉冲各有PTO:0.ADP个。如图所示,横轴为产生的脉冲数,纵轴为对应的频率。 PTO功能文件的斜坡曲线子元素RP可改变输出加减速时的曲线,RP为,时,输出为T型曲线,RP为,时,输出为S型曲线。 通常一个物理输出只在脉冲上升沿或下降沿时改变。这意味在脉冲上升沿或下降沿时,物理输出的波动依赖于处理器的扫描时间。因此我们推荐在STI中断时使用PTO指令,使脉冲序列 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 化。 13. 脉宽调制(PWM) PWM为脉宽调制指令,也为高速输出指令。它可以通过PWM波形来控制现场设备的速度。PWM指令只有一个参数,我们可选择PWM0或者PWM1。 PWM的输出为输出频率和占空比都可调的脉冲序列。 现在我们用PWM指令在O:0/2输出一个脉冲序列。先设PTO功能文件输出位子元素 OUT为2。表示输出端为O:0/2。其它子元素在程序中设定。 分析:启动I:0/8,PWM0子系统在O:0/2产生脉冲序列。脉冲序列的占空比由PWM:0.DC控制,频率由PWM:0.OF控制,断开I:0/8,PWM0就停止产生脉冲。其急停位EH的用法同PTO的急停位。置,时产生,号急停错误。急停位复位后,重新使能PWM指令,系统正常工作,错误自动消失。以下是不同占空比时的输出波形。 14. 用户中断屏蔽(UID) UID指令用来屏蔽用户中断。当使能时,可屏蔽STI中断,高速计数中断(HSC1, HSC0),事件输入中断0~3(Event 0~Event 3)。参数指定了屏蔽的中断类型,为0表示不 屏蔽中断。 参数为不同值时所屏蔽的中断类型为: 类型1 STI0 类型2 HSC1 类型3 事件3 类型4 事件2 类型5 HSC1 类型6 事件1 类型7 事件0 15. 用户中断使能(UIE) UIE和UID指令成对使用。它的功能和UID相反。当梯级条件为真时,这条指令就会使能所选择的中断类型。参数含义与UID指令完全相同。 RUNG1在UID指令之前,程序可被中断。 RUNG3在UID指令之后,程序不响应STI中断。 RUNG4指令之后,程序又恢复为可被STI中断。 16. 中断激活指令(UIF) UIF指令用来激活哪些被挂起的中断类型。中断类型同上。 第九章 高速计数指令 MicroLogix 1500内置了两个20KHz的相互独立的高速计数器HSC1、HSC0。它们具有多种功能,使用非常灵活,可组态为8种工作模式中的任意一种(硬件部分已有详细介绍)。HSC的工作情况由用户电路决定,与处理器并行处理,所以可应用于高性能的场合。 HSC的功能文件(HSC Function File)内存储了HSC的所有组态数据。功能文件内有HSC1和HSC0两个元素,通过设置这两个元素的各个参数,可以使高速计数器启动或禁止,选择高速计数的工作模式,计到一定值时是否使能中断,计到一定值时直接控制控制器的高速输出点等等。掌握功能文件对于使用高速计数器是非常重要的。 高速计数器有两条指令:高速计数器参数装入(HSL)和累计值复位(RAC)。 1. 高速计数器参数装入(HSL) 当HSL梯级条件为真,它相当于一系列的置入参数的操作。HSL将高设定值、低设定值、高设定值输出源、低设定值输出源送入到高速计数器内。各参数的含义为: HSC Number:指定所用的高速计数器号。0为HSC0,1为HSC1。 High Preset:高设定值,指定在“高设定值寄存器”内的数值。当累计值达到高设定值,HSC就会产生高设定值中断。但是否执行中断由相应功能文件中的高设定值屏蔽位(HPM)控制。HPM为1,则执行中断,HPM为0,则禁止中断。高设定值的数据范围是:-32768~32767(字),或-2,147,483,648~2,147,483,647(长字)。 Low Preset:低设定值,指定在“低设定值寄存器”内的数值。数据含义及范围同高设定值。 Output High Source:高设定值输出源,指定在“高设定值输出寄存器”内的数值。当累计值达到高设定值,HSC将高设定值输出源中的数据屏蔽传送到MicroLogix 1500 基本单元上的输出点(O:0.0),屏蔽传送的方式同屏蔽传送指令(MVM)相同,屏蔽字由相应功能文件中的输出屏蔽位(OMB)设定。 Output Low Source:低设定值输出源,指定在“低设定值输出寄存器”内的数值。数据含义同高设定值输出源。 2. 累计值复位(RAC) RAC指令用于高速计数器复位,并将一特定值写到HSC的累加器内。 Counter:计数器号,指定复位的计数器。0为HSC0,1为HSC1 Source:源,指定复位时送入HSC累加值的数据。 下面我们讨论一个常见的测电机转速的问题。要求的功能为测电机转速。并且当电机的转速超过1200转/分时,指示灯报警,电机自动停止。 我们暂不讨论硬件接线、模拟量输入模块的功能、变频器SSC160的功能及参数设置,假设和它们相关的程序已设置好。采用光电码盘将转速变为频率信号,转速和频率成正比,已把此频率信号给到了I:0.0/0。主要体会HSC功能文件的设置和高速计数指令的具体应用。 我们只需击开Project >Controller>Function Files,单击HSC,就可修改高速计数器的所有参数。如图: 我们在高速计数器(HSC0)功能文件中设置以下参数: 子元素 数值 说明 PEN-Program File Number 4 中断子程序为LAD4 允许溢出中断 UIE-User Interrupt Enable 1 允许高速计数 CE-Counting Enable 1 自动开始 AS-Auto Start 1 MOD-HSC Mode 0 选择模式0-加法计数 只让第四位数据通过 OMB-Output Mask Bit 0010h 高速计数指令需要设置高速计数输入端(本例中为I:0.0/0)的滤波率。因为频率较高,合适的滤波率可以有效的去除干扰信号,使结果更精确。 这样就可以使用高速计数指令了,程序如下图。 主程序(LAD2): 中断子程序(LAD4):
本文档为【资格考试rslogix500指令[1]】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_682974
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:0
分类:互联网
上传时间:2017-10-24
浏览量:25