理论教育 字符串指令的使用与技巧

字符串指令的使用与技巧

时间:2023-06-17 理论教育 版权反馈
【摘要】:图7.32S_CONV指令S_CONV用于字符串到值的转换,其指令引脚说明如表8.15所示。OUT字符串的最大长度字节不变。表7.17列出了所支持的各种数据类型要求的最大可能字符串长度。表7.18S_CONV值到字符串的转换实例STRG_VAL指令。表7.22STRG_VAL转换实例VAL_STRG指令。图7.34VAL_STRG指令转换后的字符串将从字符偏移量计数P位置开始替换OUT字符串中的字符,一直到参数SIZE指定的字符数。表7.23VAL_STRG指令引脚说明参数PREC用于指定字符串中小数部分的精度或位数。

字符串指令的使用与技巧

1.String数据概述

String为字符串数据类型,其长度由定义时字符串名后面的方括号内的数据确定,省略时默认为254个字符;但字符串数据实际占用的字节数为指定的长度加2,其存储格式是第一个字节给出字符串的字符长度,第二个字节是当前的实际长度,然后是字符串的各个字符。

2.字符串转换指令

(1)字符串到数值以及数值到字符串的转换。

可以使用以下指令将数字字符串转换为数值或将数值转换为数字字符串:

①S_CONV用于将数字字符串转换成数值或将数值转换成数字字符串;

②STRG_VAL使用格式选项将数字字符串转换成数值;

③VAL_STRG使用格式选项将数值转换成数字字符串。

S_CONV(字符串转换)将字符串转换成相应的值,或将值转换成相应的字符串。S_CONV指令没有输出格式选项。因此,S_CONV指令比STRG_VAL指令和VAL_STRG指令更简单,但灵活性较差。S_CONV指令如图7.32所示。

图7.32 S_CONV指令

(2)S_CONV用于字符串到值的转换,其指令引脚说明如表8.15所示。

表7.15 S_CONV指令(字符串到值的转换)引脚说明

字符串参数IN的转换从首个字符开始,并一直进行到字符串的结尾,或者一直进行到遇到第一个不是“0”到“9”“+”“-”或“.”的字符为止。结果值将在参数OUT中指定的位置提供。如果输出数值不在OUT数据类型的范围内,则参数OUT设置为0,并且ENO设置为FALSE。否则,参数OUT将包含有效的结果,并且ENO设置为TRUE。

输入String格式规则如下:

①如果在IN字符串中使用小数点,则必须使用“.”字符;

②允许使用逗点字符“,”作为小数点左侧的千位分隔符,并且逗点字符会被忽略;

③忽略前导空格;

④仅支持定点表示法,字符“e”和“E”不会被识别为指数表示法。

(3)S_CONV用于值到字符串的转换,其指令引脚说明如表7.16所示。

表7.16 S_CONV指令(值到字符串的转换)引脚说明

整数值、无符号整数值或浮点值IN在OUT中被转换为相应的字符串。在执行转换前,参数OUT必须引用有效字符串。有效字符串由第一个字节中的最大字符串长度、第二个字节中的当前字符串长度以及后面字节中的当前字符串字符组成。转换后的字符串将从第一个字符开始替换OUT字符串中的字符,并调整OUT字符串的当前长度字节。OUT字符串的最大长度字节不变。

被替换的字符数取决于参数IN的数据类型和数值。被替换的字符数必须在参数OUT的字符串长度范围内。OUT字符串的最大字符串长度(第一个字节)应大于或等于被转换字符的最大预期数目。

表7.17列出了所支持的各种数据类型要求的最大可能字符串长度。

表7.17 数据类型的最大可能字符串长度

输出String格式规则如下:

①写入到参数OU的值不使用前导“+”号;

②使用定点表示法(不可使用指数表示法);

③参数IN为Real数据类型时,使用句点字符“.”表示小数点。

(4)S_CONV值到字符串的转换实例,如表7.18所示。

表7.18 S_CONV值到字符串的转换实例

(5)STRG_VAL指令。

STRG_VAL(字符串到值)将数字字符串转换为相应的整型或浮点型表示法。转换从字符串IN中的字符偏移量P位置开始,并一直进行到字符串的结尾,或者一直进行到遇到第一个不是“+”“-”“.”“,”“e”“E”或“0”到“9”的字符为为止。结果放置在参数OUT中指定的位置。STRG_VAL指令如图7.33所示,其引脚说明如表7.19所示。

图7.33 STRG_VAL指令

表7.19 STRG_VAL指令的引脚说明(www.daowen.com)

(6)STRG_VAL的FORMAT参数。

定义STRG_VAL指令的FORMAT参数,未使用的位置必须设置为零,如表7.20所示。

表7.20 STRG_VAL指令的FORMAT参数位

f=表示法格式:1=指数表示法;0=定点表示法。

r=小数点格式:1=“,”(逗号字符);0=“.”(句点字符)。

FORMAT参数如表7.21所示。

表7.21 FORMAT参数

STRG_VAL转换的规则如下:

①如果使用句点字符“.”作为小数点,则小数点左侧的逗点“,”将被解释为千位分隔符字符,允许使用逗点字符并且会将其忽略;

②如果使用逗点字符“,”作为小数点,则小数点左侧的句点“.”将被解释为千位分隔符字符,允许使用句点字符并且会将其忽略;

③忽略前导空格。

(7)STRG_VAL转换实例,如表7.22所示。

表7.22 STRG_VAL转换实例

(8)VAL_STRG指令。

VAL_STRG(值到字符串)将整数值、无符号整数值或浮点值转换为相应的字符串表示法。参数IN表示的值将被转换为参数OUT所引用的字符串。在执行转换前,参数OUT必须为有效字符串。VAL_STRG指令如图7.34所示。

图7.34 VAL_STRG指令

转换后的字符串将从字符偏移量计数P位置开始替换OUT字符串中的字符,一直到参数SIZE指定的字符数。SIZE中的字符数必须在OUT字符串长度范围内(从字符位置P开始计数)。该指令对于将数字字符嵌入到文本字符串中很有用。例如,可以将数字“120”放入字符串“Pump pressure=120 psi”中。VAL_STRG指令引脚说明如表7.23所示。

表7.23 VAL_STRG指令引脚说明

参数PREC用于指定字符串中小数部分的精度或位数。如果参数IN的值为整数,则PREC指定小数点的位置。例如,如果数据值为123而PREC=1,则结果为“12.3”。对于REAL数据类型支持的最大精度为7位。

如果参数P大于OUT字符串的当前大小,则会添加空格,一直到位置P,并将该结果附加到字符串末尾。如果达到了最大OUT字符串长度,则转换结束。

FORMAT参数说明详见用户手册。

(9)VAL_STRG转换实例。

VAL_STRG转换实例如表7.24所示,它们均基于按以下方式初始化的OUT字符串:“Current Temp=XXXXXXXXXX C”,字符“X”表示为已转换值分配的空格字符。

表7.24 VAL_STRG转换实例

续表

3.字符串操作指令

字符串操作指令如下表7.25所示。

表7.25 字符串操作指令

续表

各指令的详细介绍请参阅用户手册。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