当一个或者多个指令(程序)重复多次(次数可知)时,可使用for指令。for为有限次循环指令。
如上图,程序的执行过程主要分为3个步骤,输入检测、程序扫描、输出刷新。这是plc一个工作周期的工作顺序,在扫描的时候某些程序段需要执行多遍,这个时候我们可以使用for指令。让程序中的某一段反复执行多遍,然后再往下扫描。
那么,在哪些地方用到它呢。下面我们来看2个应用案例。
程序的0到9步,触发x0的上升沿信号,把m0导通,z0、d10全部清空;第9到23步,是一段循环指令,for k10表示这段程序循环10遍。
第一遍,由于变址寄存器z0里面的数字为0,d0z0这个地址变为d0(具体参考变址寄存器的用法),add d10 d0z0 d10,这条指令把d10加d0的数据放到d10里面了,由于在程序上面用了d10,所以一开始d10保存的数据为0,经过加法指令,d10里面保存数据就是d0,然后通过inc z0加一指令,让z0自加1,等于1.然后进入循环第二遍。
第二遍,z0里面的数据为1,d0z0这个地址变为d1,add d10 d0z0 d10这条指令把d10(经过第一遍扫描,d10里面保存了d0)加d1的数据放到d10里面了,那么 d10里面的数据变为d0+d1,然后通过inc z0加一指令,让z0自加1,等于2.然后进入循环第三遍。
… …
第10遍,z0里面的数据为9,d0z0这个地址变为d9,add d10 d0z0 d10这条指令把d10(经过第9遍扫描,d10里面保存了d0+d1+… +d8)加d9的数据放到d10里面了,那么 d10里面的数据变为d0到d9里面全部数据的总和,然后通过inc z0加一指令,然后退出循环,进入下一步。
m8000常通触点段开m0,当进入plc下一个工作周期时,由于循环指令里面的程序都是由m0常开触点触发的,这是就不会再触发了,也就是,经过一个plc的工作周期,就把d0到d9里面的数据加起来,放到了d10里面了。
当然,我们也可以写程序来做一些其他的计算。下面我们来看下另外一个应用案例:
有54个x点,对应启动54个y点,需要保持自锁,当按下按钮m0时所有输出停止。
面对这样一个要求,在没有学习循环指令之前,你可能会一段一段的写,需要写54段程序,今天,我们来尝试下用for指令来写,如下图。
每次进行扫描都会先把z0清0,然后进入循环(54次),第一遍z0=0,这时x000z0的地址是x000,y000z0的地址是y000,x000触发y000线圈并形成自锁,通过inc指令z0自加1;第二遍,z0等于1,这时x000z0的地址是x001,y000z0的地址是y001,x001触发y001线圈并形成自锁,通过inc指令z0自加1;… …
这样的话,就把本来很冗长的一大段简化成了一小段,节省程序步数的同时减少了编程的时间。
关于for指令,除了以上两种,大家平时还有什么用法?
智能制造系统有什么特点?
Maxim±5V输出线性稳压器
人工智能产业发展前景分析
流水线处理技术在数据集成中的应用
机器视觉需求飙升或成蓝海市场 机器视觉行业迎来快速增长期
PLC编程中的FOR循环指令案例详解
5G应用下银行金融的服务有什么改变
苹果公司、微软和亚马逊等开始起诉谷歌
配网不停电作业如何进行管理,它都有哪些特色
非气密倒装焊陶瓷封装热特性分析及测试验证
迈来芯隆重推智能集成电机预驱动器解决方案
单光纤液位传感器
安科瑞参加2023年新疆电气年会
浅析USB4.0的前世今生
SolidWorks标准版专业版和白金版功能比较
工业物联网关BL110助力智能工厂建设
2012年最具创新力的25家中国公司
千兆宽带的优势是什么,它的原理是怎样的
MF53-1型测温用NTC热敏电阻器
一文知道导波雷达液位计的调试过程