信捷PLC如何一个寄存器与多个寄存器比较 点击:577 | 回复:6



nanfei002

    
  • 精华:0帖
  • 求助:39帖
  • 帖子:39帖 | 42回
  • 年度积分:13
  • 历史总积分:1399
  • 注册:2019年6月26日
发表于:2024-03-30 15:04:46
楼主
求助帖30分-已结帖

输入数值的地址是固定的(这是触摸屏上随时可以改动) 如:HD4900--HD4950     50个

 点击保存后 数值保存在地址 HD3800--HD3850 里面中


如 点击保存后  HD4900 的值保存到  HD3800 

                        HD4901 的值保存到  HD3801  

                        HD4902 的值保存到  HD3802  以此类推

      

    现在想实现一个功能就是  假如 在触摸屏上 HD4900 与 HD4950之间任意一个 输入一个数值   但这个数值在 HD3820里已经存在 需要一个提示是否继续保存,

    如何用C函数一个寄存器与多个寄存器比较  

下面自己写了一段函数 好像不行             问下大神们该如何写呢 

           

    int n;

    n = DHD[7758];  //此地址是输入序号 (假如在 HD4902 输入的就输入 2


    if (  M[8891] == 1 )  //点击保存

    {

       for( int   i=0;  i < 50; i++)

            if ( FFHD[4900 + n] == FFHD[3800 + i ]  )

            {

                M[3102] = 1;//提示有相同数值

             }     

      }


     


1分不嫌少!


楼主最近还看过



香奈儿

  • 精华:0帖
  • 求助:2帖
  • 帖子:10帖 | 164回
  • 年度积分:0
  • 历史总积分:1550
  • 注册:2014年7月10日
发表于:2024-03-30 20:55:36
1楼

有变址寄存器吧,.    LD X0--------MOV   D0 [D10]   D20  

太月星辰

  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 380回
  • 年度积分:382
  • 历史总积分:3792
  • 注册:2011年11月02日
发表于:2024-04-01 09:58:05
2楼

几个疑问:

1、c函数功能块是写在PLC中的还是HMI中?

        1.1、如果是写在PLC中。

                1.1.1、那么要注意你的PLC寄存器地址是否超范围。

                1.1.2、这样跑循环,速度很快一下全部执行完毕,只触发一次,触发后相应标志位是否需要复位?以便于下次循环时使用?

        1.2、如果是写在HMI中。

                1.2.1、可以用功能键调用函数的方法实现。个人更倾向于这种方法。

                1.2.2、可能使用的HMI不是信捷的,其它品牌的HMI也都有类似功能“宏”。


打字不易,仅供参考!

phoenixyqc

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 127回
  • 年度积分:43
  • 历史总积分:668
  • 注册:2009年2月23日
发表于:2024-04-01 15:36:27
3楼

少break不是只会输出最后一次循环的结果?

nanfei002

  • 精华:0帖
  • 求助:39帖
  • 帖子:39帖 | 43回
  • 年度积分:34
  • 历史总积分:1420
  • 注册:2019年6月26日
发表于:2024-04-02 08:53:31
4楼

"phoenixyqc" 的回复,发表在3楼
        对内容: 【少break不是只会输出最后一次循环的结果?】进行回复:

是的 要加  加了就可以了

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

nanfei002

  • 精华:0帖
  • 求助:39帖
  • 帖子:39帖 | 43回
  • 年度积分:34
  • 历史总积分:1420
  • 注册:2019年6月26日
发表于:2024-04-02 08:54:25
5楼

"phoenixyqc" 的回复,发表在3楼
        对内容: 【少break不是只会输出最后一次循环的结果?】进行回复:


是的 要加 加了就好了


Smile-lyc

  • [管理员]
  • 精华:138帖
  • 求助:52帖
  • 帖子:3598帖 | 22754回
  • 年度积分:504
  • 历史总积分:156595
  • 注册:2006年8月04日
发表于:2024-05-13 10:24:09
5楼

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

对于求助者要求:

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

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

3、求助答疑板块版主结贴时间一般滞后30~45天,以方便大家对求助问题答疑足够时间,也为了每一个优秀答疑人员都可以获取到自己的积分和MP奖励。

4、2024龙年加油!龙年棒棒!




热门招聘
相关主题

官方公众号

智造工程师