• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
1935807118
级别: 家园常客
精华主题: 0
发帖数量: 674 个
工控威望: 862 点
下载积分: 2039 分
在线时间: 325(小时)
注册时间: 2013-05-03
最后登录: 2024-11-22
查看1935807118的 主题 / 回贴
楼主  发表于: 2015-05-12 11:27
有一条大型生产线,一共有几十个工位,每个工位有个呼叫加料按钮,加料装置是一台私服马达拉着机械手跑,我刚开始是想着哪个工位先按,就送哪个工位,后按得无效,要等到上个工位取料完毕再按才有效,现在客户要求后按的必须保持等待加料状态,等上个工位加完料马上加下个工位,并且严格按照先按先加的顺序进行,也就是现在同时有人一起把所有工位按钮按下,加料装置也要按着按下的顺序一个一个加下去,中间无需再按了。想了很久一直没有很好的思路,哪位大师给个思路,用的是三菱FX系列的PLC,谢谢!
hafatahaha
台达代理
级别: 论坛先锋
精华主题: 0
发帖数量: 1336 个
工控威望: 1334 点
下载积分: 2535 分
在线时间: 398(小时)
注册时间: 2012-09-26
最后登录: 2019-01-19
查看hafatahaha的 主题 / 回贴
1楼  发表于: 2015-05-12 11:38
有个指令是先入先出,你用这个指令就可以了,再有就是按钮按下后应该要自锁,只要未完成不管按多少次都要算一次
上海承接工业电气自动化项目工程 461946157@qq.com   13162651373
台达,三菱(变频器,pllc,伺服,人机,温控器)进口变送器,传感器,视觉
jeffwang2011
千里独行客
级别: 网络英雄
精华主题: 0
发帖数量: 1068 个
工控威望: 6061 点
下载积分: 2034 分
在线时间: 988(小时)
注册时间: 2015-02-28
最后登录: 2021-11-02
查看jeffwang2011的 主题 / 回贴
2楼  发表于: 2015-05-12 11:42
呵呵,这个有意思,可以研究下。。。
john42tw
级别: 网络英雄
精华主题: 0
发帖数量: 1276 个
工控威望: 6107 点
下载积分: 52058 分
在线时间: 1120(小时)
注册时间: 2012-04-24
最后登录: 2024-09-30
查看john42tw的 主题 / 回贴
3楼  发表于: 2015-05-12 13:17
引用
引用楼主1935807118于2015-05-12 11:27发表的 请教个程序思路 :
有一条大型生产线,一共有几十个工位,每个工位有个呼叫加料按钮,加料装置是一台私服马达拉着机械手跑,我刚开始是想着哪个工位先按,就送哪个工位,后按得无效,要等到上个工位取料完毕再按才有效,现在客户要求后按的必须保持等待加料状态,等上个工位加完料马上加下个工位,并且严格按照先按先加的顺序进行,也就是现在同时有人一起把所有工位按钮按下,加料装置也要按着按下的顺序一个一个加下去,中间无需再按了。想了很久一直没有很好的思路,哪位大师给个思路,用的是三菱FX系列的PLC,谢谢!

1.先設定工位序號。(若同時按下時以序號小或大的優先)
2.當工位按下時開始計時。
3.比較各工位時間,時間大的優先處理。時間一樣,以序號比較。
kokoper
级别: 略有小成
精华主题: 0
发帖数量: 238 个
工控威望: 357 点
下载积分: 1335 分
在线时间: 144(小时)
注册时间: 2014-07-23
最后登录: 2018-09-17
查看kokoper的 主题 / 回贴
4楼  发表于: 2015-05-12 13:21
我有个用C语言写的思路  就是不知道怎么转化到三菱,西门子倒会写的。
先写一个请求函数
N为工位数,建立N个元素的数组,每个按钮编辑一个不一样的非零号码,每次按按键 ,就先查找数组里是否存在该数,如存在就没有任何操作;如不存在,则将该数存到数组最后一个非0数后面;
再写一个送料函数
送料时候,先移出第一个数,然后后面所有数向前移一个单元,然后送料机构根据移出来的数到对应的地方送料。一个送料循环结束后再移出下一个数,如果移出0 则表示无送料命令
两个函数之间联系的纽带就是那个顺序数组
这样按钮也不用保持,先按肯定先送
1935807118
级别: 家园常客
精华主题: 0
发帖数量: 674 个
工控威望: 862 点
下载积分: 2039 分
在线时间: 325(小时)
注册时间: 2013-05-03
最后登录: 2024-11-22
查看1935807118的 主题 / 回贴
5楼  发表于: 2015-05-12 14:18
引用
引用第3楼john42tw于2015-05-12 13:17发表的  :

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

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

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

研究出来了,不要忘了拿出来分享下哦!
flyingbird
级别: 探索解密
精华主题: 0
发帖数量: 32 个
工控威望: 138 点
下载积分: 502 分
在线时间: 172(小时)
注册时间: 2010-07-25
最后登录: 2019-07-02
查看flyingbird的 主题 / 回贴
8楼  发表于: 2015-05-12 14:36
和电梯呼叫是一样的原理,这个程序不仅要按先进先出还要考虑什么路径最短最优,这个程序就很好了
lizhiliang
级别: 家园常客
精华主题: 0
发帖数量: 416 个
工控威望: 505 点
下载积分: 12728 分
在线时间: 677(小时)
注册时间: 2010-07-29
最后登录: 2023-01-06
查看lizhiliang的 主题 / 回贴
9楼  发表于: 2015-05-12 15:35
以前给客户做过一个类似例子,采用循环记录

信号点记录.zip (225 K) 下载次数:109
[attachment=135020]
liyong_1930
级别: 探索解密
精华主题: 0
发帖数量: 32 个
工控威望: 116 点
下载积分: 606 分
在线时间: 6(小时)
注册时间: 2014-10-28
最后登录: 2016-10-15
查看liyong_1930的 主题 / 回贴
10楼  发表于: 2015-05-12 16:34
学习来了  很有意思
wu32u2
耐得住挫折的打磨,我们将迸发出比钻石还璀璨的光芒——
级别: 论坛先锋
精华主题: 0
发帖数量: 1121 个
工控威望: 1474 点
下载积分: 1772 分
在线时间: 994(小时)
注册时间: 2010-03-01
最后登录: 2024-09-02
查看wu32u2的 主题 / 回贴
11楼  发表于: 2015-05-12 17:24
不知道楼主用的什么牌子的PLC,若是三菱的就用先入先出指令吧,之前做过一个加药水的程序,9台机器共用一个加药桶,哪个机器先请求,就哪个先加。
成功的路上需要帮助
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go