浔之漫智控技术(上海)有限公司总部
主营西门子模块 , PLC模块 , 变频器模块 , 触摸屏模块
S7-1500模块6ES79548LE030AA0

S7-1500模块6ES79548LE030AA0西门子触摸屏代理商西门子PLC模块代理商

S7-1200/1500 12M 存储卡

S7-1200/1500 12M 存储卡

6ES7954-8LE03-0AA0

SIMATIC S7,存储卡 用于 S7-1x00 CPU/SINAMICS, 3,3V Flash,12 MB

湖北西门子PLC代理商,荆门西门子触摸屏代理商,上海西门子变频器代理商,北京西门子交换机供应商,江苏CPU模块代理商,浙江西门子S7-200,S7-300,S7-1500,S7-1200系列代理商,CPU模块代理商,CPU代理商,西门子电缆代理商,西门子电缆一级代理商,西门子电缆总代理商,西门子电缆授权代理商,西门子电缆分销商,西门子电缆代理商,西门子通讯电缆一级代理商,西门子通讯电缆分销商,西门子通讯电缆分销商,西门子电源代理商,西门子电源一级代理商,西门子电源总代理商,

当一个或者多个指令(程序)重复多次(次数可知)时,可使用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;

西门子扩展模块6ES7532-5HD00-0AB0

西门子扩展模块6ES7531-7NF10-0AB0

西门子扩展模块6ES7531-7QD00-0AB0

西门子扩展模块6ES7531-7KF00-0AB0

西门子扩展模块6ES7534-7QE00-0AB0

西门子PLC扩展模块6ES7532-5HF00-0AB0

西门子PLC扩展模块6ES7532-5NB00-0AB0

西门子PLC扩展模块6ES7532-5HD00-0AB0

西门子PLC扩展模块6ES7531-7NF10-0AB0

S7-1500模块6ES79548LE030AA0西门子触摸屏代理商西门子PLC模块代理商S7-1500模块6ES79548LE030AA0西门子触摸屏代理商西门子PLC模块代理商西门子电源模块代理商西门子变频器代理商西门子CPU模块代理商

展开全文