nealleong
级别: 探索解密
精华主题: 0
发帖数量: 56 个
工控威望: 159 点
下载积分: 735 分
在线时间: 55(小时)
注册时间: 2016-09-21
最后登录: 2018-10-16
查看nealleong的 主题 / 回贴
楼主  发表于: 2017-08-23 12:06
求助一段程序,具体为:一自动贴标程序,光电传感器与机械贴标装置有一段距离,2个需要贴标位置间距为按产品需求可自己设定,如果间距足够长,可以光电传感器检测到贴标位置后进料伺服走相应脉冲然后贴标,但如果第一个贴标位置触发光电后还未贴标后一位置又触发光电了,这种思路就不可行了。

请问这样怎么做程序呢?
咗臉ヅ微笑ぺ
非吾所愿,奈何已离去……
级别: 工控侠客
精华主题: 0
发帖数量: 471 个
工控威望: 2130 点
下载积分: 29832 分
在线时间: 588(小时)
注册时间: 2017-04-08
最后登录: 2023-07-25
查看咗臉ヅ微笑ぺ的 主题 / 回贴
1楼  发表于: 2017-08-24 09:08
1、先入先出比较容易做,很直观
2、算好最多同时检测到多少产品,用大于这个数的计时器循环使用
ヅ微笑面对每一天,即使生活并不美好ヅ
咗臉ヅ微笑ぺ
非吾所愿,奈何已离去……
级别: 工控侠客
精华主题: 0
发帖数量: 471 个
工控威望: 2130 点
下载积分: 29832 分
在线时间: 588(小时)
注册时间: 2017-04-08
最后登录: 2023-07-25
查看咗臉ヅ微笑ぺ的 主题 / 回贴
2楼  发表于: 2017-08-24 14:43
引用
引用第14楼nealleong于2017-08-24 11:15发表的  :


先入先出的话,如果想用脉冲来定位的话怎么做好呢?写入的数据应该是什么呢?

我的想法是这样的,传感器触发到第一个贴标位置的时候,先把当前脉冲量D2写到到一个寄存器D1中。然后从第二个贴标位置开始的相应脉冲位通过先入先出方式写入到一列寄存器D10~D20中,当当前脉冲量D2-D1=S(传感器与贴标机构的距离,换算为脉冲量),贴标机构给一个贴标位置贴标,同时把从第二个贴标位置开始的相应脉冲位通过移位读出到D30,贴标机构的执行条件就是D2-D30=S,就进行贴标
.......

用栈指令,传感器触发直接存当前脉冲量D2加贴标位置间距量S(当然脉冲量不可能无限大,到一定值要清零,超过最大值要换算一下再存),即D2+S存入栈。当栈里有数据(可以用指针判断)且预检测位置D1为零时,以先入先出取出栈数据到D1,当D2=D1时触发贴标,然后清零D1。这样做的话就算中间缺料了也不会有影响。
或者移位加变址也是可以的。
以上为个人看法,如有错误望指出
ヅ微笑面对每一天,即使生活并不美好ヅ