• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
是我冒饭了
叮又叮不懂,斜又斜不废。
级别: 家园常客
精华主题: 0
发帖数量: 170 个
工控威望: 885 点
下载积分: 221 分
在线时间: 94(小时)
注册时间: 2024-03-14
最后登录: 2025-07-29
查看是我冒饭了的 主题 / 回贴
楼主  发表于: 前天
图片:
图片有点潦草
大致需求是有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没多久。不太会,请各位前辈赐教。
wwr1992
级别: 略有小成
精华主题: 0
发帖数量: 205 个
工控威望: 286 点
下载积分: 5276 分
在线时间: 252(小时)
注册时间: 2018-02-01
最后登录: 2025-07-29
查看wwr1992的 主题 / 回贴
1楼  发表于: 前天
你这个优先级不就是先入先出表格,几号完成就把这个编号填入表格里,你要动作的时候判断表格第一个编号是多少就去几号,同步出一个表格,这样每次你机器人动作完表格第一个编号就是最先完成的顺序
是我冒饭了
叮又叮不懂,斜又斜不废。
级别: 家园常客
精华主题: 0
发帖数量: 170 个
工控威望: 885 点
下载积分: 221 分
在线时间: 94(小时)
注册时间: 2024-03-14
最后登录: 2025-07-29
查看是我冒饭了的 主题 / 回贴
2楼  发表于: 前天
顺序不是固定的,比如第一次可能是 1.2.3.4.5.6.7.8.9.10的顺序, 然后中途4号罐发生故障暂时不能工作就要跳过4号罐,假设机器人抓取8号罐的时候,4号罐恢复了。4号罐就要接在8号罐后面,所以顺序是会发生变化的,不是第一次是什么顺序就固定是什么顺序。这样的话,每次有一个罐体故障和恢复,表格顺序都要导入一次,也挺麻烦的。我还是希望能够简化一点程序,所以我想试试能不能用一些ST让程序变得简短一点。感谢您的回答
引用
引用第1楼wwr1992于2025-07-28 15:06发表的  :
你这个优先级不就是先入先出表格,几号完成就把这个编号填入表格里,你要动作的时候判断表格第一个编号是多少就去几号,同步出一个表格,这样每次你机器人动作完表格第一个编号就是最先完成的顺序
不动如山
级别: 正式会员
精华主题: 0
发帖数量: 41 个
工控威望: 57 点
下载积分: 206 分
在线时间: 41(小时)
注册时间: 2024-10-29
最后登录: 2025-07-29
查看不动如山的 主题 / 回贴
3楼  发表于: 前天
类似出入栈的功能,完成的任务往后添加到数组,你调取任务的时候从开头拿(出栈),拿完了把数组上移,你要去的点位 一直是D1里面取出来的
wwr1992
级别: 略有小成
精华主题: 0
发帖数量: 205 个
工控威望: 286 点
下载积分: 5276 分
在线时间: 252(小时)
注册时间: 2018-02-01
最后登录: 2025-07-29
查看wwr1992的 主题 / 回贴
4楼  发表于: 前天
这个功能同样能实现啊,不过对表格处理会麻烦一点,填表的时候还是按先后顺序一个个填表,出表的时候你从第一个表格开始轮询到最后一个,查询编号和能否工作这两个信号,一直到第一个无故障的编号就去几号,前面几个有故障的表格里保持不动,把你机器人去的那个表格剔除,每完成一次都从第一个表格开始,这样你4号故障时就会一直待在表格第一位置,一直到故障恢复了4号就是第一顺位
引用
引用第2楼是我冒饭了于2025-07-28 15:24发表的  :
顺序不是固定的,比如第一次可能是 1.2.3.4.5.6.7.8.9.10的顺序, 然后中途4号罐发生故障暂时不能工作就要跳过4号罐,假设机器人抓取8号罐的时候,4号罐恢复了。4号罐就要接在8号罐后面,所以顺序是会发生变化的,不是第一次是什么顺序就固定是什么顺序。这样的话,每次有一个罐体故障和恢复,表格顺序都要导入一次,也挺麻烦的。我还是希望能够简化一点程序,所以我想试试能不能用一些ST让程序变得简短一点。感谢您的回答

