您现在所在的是:

机电一体化

回帖:30个,阅读:2716 [上一页] [1] [2] [3] [4] [下一页]
5687
zhangpeizhi
文章数:834
年度积分:96
历史总积分:5687
注册时间:2009/3/11
发站内信
2018春节活动(三)
2017春节活动(二)
发表于:2017/6/5 20:18:26
#0楼
有一台磁环分拣机,大概如图,原理是这样的:启动机器,每进一个元件,步进电机就驱动转盘转一格,当检测机检测到不同阻值的元件,就向PLC发一个信号,转盘就转到相应的出料口,PLC驱动汽缸动作,元件掉到下面的料箱。这是老板给我的练习题,有原型机和程序,他把程序删去让我自己编程试试。他说用位移指令(PLC是三菱3GA)来定位,现在卡在这里,检测不同元件后怎样用位移指令来分拣?想了一天也没个头绪,急死了。在这请教各位高人指点一下迷津,原型机转盘为20格,步进电机细分为6400/圈,这程序怎么写?非常感谢!多年没接触PLC,现在来到新的环境,一切都要重头开始。
附件 wx_camera_1496665440454.jpg
[此贴子已经被jint于2017/6/8 8:44:52编辑过]
此帖发自手机工控论坛
363
朱GsFwbLqjzd
文章数:2
年度积分:50
历史总积分:363
注册时间:2017/5/12
发站内信
发表于:2017/6/6 10:54:38
#1楼
用比较指令
999
zhanaoshen
文章数:144
年度积分:50
历史总积分:999
注册时间:2017/2/15
发站内信
发表于:2017/6/6 11:29:40
#2楼
看了下,实现的方法有很多,我说下我的思路,就比如按照你们老板的说的想法去实现的一种办法。
假设有3中类型的工件需要分拣。
首先,进料口这边只管上料就行,检测口是程序的关键因素。
其次是检测位置,你可以定义三个32位的Dint数据类型变量 对应了三种不同的工件D1 D2 D3 初值为0.
然后到达检测位置,如果检测结果是第一种类型则   D1 位或上1 完成之后 D1 D2 D3 全部用位移指令向高位位移1位
然后检测下一个 如果是第二组类型的 则同理 D2 位或上1  然后D1 D2 D3 全部按照移位一次。
循环往复
最后是分拣位置,分拣位与检测为的相距的格数是确定的,所以只要判断对应的D1 或者D2 D3的某一位是否为1就行了。
比如第一种工件的分拣位置距离检测位置是5格  则只要每次判断D1的 Bit5 是否为1 。如果是1的话则进行推料动作,动作完成之后要把D1 按照位与上2进制的0000 0000 0001 1111  或者是直接进行取余数操作。
至于步进电机怎么控制这种我就不多少,这种没啥难度。
999
zhanaoshen
文章数:144
年度积分:50
历史总积分:999
注册时间:2017/2/15
发站内信
发表于:2017/6/6 11:31:13
#3楼
当然或许还有更好的实现方式,这是我的一个想法。可能还有我考虑不周到的地方,大家可以指出。
5687
zhangpeizhi
文章数:834
年度积分:96
历史总积分:5687
注册时间:2009/3/11
发站内信
2018春节活动(三)
2017春节活动(二)
发表于:2017/6/6 15:39:34
#4楼
以下是引用zhanaoshen2017/6/6 11:29:40的发言:
看了下,实现的方法有很多,我说下我的思路,就比如按照你们老板的说的想法去实现的一种办法。
假设有3中类型的工件需要分拣。
首先,进料口这边只管上料就行,检测口是程序的关键因素。
其次是检测位置,你可以定义三个32位的Dint数据类型变量 对应了三种不同的工件D1 D2 D3 初值为0.
然后到达检测位置,如果检测结果是第一种类型则   D1 位或上1 完成之后 D1 D2 D3 全部用位移指令向高位位移1位
然后检测下一个 如果是第二组类型的 则同理 D2 位或上1  然后D1 D2 D3 全部按照移位一次。
循环往复
最后是分拣位置,分拣位与检测为的相距的格数是确定的,所以只要判断对应的D1 或者D2 D3的某一位是否为1就行了。
比如第一种工件的分拣位置距离检测位置是5格  则只要每次判断D1的 Bit5 是否为1 。如果是1的话则进行推料动作,动作完成之后要把D1 按照位与上2进制的0000 0000 0001 1111  或者是直接进行取余数操作。
至于步进电机怎么控制这种我就不多少,这种没啥难度。
请原谅我愚钝,我就是不明白位移指令在这里的用法,可不可以写个程序出来?
此帖发自手机工控论坛
999
zhanaoshen
文章数:144
年度积分:50
历史总积分:999
注册时间:2017/2/15
发站内信
发表于:2017/6/6 16:10:16
#5楼
回复 #4楼 zhangpeizhi
表情那这个事情就有点尴尬了。。。。。
ROL指令知道不,就是这个。
如果D1=1024 也就是2进制的0000 0100 0000 0000 用了一次ROL指令之后就会变成 D1=2048 也就是2进制的0000 1000 0000 0000
2801
305456779
文章数:624
年度积分:50
历史总积分:2801
注册时间:2012/2/29
发站内信
发表于:2017/6/6 16:50:37
#6楼
不就是每一种产品对应一段相对应的位移么,还是我理解错了!
5687
zhangpeizhi
文章数:834
年度积分:96
历史总积分:5687
注册时间:2009/3/11
发站内信
2018春节活动(三)
2017春节活动(二)
发表于:2017/6/6 17:29:08
#7楼
大师我还是搞不明白当检测仪检测元件后,需要Y6动作放到下面的装料箱,程序要怎样写转到Y6后气缸才动作?
附件 wx_camera_1496742035831.jpg
此帖发自手机工控论坛
5687
zhangpeizhi
文章数:834
年度积分:96
历史总积分:5687
注册时间:2009/3/11
发站内信
2018春节活动(三)
2017春节活动(二)
发表于:2017/6/6 18:08:21
#8楼
以下是引用3054567792017/6/6 16:50:37的发言:
不就是每一种产品对应一段相对应的位移么,还是我理解错了!
我也是这样理解,但老板说不能这样,要用位移指令编程,可能是步进电机会失步的缘故
此帖发自手机工控论坛
999
zhanaoshen
文章数:144
年度积分:50
历史总积分:999
注册时间:2017/2/15
发站内信
发表于:2017/6/6 20:00:44
#9楼
表情表情你记错了吧,你们老板让你用的是移位指令才对,像步进电机丢步这种事情你用程序也没办法改变的,除非加上编码器反馈,来补偿步进电机的丢步
此帖发自论坛手机版

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005