西门子交换机模块代理商西门子CPU代理商武威西门子S7-1200代理商
《产品优势》:专业销售 薄利多销 信誉好,口碑好,价格低,货期短,大量现货,服务周到!我公司经营西门子全新原装现货PLC;S7-200S7-300 S7-400 S7-1200 触摸屏,变频器,6FC,
6SNS120 V10 V60 V80伺服数控备件:原装进口电机(1LA7、1LG4、1LA9、1LE1),国产电机(1LG0,1LE0)
大型电机(1LA8,1LA4,1PQ8)伺服电机(1PH,1PM,1FT,1FK,1FS)西门子保内全新原装产品质保一年。一年内因产品质量问题免费更换新产品;不收取任何费。欢迎致电咨询。
品牌 | 产品名称 | 规格型号 |
SIEMENS | 电源 | 6ES7307-1BA01-0AA0 |
SIEMENS | 电源 | 6ES7307-1KA02-0AA0 |
SIEMENS | 模块 | 6ES7131-6BH01-0BA0 |
SIEMENS | 模块 | 6ES7193-6BP20-0DA0 |
SIEMENS | 接头 | 6GK1901-1BB10-2AA0 |
SIEMENS | 接头 | 6GK1901-1BB20-2AA0 |
SIEMENS | 内存卡 | 6ES7952-1AK00-0AA0 |
SIEMENS | 模块 | 6ES7421-1FH00-0AA0 |
SIEMENS | 触摸屏 | 6AV6648-0CC11-3AX0 |
SIEMENS | 触摸屏 | 6AV6648-0CE11-3AX0 |
SIEMENS | 模块 | 6ES7142-3BH00-0XA0 |
SIEMENS | 模块 | 6ES7288-3AE08-0AA0 |
SIEMENS | 模块 | 6ES7288-2DT16-0AA0 |
SIEMENS | 模块 | 6ES7288-3AR04-0AA0 |
SIEMENS | 交换机 | 6GK5005-0BA00-1AB2 |
SIEMENS | 触摸屏 | 6AV2123-2MB03-0AX0 |
SIEMENS | 电缆 | 6XV1840-2AH10 |
SIEMENS | 底座 | 6ES7193-6BP00-0BA0 |
SIEMENS | 底座 | 6ES7193-6BP00-0DA0 |
SIEMENS | 模块 | 6ES7141-3BH00-0XA0 |
SIEMENS | 模块 | 6ES7212-1AE40-0XB0 |
电气工程师详解FOR循环指令案例
当一个或者多个指令(程序)重复多次(次数可知)时,可使用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;
… …这样的话,就把本来很冗长的一大段简化成了一小段,节省程序步数的同时减少了编程的时间。
http://yan6789.b2b168.com