1935807118
级别: 家园常客
精华主题: 0
发帖数量: 673 个
工控威望: 864 点
下载积分: 2043 分
在线时间: 326(小时)
注册时间: 2013-05-03
最后登录: 2024-12-20
查看1935807118的 主题 / 回贴
楼主  发表于: 2015-05-12 11:27
有一条大型生产线,一共有几十个工位,每个工位有个呼叫加料按钮,加料装置是一台私服马达拉着机械手跑,我刚开始是想着哪个工位先按,就送哪个工位,后按得无效,要等到上个工位取料完毕再按才有效,现在客户要求后按的必须保持等待加料状态,等上个工位加完料马上加下个工位,并且严格按照先按先加的顺序进行,也就是现在同时有人一起把所有工位按钮按下,加料装置也要按着按下的顺序一个一个加下去,中间无需再按了。想了很久一直没有很好的思路,哪位大师给个思路,用的是三菱FX系列的PLC,谢谢!
1935807118
级别: 家园常客
精华主题: 0
发帖数量: 673 个
工控威望: 864 点
下载积分: 2043 分
在线时间: 326(小时)
注册时间: 2013-05-03
最后登录: 2024-12-20
查看1935807118的 主题 / 回贴
1楼  发表于: 2015-05-12 14:18
引用
引用第3楼john42tw于2015-05-12 13:17发表的  :

1.先設定工位序號。(若同時按下時以序號小或大的優先)
2.當工位按下時開始計時。
3.比較各工位時間,時間大的優先處理。時間一樣,以序號比較。

这个方法不错,关键这几十个时间数据比较是个问题,三菱的好像还没有什么指令可以很方便的来比较几十个数据大小的指令。有没有什么办法来比较呢?谢谢!
1935807118
级别: 家园常客
精华主题: 0
发帖数量: 673 个
工控威望: 864 点
下载积分: 2043 分
在线时间: 326(小时)
注册时间: 2013-05-03
最后登录: 2024-12-20
查看1935807118的 主题 / 回贴
2楼  发表于: 2015-05-12 14:19
引用
引用第4楼kokoper于2015-05-12 13:21发表的  :
我有个用C语言写的思路  就是不知道怎么转化到三菱,西门子倒会写的。
先写一个请求函数
N为工位数,建立N个元素的数组,每个按钮编辑一个不一样的非零号码,每次按按键 ,就先查找数组里是否存在该数,如存在就没有任何操作;如不存在,则将该数存到数组最后一个非0数后面;
再写一个送料函数
送料时候,先移出第一个数,然后后面所有数向前移一个单元,然后送料机构根据移出来的数到对应的地方送料。一个送料循环结束后再移出下一个数,如果移出0 则表示无送料命令
.......

谢谢您的建议,我会认真考虑的。
1935807118
级别: 家园常客
精华主题: 0
发帖数量: 673 个
工控威望: 864 点
下载积分: 2043 分
在线时间: 326(小时)
注册时间: 2013-05-03
最后登录: 2024-12-20
查看1935807118的 主题 / 回贴
3楼  发表于: 2015-05-12 14:20
引用
引用第2楼jeffwang2011于2015-05-12 11:42发表的  :
呵呵,这个有意思,可以研究下。。。

研究出来了,不要忘了拿出来分享下哦!
1935807118
级别: 家园常客
精华主题: 0
发帖数量: 673 个
工控威望: 864 点
下载积分: 2043 分
在线时间: 326(小时)
注册时间: 2013-05-03
最后登录: 2024-12-20
查看1935807118的 主题 / 回贴
4楼  发表于: 2015-05-13 09:33
谢谢大家的指教,我现在用先入先出指令已经成功的试运行过4个工位的程序,等过段时间机械安装好后再过去客户那边调试,有什么问题再来向大家请教。