汇川EASY521先入先出指令读出错误(重发) 点击:115 | 回复:13



Sooyang

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 21回
  • 年度积分:393
  • 历史总积分:673
  • 注册:2020年7月13日
发表于:2026-03-04 15:03:06
楼主
求助帖88分-未结帖

跟图片一样,我一次进一个治具,治具上两个或者一个产品,然后记录检测结果:1=NG,2=OK,4=空,但是读出的时候,会偶尔读出两个产品都是空(4)。而我两个都是空的时候是不会触发的。

先入写入跟先出读出的手册也看了,别人的案例也看过,实在不知道哪里有问题。

求大佬们指点


正在下载,请等待……
下载附件需0积分!




Sooyang

  • 精华:0帖
  • 求助:3帖
  • 帖子:4帖 | 26回
  • 年度积分:393
  • 历史总积分:673
  • 注册:2020年7月13日
发表于:2026-03-04 16:46:36
1楼

这两个指令就是先入先出啊,不用自己写吧

引用 "晴天ABC24" 的回复,发表在1楼
        内容: 我的思路是队列数组,进站搜数组寄存器数值为0的元素进行数据搬入,搬入后立即计数(1s计数一次),,先进此先出搬出就看谁计数最大,就输出进入数组寄存器元素序号,搬出后清空元素内容和当前元素计数累计...

回复本条

    

JSdanzi

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 841回
  • 年度积分:15
  • 历史总积分:16942
  • 注册:2012年9月22日
发表于:2026-03-05 08:22:22
2楼

用边沿触发试试

回复本条

    

Sooyang

  • 精华:0帖
  • 求助:3帖
  • 帖子:4帖 | 26回
  • 年度积分:393
  • 历史总积分:673
  • 注册:2020年7月13日
发表于:2026-03-05 08:33:31
3楼

引用 "JSdanzi" 的回复,发表在3楼
        内容: 用边沿触发试试

我最开始就是用的边缘触发,有问题,后面才改脉冲式指令

回复本条

    

太月星辰

  • 精华:0帖
  • 求助:1帖
  • 帖子:8帖 | 475回
  • 年度积分:7
  • 历史总积分:4863
  • 注册:2011年11月02日
发表于:2026-03-05 08:49:32
4楼

不是太专业的回答,希望能给你参考和启发。以读取指令来说,D120、D220应该放你当前总共有几组数据,然后D121-D12n(n是指令末尾的那个n)。我看你程序你直接把你的1、2、4的值塞进去了,应该把数据放到D121开始的寄存器里。仅供参考,可能我说的也不对。另外,建议上升沿触发这个指令。使用这个指令前判断一下指示器的寄存器是否在上限和下限,根据这个去灵活调整。

回复本条

    

Sooyang

  • 精华:0帖
  • 求助:3帖
  • 帖子:4帖 | 26回
  • 年度积分:393
  • 历史总积分:673
  • 注册:2020年7月13日
发表于:2026-03-05 08:52:10
5楼

引用 "太月星辰" 的回复,发表在5楼
        内容: 不是太专业的回答,希望能给你参考和启发。以读取指令来说,D120、D220应该放你当前总共有几组数据,然后D121-D12n(n是指令末尾的那个n)。我看你程序你直接把你的1、2、4的值塞进去了,应该...

队列的起始位置不至于要求这么严谨吧,队列第一个是指针,后面的是存储队列,应该是指令内部定义好了吧

回复本条

    

Sooyang

  • 精华:0帖
  • 求助:3帖
  • 帖子:4帖 | 26回
  • 年度积分:393
  • 历史总积分:673
  • 注册:2020年7月13日
发表于:2026-03-05 08:52:25
6楼

引用 "太月星辰" 的回复,发表在5楼
        内容: 不是太专业的回答,希望能给你参考和启发。以读取指令来说,D120、D220应该放你当前总共有几组数据,然后D121-D12n(n是指令末尾的那个n)。我看你程序你直接把你的1、2、4的值塞进去了,应该...

一会去现场试试

回复本条

    

phoenixyqc

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 134回
  • 年度积分:0
  • 历史总积分:881
  • 注册:2009年2月23日
发表于:2026-03-05 14:27:55
7楼

你怎么保证都是空的时候不触发的?空的时候赋值4的同时不是也置位了LWriteDone和RWriteDone嘛

回复本条

    

phoenixyqc

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 134回
  • 年度积分:0
  • 历史总积分:881
  • 注册:2009年2月23日
发表于:2026-03-05 14:29:50
8楼

SET B815前不应该有个判断D120<>4或D200<>4?

回复本条

    

Sooyang

  • 精华:0帖
  • 求助:3帖
  • 帖子:4帖 | 26回
  • 年度积分:393
  • 历史总积分:673
  • 注册:2020年7月13日
发表于:2026-03-06 08:06:42
9楼

引用 "phoenixyqc" 的回复,发表在7楼
        内容: 你怎么保证都是空的时候不触发的?空的时候赋值4的同时不是也置位了LWriteDone和RWriteDone嘛...

两个都是空的时候不进入检测流程的

回复本条

    

Sooyang

  • 精华:0帖
  • 求助:3帖
  • 帖子:4帖 | 27回
  • 年度积分:393
  • 历史总积分:673
  • 注册:2020年7月13日
发表于:2026-03-06 08:07:35
10楼

引用 "phoenixyqc" 的回复,发表在8楼
        内容: SET B815前不应该有个判断D120<>4或D200<>4?...

是应该有,但是现场一直没有超过上限的个数,所以就没加

回复本条

    

Sooyang

  • 精华:0帖
  • 求助:3帖
  • 帖子:4帖 | 28回
  • 年度积分:393
  • 历史总积分:673
  • 注册:2020年7月13日
发表于:2026-03-06 08:12:23
11楼

昨天在现场跑了一下午跟一晚上,都没出问题,也是服了

但是昨天视觉检测那边更新了,之前试过视觉软件把我测试结果覆盖掉,叫他们更新过视觉软件的

回复本条

    

热门招聘
相关主题

官方公众号

智造工程师