工控肥仔
工控肥仔
级别: 网络英雄
精华主题: 0
发帖数量: 649 个
工控威望: 5640 点
下载积分: 2162 分
在线时间: 733(小时)
注册时间: 2018-11-17
最后登录: 2024-09-27
查看工控肥仔的 主题 / 回贴
楼主  发表于: 2020-07-24 16:24
图片:
大佬们,求帮忙解决一个数据处理问题??
  

    当我用八个光纤一次检测8个产品
                                                            1. 如果第一个光纤检测到不良时,我需要剔除一个不良品
                                                            2. 如果第五光纤检测到不良时,需要从第五个起,后面全部剔除
                                                            3. 假如中间有两个或两个以上不良时,需选择最大的数据处理时,该如何处理数据呢??
工控肥仔
工控肥仔
级别: 网络英雄
精华主题: 0
发帖数量: 649 个
工控威望: 5640 点
下载积分: 2162 分
在线时间: 733(小时)
注册时间: 2018-11-17
最后登录: 2024-09-27
查看工控肥仔的 主题 / 回贴
1楼  发表于: 2020-07-27 08:44
引用
引用第3楼cythyx于2020-07-25 16:32发表的  :
这种问题都不是问题,因为有最简单的编程方式,枚举法。
假设不良时对应M0-M7为ON
下面是举例逻辑,实际是做好使用某个信号的上升沿触发M10-M16




      大哥,你这个时方法是不错,但不是我想要的,
                我要的是m0--m7中有任意一个位置或多个位置不良时,我需要取最大的那个值(假如:检测中只有M2为不良时,我需要剔除M2-M7六个产品,如果是M3.M4,M5.M6都是不良,我需要剔除M3-M7就可以)我想知道有什么办法可以找出不良品中最大那个值就可以了
工控肥仔
工控肥仔
级别: 网络英雄
精华主题: 0
发帖数量: 649 个
工控威望: 5640 点
下载积分: 2162 分
在线时间: 733(小时)
注册时间: 2018-11-17
最后登录: 2024-09-27
查看工控肥仔的 主题 / 回贴
2楼  发表于: 2020-07-29 08:57
引用
引用第6楼mistyke于2020-07-28 08:57发表的  :
如果我没理解错楼主的意思的话,那我提供一个思路:
用ENCO指令对M0-M7进行编码,可以得到当中为ON的是第几位存到D0。若当中有不只有一位为ON,那就取最高位(三菱是这样的)。比如M3,M4都为ON,那D0=4,
那么接下来只要把第D0=4之前的位都置ON存起来,即可






                             你这个方法也是对的,我现在是用SER指令,把八个光纤编号位置,哪一个置ON就传送对应的D值里面,后面用K值做比较,取最大的位置就可以了