是我冒饭了
叮又叮不懂,斜又斜不废。
级别: 家园常客
精华主题: 0
发帖数量: 170 个
工控威望: 885 点
下载积分: 221 分
在线时间: 94(小时)
注册时间: 2024-03-14
最后登录: 2025-07-29
查看是我冒饭了的 主题 / 回贴
5楼  发表于: 昨天
奥,感谢,刚才没有想到把数据移位,这样确实能简单一些。
引用
引用第3楼不动如山于2025-07-28 16:01发表的  :
类似出入栈的功能,完成的任务往后添加到数组,你调取任务的时候从开头拿(出栈),拿完了把数组上移,你要去的点位 一直是D1里面取出来的
是我冒饭了
叮又叮不懂,斜又斜不废。
级别: 家园常客
精华主题: 0
发帖数量: 170 个
工控威望: 885 点
下载积分: 221 分
在线时间: 94(小时)
注册时间: 2024-03-14
最后登录: 2025-07-29
查看是我冒饭了的 主题 / 回贴
6楼  发表于: 昨天
嗯,这样确实可以解决,但是对我来说有些复杂了,感谢大佬的回复。
引用
引用第4楼wwr1992于2025-07-28 16:11发表的  :
这个功能同样能实现啊,不过对表格处理会麻烦一点,填表的时候还是按先后顺序一个个填表,出表的时候你从第一个表格开始轮询到最后一个,查询编号和能否工作这两个信号,一直到第一个无故障的编号就去几号,前面几个有故障的表格里保持不动,把你机器人去的那个表格剔除,每完成一次都从第一个表格开始,这样你4号故障时就会一直待在表格第一位置,一直到故障恢复了4号就是第一顺位

梦雨天涯
微信hui530527   &
级别: 网络英雄
精华主题: 0
发帖数量: 4845 个
工控威望: 8266 点
下载积分: 18085 分
在线时间: 3390(小时)
注册时间: 2016-10-31
最后登录: 2025-07-29
查看梦雨天涯的 主题 / 回贴
7楼  发表于: 昨天
找到先入先出指令,就行
微信hui530527      b站账号,非标自动化谭工
请不要随意加我,不会随便通过。QQ群462042464
是我冒饭了
叮又叮不懂,斜又斜不废。
级别: 家园常客
精华主题: 0
发帖数量: 170 个
工控威望: 885 点
下载积分: 221 分
在线时间: 94(小时)
注册时间: 2024-03-14
最后登录: 2025-07-29
查看是我冒饭了的 主题 / 回贴
8楼  发表于: 昨天
不知道欧姆龙有没有这个指令,感谢
引用
引用第7楼梦雨天涯于2025-07-29 08:15发表的  :
找到先入先出指令,就行
w45062099
多做事,少说话!
级别: 略有小成
精华主题: 0
发帖数量: 345 个
工控威望: 455 点
下载积分: 1303 分
在线时间: 1079(小时)
注册时间: 2014-10-23
最后登录: 2025-07-29
查看w45062099的 主题 / 回贴
9楼  发表于: 昨天
可以提供有偿编程服务,不满意不收费;不需要使用先入先出等指令;这些指令在有具体的机构动作参与的场景中出现异常时不好处理。
楼主留言:
暂时不需要,只是自学阶段,谢谢
每天只要小小一步都是在进步!
zhongwen1234
级别: 探索解密
精华主题: 0
发帖数量: 119 个
工控威望: 199 点
下载积分: 623 分
在线时间: 76(小时)
注册时间: 2020-08-04
最后登录: 2025-07-29
查看zhongwen1234的 主题 / 回贴
10楼  发表于: 昨天
你这需要三个队列。待料队列,完成队列,异常队列。队列顺序按时间排也行,追求效率按照动作速度排也行,机械手按照队列动作就可以。
工艺思路理清楚,用哪种编程其实都不复杂
是我冒饭了
叮又叮不懂,斜又斜不废。
级别: 家园常客
精华主题: 0
发帖数量: 170 个
工控威望: 885 点
下载积分: 221 分
在线时间: 94(小时)
注册时间: 2024-03-14
最后登录: 2025-07-29
查看是我冒饭了的 主题 / 回贴
11楼  发表于: 昨天
感谢解答,各位大佬提供了不少方法,我尝试了一下先入先出基本上能满足目前的需求。我尽量每一种都去尝试一下。感谢
引用
引用第10楼zhongwen1234于2025-07-29 14:17发表的  :
你这需要三个队列。待料队列,完成队列,异常队列。队列顺序按时间排也行,追求效率按照动作速度排也行,机械手按照队列动作就可以。
工艺思路理清楚,用哪种编程其实都不复杂
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go