6ES7222-1XF32-0xB0西门子SM1222
求字符串长度指令
求字符串长度指令SLEN返回IN参数指定的字符串的长度值,OUT为字节类型。
2.字符串复制指令
字符串复制指令SCPY将IN参数指定的字符串复制到OUT指定的地址区中。
3.字符串连接指令
字符串连接指令(SCAT)将IN参数指定的字符串连接到OUT指定的字符串的后面。
【例】 字符串指令应用举例。
LD I0.0
STR_CPY ”HELLO ”,VB0 //将字符串“HELLO ”复制到VBO开始的存储区
SCAT ”WORLD”,VB0 //将字符串“WORLD”复制到VBO开始的字符串的后面
STRLEN VB0,AC0 //求VB0开始的字符串的长度
字符串变量的首字节是字符串的长度,VB0开始的字符串为“HELLO”(最后有一个空格),VB0中是字符串的长度6。执行SCAT指令后,得到新的字符串为“HELLO WORLD”,STRLEN指令求出的字符串的长度为11。
4.从字符串中复制子字符串指令
SSCPY指令从INDX指定的字符编号开始,将IN指定的字符串的N个字符串复制到OUT中,OUT为字节类型。
指令“SSCPY VB0,7,5,VB20”将从VB0开始的字符串中的第7个字符开始,复制5个字符到VB20开始的新字符串。
5.字符串搜索指令
SFND指令在字符串IN1中搜索字符串IN2,由字节变量OUT指定搜索的起始位置。如果在IN1中找到了与IN2中字符串相匹配的一段字符,则在OUT中存入这段字符IN1中的首个字符的位置。如果没有找到,则OUT被清零。
6.字符搜索指令
CFND指令查找在字符串IN1中是否有字符串IN2中包含的任意字符,字节变量OUT指定搜索的起始位置。如果找到了匹配的字符,字符的位置被写入OUT中。如果没有找到,OUT被清零。
假设存储在VBO开始的区域的字符串包含温度值,存储在VB20开始的区域中的字符串包含所有的数字、“+”号和“-”号,用于识别字符串中的温度值。下面的程序在字符串中找到数字的起始位置,并将其转换为实数,温度值存放在VD200中。
LD I0.0
MOVB 1,AC0 //AC0用作OUT参数并指向字符串的首个字符
CFND VB0,VB2,AC0 //在VB0字符串中寻找数字字符
STR VB0,AC0,VD200 //将字符串。中的温度值转换为实数