list转换成string字符串_跟我一起看1200手册之扩展指令(字符串指令)的介绍和使用分析...

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

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

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

4b8fe485b668d3663b44c73598237b0e.png

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 个字符。

1c186042cb3acdf04cdb0cb9af74f40b.png

在上图中

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

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

二、字符串指令

1、指令位置

a63ccdfb6817144fc49245c8f0f04834.png

2、典型指令介绍

2.1 移动字符串

2b3c96b4ce07943191e92ac2de7d1b1c.png

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

8296c21956706c1590e60fb9f9f59f59.png

仿真运行:

0148e8c84ecf69dcda4c47477ceeb46f.png

2.2转换字符串指令

11afd92869706f42dd7aa7494e30e285.png

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

A、转换字符串

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

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

转换字符:

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

abc7ed30e31aa5a314029a94cc339a2e.png

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

bbd6aa69626df581584fb3f3372bf726.png

上图是INT转换成字符串

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

fe4bc771ab9506d6d510a69a286c22ee.png

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

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

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

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

3bf051c1548d8308154a6f2680d3ff08.png

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

看看下面这个程序:

4cfe2d1223343f71e0d43df17b676934.png

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

73034388d6d93a8d00f74978f3b69a20.png

2.4 将数值转换字符串指令

5c3eabc3e47f852497bc50a043c2c0db.png

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

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

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

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

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

参数FORMAT如下表所示:

e4c5f457b7affa828b4f925d72e67d33.png

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

看看下面的程序:

a35222699a23dacfde0fe02d3d3e4c48.png

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

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

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

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

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

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

最后的结果如上图所示。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值