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

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

3天内不再提示

睿远研究院丨IO-Link规范解读(十五):数据类型详解

传感器专家网 2026-01-14 18:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

本篇对IO-Link规范的附录F的数据类型做个详细解释,附录定义了基本数据类型(Basic Data Types) 和组合数据类型(Composite Data Types),并通过示例展示了其结构和传输方式,包括单个使用或打包使用的情形。

基础数据类型包括了BooleanT、UIntegerT、IntegerT、Float32T、StringT、OctetStringT、TimeT、TimeSpanT;组合数据类型包括ArrayT、RecordT。

这些数据类型在IODD文档里也有大量描述,只不过他俩的分类名称不一致,在IODD里称为SimpleDataType和ComplexDatatype。

1 BooleanT

BooleanT 表示一个只能有两个不同值的数据类型,即TRUE 和 FALSE,该数据类型在下表中进行了规定。

wKgZO2leNa-Ac3cgAACXTJWfcxo311.png

对于单一使用,编码下表所示,发送方应始终使用0xFF 代表 'TRUE' 或 0x00 代表 'FALSE'。接收方可以解释从0x01 到 0xFF 的范围为 'TRUE',并应解释0x00'FALSE',以简化实现。

wKgZO2leNa-AVAzxAAA0w3-PNz0856.png

对于BooleanT要特别注意的是,它的True0xFF,不是传统意义上的0x01;在很多嵌入式代码中,TRUE的定义就是0x01,如果你使用睿远的IO-Link,判断一个条件是否为true,一定要用规定的宏IOLD_TRUE或者其他协议栈定义的TRUE,如果采用0x01来判断,会容易出错。

2 UIntegerT&IntegerT

UIntegerT表示一个无符号数,由2到64位来表示,采用右对齐的方式,左边补足的方式,填充到对应字节个数:1、2、4或8,高阶填充位用0填充。

wKgZO2leNa-ACVktAAGevAPwXPQ408.png

IntegerT表示一个符号整型,由2到64位来表示。采用右对齐的方式,左边补足的方式,填充到对应字节个数:1、2、4或8,负数高位用1填充,正数高位用0填充

wKgZO2leNa-ANtGXAAHa605cBoY925.png

3 Float32T

Float32T采用IEEEStd 754-1985标准的单精度浮点类型(32bit),正数的高位用0填充,负数的高位用1填充。

wKgZO2leNa-AHewjAAIsXResLNY436.png

4 StringT&OctetStringT

StringT由一定固定序列的字符串表示,可变长度,采用US-ASCII或者UTF-8编码。UTF-8对ASCII字符采用1个字节,而其他的字符最大采用4个字节。0x00不允许作为1个字符,常用作字符串的结尾或者尾部填充。

wKgZO2leNa-AN0hrAAIo8WIgDtw301.png

字符串类型,实际的数据可以小于ISDU里定义的长度,接受者可以搜索第一个0x00字节,就可以认为其是字符串的结尾了。如果压缩发送,即不发送后面的0x00,接受者可以自己补充0x00。

OctetStringT由有序的8位组表示,固定字节,也是表示字节串的数据类型,一般用于传输各种二进制数据,比如图像、音频等。

wKgZO2leNa-AcsdGAAE_0f9uXEo751.png

5 TimeT&TimeSpanT

TimeT基于RFC 1305标准,由两个无符号值组成,表示与特定日期相关的网络时间。

TimeSpanT是64位的整型值,每个单位表示1/2的32次方秒。

TimeT的格式:

wKgZO2leNbCALfYyAARcHV0Ou6Y167.png

TimeSpanT的格式:

wKgZO2leNbCADsPJAAQYTjzQDoM192.png

6 ArrayT

组合数据类型,该数据类型中包含几个一样的数据类型,相应规则如下:

1、子索引数据应该紧密排列,中间不能有空位;

2、在字节序列中,最高的子索引元素n应该靠右对齐

3、UInteger和IntegerT长度大于58bit同时小于等于64bit是不允许的。

wKgZO2leNbCAF_XtAAGBfnmMS14550.png

7 RecordT

与ArrayT类型不一样的是,其包含的数据类型可以不一致,相应规则如下:

1、升序排列:子索引从1到n升序排列,虽然允许中间有间隔,但保持一定的升序排列,有助于可读性;

2、起始偏移:从最后一个字节开始计算;

3、对齐:对Float32T、StringT、OctetStringT、TimeT、TimeSpanT必须要保持字节对齐;

4、整型对齐:对于UIntegerT、IntegerT类型,强烈建议进行字节对齐,不要跨越字节;

5、唯一性:每个bit只能被分配给为一个Record,防止冲突。

wKgZO2leNbCAVRoaAAL8y5of7s4080.png

结语

