第一次独自操作就卡住了~求助大佬 点击:1492 | 回复:14



zzir

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 3回
  • 年度积分:1
  • 历史总积分:37
  • 注册:2020年10月15日
发表于:2020-10-15 16:32:32
楼主
求助帖40分-已结帖

求助各位前辈,大佬们。第一次独自接手一个项目,但是卡在取值与计算这块。本人属于小白类型,翻阅了两天的资料都没找到解决方法......

用的是信捷XL3-16的PLC,扩展了一个8AD模块采集数据。老大要求在传感器1和传感器2中各获取4个最小值,然后上位机最终显示这两组最小值的平均值。1602750122(1).jpg

头都大了,实在不知道怎么实现~无奈只能求助各位大佬~



楼主最近还看过



stonezmy

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 76回
  • 年度积分:99
  • 历史总积分:555
  • 注册:2010年5月10日
发表于:2020-10-15 17:14:10
1楼

这个不难啊。在1个传感器数值里取4个最小值,那肯定是四个时间区间。做四个时间继电器T1 T2 T3 T4,T1区间内设最小值存放寄存器为D50,用T1开始脉冲把传感器1的值MOV进去,随后T1区间内一直用D50跟传感器值比较,只要D50大,就把传感器1的值MOV进D50,可以得到T1区间内的最小值。同理T2 T3 T4可以得到四个最小值,然后四个相加除4取均值就可以。然后就是下一个时间区间了,如此循环往复。提供一种思路,可能会有更好的方法。

zzir

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 3回
  • 年度积分:1
  • 历史总积分:37
  • 注册:2020年10月15日
发表于:2020-10-15 18:29:51
2楼

"stonezmy" 的回复,发表在1楼
        对内容: 【这个不难啊。在1个传感器数值里取4个最小值,那肯定是四个时间区间。做四个时间继电器T1 T2 T3 T4,T1区间内设最小值存放寄存器为D50,用T1开始脉冲把传感器1的值MOV进去,随后T1区间内一...】进行回复:

        -----------------------------------------------------------------


昂~动作流程是电机带动测量台旋转(电机启动后0.5S传感器开始采集数据),因为传感器是随着零件的转动,所以采集到的值也是时时变化的,那请问我应该怎么去获取到这个最小的值呢?

stonezmy

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 76回
  • 年度积分:99
  • 历史总积分:555
  • 注册:2010年5月10日
发表于:2020-10-16 08:14:45
3楼

所以要确定时间区间,才能取最小值。比如每10秒一个区间,那么就是每10秒取1个最小值,40秒就取了4个最小值。不然只有1个最小值,不会有4个最小值。上面说的很清楚了已经,就是做比较,然后MOV

zzir

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 3回
  • 年度积分:1
  • 历史总积分:37
  • 注册:2020年10月15日
发表于:2020-10-16 11:15:42
4楼

"stonezmy" 的回复,发表在3楼
        对内容: 【所以要确定时间区间,才能取最小值。比如每10秒一个区间,那么就是每10秒取1个最小值,40秒就取了4个最小值。不然只有1个最小值,不会有4个最小值。上面说的很清楚了已经,就是做比较,然后MOV...】进行回复:

        -----------------------------------------------------------------


前辈能写个案例看看吗?我好像不是很明白。今天咨询了400,信捷建议我用偏移量把传感器的数据都储存起来,然后逐个比较,找出最小值。但是具体怎么实现我好像也不明白,而且这也只能找出这两个传感器各自的最小值吧。那我要这些数据中倒数的4个值又应该怎么办?

gaoyingchun

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 19回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2009年7月17日
发表于:2020-10-21 16:22:22
5楼

按下【i_采集开始】按钮,开始采集数据,寄存器清零,数据按照PLC扫描周期写入D1~D4寄存器

IF i_采集开始 THEN D1:=0;D2:=0;D3:=0;D4:=0; END_IF


IF D4<>0 AND D3<>0 AND D2<>0 AND D1=0 THEN

IF D0<D4 THEN D1:=D2;D2:=D3;D3:=D4;D4:=D0;

    ELSIF D0>D4 AND D0<D3 THEN D1:=D2;D2:=D3;D3:=D0;

ELSIF D0>D3 AND D0<D2 THEN D1:=D2;D2:=D0;

ELSE D1:=D0;

END_IF

END_IF


IF D4<>0 AND D3<>0 AND D2=0 AND D1=0 THEN

IF D0<D4 THEN D2:=D3;D3:=D4;D4:=D0;

    ELSIF D0>D4 AND D0<D3 THEN D2:=D3;D3:=D0;

ELSE D2:=D0;

END_IF

END_IF


IF D4<>0 AND D3=0 AND D2=0 AND D1=0 THEN

IF D0<D4 THEN D3:=D4;D4:=D0;

ELSE D3:=D0;

END_IF

END_IF


IF D4=0 AND D3=0 AND D2=0 AND D1=0 THEN D4:=D0;

END_IF


IF D4<>0 AND D3<>0 AND D2<>0 AND D1<>0 THEN

IF D0<D4 THEN D1:=D2;D2:=D3;D3:=D4;D4:=D0;

    ELSIF D0>D4 AND D0<D3 THEN D1:=D2;D2:=D3;D3:=D0;

ELSIF D0>D3 AND D0<D2 THEN D1:=D2;D2:=D0;

ELSIF D0>D2 AND D0<D1 THEN D1:=D0;

END_IF

END_IF


gaoyingchun

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 19回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2009年7月17日
发表于:2020-10-21 16:33:34
6楼

第一个扫描采集D4,第二个扫描采集D3,第三个扫描采集D2,第四个扫描采集D1,以后的扫描采集值与D1~D4比较,符合条件的写入

落叶归根87

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 338回
  • 年度积分:0
  • 历史总积分:792
  • 注册:2013年8月05日
发表于:2020-10-24 11:27:29
7楼

信jie 有c语言功能,建立一个数组,排序下,取最小值

展翅

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 26回
  • 年度积分:0
  • 历史总积分:36
  • 注册:2020年5月15日
发表于:2020-11-03 20:35:52
8楼

刷积啦啦。。。。1123

许科1377

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 9回
  • 年度积分:177
  • 历史总积分:246
  • 注册:2020年1月08日
发表于:2020-11-14 14:43:55
9楼

原来如此,多谢,学习了

Smile-lyc

  • [管理员]
  • 精华:127帖
  • 求助:50帖
  • 帖子:3482帖 | 22331回
  • 年度积分:1963
  • 历史总积分:145694
  • 注册:2006年8月04日
发表于:2020-11-30 08:54:06
10楼

感谢求助者和答疑者对求助答疑板块的厚爱,赠人玫瑰,手留余香。

对于求助者要求:

1、请在一个月内自行结贴,把悬赏积分(如果设置积分悬赏求助)发放给答疑者;

2、如果在求助答疑过程中,自己已经有效解决问题,建议大家把解决问题方法在自己求助帖分享,有效分享可以获得50积分奖励。


ladis

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 158回
  • 年度积分:1
  • 历史总积分:185
  • 注册:2020年9月12日
发表于:2020-12-13 21:02:11
11楼

学习了

Baroms

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 26回
  • 年度积分:43
  • 历史总积分:98
  • 注册:2017年6月26日
发表于:2023-04-16 17:03:49
12楼

来学习的

LBX112233

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 714回
  • 年度积分:215
  • 历史总积分:602
  • 注册:2012年5月10日
发表于:2023-09-14 12:37:35
14楼

学习到了。。。谢谢分享!!!


热门招聘
相关主题

官方公众号

智造工程师