恭喜,你发布的帖子
发布于 2017-08-24 21:30:21
5楼
我认为你做一个db保存fifo的队列,假设你从扫码到剔除之间一共有N个盒子,则队列就保存N个数据,默认数据都是3(不合格)。
然后用中断(中断周期就是盒子经过气缸的时间间隔)处理剔除和检测功能,因为你说的速度是稳定,则在传送带是空的时候,气缸会先动作N-1次(有点恐怖),然后才正常。这样中断程序功能就是:检测fifo队列中的第一个数是不是3,如果是3则伸出1次,然后db的数据前移一个地址,到剩下最后一个地址时数据前移后,应该为空值了,看检测是否合格,合格则最后一个地址写入2否则写入3。
这样,等它到了剔除气缸那里就能判断出是否应该剔除了。
你的扫码结果不应该到数据库而是应该直接到plc,plc处理后发给数据库,这样就不存在掩饰问题了
不知道你的合格标准是什么?换一个思路可能很简单就能解决问题。
气缸动作的起始条件是,当盒子经过第二个传感器的时候,有不合格结果或者有盒子但没有正确与否结果的时候,气缸动作踢出盒子。你说的恐怖不存在。
中断程序的功能你说的和我的想法一致,但我当时的程序是没有放在中断程序里面的,这可能导致不稳定问题的出现。
关于扫码结果,这个问题有些尴尬,因为我们当时是检测读码的正确性,原始码是放在数据库中的,而当盒子经过扫码枪读到的码,必须传到数据库,进行比对,然后才有结果的正确与否。所谓的合格标准就是读码和原始码比对,如果在数据库中找到相同的码,就合格。找不到就不合格。
其实你说的很对,我把先入先出的相关程序放到中断程序里面,程序的稳定性会提高不少。输送带的速度很快,而盒子经过输送带扫码枪到给出结果,再到第二个传感器,气缸是否动作,这个过程大概平均在140微妙左右。上下差不过10微妙。输送带的速度是65米每秒,而盒子的长度只有15cm.所以中间的时间确实很短。
谢谢你的评论。
请填写推广理由:
分享
只看
楼主