请教大佬们,求帮助 点击:392 | 回复:11



青年加油奥利给

    
  • 精华:0帖
  • 求助:6帖
  • 帖子:9帖 | 36回
  • 年度积分:0
  • 历史总积分:183
  • 注册:2020年9月26日
发表于:2021-09-06 09:02:15
楼主
求助帖30分-未结帖

有这么几组寄存器,
                                               比如说是       1到10组是 D0--D9,11到20组是D20--D29,21到30组是D40--D49

                                                      然后这几组寄存器都在触摸屏上显示着数据,并对应着各自的组数

                                假如哪一个寄存器没有数据了,或者显示的数据比某一个数值小(例:D0<K4),怎么找出来是哪个寄存器,还有这个寄存器对应的第几组


用的3Uplc  梯形图

                      请前辈大佬们给出出主意



楼主最近还看过



monty

  • 精华:1帖
  • 求助:4帖
  • 帖子:9帖 | 49回
  • 年度积分:3
  • 历史总积分:237
  • 注册:2021年9月04日
发表于:2021-09-06 11:26:59
1楼

你用的什么触摸屏,单独的D区可以使用数字显示的报警功能或者指示灯功能,要区别是哪个组,那你在触摸屏做分组就好了,D0<K4输出一个内部继电器,对应的分组指示灯变亮就好了

monty

  • 精华:1帖
  • 求助:4帖
  • 帖子:9帖 | 49回
  • 年度积分:3
  • 历史总积分:237
  • 注册:2021年9月04日
发表于:2021-09-06 11:27:34
2楼

1.png

monty

  • 精华:1帖
  • 求助:4帖
  • 帖子:9帖 | 49回
  • 年度积分:3
  • 历史总积分:237
  • 注册:2021年9月04日
发表于:2021-09-06 11:29:01
3楼

1.png

青年加油奥利给

  • 精华:0帖
  • 求助:6帖
  • 帖子:9帖 | 36回
  • 年度积分:0
  • 历史总积分:183
  • 注册:2020年9月26日
发表于:2021-09-06 16:50:46
4楼

"monty" 的回复,发表在1楼
        对内容: 【你用的什么触摸屏,单独的D区可以使用数字显示的报警功能或者指示灯功能,要区别是哪个组,那你在触摸屏做分组就好了,D0<K4输出一个内部继电器,对应的分组指示灯变亮就好了...】进行回复:

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


我用的昆仑通态的屏,我去找找看不可以

青年加油奥利给

  • 精华:0帖
  • 求助:6帖
  • 帖子:9帖 | 36回
  • 年度积分:0
  • 历史总积分:183
  • 注册:2020年9月26日
发表于:2021-09-06 16:59:11
5楼

"monty" 的回复,发表在3楼
        对内容: 【】进行回复:

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


昆仑通态有的,在实时数据库里,每个数据都有报警属性,我做个试试,


感谢感谢,感谢monty

沐风沐风

  • 精华:0帖
  • 求助:0帖
  • 帖子:19帖 | 149回
  • 年度积分:209
  • 历史总积分:3077
  • 注册:2017年6月10日
发表于:2021-09-08 17:25:05
6楼

可以使用一个FOR循环变址比较  循环的去比较里面的数据  前提你的寄存器必须是连续的  100个寄存器就是K100  一万个就K10000    还一种比较简单的办法 正如楼上说的 使用触摸屏的数据区间报警  

121111115

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 378回
  • 年度积分:594
  • 历史总积分:21966
  • 注册:2016年1月20日
发表于:2021-09-13 10:03:56
7楼

利用间接寻址,你的寄存器是10个一组,所以你只需要写一个循环10次的比较函数即可,比较第一组时起始地址为D0,比10次没有结果(注意每比较一次需要偏移起始地址),则进行第二组比较,起始地址为D20,比10次,如果有结果就停止比较,输出当前循环的次数(具体寄存器),输出起始地址(组数),如果没结果就换第三组,修改起始地址为40,再比较10次。有结果就输出,没结果就接着比。

Smile-lyc

  • [管理员]
  • 精华:127帖
  • 求助:50帖
  • 帖子:3482帖 | 22331回
  • 年度积分:1963
  • 历史总积分:145694
  • 注册:2006年8月04日
发表于:2021-10-18 14:36:46
8楼

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

对于求助者要求:

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

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


jilingr888

  • 精华:0帖
  • 求助:2帖
  • 帖子:6帖 | 161回
  • 年度积分:62
  • 历史总积分:1383
  • 注册:2012年7月19日
发表于:2021-10-18 15:11:38
9楼

知识多能挣到1积分!

PLC生产

  • 精华:0帖
  • 求助:2帖
  • 帖子:10帖 | 109回
  • 年度积分:0
  • 历史总积分:347
  • 注册:2020年1月30日
发表于:2021-12-08 14:07:02
10楼

比较一下再传送出去就好了

yizetiandi

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 15回
  • 年度积分:0
  • 历史总积分:37
  • 注册:2013年8月30日
发表于:2021-12-08 18:40:16
11楼

方法很多,看熟悉那些指令了,以前做过一个温度监控的类似应用,在这里分享一下;

再建一张设定温度范围的数据表,地址和这个对应例如D100-109,然后用BKCMP数据块比较指令,比大小还是相等看需求,比较结果会在结果字对应位输出,然后DECO译码就得到对应寄存器的相对地址编号了。

还有一种用数据排序SORT+数据搜索SER的,界面可以做的很好看,做起来有点复杂,可以直接把数据高低排列出来,方便查看和分析,一般要寄存器地址的主要还是为了查看对应的输入区域的变化,用排列就可以把有问题的列出来,其他的排到后面去,方便观察,大家可以试一下。


热门招聘
相关主题

官方公众号

智造工程师