当前位置: 首页 > news >正文

一分钟教你如何在数组中,快速查找出相同字符串,并精准定位_汇川iFA Evolution平台ST篇

、案例简介

在PLC自动化编程场景中,数组数据采集、比对校验是极为常用的功能模块。无论是设备参数录入、条码信息采集、配方数据存储,都需要对数组内数据进行重复性校验,避免重复数据导致设备逻辑报错、工艺异常、数据统计失误。本文将深度解析一段实用的PLC数组重复检测程序,拆解其复位机制、遍历校验逻辑、代码优化思路,帮助开发者理解工业数据校验的核心编程思想。

、PLC程序编辑

1.创建FB程序块

2.功能块接口定义

1)接口定义说明

2)FB接口定义

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主要是满足快速采集的需求,这是与工业大数据系统显著的区别。

http://www.jsqmd.com/news/1369573/

相关文章:

  • OpenClaw机械臂项目衰退的技术与生态原因分析
  • 后端技术信息源断舍离:3年只留7个订阅
  • 江苏低阻布袋除尘器源头厂家怎么选,选苏州科思瑞得环保科技有限公司(江苏联络处) - 热点品牌推荐
  • 神经修复的“七巧板”——BDNF/EGF/IL10/IL6/IL6R/MCP1/SOD七因子Panel
  • Java会员卡充值系统开发实战与架构设计
  • Visual C++运行库终极修复指南:3步解决所有软件兼容性问题
  • 神经符号AI实战:从深度学习到符号推理的完整实现
  • 5个技巧快速掌握Recaf:Java字节码编辑终极指南
  • React + WebGPU 在浏览器运行 DeepSeek:从 Worker 通信到流式生成
  • 康奈尔笔记法结合AIGC:构建动态知识管理与思维增强工作流
  • 从KTV收银台理解OSI七层模型:网络工程师的实战解析
  • 国内桥面防水粘结层主流供应商实测排行与性能对比
  • 3步搞定YimMenu配置:从菜单显示异常到中文界面完美设置
  • Harness Engineering:构建软件交付的工程化驾驭体系
  • 嵌入式系统稳定性:从电源噪声到电容去耦的硬件调试实战
  • 免费远程连接与文件传输方案:Xshell/Xftp替代品全解析
  • 北京经济犯罪辩护律师,为您的权益保驾护航 - 品牌排行榜
  • 国内口碑好的316不锈钢保温杯小批量工厂:精选 - 品牌推广大师
  • AI内容创作提质进阶:靠多模型交叉校验,告别劣质文案与逻辑漏洞
  • oGRAC-兼容性框架介绍
  • LLM如何通过优化编译器和运行时配置,实现程序性能数倍提升
  • Python + MySQL + Tushare 实现股票数据采集与K线分析系统
  • 7/8螺纹气体防爆vs7/8-16unf粉尘防爆:连接器选型一张表讲透不踩坑
  • Spring Boot启动依赖管理:利用Actuator与ApplicationRunner实现优雅健康检查
  • c++ CRTP模式的使用小结
  • 2026年天津性比价高的防爆恒温恒湿机厂哪家靠谱认准这家天津市浩特瑞科空调有限公司(天津销售中心) - 热点品牌推荐
  • 从零构建稳健的Python爬虫定时调度系统:Linux Crontab全流程实战指南
  • 2026年天格橡胶木实木地板日常打理实用技巧分享 - 起跑123
  • JPA快速实现CRUD与性能优化实战
  • 多模型输出代码校验方法,一站式平台同时对比规避单一AI逻辑bug