裔风狂舞
喊破嗓子不如做出样子!
级别: 略有小成
精华主题: 0
发帖数量: 111 个
工控威望: 285 点
下载积分: 3710 分
在线时间: 100(小时)
注册时间: 2011-09-02
最后登录: 2024-04-22
查看裔风狂舞的 主题 / 回贴
楼主  发表于: 2017-05-31 12:45
       编码器安装在输送链上,光电开关用于检测工件,工件到指定位置后,光电一直工作,直至工件走过指定位置,由于工件长短不一,所以位置数据需要分开保存,且位置还要给后面执行器使用

       使用移位指令还是什么?编码器数据如何清零,因为输送链是不停的,希望高手给个思路。
daiz63
级别: 家园常客
精华主题: 0
发帖数量: 101 个
工控威望: 687 点
下载积分: 1681 分
在线时间: 84(小时)
注册时间: 2017-03-15
最后登录: 2021-06-13
查看daiz63的 主题 / 回贴
1楼  发表于: 2017-05-31 12:50
和选用的控制器有关,安川的话,有此门闩功能,直接存取IL8018的值即可
楼主留言:
安川的PLC???我选用的是台达的,希望能在程序上做做文章
daiz@yaskawa.com.cn
tc89914
级别: 探索解密
精华主题: 0
发帖数量: 6 个
工控威望: 101 点
下载积分: 683 分
在线时间: 10(小时)
注册时间: 2017-05-27
最后登录: 2023-06-02
查看tc89914的 主题 / 回贴
2楼  发表于: 2017-05-31 17:06
我也是做一些简单的编程!瞎说说自己的看法
首先,编码器一直在转肯定得选用增量式的,接到PLC的高速计数端口上去。光电检测到工件的上升沿瞬间清零计数器,光电下降沿瞬间将计数器的值传递给内部存储器。有的PLC高速计数器还有使能端,那就更简单,直接将光电传感器信号做为计数器的使能信号就行了。至于你说的分开保存,开辟10个存储器循环记录最近的10个工件的长度值应该就够用了吧
楼主留言:
感谢回复,但是计数器不能清零的,后面有机构要利用这个数据的。就是喷涂线,记录工件的长度,然后确定打开喷枪的距离,后面在喷涂,流水线也在运行,系统要判断出来要喷涂的工件的长度
c551
级别: 探索解密
精华主题: 0
发帖数量: 18 个
工控威望: 109 点
下载积分: 2827 分
在线时间: 67(小时)
注册时间: 2009-11-29
最后登录: 2023-03-30
查看c551的 主题 / 回贴
3楼  发表于: 2017-06-01 07:33
涉及到数据的存储调用了,用数组会不会好点?不过,你这种更类似与移位了。 也没具体做过,欢迎高手指点,跟着学习下。
tc89914
级别: 探索解密
精华主题: 0
发帖数量: 6 个
工控威望: 101 点
下载积分: 683 分
在线时间: 10(小时)
注册时间: 2017-05-27
最后登录: 2023-06-02
查看tc89914的 主题 / 回贴
4楼  发表于: 2017-06-01 08:37
我不明白为什么不能清零,后面机构要的工件长度已经保存在存储器当中了,后面工件需要直接传递过去用好啦。计数器永远在计当前正在通过的工件,计一个存一个啊!!!
楼主留言:
举个例子,当前感应器检测到第6个工件长度是100,喷枪位置是第1个工件长度是200,那就是说喷枪在第一个工件到开始喷,输送链走完200喷枪停,而这个200的距离也是由编码器计算出来的
xingyu002
级别: 略有小成
精华主题: 0
发帖数量: 115 个
工控威望: 209 点
下载积分: 853 分
在线时间: 97(小时)
注册时间: 2014-10-30
最后登录: 2019-03-30
查看xingyu002的 主题 / 回贴
5楼  发表于: 2017-06-02 16:54
去年我也在这里问过这个问题,涂装线上用到的吧,刚好这两天有个朋友介绍做这方面的不过还要带要测量光栅测量工件宽度,控制伺服定位。开价5000人家说贵了,那他自已做吧。
楼主留言:
是涂装线 我这个更简单啊  不用光栅 因为不需要用伺服
周家大少
辛辛苦苦也不过是为了养家糊口!
级别: 工控侠客
精华主题: 0
发帖数量: 1160 个
工控威望: 3078 点
下载积分: 1775 分
在线时间: 150(小时)
注册时间: 2015-09-10
最后登录: 2024-04-12
查看周家大少的 主题 / 回贴
6楼  发表于: 2017-06-02 18:40
要用到位移和变址寻址,思路理清后很简单的
QQ:611369538
微信:ZMF2KXL
静夜思飘
级别: 略有小成
精华主题: 0
发帖数量: 130 个
工控威望: 233 点
下载积分: 2500 分
在线时间: 74(小时)
注册时间: 2017-03-09
最后登录: 2022-06-28
查看静夜思飘的 主题 / 回贴
7楼  发表于: 2017-06-02 20:08
这玩意移位指令应该没用,因为不确定喷漆处和读编码处中间隔的工件个数。
自己胡乱给个建议,有木有用自己考虑。
设一个数组或固定数据区域作为储存编码的数据区,如果一个16位就能储存一个编码的话,那么可以设置偶数字储存工件开始编码,紧接的奇数字储存这个工件的结束编码。亢余量做足就好,前面读取处直接就这么简单的工作,然后将此数据区的开始指针传送给后面喷漆,因为编码是在传送链上,后面只需根据从数据区读取的编码就可以进行喷漆工作。然后跟一个语句清除已经喷漆的数据,我想既然是喷漆工作,工件在输送链上应该有足够的时间去做足这些工作。甚至都不用传输数据区具体的指针,直接后续根据传输链上的编码位置去搜索数据区然后找到最接近位置都来得及。