【西门子】关于从S7-1200字符串中提取有效数值

deer332025-03-05技术文章47

PLC从上位机或智能设备读取到一组杂乱无章的字符数据,比如"A,1;22=333,5678,E.909" ,需要从这个字符串中把有用的数字提取出来(只提取数字,舍弃字母及标点),需要如何处理?

解题思路:

1、字符串里的数据是以字符的形式存储的,字符在PLC中以char类型显示为ASCII码,以byte类型显示为ASCII码值(16进制)。

2、首先可以通过将字符串逐字符解析,转存为byte类型,对比其是否在16#30~16#39之间来判断该字符是否我们需要的数字1~9,若是则留用(放入一段新的地址中),若不是则剔除。

3、判断数字是否为连续的,记录该数字是几位数。对连续的数字进行合并以便下一步将字符转换为数值。

4、使用字符串转换为数字值指令,转为数字值。


最终程序及效果如下:

1、程序接口

2、程序内容

3、运行结果