
一、案例简介在PLC自动化编程场景中数组数据采集、比对校验是极为常用的功能模块。无论是设备参数录入、条码信息采集、配方数据存储都需要对数组内数据进行重复性校验避免重复数据导致设备逻辑报错、工艺异常、数据统计失误。本文将深度解析一段实用的PLC数组重复检测程序拆解其复位机制、遍历校验逻辑、代码优化思路帮助开发者理解工业数据校验的核心编程思想。二、PLC程序编辑1.创建FB程序块2.功能块接口定义1接口定义说明2FB接口定义3.程序编写1程序代码2可复制程序代码// 复位上升沿清空所有输出 IF Reset AND NOT LastReset THEN HasRepeat : FALSE; RepeatIndex1 : -1; RepeatIndex2 : -1; RepeatText : ; END_IF; LastReset : Reset; // 无重复标记时才扫描数组 IF NOT HasRepeat THEN FOR i : 0 TO 60 DO // 当前元素为空直接跳过不对比 IF arrStr[i] THEN CONTINUE; END_IF; FOR j : i 1 TO 60 DO // 同时排除对比对象为空且文本相等才判定重复 IF arrStr[j] AND arrStr[i] arrStr[j] THEN HasRepeat : TRUE; RepeatIndex1 : i; RepeatIndex2 : j; RepeatText : arrStr[i]; EXIT; // 跳出内层循环 END_IF; END_FOR; IF HasRepeat THEN EXIT; // 跳出外层循环 END_IF; END_FOR; END_IF;4.创建DB数据块5.添加变量6.主程序调用FB功能块并插入引脚变量三、程序运行与说明1.程序运行2.程序说明本段程序核心作用为实时扫描长度为61位0~60下标的字符串数组arrStr自动检测数组内是否存在重复非空数据。程序具备完整的复位初始化、数据过滤、双重循环比对、结果标记功能可精准定位重复数据的下标位置及具体内容同时通过优化逻辑避免无效运算是工业现场轻量化数据校验的经典实现方案。程序最终会通过四类变量输出校验结果HasRepeat是否存在重复、RepeatIndex1重复数据第一个下标、RepeatIndex2重复数据第二个下标、RepeatText重复的具体文本内容为后续逻辑判断、报警提示、数据修正提供精准依据。如果觉得这篇内容对你有帮助欢迎点赞、收藏、转发评论区留言说说你在调试过程遇到的问题一起交流学延伸小知识PLC-Recorder主要是满足快速采集的需求这是与工业大数据系统显著的区别。