matlac
级别: 探索解密
精华主题: 0
发帖数量: 47 个
工控威望: 176 点
下载积分: 972 分
在线时间: 10(小时)
注册时间: 2014-11-28
最后登录: 2021-12-31
查看matlac的 主题 / 回贴
楼主  发表于: 2018-02-09 11:53
12个光纤传感器,对应12路通道,当有元器件件(直径3mm)经过检测区域时,输入有信号,只是时间极短。12路通道的汇总,进入一个容器,总共满100个元器件的时候,关闭总阀门。 要求严格计数,99个或101个均算失败。
每一路通道不会出现同时掉落两个元器件,时间上有先后,间隔时间100ms以上;
不同路通道(比如通道1和通道2)的元器件掉落时间是有可能重合的;
大家帮我想想这个怎么弄才不会有误差。

我想的方案是:
每一路输入都设置脉冲捕捉输入功能,并且在循环中断(循环中断时间设置5ms)里对12路高速输入上升沿计数
利用12路硬件上升沿中断,每一个中断对应每一路通道,每个通道分别计数; 开一个循环中断(扫描周期要短)不停的把12路通道的计数变量进行加运算,满100,立即关闭阀门。

  请大家指教,上述两个控制方案有啥不足之处? 或者再看看有别的好的控制方案吗
hexdho
机械是载体,电气是灵魂。
级别: 网络英雄
精华主题: 0
发帖数量: 672 个
工控威望: 11961 点
下载积分: 11608 分
在线时间: 526(小时)
注册时间: 2012-11-08
最后登录: 2024-10-23
查看hexdho的 主题 / 回贴
1楼  发表于: 2018-02-09 14:08
这样做不行的。直径3mm经过检测区域时间很短(两三毫秒),如果第一百粒和第一百零一粒从不同轨道同时经过电眼,或者第一百粒和第一百零一粒相差一两毫秒(12轨道出现这种情况非常多),只要PLC扫描周期大于第一百粒和第一百零一粒时间差,注定失败。