今天的内容先到这里,目前我们已经花了15篇的内容,将IO-Link的协议规范的重要内容都和大家一起梳理了一遍。下一篇,我们将开启IO-Link SSP行规的解读旅程,也更贴近智能传感器的应用,大家可以期待一下!

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

    关注

    2

    文章

    200

    浏览量

    20852
  • IO-Link收发器

    关注

    0

    文章

    17

    浏览量

    6320
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    研究院IO-Link规范解读(三):物理层概览

    前言 物理层是 IO-Link 通信的 “硬件底座”,它直接决定了系统的可靠性、抗干扰能力和部署灵活性。打个比方,就像盖房子,物理层就是地基和骨架,地基不稳、骨架不牢,房子肯定住着不踏实。本期我们
    的头像 发表于 10-21 17:26 3355次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(三):物理层概览

    IO-Link规范解读(五):数据链路层解析

    前言 本篇就来讲讲IO-Link数据链路层。 01 链路层总览 数据链路层(Data Link Layers)在整个IO-Link协议栈起
    的头像 发表于 10-20 18:08 4510次阅读
    <b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(五):<b class='flag-5'>数据</b>链路层解析

    研究院IO-Link规范解读(七):消息处理模块

    ,特别是固定的协议一般都有协议的报文头和报文尾,根据简单规则过滤该报文是否为合法报文,避免进一步的深度解析,减少MCU的处理压力。 1 M-Sequence定义 11.8 主站与从站的交互,通过一系列的消息来交换数据,因此我们称之为“M-Sequence”,它也是IO-L
    的头像 发表于 11-01 17:43 9168次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(七):消息处理模块

    研究院IO-Link规范解读(八):M-Sequence Type 与消息处理状态机

    上回咱们分解到IO-Link的消息处理模块,消息处理模块就是对每个字节进行初步分析,按照不同的通道交给不同的处理模块来处理,可以认为他是初步的消息分拣机制,合格的消息交给后续处理,不合格的消息直接
    的头像 发表于 11-07 16:18 6755次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(八):M-Sequence Type 与消息处理状态机

    研究院IO-Link规范解读(十):ISDU详解

    前言 今天我们来好好聊聊ISDU。ISDU是Indexed service data unit的缩写,这个名字吧,也怪奇怪的,直接翻译叫索引服务数据单元,听起来更是怪怪的,小编更喜欢直接称他为从站
    的头像 发表于 11-24 10:37 5907次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(十):ISDU<b class='flag-5'>详解</b>

    研究院IO-Link规范解读(十二):SM模块与CM模块解析

    我们本期来好好聊聊SM模块与CM模块,SM模块的全称是System Manager,是IO-Link最核心的模块,负责承上启下的管理各个模块;CM模块的全称是Configuration
    的头像 发表于 12-04 18:27 5692次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(十二):SM模块与CM模块解析

    研究院IO-Link规范解读(十三):参数模块解析

    Manager定义 在IO-Link规范中,特别定义了一个Parameter Manager这个模块,它要负责处理完整的数据检查以及参数的
    的头像 发表于 12-12 21:51 7598次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(十三):参数模块解析

    研究院IO-Link规范解读(十四):DS模块详解

    ,可是“女神”的含义。 好了,我们今天就来好好揭开,这个DS模块的“神秘面纱”。 1  DS的定义 数据存储(DS) 机制使得从站设备参数在上层系统(如PLC程序或现场总线参数服务器)上能 够一致且及时 地进行缓存。 主站和从站之间的数据存储在
    的头像 发表于 12-23 18:28 9047次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(十四):DS模块<b class='flag-5'>详解</b>

    什么是IO-Link

    Discover the benefits of the IO-Link smart sensor and actuator interface protocol. IO-Link
    的头像 发表于 10-09 03:26 9050次阅读

    IO-Link协议及其接口的定义

    IO-Link主管(IO-Link Master)的针脚定义有两种:类型A(Port Class A)和类型B(Port Class B)。
    的头像 发表于 06-10 15:54 1.5w次阅读
    <b class='flag-5'>IO-Link</b>协议及其接口的定义

    IO-Link编码器特点

    各个传感器设备的多个点对点连接。终端设备的IO-Link接口相对简单,无需传感器/执行器支持复杂的通信协议。IO-Link支持多种数据类型,包括测量反馈数据、设备配
    的头像 发表于 08-29 13:36 2501次阅读
    <b class='flag-5'>IO-Link</b>编码器特点

    IO-Link收发器怎么数据读取

    扮演着关键角色,它们负责数据的发送和接收。本文将深入探讨IO-Link收发器如何读取数据,包括其工作原理、硬件和软件要求、数据类型及应用场景等,为您提供一份详尽的技术指南。
    的头像 发表于 02-02 16:34 1636次阅读

    虹科直播回放 | IO-Link技术概述与虹科IO-Link OEM

    虹科「一站式通讯解决方案」系列直播第1期圆满落幕!本期主题为「IO-Link技术概述与虹科IO-LinkOEM」感谢各位朋友的热情参与!本期直播中虹科专业讲师瞿工带大家走进工业4.0深度解读
    的头像 发表于 02-19 17:34 1538次阅读
    虹科直播回放 | <b class='flag-5'>IO-Link</b>技术概述与虹科<b class='flag-5'>IO-Link</b> OEM

    研究院IO-Link规范解读(一):技术定义与组织规范

      IO-Link 技术定义与组织规范 从今日起,小将开始长篇连载IO-Link规范解读系列文
    的头像 发表于 09-18 18:17 1256次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(一):技术定义与组织<b class='flag-5'>规范</b>

    研究院IO-Link规范解读(二):IO-Link通信技术概述

    前言 今天我们继续解读IO-Link 1.1.4规范,本篇文章将给大家介绍IO-Link技术的概览,包含IO-Link命名的含义、主从站交互
    的头像 发表于 09-25 19:25 1168次阅读
    <b class='flag-5'>睿</b><b class='flag-5'>远</b><b class='flag-5'>研究院</b><b class='flag-5'>丨</b><b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(二):<b class='flag-5'>IO-Link</b>通信技术概述