【西门子】关于从S7-1200字符串中提取有效数值
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、运行结果