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
    +关注

    关注

    5

    文章

    172

    浏览量

    35040
  • 字符串
    +关注

    关注

    1

    文章

    577

    浏览量

    20485
  • STEP7
    +关注

    关注

    4

    文章

    103

    浏览量

    32570

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

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

收藏 人收藏

    评论

    相关推荐

    C++字符串string

    string是C++编程语言中的字符串。在C++中字符串处理可以使用c语言字符串形式char *,也可以使用string类格式
    的头像 发表于 07-10 00:26 1214次阅读
    C++<b class='flag-5'>字符串</b>string

    字符串常量的定义与引用

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

    剖析提升字符串格式化效率的小技巧

    一、前言 在嵌入式项目开发中,字符串格式化是很常见的操作,我们一般都会使用 C 库中的 sprintf 系列函数来完成格式化。 从功能上来说,这是没有问题的,但是在一些时间关键场合,字符串
    的头像 发表于 04-30 13:43 1563次阅读
    剖析提升<b class='flag-5'>字符串</b><b class='flag-5'>格式</b>化效率的小技巧

    strtok拆分字符串

    大家好,我是惊觉,今天聊聊字符串字符串的使用场景非常之多,人机交互和双机通信都会用到。比如:通过串口向单片机发送指令,以执行操作或配置参数。单片机读取传感器数据,数据格式字符串。一
    发表于 01-13 15:46 8次下载
    strtok拆分<b class='flag-5'>字符串</b>

    2.2 python字符串类型

    2.2 python字符串类型 1. 如何定义字符串字符串是Python中最常用的数据类型之一。 使用单引号或双引号来创建字符串,使用三
    的头像 发表于 02-17 17:08 1400次阅读

    python字符串格式

    python字符串格式格式化输出,主要有三种方式 使用 % 进行格式化 使用 format 函数进行格式化 使用 f-string 进行
    的头像 发表于 02-21 16:28 1544次阅读
    python<b class='flag-5'>字符串</b><b class='flag-5'>格式</b>化

    字符串函数重写练习

    字符串函数重写练习:字符串比较、字符串拼接、字符串查找、字符串拷贝、内存比较、内存拷贝、内存初始化、内存比较、二维数组
    的头像 发表于 05-05 15:02 1962次阅读

    如何把数字格式化成字符串

    在嵌入式项目开发中,字符串格式化是很常见的操作,我们一般都会使用 C 库中的 sprintf 系列函数来完成格式化。
    的头像 发表于 08-04 10:35 1909次阅读

    C语言总结_字符串函数封装练习

    字符串函数重写练习:字符串比较、字符串拼接、字符串查找、字符串拷贝、内存比较、内存拷贝、内存初始化、内存比较、二维数组
    的头像 发表于 08-14 09:42 962次阅读

    格式字符串常量f-strings一些不常见的特性

    【导语】:本文介绍了“格式字符串常量”f-strings一些不常见的特性,包括:格式化日期和时间、同时打印变量名和变量值等,嵌套使用f-strings等,此外与其他格式
    的头像 发表于 08-15 12:00 1117次阅读

    C语言字符串的引用方式

    在C语言程序中,字符串是存放在字符数组中的。 2. 用字符数组存放一个字符串,可以通过数组名和下标引用字符串中的一个
    的头像 发表于 03-10 14:57 1841次阅读

    C语言定义字符串的几种方法

    C语言中定义字符串有哪些方法?
    的头像 发表于 03-31 09:41 3485次阅读

    字符串如何转换成日期型

    随着计算机技术的不断发展,我们经常遇到需要处理日期的情况。在编程中,字符串是最常见的日期输入格式,在许多情况下,我们需要将字符串转换为日期类型以便进行日期计算和比较。本篇文章将详细介绍如何使用不
    的头像 发表于 11-17 16:27 9855次阅读

    java字符串转化为日期格式

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

    c语言字符串定义

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