|
循环与变址是PLC中处理复杂数据,优化计算非常有用的指令。在三菱ST语言中,支持3种类型的循环语句。 其中最好用的FOR循环指令 
根据增加表达式对初始化后的循环变量进行加法或减法运算,在达到最终值前一直重复执行从DO算起END_FOR内的1个以上的语句。 FOR...DO语句结束后的重复变量保持着结束时的值。 
控制案例1: 要求D0~D99中保存的最大数据,可以使用以下程序进行控制 程序开始先清空D400,然后进入一段FOR循环,循环第一次,Z0等于0,所以D0Z0会等效于D0,后面的MOV指令会判别D0和的大小,D0大于D400,就把D0传送给D400。 然后进入第2个周期,保存的数值加1,Z0保存的数据为1,所以D0Z0会等效于D1,后面的MOV指令会判别D1和的大小,D1大于D400,就把D1传送给D400。 然后进入第3个周期,保存的数值加1,Z0保存的数据为2,所以D0Z0会等效于D2,后面的MOV指令会判别D2和的大小,D2大于D400,就把D2传送给D400。 ... ... 这样到Z0等于99,相对于D400分别从D0比较到D99,小于寄存器的值就会被MOV指令传送进去,从而实现D400保存的数据为最大值。 
控制案例2: 以下为触摸屏的输入框,可以输入6个位置,然后通过PLC的计算,最终输出给控制的伺服电机控制位置。 
数据输入为浮点数,我们需要把距离一一乘以脉冲当量0.01,再用FLT2DINT指令转换成整数,才能用定位指令去控制。 此处我们使用了数组的方式实现变址,完成了最终的计算脉冲数最终保存到D0~D10。 

控制案例3: 有一个笼子,里面关了若干只鸡还有兔子,可以数出鸡和兔的总数和总的腿数量,需要编写一套程序,只需填入总动物数和腿数,就能自动计算出鸡的数量和兔的数量。 
通过假设法,假设鸡的数量为0~32767,通过鸡的数量可以计算出总的腿的数量,程序用IF语言判别,腿数和数到的数量是相等的,就最新EXIT指令,跳出循环(此时假定的鸡的数量就是结果) 
|