拓冰建站拓冰建站
首页 / 资讯中心 / 正文

C# 正则表达式校验西门子 PLC IO 地址

1. 引言在工业自动化项目中,经常需要与西门子 PLC 进行通信,读取或写入 IO 地址。无论是上位机软件、数据采集系统还是 HMI 界面,都离不开对 IO 地址的输入与校验。如果用户输入了非法的地址格式,轻则导致通信失败,重则引发程序异常甚至设备误动作。本文将介绍如何使用 C# 正则表达式对西门子 PLC 的 IO 地址进行校验,涵盖常见的地址类型(I、Q、M、DB 等),并提供可直接复用的代码示例。2. 西门子 IO 地址格式概述西门子 PLC 的 IO 地址通常由地址区标识符和地址编号两部分组成,常见格式如下:地址区含义示例I数字量输入I0.1、I1.7Q数字量输出Q0.3、Q2.0M位存储区M0.0、M10.7DB数据块DB1.DBX0.0、DB10.DBD4其中:位地址:如I0.0,由字节地址和位号组成,位号范围为 0~7。字节/字/双字地址:如IB0、IW2、ID4,分别表示字节、字、双字。数据块地址:如DB1.DBX0.0,由数据块号、数据类型和偏移量组成。3. 正则表达式设计3.1 数字量输入/输出(I / Q)数字量输入和输出的位地址格式为区标识 + 字节号 + 小数点 + 位号,其中位号只能是 0~7:stringpatternIQ=@"^[IQ]\d+\.\d$";说明:[IQ]:匹配 I 或 Q。\d+:匹配一个或多个数字(字节号)。\.:匹配小数点。\d:匹配 0~9 的单个数字(位号)。3.2 位存储区(M)M 区的位地址格式与 I/Q 相同:stringpatternM=@"^M\d+\.\d$";3.3 数据块地址(DB)数据块地址格式为DB + 块号 + 点 + 数据类型 + 偏移量:stringpatternDB=@"^DB\d+\.DB[BWXD]\d+(\.\d)?$";说明:DB\d+:匹配数据块号。\.:匹配小数点。DB[BWXD]:匹配数据类型(B=字节、W=字、X=位、D=双字)。\d+:匹配偏移量。(\.\d)?:可选的小数点位号(用于 DBX 位地址)。4. 完整代码示例下面是一个完整的 C# 校验类,支持上述所有地址类型:usingSystem;usingSystem.Text.RegularExpressions;publicclassSiemensAddressValidator{// 数字量输入/输出位地址:I0.0、Q1.5privatestaticreadonlyRegexIqPattern=newRegex(@"^[IQ]\d+\.\d$");// 位存储区地址:M0.0、M10.7privatestaticreadonlyRegexMPattern=newRegex(@"^M\d+\.\d$");// 数据块地址:DB1.DBX0.0、DB10.DBD4privatestaticreadonlyRegexDbPattern=newRegex(@"^DB\d+\.DB[BWXD]\d+(\.\d)?$");/// summary/// 校验西门子 IO 地址格式是否合法/// /summary/// param待校验的地址字符串/param/// returns合法返回 true,否则返回 false/returnspublicstaticboolIsValid(stringaddress){if(string.
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门