是我冒饭了
叮又叮不懂,斜又斜不废。
级别: 家园常客
精华主题: 0
发帖数量: 173 个
工控威望: 888 点
下载积分: 307 分
在线时间: 97(小时)
注册时间: 2024-03-14
最后登录: 2025-07-31
查看是我冒饭了的 主题 / 回贴
楼主  发表于: 4天前
图片:
图片有点潦草
大致需求是有10个罐体先后加工材料,材料加工完之后由中间的机器人抓取成品和供给未加工的产品。但是有一个优先级的关系,假设机器人现在在抓取3号罐里的东西,这个时候5号罐先完成了,然后8号罐也完成了。我需要按照他们完成的先后顺序来进行抓料和供给。
目前程序的思路是有的,我按照完成的顺序分别把罐的编号传到D1-D10里,先判断D1-D10内谁的数据不为0,再判断对应数据内的数值为多少,让机器人去对应的罐子抓料。
列如D1=3;D2=5;D3=8;当3号罐抓料完成之后,把D1置0,然后再判断D2不为0 ,读取D2里的值为5,就去5号罐抓料。
可是这如果用梯形图来写太长了,想用ST去做一些判断,不知道用哪个指令,本来想用FOR来判断哪个D里面有数值不为零,但是只能比较一个D1,怎么实现D1=0之后判断条件变成D2是不是等于0?还是说一直用IF嵌套?,不好意思新学ST没多久。不太会,请各位前辈赐教。
麦克朱
级别: 家园常客
精华主题: 0
发帖数量: 588 个
工控威望: 789 点
下载积分: 241 分
在线时间: 243(小时)
注册时间: 2022-07-11
最后登录: 2025-07-31
查看麦克朱的 主题 / 回贴
1楼  发表于: 前天

麦克朱
级别: 家园常客
精华主题: 0
发帖数量: 588 个
工控威望: 789 点
下载积分: 241 分
在线时间: 243(小时)
注册时间: 2022-07-11
最后登录: 2025-07-31
查看麦克朱的 主题 / 回贴
2楼  发表于: 昨天
引用
引用第13楼是我冒饭了于2025-07-30 07:51发表的  :
哥,能解释一下这段吗?看不懂啊


一个数组是定时器,一个数组是优先级,优先级由人工输入,这样for循环的时候就是按优先级内输入的值来检索 定时器[优先级],假设优先级第一个元素是5那么就先检查第五个计时器
麦克朱
级别: 家园常客
精华主题: 0
发帖数量: 588 个
工控威望: 789 点
下载积分: 241 分
在线时间: 243(小时)
注册时间: 2022-07-11
最后登录: 2025-07-31
查看麦克朱的 主题 / 回贴
3楼  发表于: 昨天
引用
引用第14楼麦克朱于2025-07-30 09:29发表的  :

一个数组是定时器,一个数组是优先级,优先级由人工输入,这样for循环的时候就是按优先级内输入的值来检索 定时器[优先级],假设优先级第一个元素是5那么就先检查第五个计时器

这个也可以做到先入先出,但不完全遵守,要完全遵守要不就单独对优先级在做排序或者换个思路