前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IO-Link通信笔记(六)——M序列能力编码与交互字节数量的确定

IO-Link通信笔记(六)——M序列能力编码与交互字节数量的确定

原创
作者头像
京畿提督
发布2024-06-21 11:50:22
1010
发布2024-06-21 11:50:22
举报
文章被收录于专栏:IO-LinkIO-Link

前面讲述了M序列与M序列类型和过程数据与按需数据。这里面就隐藏着一个问题,不同的M序列类型定义的OD字节数量与PD字节数量都不相同,那么主从之间是如何确定彼此的M序列类型内各个字节的数量的呢?尤其是在可变长度M序列类型中,PD字节的数量没有明确的约束,遮盖怎么确定呢?下面就来详细说明一下。

一、M序列能力编码识别字

我们都知道,任何一个IOL设备,都有与之对应的IODD文件来描述这个设备的IOL信息。上图是使用Teconcept官方的IODD designer随机打开的一个IODD,首先第一页就是定义设备的M序列类型和设备能力。IODD的编写,后续会有专门一起整理,这里我们先重点看一看红色方框,与本期重点相关的内容。

红色方框圈出来的地方,在这里用户对设备的M序列类型进行定义。最下方有8个方框,表示一个字节的8位,这8位就组成了标题指示的M序列能力编码识别字(M-sequence capability)。这个编码识别字就是指示,当前设备所使用的M序列类型,并指示M序列内OD字节的数量。

编码识别字被四种颜色划分成四个区域,bit7-6保留不用,bit5-4指示设备处在与操作模式下使用的M序列类型,bit3-1指示设备在操作模式下使用的M序列类型,bit0指示设备是否支持ISDU。

这里我们来看一下官方文档中对不同的M序列类型的编码值。在M序列与M序列类型那一期我们了解到,即便是所谓的可变长度M序列类型,OD的数量也只能在1、2、8、32这几个数量中进行选择,观看上图的编码值也能看到,OD的数量都是在这四个数值中选取。

IO-Link通信笔记(三)——M序列与M序列类型

通过这两个表格可以知道,预操作模式只能选择Type_0、Type_1_2、Type_1_v(8bytes)、Type_1_v(32bytes)这几个类型,对应的编码值分别是0-1-2-3。操作模式虽然可选的类型很多,但是仔细观察发现,这些编码值都是根据OD字节数量多少来定义的,1字节OD2字节以内PD,编码值就是0;1字节OD大于2字节PD,编码值就是4;2字节OD编码值就是5;8字节OD编码值就是6;32字节OD编码值就是7;

最后,预操作模式编码值、操作模式编码值、ISDU支持性编码值三部分组合在一起,构成M序列能力编码识别字。这个编码识别字会储存在直接参数页1的对应位置上,主站通过读取M序列能力编码识别字,就可以确定从站的M序列类型与使用的OD字节数量。而编码字的数值,也可以在IODD文件中以十进制数形式有所显示。

二、交互数据字节数量的确定

看到这里就出现了IOL的两个名词:操作模式(operate)与预操作模式(preoperate)。

在主从刚刚建立链接时,主站会发送系统命令,让从站的系统状态机从空闲模式切换到预操作模式,在该模式下,主站只会读取从站的直接参数页1,获取设备的信息,这其中包括从站最小循环交互周期时间、M序列能力、版本号、供应商ID、设备ID以及PDin和PDout字节数量。在获取完毕这些信息之后,主站发送命令让从站的系统状态机切换到操作模式,开始周期性的ISDU交互。

看到这里,主站如何获取从站的PD字节数量这一问题自然而然就得到了解答,即从站程序在编写过程中,由开发人员定义使用的PD字节数量,将其填装金直接参数页1的对应位置上,在预操作模式中将这些信息读取到,后续主站根据这些信息来完成对从站M序列内信息的解析。

三、从站确定主站信息

上面已经知道了主站如何确定从站的M序列类型等信息,那么从该要怎么确定主站的这些信息呢?

因为IOL的主站发起交互的机制,从站不会像主站那样,通过指令获取主站信息。所以,在主站获取到从站的信息后,主站就按照刚刚获取的信息去使用与从站相同的M序列类型。而这些信息都是从站自己定义的。那么,从站就是通过获取接收到的主站M序列字节数量,同设备内部定义的字节数量之和作比较,来确定主站发送的M序列类型是否正确。

假如设备定义OD数量为1,PD数量为4,那么主站发送的报文,在无PDout读时报文有2字节,在无PDout写时有3字节,在有PDout读时有6字节,在有PDout写时有7字节。设备会先确定主站MC字节中读写方向来判断携带的OD字节数量,再根据内部定义的PDout字节数量组合成应该收到的报文字节数量,在接收时,与记录的字节数量做对比,再结合主站CKT字节b it7-6的编码指代的总M序列类型,就可以判定接收到的主站报文的M序列类型是否正确。


以上是本节的全部内容,如果各位读者仍然存在疑惑可以私信发送问题,笔者会一一解答并积累一期文章的内容更新出来。

笔者内容也许会存在错误,欢迎志同道合的开发者一起讨论。我们共同进步!喜欢我的文章请关注我的微信公众号,我会不定期更新更多干货知识!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、M序列能力编码识别字
  • 二、交互数据字节数量的确定
  • 三、从站确定主站信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档