- {{item.name}}
字符串
- 0
- 3
字符串定义
字符串是一系列字符,每个字符作为一个字节存储。
字符串由变量存储时,字符串长度为0至254个字符,最长为255个字节,其中第一个字符为长度字节。
常数字符串直接输入程序编辑器或数据块时,最长为126个字节; 且常数字符串必须用双引号字符起始和结束 (如:"ABCD", "1234" )
字符串转换
将浮点数/双整/整数转换为字符串,分别为转换指令中的R_S,S_DI,I_S。
字符串转换为浮点数/双整/整数
分别为转换指令中的S_R,S_DI,S_I。只能转换0-9的字符,其他字符均为无效字符。
几点注意事项:
1.无法识别科学计数法或指数形式,但不会设置溢出错误SM1.1;例:“1.234E6”-->"1.234"
2.当达到字符串结束时或当发现第一个无效字符时,转换终止;例:“123A456”--->"123"
另,如“A123”,第一个字符即为无效字符,因此,设置溢出错误SM1.1。
3.S_I指令,当转换产生一个大于32767或小于-32768的值时,则设置溢出错误(SM1.1)
字符串指令
字符串指令如下表所示:
LAD/FBD | 指令名称 | 描述 |
字符串长度 | IN:字符串变量地址; OUT:字符串长度的存储地址 | |
复制字符串 | 将位于IN处的字符串复制到OUT处的新字符串地址 | |
从字符串复制子字符 | INDX:IN处字符串的有效字符地址 N:复制长度 OUT:复制出的新字符串地址 | |
字符串连接 | 将IN指定的字符串附加至OUT指定的字符串之后 | |
在字符串内查找字符串 | 在字符串IN1中搜索首次出现的字符串IN2。搜索从OUT起始位置开始 | |
在字符串中查找第一个字符 | 在首次出现的字符串IN1中搜索字符串IN2中描述的字符集中的任何字符。搜索从起始位置OUT开始 |
指令例子如下:
其中,VB0初始状态为
执行程序后,AC0为11, AC1为7;VB0,VB100,VB20状态为:
常问问题
字符串中既含有数字又含有其他字符(字母,特殊字符),如何只转换数字部分?
如数字字符在前,其他字符在后;则可直接转换,转换部分到第一个非数字字符前。
如数字字符在后,其他字符在前;则
1.其他字符长度已知并固定;
如字符串定义如下:
注意:此处INDX处为有效字符的位数,不包含字符串第一位的长度字节
执行程序后,VW100=98;VD200=98;VD300=98.6
2.字符串实际内容未知或其他字符长度不定,则无法直接转换,否则设置溢出错误SM1.1。转换可参考如下程序:
注:CHR_FIND为在首次出现的字符串IN1中搜索字符串IN2中描述的字符集中的任何字符;找到的第一个相符字符的位置,被写入到OUT管脚。
仍以如下字符串为例:
程序执行后,AC0=7;VD100=98.6
剩余80%未阅读,请登录查看大全章节内容
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
{{item.nickName}}