您好,欢迎访问三七文档
第8章程序控制指令8.1目的及目标8.2程序控制指令8.3Allen-Bradley的程序控制指令8.4Allen-Bradley的立即输入和输出指令8.5带有程序控制指令的经验设计8.6对梯形图的程序控制指令进行故障诊断8.7指令的位置7.1目的及目标目的提供子程序和程序扫描相关的不同程序控制指令的整体概述介绍SLC和Logix系统的程序控制指令说明程序控制指令如何应用于自动化系统的PLC程序中目标解释程序控制指令功能描述子程序的操作解释立即输入和输出指令的功能描述清除指令的操作画出并描述使用程序控制指令表达的应用梯形图使用SLC及Logix系统的程序控制指令,开发梯形图解决方案在经验设计过程中,使用程序控制指令和立即输入及输出指令对带有程序控制指令和立即输入及输出指令的梯形图梯级,进行故障诊断8.2程序控制指令程序控制指令在一个PLC梯形程序中,引导着操作流程以及指令的执行顺序当满足程序条件时,就可以跳过程序的一部分或不扫描这些梯级,使得这些特定的程序组或者分区中的输出保持不变程序控制指令允许PLC有效地执行用户编写的程序,使其只在特定的自动控制条件出现时才执行程序控制指令改变了程序扫描时间,因此优化了整体系统的响应8.3A-B的程序控制指令本节讨论一下程序控制指令主控复位指令MCR成对使用,包含着一组可以被执行或被取消的指令跳转指令JMP和标记指令LBL一起使用。当一个JMP被激活时,程序跳转到带有LBL指令的梯级中。向前跳转:跳过梯形图梯级向后跳转:重新扫描梯形图梯级跳转子程序JSR、子程序SBR、返回RET指令8.3.1主控复位指令电子机械主控继电器右图为一个硬接线主控继电器梯形图梯级1和2一直运行梯级4~31仅当梯级1中的MCR接触器线圈通电时才运行硬接线电路硬接线电路MCRMCRMCRLS1LS2L1L212343031……LS25CR30PL1PLC主控复位指令和标准梯形图MCR输出指令成对使用,激活或禁用一组或一段梯形图梯级,或用于控制整个梯形图程序MCR标准梯形图如下图所示MCR以上梯形图梯级MCR围起区域内梯形图梯级MCR以下梯形图梯级当MCR指令所在梯级条件为假时,此区域的所有非保持输出为假主复位起始有梯级条件主复位结束无梯级条件当MCR指令所在梯级条件为真时,此区域的所有梯级正常执行MCR为假即使梯级条件为真,输出被复位计数器累计值被保持锁存输出被保持例题8.1设计一个梯形图程序,在一个梯形图程序执行之前使用一个MCR指令和一个初始化按钮(I:1/2)来初始化一个计数器和定时器的预置值。计数器和定时器的预置值分别放在N7:1和N7:2中。8.3.2跳转和标记区域控制指令跳转(JMP)输出指令和输入标记(LBL)指令一起使用,标记指令确定跳转指令的目的梯级。SLC系列PLC中的标记为Q2:(0~255),而Logix系列使用不大于40个字符的文本标记使用跳转指令注意事项:编程使用跳转指令应特别小心,不要因跳转返回指令使程序滞留在循环内太长时间而触发看门狗确认LBL指令是梯级中的第一个输入指令千万不要将跳转指令编写到MCR区域中程序梯形图梯级扫描跳转跳转目的没有扫描的程序段跳转和标记指令的标准梯形图被跳转指令跳过的梯形图梯级被跳转指令跳过的梯形图梯级SLC系列向前跳转Logix系列向前跳转因为跳转指令而重复的梯形图梯级向后跳转因为跳转指令而重复的梯形图梯级标记多跳转指令对应单一标记被跳转指令跳过的梯形图梯级关于JMP指令的说明JMP指令类似于计算机编程语言中的goto指令。由于滥用goto指令会使得程序的逻辑混乱,破坏了程序结构的完整性,因此在结构化编程中不再使用goto语句。除非有必要,否则不推荐使用跳转指令!8.3.3子程序指令子程序是是主梯形程序之外的一组PLC梯形逻辑指令,它能够被主程序指令执行。当子程序被调用时,变量数据可以被传递到一个子程序中,允许子程序梯形图在此数据上执行数学或逻辑操作。子程序中的变量数据产生的结果可以返回值的形式传回到调用它的程序A-B的子程序指令有JSR、SBR、RET子程序的操作过程主程序梯级(JSR)(SBR)(RET)子程序梯级(JSRfile8)(SBRfile7)(RET)(JSRfile9)(SBRfile8)(RET)(JSRfile7)(SBRfile9)(RET)主程序子程序的嵌套调用在SLC系列中,子程序编号为U:n,n=3~255在Logix系列中,可以对子程序象标签一样进行命名注意执行子程序期间,主程序不被扫描,I/O扫描被延时8.3.4SLC子程序指令SLC500子程序建立从RSLogix500的项目管理器ProgramFiles点击右键,在下拉菜单中选New…,在从弹出对话框中选填子程序名及说明,如下图所示跳转子程序指令的标准梯形图每次扫描执行所有梯级。通常为了程序更清晰,把不同功能块编成子程序。只有当一个或多个输入逻辑组合条件为真时,执行子程序只有当一个或多个输入逻辑组合条件为真时,仅在一次扫描过程中执行子程序例题8.3设一个生产系统的PLC程序在检测到15个错误条件的任一个,都将锁定一个位,从而停止生产系统。要求设计一个报警系统,当错误发生时红色指示灯亮2秒,暗1秒。若60秒内没有人按下复位按钮,则再加入蜂鸣器报警。因15个位置中任一个检测到错误都要调用报警逻辑,所以需要将报警逻辑编写成子程序形式,以便于调用。T4:0(1s)和T4:1(2s)轮流计时,计时周期为3s。T4:1计时期间指示灯亮,T4:0计时期间灯暗T4:2完成(60s)后,蜂鸣器报警按下复位按钮,所有定时器复位主程序在B3:0/2复位前,报警子程序先执行,定时器被复位子程序和返回指令的标准梯形图子程序其他梯级子程序其他梯级虽没有说明,但是文件处于子程序位置,是默认的子程序使用SBR指令来标记子程序开始,RET指令标记子程序结束。是推荐用法子程序其他梯级2子程序其他梯级2使用SBR指令来标记子程序开始,RET指令标记子程序结束。子程序有多条返回指令8.3.5Logix的子程序指令选项子程序建立过程与SLC类似,如下图所示调用子程序指令可以用参数来传递标签数据。必须注意JSR指令中的InputPar参数类型及数目必须与SBR指令中的InputPar相同;JSR指令中的ReturnPar参数必须与子程序RET指令的ReturnPar具有相同的参数类型及数目调用指令子程序说明指令子程序返回指令例题8.5生产区域有3个指示灯:绿色为正常,黄色为小错误,红色为大错误。闪烁时间长短由主程序调用参数决定。手动复位将所有状态位返回假状态。子程序中以On_timer.TT作为指示灯亮的激活条件。(书上是Off_timer.DN,这回有什么问题?)8.4A-B的立即输入和立即输出指令当PLC程序扫描到立即输入或立即输出指令时,中断程序,进行输入或输出数据更新;完成更新后,程序返回到中断点继续执行之后的程序。原理如图所示。立即I/O指令xyI/O映象表处理器驻留机架数据交换xy读输入写输出逻辑扫描程序扫描8.4.2SLC的立即输入和输出指令(带屏蔽)立即输入指令:IIM(带屏蔽)立即输出指令:IOM标准梯形图8.4.3Logix的立即输出指令Logix控制器只有立即输出指令IOT,这跟控制器的异步扫描工作方式有关逻辑CPU背板CPU共享的I/O内存逻辑/数据内存I/O数据信息缓冲区I/O强制表生产者/消费者标签程序源代码标签数据RSLinx标签组列表ControlLogix控制器例题8.6产品装配系统有3个机器人和其他机械装配不同产品。机器人工作时不能有人进入。机器人光幕检测到有人进入时:1.关闭进人的机器人伺服电源(接通控制柜里对应的继电器)2.在生产区域中打开蜂鸣器3.当闯入光幕时,机器人红色报警灯亮012I:1/1I:1/2I:1/3L1模块4终端号机器人1的光幕机器人2的光幕机器人3的光幕机器人1的伺服机器人1指示灯机器人2的伺服机器人2指示灯机器人3的伺服机器人3指示灯蜂鸣器0——1——2——3——4——5——6——模块3终端号0000000001000011000000000100110000000000011100008.5带有程序控制指令的经验设计8.5.1在处理过程中加入控制程序指令MCR指令使用主控复位指令的场合控制一个整体程序或一些梯级在程序中的扫描频率强制一组非保留输出为假,并使保留输出不变忽略梯级条件强制一组输出为假停止一个计数器的操作,即使输入逻辑改变,计数器累加值保留现有数字,停止增加。当MCR激活时,从ACC当前值开始计数JMP和LBL指令JMP使用它条件控制一个整体程序或一些梯级在程序中的扫描频率当梯形块不扫描时,保留JMP区域中所有输出的状态从梯形图中多点跳转到一个共同的标记梯级中在一个梯形图中向前或向后跳转停止一个计数器的操作,即使输入逻辑改变,计数器累加值保留现有数字,停止增加。当MCR激活时,从ACC当前值开始计数JSR、SBR和RET指令需要子程序相关指令的情况将一个程序的梯形逻辑划分为小程序块在子程序中隔离频繁使用的梯形图,然后在主梯形图中大量不同的位置上执行它们将数据传递到另外的程序中,并执行包含这些数据的计算从其它程序返回结果,并能够用在主程序中通过将控制逻辑分成若干块,仅在需要时由主程序调用,以减小扫描时间及梯形图梯级数量IIM、IOM和IOT指令以下场合可以考虑使用立即I/O指令不等到扫描循环到达映象表更新点时就将现场设备的数据移到输入映象表在带有IIM指令的梯级被扫描后,立即中断扫描过程并只输入屏蔽部分的数据字在带有IOT或IOM的指令被扫描后,立即中断扫描过程并移动数据字8.6故障诊断建议诊断方法在MCR和JMP梯级的输入逻辑中使用恒假(AFI)指令来限制MCR区域和JMP区域的梯形图梯级,直到程序的主要部分能进行正常操作使用TND或SUS指令,在程序分支之后立即停止MCR或JMP、JSR指令,以检查引起分支的条件使用单步模式对对梯形图部分模块没有正常工作的情况进行故障诊断在单步模式中使用断点,向下执行梯形图直到插入断点的部分其它故障诊断检查:MCR区域不会交叠或嵌套MCR区域和JMP区域不会交叠向后跳转不会使得扫描时间大于看门狗定时器JSR和SBR指令具有相同数量的输入参数JSR和RET指令具有相同数量的返回参数LBL和SBR指令是梯级上的第一个输入指令标签的范围和数据类型与它们使用的范围和数据类型一致8.7指令位置本章结束第8章程序控制指令
本文标题:第8章程序控制指令
链接地址:https://www.777doc.com/doc-599604 .html