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

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

3天内不再提示

如何进行PLC字符与数据之间转换的详细资料概述

1bGT_GKYXT1508 来源:未知 2019-04-03 10:59 次阅读

学习PLC编程过程中不可避免会接触到数据运算、比较等操作,当两个操作数类型不同时就需要进行转换,所以数据转换指令也是编程的重要指令。但是很多人往往不是太了解ASCII字符及字符与数据之间如何转换,本文就着重介绍字符与数据之间如何进行转换。

有些设备在通信过程中发送的报文是ASCII形式,那么就需要将其转换成数据。

一、名词认识

1. ASCII字符字符是指计算机中使用的字母、数字、字和符号,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。在ASCII编码中,一个英文字母字符存储需要1个字节

2.字符串

字符串变量是一个字符序列,其中的每个字符均以字节形式存储。STRING数据类型的第一个字节定义字符串的长度,即字符字节数。

下图所示为存储器中以变量形式存储的STRING数据类型。字符串的长度可以是0到254个字符。变量字符串的最大存储要求为255个字节(长度字节加上254个字符)。

如果直接在程序编辑器中输入常数字符串参数(最多126个字符),或在数据块编辑器中初始化变量字符串(最多254个字符),则字符串赋值必须以双引号字符开始和结束。

3.字符组

ASCII字符数组指令的字符输入输出采用BYTE数据类型。ASCII字符数组为被引用的字节地址序列,与字符串类似,只是没有指定长度。由于未使用长度字节,因此该数组并不是STRING数据类型。可使用ASCII字符串指令处理STRING数据类型的变量。

二、字符转换指令类型

1)整数转字符串(I_S):将整数字IN转换为长度为8个字符的ASCII字符串。

格式(FMT)分配小数点右侧的转换精度,并指定小数点显示为逗号还是句点。结果字符串会写入从OUT处开始的9个连续字节中。

nnn表示小数点右侧的位数,可设置为0-5。c位指定使用逗号(c=1),使用小数点(c=0)作为整数部分与小数部分之间的分隔符。

下图还给出了值的示例,其格式为:使用小数点(c = 0),小数点右侧有三位数(nnn=011)。OUT处的值为下一字节地址中存储的字符串的长度。

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

双整数转换为字符串的指令会将双整数IN 转换为长度为12个字符的ASCII字符串。格式(FMT) 分配小数点右侧的转换精度,并指定小数点显示为逗号还是句点。结果字符串会写入从OUT处开始的13个连续字节中。

输出字符串的长度始终为12个字符。输出缓冲区中小数点右侧的位数由nnn字段指定。nnn字段的有效范围是0到5。如果分配0位数到小数点右侧,则该值不显示小数点。对于nnn大于5的值,输出为12个ASCII空格字符组成的字符串。c位指定使用逗号(c=1)还是小数点(c=0)作为整数与小数部分之间的分隔符。格式的高4位必须是零。

下图还给出了一个值的示例,其格式为:使用小数点(c = 0),小数点右侧有四位数(nnn=100)。OUT处的值为下一字节地址中存储的字符串的长度。

3)浮点数转字符串(R_S)

实数转换为字符串的指令会将实数值IN转换为ASCII字符串。格式(FMT)分配小数点右侧的转换精度、小数点显示为逗号还是点以及输出字符串的长度。转换结果放置在以OUT开头的字符串中。结果字符串的长度在格式中指定,可以是3到15个字符。

CPU使用的实数格式最多支持7位有效数字。尝试显示7位以上有效数字会产生舍入错误。输出字符串的长度由ssss字段指定。0、1或2个字节大小无效。输出缓冲区中小数点右侧的位数由nnn字段分配。nnn字段的有效范围是0到5。如果分配0位数到小数点右侧,则该值不显示小数点。如果nnn大于5,或者因分配的输出字符串长度太小而无法存储转换的值,则会用ASCII空格字符填充输出字符串。c位指定使用逗号(c=1)还是小数点(c=0)作为整数与小数部分之间的分隔符。

下图还给出了一个值的示例,其格式为:小数点(c = 0),小数点右侧有一位数(nnn = 001),输出字符串的长度为6个字符(ssss=0110)。OUT处的值为下一字节地址中存储的字符串的长度。

4)字符串转整数(S_I)

INDX 转换的起始字符参数,INDX值通常设为1,从字符串的第一个字符开始转换。INDX值可设置为其它值,以在字符串中的不同点处开始转换。当输入字符串包含不属于要转换的数字一部分的文本时,可采用此方法,遇到不可转换的将自动终止。例如,如果输入字符串为“Temperature:77.8”,可将INDX设置为13来跳过字符串开头的单词“Temperature:”转换结果77。

如果INDX为1,则IN输入字符串“12345”转换成12345。如果INDX为2,则转换为2345

5)字符串转双整数(S_DI):与S_I类似,此处不复述。

6)字符串转浮点数(S_R)

将字符串转换为实数的指令不会转换以科学记数法或指数形式表示实数的字符串。该指令不会产生溢出错误(SM1.1),但会将字符串转换为指数之前的实数,然后终止转换。例如,字符串“1.234E6”会转换为实数值1.234,而不会出现错误。

7)整数转ASCII字符组(ITA)

将整数值IN转换为ASCII字符数组。格式参数FMT将分配小数点右侧的转换精度,并指定小数点显示为逗号还是句点。得出的转换结果将存入以OUT 分配的地址开始的8个连续字节中。

8)双整数转ASCII字符组(DTA)

将双字IN转换为ASCII字符数组。格式参数FMT指定小数点右侧的转换精度。得出的转换结果将存入以OUT开头的12个连续字节中。

输出缓冲区的大小始终为12个字节。输出缓冲区中小数点右侧的位数由nnn字段分配。nnn字段的有效范围是0到5。如果分配0位数到小数点右侧,则转换后的值无小数点。对于nnn值大于5的情况,将使用ASCII空格字符填充输出缓冲区。c位指定使用逗号(c=1)还是小数点(c=0)作为整数部分与小数部分之间的分隔符。4个最高有效位必须始终为零。

9)浮点数转ASCII字符组(RTA)

将实数值IN转换成ASCII字符。格式参数FMT指定小数点右侧的转换精度、小数点显示为逗号还是点以及输出缓冲区大小。得出的转换结果会存入以OUT开头的输出缓冲区中。

得出的ASCII字符数(或长度)就是输出缓冲区的大小,它的值在3到15个字节或字符之间。实数格式最多支持7位有效数字。尝试显示7位以上的有效数字将导致舍入错误。

下图显示了RTA指令的格式操作数(FMT)。通过ssss字段分配输出缓冲区的大小。0、1或2个字节大小无效。输出缓冲区中小数点右侧的位数由nnn字段分配。nnn字段的有效范围是0到5。如果分配0位数到小数点右侧,则转换后的值无小数点。如果nnn的值大于5或者分配的输出缓冲区太小以致无法存储转换后的值,则使用ASCII空格填充输出缓冲区。c位指定使用逗号(c=1)还是小数点(c=0)作为整数部分与小数部分之间的分隔符。

下图给出了一个数值作为示例,其格式为使用小数点(c=0)、小数点右侧有一位(nnn=100)、缓冲区的大小为六个字节(ssss=0111)。

10)十六进制数转ASCII(HTA)

将从输入字节IN开始的十六进制数转换为从OUT开始的ASCII字符。由长度LEN分配要转换的十六进制数的位数。可以转换的ASCII字符或十六进制数的最大数目为255。

上图vb20=16#4E,vb21=16#2D,转换后VB30,VB31,VB32,VB33分别为‘4’‘E’‘2’‘D’。

11)ASCII转十六进制数(ATH)

将从IN开始,LEN个长度的 ASCII字符转换为从OUT开始的十六进制数。可转换的最大ASCII字符数为255个字符。

如果VB0,VB1,VB2,VB3为‘3’,‘5’,‘8’,‘6’则转换

后VB10=16#35,VB11=16#86。

以上介绍了所有与字符相关的转换指令。

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

    关注

    5008

    文章

    13146

    浏览量

    461957
  • 存储器
    +关注

    关注

    38

    文章

    7447

    浏览量

    163581
  • ASCII
    +关注

    关注

    5

    文章

    172

    浏览量

    35040

原文标题:PLC字符与数据之间如何进行转换?

文章出处:【微信号:GKYXT1508,微信公众号:工控云学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于PLC字符数据之间何进行转换

    学习PLC编程过程中不可避免会接触到数据运算、比较等操作,当两个操作数类型不同时就需要进行转换,所以数据
    的头像 发表于 05-02 09:45 2.4w次阅读
    关于<b class='flag-5'>PLC</b>中<b class='flag-5'>字符</b>与<b class='flag-5'>数据</b><b class='flag-5'>之间</b>如<b class='flag-5'>何进行</b><b class='flag-5'>转换</b>

    三角积分转换器中的转换延迟的详细资料概述

    本文主要介绍的是Δ-Σ模数转换器中的转换延迟的详细资料概述
    发表于 05-29 16:11 1次下载

    如何操作多台过采样数据转换器的详细资料概述

     本文的主要内容介绍的是TI的资料如何操作多台过采样数据转换器的详细资料概述
    发表于 05-29 16:15 5次下载
    如何操作多台过采样<b class='flag-5'>数据</b><b class='flag-5'>转换</b>器的<b class='flag-5'>详细资料</b><b class='flag-5'>概述</b>

    LabVIEW在信捷PLC通讯上的应用详细资料概述

    本文档详细介绍的是LabVIEW在信捷PLC通讯上的应用详细资料概述
    发表于 06-07 08:00 323次下载

    西门子PLC应用案例解析的详细资料概述

    本文档的主要内容介绍的是西门子PLC应用案例解析的详细资料概述
    发表于 06-08 08:00 0次下载

    PLC常用基本环节梯形图和详细文字说明详细资料概述

    PLC常用基本环节梯形图和详细文字说明详细资料概述
    的头像 发表于 07-06 11:41 9928次阅读
    <b class='flag-5'>PLC</b>常用基本环节梯形图和<b class='flag-5'>详细</b>文字说明<b class='flag-5'>详细资料</b><b class='flag-5'>概述</b>

    LabVIEW数值数组转换二进制字符串的详细资料概述

    本文档的主要内容详细介绍的是LabVIEW数值数组转换二进制字符串的详细资料免费下载,需要的下载吧。
    发表于 11-29 08:00 60次下载
    LabVIEW数值数组<b class='flag-5'>转换</b>二进制<b class='flag-5'>字符</b>串的<b class='flag-5'>详细资料</b><b class='flag-5'>概述</b>

    数据库教程之如何进行数据更新和视图的详细资料说明

    本文档的主要内容详细介绍的是数据库教程之如何进行数据更新的详细资料说明。主要内容包括了:1 插入数据2 修改
    发表于 12-18 15:07 2次下载

    数据库教程之如何进行数据查询的详细资料说明

    本文档的主要内容详细介绍的是数据库教程之如何进行数据查询的详细资料说明主要内容包括了:1 单表查询2 连接查询3 嵌套查询4 集合查询5 SELECT语句的一般形式
    发表于 12-18 15:07 8次下载

    何进行51单片机的AD和DA转换

    本文档的主要内容详细介绍的是如何进行51单片机的AD和DA转换详细资料说明。
    发表于 06-17 17:44 18次下载
    如<b class='flag-5'>何进行</b>51单片机的AD和DA<b class='flag-5'>转换</b>

    何进行集成电路异或门电路的设计详细资料说明

    本文档的主要内容详细介绍的是如何进行集成电路异或门电路的设计详细资料说明。
    发表于 05-07 16:12 24次下载
    如<b class='flag-5'>何进行</b>集成电路异或门电路的设计<b class='flag-5'>详细资料</b>说明

    何进行编码器的长度设定及换算的详细资料说明

    本文档的主要内容详细介绍的是如何进行编码器的长度设定及换算的详细资料说明。
    发表于 05-15 08:00 5次下载
    如<b class='flag-5'>何进行</b>编码器的长度设定及换算的<b class='flag-5'>详细资料</b>说明

    何进行PLC控制程序的设计详细资料PPT说明

    本文档的主要内容详细介绍的是如何进行PLC控制程序的设计详细资料PPT说明
    的头像 发表于 07-28 09:47 5908次阅读

    PLC编程电缆制作大全详细资料概述

    本文档的主要内容详细介绍的是PLC编程电缆制作大全详细资料概述
    发表于 04-26 08:00 4次下载
    <b class='flag-5'>PLC</b>编程电缆制作大全<b class='flag-5'>详细资料</b><b class='flag-5'>概述</b>

    PLC控制系统的设计与应用实例详细资料概述

    本文档的主要内容详细介绍的是PLC控制系统的设计与应用实例详细资料概述包括了:1.PLC控制系统设计的内容和步骤,2.
    发表于 09-10 17:16 65次下载
    <b class='flag-5'>PLC</b>控制系统的设计与应用实例<b class='flag-5'>详细资料</b><b class='flag-5'>概述</b>