已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二节程序流控制 一 条件跳转指令CJ二 子程序指令CALLSRET三 中断指令IRETEIDI四 主程序结束指令FEND五 警戒时钟定时器指令WDT六 循环指令FOXNEXT 操作数 指针P0 P127P63表示跳到END 1 条件跳转指令 CJ和CJ P 为条件跳转指令 在某种条件下需要跳过一部分程序时 采用跳转指令 这样可以减少扫描时间 提高程序执行速度 图CJ指令的使用 X000 标号P10 CJ P10 X001 Y001 X002 Y002 a b 梯形图 说明CJ指令跳过部分程序 可以缩短程序的扫描周期 一个指针只能出现一次 如果积算型定时器和计数器的RST指令在跳转程序之内 即使跳转程序生效 RST指令仍然有效 该指令可以连续和脉冲执行方式 被跳过去的程序中各元件的状态为Y M S保持跳转前状态不变 定时器T和计数器C如果被CJ指令跳过 跳转期间它们的当前值将被保存 如果在跳转开始时定时器和计数器正在工作 在跳转期间它们将停止定时和计数 T192 T199和高速计数器C235 C255如果在驱动后跳转 则继续工作 输出触点也会动作 如图 X000为ON时 程序跳到指针P8处 X000为OFF时 不执行跳转 程序按原顺序执行 如果用M8000的常开触点驱动CJ指令 相当于无条件跳转指令 因为运行时特殊辅助寄存器M8000总是ON 用跳转指令实现选择运行程序段 图手动 自动程序跳转 应用跳转指令的程序结构如图所示 X3是手动 自动选择开关的信号输入端 当X3未接通时 执行手动程序段 反之执行自动程序段 X3的常开 常闭接点起联锁作用 使手动 自动两个程序段只能选择其一 条件跳转指令应用举例 例题 某台设备具有手动 自动两种操作方式 SB3是操作方式选择开关 当SB3处于断开状态时 选择手动操作方式 当SB3处于接通状态时 选择自动操作方式 不同操作方式进程如下 手动操作方式进程 按启动按钮SB2 电动机运转 按停止按钮SB1 电动机停机 自动操作方式进程 按启动按钮SB2 电动机连续运转1min后 自动停机 按停止按钮SB1 电动机立即停机 解 根据控制要求 设计程序梯形图如图所示 程序梯形图 二 子程序指令 子程序调用CALL Sub RoutineCall 操作数 指针P0 P127子程序返回SRET无操作数 Sub RoutineReturn 无操作数说明子程序应该在主程序结束之后编程 CJ指令的指针与CALL的指针不能重复 主程序允许嵌套 嵌套级别最多为5级 子程序只能用T192 T199和T246 T249作定时器 同一指针只能出现一次标号P63相当于END 梯形图 子程序编写在FEND指令的后面 以标号P开头 以返回指令SRET结束 子程序调用指令CALL与跳转指令CJ不能使用相同的标号 三 主程序结束指令FEND 说明FEND指令表示主程序结束 与END指令的功能一样 程序执行到FEND时 进行输出处理 输入处理 监视定时器和计数器刷新 全部完成以后返回到程序的第00步 执行到该指令时程序返回到0步 中断服务子程序和子程序应该写在FEND之后 并且用IRET和SRET返回 如果多次使用FEND指令 在最后的FEND和END之间编写子程序或中断子程序 FEND主程序结束指令使用时应注意 子程序和中断子程序必须写在主程序结束指令FEND和END指令之间 子程序调用举例 程序功能是 X1 X2 X3分别接通时 将相应的数据传送到D0 D10 然后调用子程序 在子程序中 将D0 D10存储的数据相加 运算结果存储在D20 用D20存储数据控制输出字元件K1Y0 四 中断指令 中断返回IRET InterruptionReturn 开中断EI InterruptionEnable 关中断DI InterruptionDisable 均无操作数梯形图 说明在执行某个中断子程序时 禁止其它中断请求 用于中断的指针用来指明某一中断源的中断程序的入口 中断程序允许嵌套 嵌套级别为2级 中断指针共有15个 输入中断6个 定时器中断3个 计数器中断6个 中断程序用T192 T199和T246 T249作定时器 中断的优先级别多个中断信号不同时产生时 按先后顺序中断 多个中断信号同时产生时 按指针大小中断 当M8050 M8058为ON时 禁止执行相应的输入中断 M8059为ON时禁止所有计数器中断 例如 I001为输入X0从OFF ON变化时 执行由该指针作为标号后面的中断程序 并根据IRET指令返回 输入中断用来接收特定的输入地址号的输入信号 输入中断指针I 0 最高位 与X000 X005的元件号相对应 单元的输入号为0 5 从X000 X005输入 最低位 为0时表示下降沿中断 反之为上升沿中断 图中一开始为允许中断 当X1从OFF ON且保持ON 程序跳到指针I101处执行中断程序 执行第13行将K100送到D1 然后返回主程序 对定时器T0计时 当计时达到D1当前值K100时 T0触点闭合 Y0得电 中断程序由中断指针入口 到中断返回指令IRET结束 例如中断指针I101的意义为当程序执行到X1时转到中断指针I101的程序行执行 一直到IRET为止 之后返回主程序 中断程序编写在主程序结束之间 如图所示 2 定时器中断 定时器中断由编号为I6 I7 I8三个专用定时器中的一个 在10 99ms中任选一个作为中断设定时间 每隔此设定时间中断一次 例如I650 即每隔50ms 在标号I650之后对程序执行中断 直到执行IRET指令返回原状态 定时器中断用于需要指定中断时间执行中断程序的地方 主要用于高速处理或每隔一定时间执行的程序等问题 定时器的中断指针为 图中按X1 M3得电 定时器中断 执行中断指针I650每隔50ms使D0加1 直到当D0的当前值等于1000 M3失电 定时器中断指针为I6 I8 低两位是以ms为单位定时时间 1 99ms M8056 M5058为ON时 将分别禁止定时中断0 2 3 计数器中断 计数器中断用于与高速计数器当前值比较的结果 执行高速计数器比较置位指令 而中断执行中断程序的场合 计数器中断指针为I0 0 1 6 计数器中断6点 不可重复使用 计数器中断与HSCS 高速计数器比较置位 指令配合使用 根据高速计数器的计数当前值与计数设定值的关系来确定是否执行相应的中断服务程序 图中 执行第3步 将K1000与C255的当前值比较 当C255的当前值由999变到1000时 驱动计数器中断器I010 梯形图表示为I10 执行计数器中断程序 4 中断程序在执行过程中 不响应其他的中断 其他中断为等待状态 不能重复使用与高速计数器相关的输入 不能重复使用I000与I001相同的输入 1 EI与FEND之间或EI与DI之间为允许中断范围 DI与EI之间为禁止中断范围 2 中断信号的脉宽必须大于200 s 中断指令使用说明 3 如果特殊辅助继电器M8050 M8059为ON 则禁止各对应输入编号进行中断 见附录特殊辅助继电器 图中 如果M8051为OFF 按住X1 执行中断程序 运行情况如图一样 如果按X10 M8051接通 则按X1 程序也不执行中断 7 如果中断信号产生禁止中断区间 DI EI之间 这个中断信号被存储 并在EI指令后执行 5 如果有多个依次发出的中断信号 则优先级按发生的先后为序 发生越早则优先级越高 若同时发生多个中断信号时 则中断标号小的优先级高 6 一个中断程序执行时 其他中断被禁止 但是在中断程序中编入EI和DI指令时 可实现中断嵌套 多个中断信号产生的顺序 遵照中断指针号较低的有优先权的规定 8 可编程控制器平时处于禁止中断状态 如果EI DI指令在扫描过程中有中断输入时 则执行中断程序 从中断标号到IRET之间的程序 说明在执行某个中断子程序时 禁止其它中断请求 中断程序允许嵌套 嵌套级别为2级 中断指针共有15个 输入中断6个 定时器中断3个 计数器中断6个 中断程序用T192 T199和T246 T249作定时器 中断的优先级别多个中断信号不同时产生时 按先后顺序中断 多个中断信号同时产生时 按指针大小中断 1 监视定时器指令的助记符及功能如表所示 2 格式如图所示 图WDT指令用法 五 警戒定时器指令WDT WATCHDOGTIMER 如果正常的扫描周期超过警戒时钟的设定值 可以在适当程序步中加入WDT指令 适时刷新警戒时钟 使程序能顺利执行 也可以通过MOV指令修改警戒定时器的设定值 D8000的值 可以计算出程序扫描周期的最大值作为警戒时钟的设定值 WDT指令可用在FOR NEXT之间 警戒定时器指令的应用 监视定时器指令WDT P 没有操作数 占有1个程序步 WDT指令的功能是对PLC的监视定时器进行刷新 3 说明 1 WDT指令是在控制程序中刷新警戒定时器的指令 如果执行程序的扫描周期时间 从0步到END或FEND指令之间 达200ms 则PLC将停止运行 这时应将WDT指令插到合适的程序步中刷新警戒时钟 以便程序得以继续运行直到END 例如将一个扫描周期为240ms的程序分为2个120ms程序 如图所示 在这两个程序之间插入WDT指令 2 如果希望每次扫描周期时间超过200ms 则可用移动指令MOV把限制值写入特殊数据寄存器D8000中 如图所示 FX系列PLC的监视定时器缺省值为200ms 可用D8000来设定 正常情况下PLC扫描周期小于此定时时间 如果由于有外界干扰或程序本身的原因使扫描周期大于监视定时器的设定值 使PLC的CPU出错灯亮并停止工作 可通过在适当位置加WDT指令复位监视定时器 以使程序能继续执行到END 使用WDT指令时应注意 1 如果在后续的FOR NEXT循环中 执行时间可能超过监控定时器的定时时间 可将WDT插入循环程序中 2 当与条件跳转指令CJ对应的指针标号在CJ指令之前时 即程序往回跳 就有可能连续反复跳步使它们之间的程序反复执行 使执行时间超过监控时间 可在CJ指令与对应标号之间插入WDT指令 无操作数警戒定时器是一个专用定时器 其设定值存放在特殊的数据寄存器D8000中 并以ms为计时单位 当PLC一上电 则对警戒定时器进行初始化 将K100 设定值为100ms 装入D8000中 每个扫描周期结束时 马上刷新警戒定时器的当前值 使PLC能正常运行 当扫描周期大于100ms时 即超过了警戒定时器的设定值 警戒定时器的逻辑线圈被接通 CPU立即停止执行用户程序 同时切断全部输出 并且报警显示 如果正常的扫描周期超过警戒时钟的设定值 可以在适当程序步中加入WDT指令 适时刷新警戒时钟 使程序能顺利执行 也可以通过MOV指令修改警戒定时器的设定值 D8000的值 可以计算出程序扫描周期的最大值作为警戒时钟的设定值 WDT指令可用在FOR NEXT之间 警戒定时器指令的应用 循环开始FOR操作数 S K H KnX KnY KnM KnS T C D V Z循环结束NEXT无操作数说明n为循环次数 其范围为1 32767有效 如果指定为 32768 0 则作n 1处理 循环指令最多可以嵌套5级 程序中FOR NEXT是成对出现的 FOR在前 NEXT在后不可倒置 否则出错 编程时NEXT应该在FEND或END之前 否则出错 六 循环指令 3 说明 1 进入循环指令FORn n取值范围为1 32767 循环结束命令NEXT 无操作数 命令FOR NEXT必须成对使用 缺一不可 2 图5 12为单循环 执行完程序1 进入循环语句 对程序2执行循环10次后 执行程序3结束 FOR NEXT指令可以嵌套 它主要用于某些操作需反复进行的场合 FOR NEXT指令最多只能嵌套5层 如因循环次数过多 程序运行时间大于200ms 请注意使用WDT命令 2 FOR NEXT的格式 如图所示 图循环指令 3 图为双重循环的例子 当X0闭合 接通PLC电源 程序转到P1执行 当X0断开 接通PLC电源 程序执行双重循环 执行结果为Z 50 D0 49 之后 执行定时器指令 当T0的当前值等于设定值D0 T0触点接通 Y0得电 图双重循环 2 循环指令FOR NEXT举例 例题3 求0 1 2 3 100的和 并将和存入D0 解 用循环指令编写的程序如图5 32所示 D1作为循环增量 图应用循环指令求和的程序 例题5 4 求0 1 2 3 100的和 并将和存入D0 图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 异丙醇装置操作工测试验证知识考核试卷含答案
- 漆艺师岗前记录考核试卷含答案
- 时钟装配工安全培训竞赛考核试卷含答案
- 拖拉机驾驶员持续改进知识考核试卷含答案
- 彩灯艺术设计师安全文明竞赛考核试卷含答案
- 生物农药生产工技能强化考核试卷含答案
- 煤层气固井工复测模拟考核试卷含答案
- 污泥处理工岗中健康知识考核试卷含答案
- 稀土真空热还原工岗中水平能力考核试卷含答案
- 时间频率计量员安全防护竞赛考核试卷含答案
- 2026冶炼厂面试题及答案
- 课堂英语教师口语用语200句
- 中小学生日常行为规范暨教育惩戒实施细则
- 2026富邦华一银行成都分行社会招聘笔试参考题库及答案详解
- 2026年高考政治真题完全解读(黑吉辽蒙卷)
- 电厂运行事故处理操作要点培训课件
- 预埋螺栓施工方案
- 2026年山东省济宁市重点学校小升初入学分班考试语文考试试题及答案
- 2026年农作物植保员职业技能竞赛模拟题库及参考答案详解(培优A卷)
- 滴滴货运营销方案策划
- 2026贵州省农业发展集团有限责任公司招录(第一批)岗位65人备考题库及参考答案详解一套
评论
0/150
提交评论