快捷搜索:  汽车  科技

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)WStringCPU 支持使用 String 数据类型存储一串单字节字符。 String数据类型包含总字符数(字符串中的字符数)和当前字符数。String类型提供了多达 256个字节,用于在字符串中存储最大总字符数(1个字节)、当前字符数(1个字节)以及最多254个字节。 String数据类型中的每个字节都可以是从16#00到16#FF的任意值。Char 在存储器中占一个字节,可以存储以 ASCII 格式(包括扩展 ASCII字符代码)编码的单个字符。 WChar在存储器中占一个字的空间,可包含任意双字节字符表示形式。编辑器语法在字符的前面和后面各使用一个单引号字符。可以使用可见字符和控制字符。String 和 WString

一、什么是字符和字符串数据类型

STRING类型用于表示由零或多个16位Unicode字符组成的字符序列。

1200中的字符和字符串数据类型如下表所示:

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(1)

Char 和 WChar

Char 在存储器中占一个字节,可以存储以 ASCII 格式(包括扩展 ASCII字符代码)编码的单个字符。 WChar在存储器中占一个字的空间,可包含任意双字节字符表示形式。

编辑器语法在字符的前面和后面各使用一个单引号字符。可以使用可见字符和控制字符。

String 和 WString

CPU 支持使用 String 数据类型存储一串单字节字符。 String数据类型包含总字符数(字符串中的字符数)和当前字符数。String类型提供了多达 256个字节,用于在字符串中存储最大总字符数(1个字节)、当前字符数(1个字节)以及最多254个字节。 String数据类型中的每个字节都可以是从16#00到16#FF的任意值。

WString

数据类型支持单字(双字节)值的较长字符串。第一个字包含最大总字符数;下一个字包含总字符数,接下来的字符串可包含多达 65534 个字。 WString

数据类型中的每个字可以是 16#0000 - 16#FFFF 之间的任意值。

可以对 IN类型的指令参数使用带单引号的文字串(常量)。例如, ‘ABC’是由三个字符组成的字符串,可用作 S_CONV 指令中 IN 参数的输入。还可通过在 OB、 FC、 FB 和 DB的块接口编辑器中选择“String”或“WString”数据类型来创建字符串变量。无法在PLC变量编辑器中创建字符串。

可从数据类型下拉列表中选择一种数据类型,输入关键字“String”或“WString”,然后在方括号中以字节 (String) 或字 (WString)为单位指定最大字符串大小。例如,“MyString String[10]”指定 MyString 的最大长度为 10个字节。如果不包含带有最大长度的方括号 则假定字符串的最大长度为 254 并假定WString 的最大长度为65534。“MyWString WString[1000]”可指定一个 1000 字的

WString。

下面看看如何在DB块中定义字符串:打开数据块

1、选择接口中的相应声明部分。

2、在“名称”列中输入变量名称。

3、在“数据类型”(Data type) 列中输入“STRING”。输入时系统将提供自动完成功能。

4、可选:在关键字 STRING 后面,使用方括号指定字符串的最大长度。如果未指定最大长度,则字符串的默认长度为 254 个字符。

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(2)

在上图中

A、第一个string没定义长度,则是系统默认的长度254个字符。占n 2个字节,也就是254 2=256字节

B、第二个string定义长度为20个字符。

二、字符串指令

1、指令位置

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(3)

2、典型指令介绍

2.1 移动字符串

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(4)

指令就是:将参数IN中字符串(W)STRING的内容写入在参数OUT中指定的数据区域。

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(5)

仿真运行:

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(6)

2.2转换字符串指令

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(7)

转换字符串将 IN 输入中的值转换为 OUT 输出中指定的数据格式。

A、转换字符串

转换数字值(整数或浮点数):

针对 IN 输入参数中指定的字符串的所有字符执行转换。允许的字符包括数字“0”到“9”、小数点以及加减号。字符串的第一个字符可以是有效数字或符号。将忽略前导空格和指数计数制。

转换字符:

将字符串转换为字符时,字符串中的第一个字符将传送到参数 OUT 中。

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(8)

上图将字符串转换成INT型,

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(9)

上图是INT转换成字符串

2.3 将字符串转换成数值指令

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(10)

“STRG_VAL”指令可将字符串转换为整数或浮点数:

在 IN 输入参数中指定要转换的字符串。

通过为 OUT 输出参数选择数据类型,确定输出值的格式。

FORMAT是字符的输入格式,意义参见下表:

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(11)

参数P:是指从P位置开始转换。

看看下面这个程序:

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(12)

在上图中FORMAT设置为1 则将IN中的1.234中的点解释为千位分隔符,若设置为0就解释为点,如下图所示:

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(13)

2.4 将数值转换字符串指令

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(14)

VAL_STRG”指令用于将数字值转换为字符串。

在 IN 输入参数中指定要转换的值。通过选择数据类型来决定数字值的格式。

可以在 OUT 输出参数中查询转换结果。

转换允许的字符包括数字“0”到“9”、小数点、小数撇、计数制“E”和“e”,以及加减号字符。无效字符将中断转换过程。

使用 SIZE 参数指定待写入字符串的字符数。这从 P 参数中指定的字符开始计数。如果输出值比指定长度短,则结果将以右对齐方式写入字符串。空字符位置将填入空格。

参数FORMAT如下表所示:

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(15)

使用 PREC 参数定义转换浮点数时保留的小数位数。REAL 数据类型的数字值所支持的最大精度为 7 位数。如果要转换的值为整数,可使用 PREC 参数指定放置小数点的位置。

看看下面的程序:

西门子1200字符串传送指令(跟我一起看1200手册之扩展指令)(16)

根据参数P=16,就是从第16个字符开始写入该字符,

根据SIZE=10,就是从该位置开始写入该字符串10个字符长度,

参数FORMAT为16#4,所以选择小数点分隔符,

PrecVAL的值为3,将向字符串写入3个小数位。

待转换值的符号作为字符存储在字符串中,作为数字的前缀。

字符串的其余10个字符作为符号前的空格写入。

最后的结果如上图所示。

猜您喜欢: