0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

字符串定义及格式

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-11-14 10:46 次阅读

字符串定义及格式

字符串最大长度占用长度为256个字符长度,其中

第一个字符定义为字符串的最大长度数值

第二个字符定义为字符串的有效长度数值

从第三个字符开始为实际有效的字符,最大可设置254个字符长度,每个字符的数据类型是:Char。字符是以ASCII的方式存储。

ASCII码与16进制和10进制转换关系如下图所示:

20851270-6290-11ed-8abf-dac502259ad0.png

表1 ASCII码表

字符串转换

1. STEP7库功能

STEP7库中提供了如下几个转换块:(库文件路径:库libraries---Standard Libray---IEC Function Blocks)

(FC94,95路径:库libraries---Standard Libray---TI-S7 Converting Blocks)

FC编号 功能名称 描述
FC5 DI_STRING 双整数转字符串
FC16 I_STRING 整数转字符串
FC30 R_STRING 实数转字符串
FC37 STRING_DI 字符串转双整数
FC38 STRING_I 字符串转整数
FC39 STRING_R 字符串转实数
FC94 ATH ASCII转换为十六进制
FC95 HTA 十六进制转换为ASCII

表2. 字符串转换

2 .整数(双整数)转字符串

以FC5为例,双整数为有符号整数,因此如图第三个有效字符为符号位,显示“+”。

注意: 此处字符串定义最大长度为254个字符,图二中第一位最大长度为-2为有符号数值。

20c00eac-6290-11ed-8abf-dac502259ad0.png

20e08a74-6290-11ed-8abf-dac502259ad0.png

图1. FC5及数据块定义

20f7407a-6290-11ed-8abf-dac502259ad0.png

图2. 变量表监看

3 .实数转字符串

实数转换为字符串,显示格式为科学计数法。如图3所示:

221a0f1e-6290-11ed-8abf-dac502259ad0.png

图3. 科学计数法显示

其有效数据最多显示7位。同时转换后的字符串固定占用14个有效字符长度。

注意,建立字符串最大长度时务必要大于14个字符长度,否则FC30不执行,无输出。

2256af00-6290-11ed-8abf-dac502259ad0.png

2273e94e-6290-11ed-8abf-dac502259ad0.png

图4. FC30实例

4 .字符串转16进制

FC94功能实际为将连续的字符转换为连续的16进制。

因此,使用时注意:

1. 输入"IN"为有效字符的起始地址,即字符串的前两个固定占用字符需要跳过

2. 转换个数与字符串本身定义的有效字符长度数值无关,只与输入"N"有关

3. 字符占8位,16进制占16位;因此转换后占位方式如图6

228ef108-6290-11ed-8abf-dac502259ad0.png

图5. FC94

22b25ef4-6290-11ed-8abf-dac502259ad0.png

图6. FC94监看

如何将Date 或 Date_and_Time数据类型转换为字符串?

参看"来自西门子技术支持热线的故事"链接,此外,另有付费的功能块包: 数据类型转换的工具集

如何将字符串转换为实数(非科学计数法形式)?

请参考:哪些标准 STEP 7函数可用来对字符串变量和ASCII 字符进行转换和比较?

字符串比较

1. STEP7库功能

STEP7库中提供了如下几个比较块:(库功能路径:库libraries---Standard Libray---IEC Function Blocks)

FC编号 功能名称 描述
FC10 EQ_STRING S1=S2
FC13 GE_STRING S1≥S2
FC15 GT_STRING S1>S2
FC19 LE_STRING S1≤S2
FC24 LT_STRING S1
FC29 NE_STRING S1≠S2

表3. 字符串比较

注意:

1. 比较功能,比较的是两个字符串的有效数据长度部分。即字符串定义的最大长度与比较结果无关。见图7

2. 比较大小时,字符从上至下依次比较。见图8

3. 比较大小时,字符转换为16或10进制比较。即非数字字符,是转换为16或10进制进行比较。见图9

23068416-6290-11ed-8abf-dac502259ad0.png

图7. FC10比较大小

2332d16a-6290-11ed-8abf-dac502259ad0.png

图8. FC13比较大小

2354a9f2-6290-11ed-8abf-dac502259ad0.png

图9. FC13比较大小

为何比较带"+-"的字符串,"-"的字符串反而大于"+"字符串?

如图9,由于"+"对应十进制43,"-"对应十进制45;因此对于+-号比较,"-"的字符串反而大于"+"的字符串。

字符串功能

1. STEP7库功能

STEP7库中提供了如下几个功能块:(库功能路径:库libraries---Standard Libray---IEC Function Blocks)

FC编号 功能名称 描述
FC2 CONCAT 合并字符串
FC4 DELETE 删除字符串内字符
FC11 FIND 字符串查找
FC17 INSERT 字符串插入
FC20 LEFT 读取左侧字符串
FC21 LEN 字符串内有效字符长度
FC31 REPLACE 字符串替换
FC32 RIGHT 读取右侧字符串

表4. 字符串功能

注意:以上功能块均以字符串的有效长度为基础。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ASCII
    +关注

    关注

    4

    文章

    169

    浏览量

    34531
  • 字符串
    +关注

    关注

    1

    文章

    551

    浏览量

    20123
  • STEP7
    +关注

    关注

    4

    文章

    102

    浏览量

    32224

原文标题:字符串定义及格式

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何将字符串格式的数字改成unsigned int 格式

    如何将字符串格式的数字改成unsigned int 格式的?如将192.168.1.156字符串格式转换成四字节无符号整型怎么办?谢谢
    发表于 05-15 20:20

    字符串格式

    本帖最后由 jiayongxia 于 2012-11-19 12:21 编辑 tz%1.0dom%1.0dOA%1.0dOO%1.0dOP%1.0d各是什么意思了?在labview书中没有找到相关的字符串格式说明,请labview达人帮助。谢谢!
    发表于 11-19 12:19

    扫描字符串函数中输入字符串格式问题

    使用扫描字符串函数时,如图中所示,提示输入字符串格式不符合预期。例子中格式字符串{%s},对输入字符串
    发表于 08-27 10:25

    labview获取DateTime格式时间字符串

    数据库中时间的格式为DateTime格式但labview自带的时间获取函数格式与DateTime格式不对应转换方法为使用 格式化日期/时间
    发表于 08-29 14:43

    格式化写入字符串函数 求助

    格式化写入字符串函数格式字符串:%6f\n%s\n%d\n%s这个怎么理解?
    发表于 07-13 13:23

    字符串格式 的 24小时制时间 做计算问题请教

    读出的每个人的考勤时间生成Excel,已经从Excel中提取到时间,想要做进一步计算。原数据是‘字符串格式的(08:23、17:45等24小时制时间),想要用字符串转换成数值进行计算,但在函数选板里
    发表于 02-05 00:59

    字符串拆分

    的使得转换为数值后没法显示如图一,后来又尝试用扫描字符串来分割如图二,会报错“输入字符串包含的数据不符合预期格式”请教大佬指点一下,怎么分割这个数据。
    发表于 05-22 11:57

    如何将字符串按输入顺序连接到字符串数组中?

    有一个字符串输入控件,每输入一个名称,点击按钮让其最终显示在“菜单式下拉列表”中,我尝试了使用“菜单式下拉列表”中属性节点“字符串[]”,但是发现输入格式是"字符串" 输出
    发表于 07-27 19:17

    什么是指向字符串指针?

    组成的句子,在C语言中被称为“字符串”。  了解完字符串是由多个字符组成的之后,想要存储字符串就变得非常容易了,我们只需要定义多个变量来存储
    发表于 03-15 14:19

    嵌入式C语言的字符串字符指针的相关资料分享

    格式化后的字符串拷贝到DataWriteBuffer指针中。DataWriteBuffer用了两种定义方式:char
    发表于 12-15 08:05

    2.6 python字符串格式

    2.6 python字符串格式格式化输出,主要有三种方式使用 % 进行格式化使用 format 函数进行格式化使用 f-string 进行
    发表于 02-21 16:28

    聊聊字符串

    大家好,我是惊觉,今天聊聊字符串字符串的使用场景非常之多,人机交互和双机通信都会用到。比如:通过串口向单片机发送指令,以执行操作或配置参数。单片机读取传感器数据,数据格式字符串。一
    发表于 02-28 06:52

    字符串常量的定义与引用

    字符串定义与引用
    的头像 发表于 09-14 11:37 9145次阅读
    <b class='flag-5'>字符串</b>常量的<b class='flag-5'>定义</b>与引用

    java字符串转化为日期格式

    在Java中,字符串转化为日期格式是一个常见的需求。日期格式在处理时间相关的操作时非常重要,它可以用来表示一段时间的开始和结束,也可以用来计算时间差等。本文将详细介绍如何将一个字符串
    的头像 发表于 11-17 16:38 738次阅读

    c语言字符串定义

    字符串定义、初始化、操作和常见问题。 字符串定义和初始化 在C语言中,字符串定义为一个
    的头像 发表于 11-24 10:02 857次阅读