rslogix500下载不能新建工程怎么解决

加载CAD到90就卡住 如何处理 还有不能新建新的鲁班工程文件
加载CAD到90就卡住 如何处理 还有不能新建新的鲁班工程文件
这个有几种可能性,首先你用CAD专杀杀下毒;其次可能是CAD文件损坏,可以重装下CAD;
的感言:真心佩服你,谢谢!
其他回答 (3)
吧鲁班卸载重新装一遍试试~还不行的话就是cad的问题了!
多数和360杀毒有关解决办法:1、可以添加白名单。2、可以关闭杀毒软件。3、五笔输入也有冲突,删掉五笔输入法,安装其他输入法。4、360的病毒免疫设置(3.0版本号)
鲁班怎么新建不了呢
老提示:致命错误
等待您来回答
软件领域专家RSLOGIX500指令_省心范文网
当前位置: >>
附录第一章 第一节 第二节 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 位指令 .............................................................. 2 数据文件............................................................................. 3 位指令................................................................................. 6 计时器和计数器指令 .......................................... 11 比较指令 ......................................................... 21 算术指令 ......................................................... 26 传送和逻辑指令 ................................................ 32 移位和顺序进出指令 .......................................... 35 程序流程指令 ................................................... 42 I/O,文件,PID 指令 ......................................... 46 高速计数指令 ................................................... 641 第一章位指令位指令可对数据的单个位进行操作。在运行时,处理器可以根据其所在梯级的逻辑条 件置位或复位一位。应用程序可以根据需要对一位寻址任意次。本章第一节介绍位指令地 址可使用的数据文件,第二节介绍基本的位指令。2 第一节数据文件系统默认的数据文件分为以下几种类型: 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 表示字号。处理文件指令时,数据文件元素按 e.s(槽号和字号)格式一起使用。 格式 O:e.s/b I:e.s/b 说明 O I : e . s / b 举例: 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 时,也可写为3输出 输入 元素分隔符 槽号(十进制) 字分隔符 字号 位分隔符 端子号 0~15 如果某槽的 I/O 点数超过 16 时最好用字号 (0~255) 。 0 号槽,即第一个框架中靠近电源的槽,用 于处理器模块。接下来的是 I/O 槽(1~30) 。 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 字0 EN TT DN 内部使用 字1 PRE(预置值) 字2 ACC(累计值) 上表中,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 字元素组成,如下表所示:4 15 14 13 12 11 10 9 字0 字1 字2 CU CD DN OV UN UA PRE(预置值)8 7 6 5 4 3 2 1 0 内部使用ACC(累计值) 字 上表中,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 EN EU DN EM ER UL IN FD 错误代码 1 位阵列或文件的长度(LEN) 2 位指针或位置(POS) 举例: 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。5 第二节位指令包括: 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 指令对该寻址位置位。即使梯级条6 件变为假,该位依然保持置位。若要复位,则需要在另一个阶梯中使用解锁指令 OTU,对 同一寻址位进行解锁。 5. 输出解锁(OTU)OTU 属保持型输出指令。常用于复位由 OTL 指令锁存的位,此时 OTL、OTU 应使用 相同的地址。当梯级条件为真时,OTU 指令对该寻址位复位。即使梯级条件变为假,该位 依然保持复位。直至另一指令对该位重新置位。 下面通过具体的梯形图来进一步理解上述位指令: 例 1:讨论改变以下开关状态时,灯的变化情况。1) 2) 3)RUNG0 中,当 I:0/4 使能时,O:0/0 为真,灯亮。 RUNG1 中,当 I:0/5 断开时,O:0/1 为真,灯亮。 RUNG2 中,只有当 I:0/6 和 I:0/8,或者 I:0/7 和 I:0/8 使能时,O:0/2 才为真, 灯亮。7 4)5) 6.RUNG3 和 RUNG4 中,OTL 和 OTU 指令成对出现。一旦 I: 0/9 使能,O:0/3 就锁 存为真, 灯亮。 即使 I: 0/9 在下一次扫描周期由真变假, 灯仍然保持亮。 直至 I: 0/10 使能,O:0/3 解锁,灯灭。 RUNG5 中,END 指令表明程序结束。 一次启动(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:讨论改变以下开关状态时,灯的变化情况。8 9 1)2)3)4)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 解 锁。 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 灭。 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 指令的梯级条件。分析同上。 RUNG8 中,I:0/9 用于为上面锁存的小灯解锁。`10 第二章1. 2. 3. 4. 5. 6. 1.计时器和计数器指令计时器和计数器指令属输出指令,用于控制基于时间和事件记数的操作,包括: 延时导通计时器(TON) 延时断开计时器(TOF) 保持型计时器(RTO) 加计数(CTU) 减计数(CTD) 计时器/计数器复位(RES) 下面逐个加以介绍。 延时导通计时器(TON)延时导通计时器(TON)的功能是梯级条件变真后经过一段延时时间对输出动作。它 相当于继电器控制系统中的通电延时继电器。TON 是否启动由它前面的输入指令控制,而 通电延时继电器是由硬触点控制。TON 的延时时间可任意设定,而通电延时继电器是由它 的物理结构决定,不能够任意改动。因此 TON 指令更加方便灵活。使用 TON 指令时需要 提供以下参数: 1) 计时器(Timer) :指明所使用的计时器元素(如 T4:0) 。 2) 时基(Time base) :计时器每次计时的递增值。Micrologix 1500 系列可选择 1S、 0.01S 和 0.001S 三种,共可累计 32767 个时基间隔。它决定了计时器的精度。 3) 预置值(Preset) :用于设定延时时间,可设为整数-。 4) 累计值(Accum) :是一个动态值,表明了到目前计时器已经延时的数值。 当梯级条件变真时,TON 开始计时,直到下列条件中的任何一个发生为止: 累计值=预置值; 梯级变假; 复位计时器。 不论计时器是否计到时,梯级变假时计时器复位累计值(把累计值清 0) 。 TON 的状态位可用作对输出的控制信号。正确灵活的应用这些状态位是掌握 TON 编 程的关键。TON 的状态位及它们的变化情况如下:状态位 DN TT EN 置位条件 累计值&=预置值 梯级为真且累计值&预置值 梯级为真 保持置位直到下列情况发生 梯级变为假 梯级变为假或被 DN 置位 梯级变为假注意 TT 位和 EN 位的区别。11 TON 工作的时序图为:ON阶梯条件 计时器使能位 计时器计时位 计时器完成位 输出设备 (完成位控制) 时间 累计值OFF ON OFF ON OFF ON OFF ON OFF2 分钟 120 03 分钟通 延时 180计时器预置值=180 图 3.21 TON 时序图例 4:有三个马达 MTR1、MTR2、MTR3,按先后次序启动。要求 MTR1 先启动,三 秒后 MTR2 启动,再过 5 秒后 MTR3 启动。停止时三个马达同时停止,请模拟这个过程。12 分析: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 使它 们停止和复位,程序将一直循环执行,这样就实现了交通灯交替亮灭。13 14 2.延时断开计时器(TOF)延时断开计时器(TOF)的功能是梯级条件变假后经过一段延时时间对输出动作。它 相当于继电器控制系统中的断电延时继电器。 TOF 指令各参数的含义与 TON 相同。 当梯级条件变假时,TOF 开始计时,直到下列条件中的任何一个发生为止: 累计值=预置值; 梯级变真。 不论计时器是否计到时,梯级变真时计时器复位累计值。 TOF 指令的状态位变化情况如下,注意它们和 TON 的区别。状态位 DN TT 梯级为真 梯级为假且累计值&预置值 置位条件 保持置位直到下列情况发生 梯级变为假且累计值&=预置值 梯级变为真或 DN 被复位 15 EN梯级为真梯级变为假无论任何情况都不要用 RES 指令对 TOF 复位。因为 RES 总是清零状态位及累计值, 若对 TOF 复位,则 DN,TT,EN 被清零,可能会使指令逻辑陷于混乱,发生不可预知的 结果。 3. 保持型计时器(RTO)TON 和 TOF 计时器在梯级条件变假时, 累计值和 DN 位都要被复位, 梯级条件变为真 后又重新计时, 有时这会给某些应用带来不便。 这时我们可以采用能累积计时的 RTO 指令。 当梯级条件为真时,RTO 指令开始计时。当下列任何情况发生时,RTO 指令保持它的 累计值: 梯级变假; 用户改变到编程方式; 处理器出错或断电。 当处理器重新运行或阶梯变真时,RTO 计时器从保持的值开始继续计时,直到累计值 达到预置值。如果需要复位其累计值和状态位,可在另一阶梯中用 RES 指令对相同地址的 计时器复位。无论任何情况,复位指令总是优先执行。即只要使能复位指令,无论计时器 是否正在计时,累计值及状态位总被复位为 0。 RTO 指令的状态位的变化情况如下:状态位 DN TT EN 置位条件 累计值&=预置值 梯级为真且累计值&预置值 梯级为真 保持置位直到下列情况发生 相应的 RES 指令使能 梯级变为假或被 DN 置位 梯级变为假4.加计数(CTU)CTU 指令在- 范围内向上计数。每一次梯级条件由假变真时 CTU 累计值 加 1。当梯级再次变为假时累计值保持不变。当累计值等于或超过预置值时,CTU 指令置 位完成位 DN。编程时可以用 CTU 指令计数某些动作来引发事件,比如通过计数一个存储 位的变化或一个外设的导通关断变化次数来让另一外设动作。 CTU 指令的状态位及变化情况为:状态位 置位条件 保持置位直到下列情况发生 16 OV累计值返回到-32768 (即 从 32767 继续计数)相应的 RES 指令使能或者用 CTD 指 令使累计值&=32767 累计值&预置值 梯级变为假或相应的 RES 指令使能DN CU累计值&=预置值 梯级为真CTU 工作的时序图为:控制计数器 的阶梯条件 计时器使能位.EN 控制复位指令 的阶梯条件 完成位.DN 由计数器控制阶 梯上的输出指令ON OFF ON OFF ON OFF ON OFF ON OFF计数器累计值01234 0计数器预置值=4 图 3.22 CTU 时序图例 7:试编一个自动增计数器。分析:I:0/4 为保持式按钮,I:0/9 为点动式按钮。在 RUNG0 中,当 I:0/4 使能,17 启动 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 指令在- 范围内向下计数。每一次梯级条件由假变真时 CTU 累计值 减 1。当梯级再次变为假时累计值保持不变。当累计值等于或超过预置值时,CTU 指令置 位完成位 DN。编程时可以用它计数某些动作来引发其它事件,比如通过计数一个存储位 的变化或一个外设的导通关断变化来控制另一外设动作。状态位 UN 置位条件 累计值返回到 32767 即 ( 从-32768 继续计数) DN CD 累计值&=预置值 梯级为真 保持置位直到下列情况发生 相应的 RES 指令使能或者用 CTD 指 令使累计值&=-32767 累计值&预置值 梯级变为假或相应的 RES 指令使能6.计时器/计数器复位(RES)RES 指令用于复位计时器(除 TOF) 和计数器。当梯级条件为真时 RES 指令复位相 同寻址位的计时器或计数器(把状态位和累计值清 0) 。无论任何情况 RES 指令优先执行。 例 8:现有一个液体混合容器,有两个输入液体阀和一个输出液体阀。使用程序模拟 这三个阀的流量情况。18 分析:用计时器 T4:1,T4:2,T4:3 来模拟流速。在 RUNG1 中,当使能 I:0/4, 运行 TON 指令。经过 1.6S,T4:1/DN 置位。其常闭断开后 T4:1 马上复位,T4:1/DN19 又立即被复位,又运行 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。这样就模拟了三个阀的流 量情况。 本程序也有不足之处,例如计数器的累计值可以无限制的增加和减小,这不符合客观 实际情况,在后面的章节里我们会用另外的程序来解决这个问题。20 第三章比较指令比较指令属输入指令,用于比较两值作为逻辑梯级连续的条件。例如,小于(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:读程序分析结果。21 分析:上面程序即为 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)22 使用 GEQ 指令比较一个值是否大于或等于另一个值。如果源 A 的值大于或等于源 B 的值,指令逻辑为真,否则为假。 7. 相等屏蔽比较(MEQ)使用 MEQ 指令比较源地址中的数据和比较地址中的数据,允许被一个独立字屏蔽。 MEQ 相当于把源值和比较值的数据分别与屏蔽字作位与位的逻辑与操作, 然后比较两个所 得结果。如果相等,指令逻辑为真,否则为假。可看作屏蔽字中复位的位屏蔽数据,置位 的位通过数据。因此只比较源值和比较值的在屏蔽字中的相应位为 1 的那些位。例如:上面程序中,屏蔽字设为了 00FFh,所以只比较 B:3/0 和 B:3/1 的低八位, 而屏蔽掉了高八位。只要低八位相等,指令逻辑就为真,小灯 O:4/0 亮。 8. 极限比较(LIM)23 使用 LIM 指令,根据用户设定的极限值,比较某值是在指定范围之内或之外。 指令的真假状态: 如果下限值小于或等于上限值,当比较值在极限范围内或等于任一极限值时,指令逻 辑为真,否则为假。 如果下限值大于上限值,当比较值在极限范围内,指令逻辑为假。如果比较值等于任 一极限值或超出极限范围,指令为真。 下限值,比较值,和上限值可以是字地址或常数,组合受到以下限制: 如果比较参数是一个常数,下限参数和上限参数必须是字地址。 如果比较参数是一个字地址,下限参数和上限参数可以是常数或字地址。 例 2:现有一个液体混合容器,有两个输入液体阀和一个输出液体阀。使用程序模拟 这三个阀的流量情况。并设置液位上下限报警,使相应阀门关闭。24 分析:本程序为第二章例 8 的问题。前半部分和例 8 的思想一样。在后面加上了范围 判断的指令,实现了上下限的报警,和相应阀门关闭。若同时有注入和流出阀门打开,上 面程序可自动循环。25 第四章算术指令算术指令属输出指令,当梯级条件为真时,执行指定的算术运算,输出结果存放到一 个指定的存储单元。并根据结果自动设置状态位。 例如,加和减指令都是取两个输入值,进行加或减运算,运算结果存放到指定的目的 地址内。并根据结果自动设置了状态位。 算术指令包括: 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 的值26 相加,结果存入 Dest 中(4+9,结果 13 存入 N7:2) 。 2. 减指令(SUB)3.SUB 指令使源 A 的值减去源 B 的值,结果存放到目的地址内。 乘指令(MUL)4.MUL 指令使源 A 的值乘以源 B 的值,结果存放到目的地址内。 除指令(DIV)5.DIV 指令使源 A 的值被源 B 的值所除。商四舍五入存放在目的地址内。 平方根(SQR)SQR 指令计算源值绝对值的平方根,结果四舍五入存放在目的地址内。 6. 取反指令(NEG)27 NEG 指令改变源值的符号然后存放到目的地址内。例如,如果源的值是 3,目的数据 将是-3。 7. 整数转换成 BCD 码(TOD)BCD 指令把 16-位整数值转换成 BCD 码。如果输入的整数是负数,则转换其绝对值。 例:试编制一个 6 位数的自动计数器,用 BCD 码分别在 N7:0 和 N:1 上表示。分析:MicroLogix1500 中,计数器向上计数只能计到 32767,在计数范围较大的场合常感28 到不够用,但是如果采用多个数据进位的关系来表达,几乎可以计到无限。我们可以先用 一个计数器来表示六位计数器的低四位,用另一个计数器来模拟六位计数器的高两位。本 程序中, 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 中。 转换规则根据下面方程:29 10. 编码(ENC)ENC 指令可以把 Source 编码。 Source 为 16 位字, 并且只能有一位为 1, 其余位均为 0。 转换规则如下: Source Dest 00 0 10 1 00 0 00 3 01 0 00 5 00 0 00 7 00 0 00 9 00 0 00 11 00 0 00 13 00 0 00 15 11. 解码(DCD)30 DCD 指令为 ENC 指令的逆运算。它把源数据(Source)的最低 4 位的转化结果置入目 的地址(Dest)中。转换规则为上表的逆。31 第五章传送和逻辑指令传送和逻辑指令属输出指令,当梯级条件为真时,执行相应的传送或逻辑操作。指令 执行后,并根据结果自动设置状态位。传送和逻辑指令包括: 1. 传送(MOV) 2. 屏蔽传送(MVM) 3. 逻辑与(AND) 4. 逻辑或(OR) 5. 逻辑异或(XOR) 6. 逻辑非(NOT) 7. 清零(CLR) 下面逐个加以介绍。 1. 传送(MOV )MOV 指令将数据从源地址传送到目的地址。 只要梯级保持为真, 每次扫描指令都重新 传送数据。 2. 屏蔽传送(MVM)MVM 指令将数据从源地址传送到目的地址,并且允许部分目的数据被一个独立的字 屏蔽。只要梯级条件保持为真,每次扫描该指令都重新传送数据。上面程序中,数据传送的方式为:屏蔽字中位为 0 时,源值相应位的数据不传送,相 当于源值和目的值的相应位数据保持不变。屏蔽字中位为 1 时,源值相应位的数据传送到32 目的地址的相应位,相当于 MOV 指令。15 B3:0 Mask B3:1 1 0 0 14 1 0 0 13 0 0 0 12 0 0 0 11 0 0 1 10 0 0 1 9 0 0 0 8 0 0 0 7 0 1 0 6 0 1 0 5 1 1 1 4 1 1 1 3 0 1 0 2 0 1 0 1 1 1 1 0 1 1 13.逻辑与(AND)AND 指令使源 A 与源 B 执行位与位的逻辑与操作。结果存储在目的地址内。 4. 逻辑或(OR)5.OR 指令使源 A 与源 B 执行位与位的逻辑或操作。结果存储在目的地址内。 逻辑异或(XOR)XOR 指令使源 A 与源 B 执行位与位的逻辑异或操作。结果存储在目的地址内。 6. 逻辑非(NOT)33 NOT 指令使源 A 与源 B 执行位与位的逻辑非操作。结果存储在目的地址内。 7. 清零(CLR)CLR 指令使目的地址的值清为 0。34 第六章移位和顺序进出指令移位和顺序进出指令属输出指令。每一次梯级条件由假变真时,移位指令把指定地址 内的所有位都移动一个位的位置,顺序进出指令完成一次顺序进出或比较操作。移位和顺 序进出指令包括: 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 的值为1~16 时,实际上都是移动 N7:0 的 16 位。 2. 位右移(BSR)当梯级条件由假变真时,BSR 指令对 File 文件指定的数据向右(向低位)移动一位。 由 Bit Address 指定的一位被移入最左位(最高位) 。Length 的含义与 BSL 中的相同。 例 1:O:0.0 的预置状态为 0000。试编一程序,其前 20S,按每秒一次 的速度进行左移位;后 20S,按每秒一次的速度进行右移位。循环进行。35 36 分析:本程序借鉴了前面的交通灯设计的思想。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:读程序分析结果。37 分析: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 次。38 这时就可以轻松的读懂 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)39 7.FIFO 卸出(FFU)FFL 和 FFU 指令是成对使用的。它们实际为对数据结构中队列(FIFO,First In First Out,先进先出)的操作。FFL 相当于进队操作,FFU 相当于出队操作。 例 4:试编一程序,可以从输入口 I0:0 置入 10 个数,然后依次在输出口 O0:0 显示。40 分析:本程序中 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 次输入 的数据。41 第七章程序流程指令程序流程指令控制梯形图程序执行的顺序。有代表性的应用这些指令,可提高程序的 执行效率和可读性,也有利于程序的故障检测。 程序流程指令包括: 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)42 在梯形图程序中,可以把在很多处都要执行的部分做成子程序,这样可以使程序更加 清晰,并且节省存储空间。 新建子程序的方法为: 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)43 当 TND 指令梯级条件为真时,处理器停止扫描程序的其余部分并更新 I/O,并从主程 序的第一条指令处恢复执行程序扫描。 在调试程序或查找程序故障时, 可插入 TND 指令, 它只允许程序运行到它所在的程序 为止。在程序中逐步的移动此指令,以调试一段新的程序,还可以用它来作为主程序和本 地子程序的一个分界线。 4. 中断(SUS)当 SUS 指令使能时,它使处理器进入挂起模式并且在状态文件的字 7(S:7)存储挂 起 ID。所有的输出被停止使能。在程序调试和系统故障检测时用这一指令可获得或查明具 体条件。 当编程该指令时输入挂起 ID,编号范围是-32768 ~ 32767。 如上例,当 I:0/8 使能,执行 SUS 指令,它使处理器挂起,程序中断执行。打开状态44 文件,可看到 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 区。45 第八章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 指令可以优先于正常的扫描顺序刷新输出的值。当它使能,程序扫描被中断,从 输出数据文件中读来数据,经过屏蔽后,刷新指定的输出口。然后再恢复程序扫描46 3.通讯(MSG)MicroLogix 1500 的通讯体系结构由三个基本的部分组成: 梯形图扫描(Lader Scan) ; 通讯缓冲区(Communications Buffers) ; 通讯队列(Communication Queue) 。 它们决定了处理器什么时候传送消息。 当 MSG 指令使能,假如指令内定义的是写命令,则指定的信息和数据被传送到通讯 缓冲区内。处理器继续扫描梯形图程序的其他部分。一般在一个扫描周期结束后,信息被 处理,并且通过通讯通道发出处理器。 MicroLogix 1500 内共 4 个通讯缓冲区。当在一个通讯指令结束前,如果又有一条通讯 指令要处理,则它的信息和数据被传送到其余未用的一个通讯缓冲区内。当四个缓冲区全 满,第五个通讯指令又要处理时,通讯请求信息放在通讯队列中(注意,不是要传送的数 据) 。通讯队列是一个信息存储空间,存储了那些还没有被分配缓冲区的通讯指令。通讯队 列的操作顺序是先进先出(FIFO) ,它可容纳得下梯形图中所有的通讯指令。缓冲区和队 列机制都是完全自动执行的。通讯缓冲区被自动分配和释放,当缓冲区满时,再来请求则 自动进入队列。 因为通讯队列中不是存储要传送的数据,所以如果一条通讯指令在队列中移出,处理 器实际发送的数据和通讯指令第一次被扫描时可能不同。 MicroLogix1500 可以本地或远程通信. 本地通信中所有设备都可直接到达,没有单独的设备用作网桥(Bigdge) ,组网中可能 用到不同类型的接口,但是这样的网络依然被分类为本地网。远程通信用远程网,设备连 接通过或路由过一个专门的设备。47 用 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) :定义了通信指令开始后,几秒应该完成,超过设定时间48 后,发生通信错误。默认为 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 指令屏幕参数的设置49 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 指令允许 选择指定的通讯服务通道。50 处理器一般在梯形图程序一个扫描周期结束后扫描通讯端口。如果要求通讯端口被更 多次的扫描, 或者梯形图程序很长, 要优先执行 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)51 9.SCL 指令把源值乘以比率(Rate) ,再加上一个偏移量(OFFSET)作为输出。 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 检查一次,当它变为负值时指示灯亮,并记录 检查的总次数。52 分析:将 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。 下面是一个事件输入中断应用的实例。 本例中, 用来保证所有的瓶子在流出生产线 EII53 时,瓶盖机已经给它们盖上了瓶盖。 瓶子接近开关 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 号子程序为:54 分析:当处理器检测到 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:比例系数,一般设置为引起输出振荡所需值的一半。55 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 当 PV&Sp 时,CV 增加。 Direct Acting:E=PV-SP 当 PV&Sp 时,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%) 设定输出最小值。 ( : 当设定了输出受限时 Limit Output CV is Yes) (If : 如果 CV 小于这里设定的最小值,则置 CV 为这里的设定值,同时设标志位;如果没有设 输出受限,则不改变 CV 值,只用于警告。 Output Max(CV%) :参数设置的含义同上。 Scaled Error SE: (不用填写,只供显示) 。 12. 脉冲串输出(PTO)PTO 为高速输出指令。高速输出指令允许用户有选择性的刷新数据,而无需等待输入 输出扫描。PTO 指令只有一个参数,我们可选择 PTO0 或者 PTO1。56 PTO 子系统可组态为三种工作方式:脉冲点动状态、连续点动状态和正常工作状态。 脉冲点动状态在输出端只输出一个正脉冲。连续点动状态在输出端输出连续正脉冲序列正 常工作状态输出一个脉冲串序列,这个脉冲串序列有加速、匀速、减速三个阶段。 现在我们通过程序体会 PTO 子系统的三种工作方式,功能文件中子元素的作用,先设 PTO 功能文件中输出位子元素 OUT 为 2,表示输出端为 O:0/2。其它子元素在程序中设 定。 程序如下:57 分析:PTO 可组态为三种工作方式:脉冲点动状态、连续点动状态和正常工作状态。 不能同时组态为两种以上方式。 脉冲点动状态和连续点动状态运行时 PTO 指令的梯级条件 应为假。当 B3:0/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,58 加减速时的脉冲各有 PTO:0.ADP 个。如图所示,横轴为产生的脉冲数,纵轴为对应的频 率。 PTO 功能文件的斜坡曲线子元素 RP 可改变输出加减速时的曲线,RP 为0时,输出为 T 型曲线,RP 为1时,输出为 S 型曲线。通常一个物理输出只在脉冲上升沿或下降沿时改变。 这意味在脉冲上升沿或下降沿时, 物理输出的波动依赖于处理器的扫描时间。因此我们推荐在 STI 中断时使用 PTO 指令,使 脉冲序列标准化。 13. 脉宽调制(PWM)PWM 为脉宽调制指令,也为高速输出指令。它可以通过 PWM 波形来控制现场设备的 速度。PWM 指令只有一个参数,我们可选择 PWM0 或者 PWM1。 PWM 的输出为输出频率和占空比都可调的脉冲序列。 现在我们用 PWM 指令在 O:0/2 输出一个脉冲序列。先设 PTO 功能文件输出位子元 素 OUT 为 2。表示输出端为 O:0/2。其它子元素在程序中设定。59 分析: 启动 I: 0/8, PWM0 子系统在 O: 产生脉冲序列。 0/2 脉冲序列的占空比由 PWM: 0.DC 控制,频率由 PWM:0.OF 控制,断开 I:0/8,PWM0 就停止产生脉冲。其急停位 EH 的用法同 PTO 的急停位。置1时产生1号急停错误。急停位复位后,重新使能 PWM 指令,系统正常工作,错误自动消失。以下是不同占空比时的输出波形。60 61 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 指令完全相同。62 RUNG1 在 UID 指令之前,程序可被中断。 RUNG3 在 UID 指令之后,程序不响应 STI 中断。 RUNG4 指令之后,程序又恢复为可被 STI 中断。 16. 中断激活指令(UIF)UIF 指令用来激活哪些被挂起的中断类型。中断类型同上。63 第九章高速计数指令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,则禁止中断。高设定值的数据范围是: -(字) ,或-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)64 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 UIE-User Interrupt Enable CE-Counting Enable AS-Auto Start MOD-HSC Mode OMB-Output Mask Bit 数值 4 1 1 1 0 0010h 说明 中断子程序为 LAD4 允许溢出中断 允许高速计数 自动开始 选择模式 0-加法计数 只让第四位数据通过高速计数指令需要设置高速计数输入端 (本例中为 I: 0.0/0) 的滤波率。 因为频率较高, 合适的滤波率可以有效的去除干扰信号,使结果更精确。 这样就可以使用高速计数指令了,程序如下图。65 主程序(LAD2) :中断子程序(LAD4) :66 分析:主程序中 RUNG0 为电机的启动,RUNG1 为电机的停止,当对 B3:0/0 位置 1 时,电机将停止工作。RUNG2 为模拟量输入控制电机的运行频率。RUNG3 为 1S 脉冲发 生器,产生 1S 脉冲信号供下面的高速计数器复位。RUNG4 中,高速计数器 HSC0 对固定 输入点 I:0/0 的脉冲(来自于光电码盘的输出)计数。当速度超过 1200 转/秒即高速计数 器计数超过高设定值 160 时,中断子程序启动,B3:0/0 位置 1,电机停止工作。同时将高 设定值输出源的数据 16 经屏蔽后送到输出点,由于屏蔽子元素设置(0010h)中没有屏蔽 第四位,所以指示灯 O:0/0 亮。中断子程序执行完后,返回到主程序继续执行。67

我要回帖

更多关于 rslogix500下载 的文章

 

随机推荐