返回列表 发布新帖
查看: 46|回复: 0

三菱ST语言中的循环指令编程方法

17

主题

15

回帖

99

积分

管理员

积分
99
发表于 2025-12-27 21:51 | 查看全部 |阅读模式
循环与变址是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指令,跳出循环(此时假定的鸡的数量就是结果)

工控学习网 www.gkxxw.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

gkket@qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 添加微信客服
  • 关注公众号
工控学习网 © 2001-2026 Discuz! Team. Powered by Discuz! W1.5
关灯 在本版发帖
攻城大狮哥
攻城大狮哥 返回顶部
快速回复 返回顶部 返回列表