IO-Link通信笔记(十一)——直接参数页

主从之间在建立连接后,主站要做的第一件事就是操作直接参数页1。在这一步,主站要获取从站的信息,用来将连接的设备与IODD信息做匹配以及主站根据从站循环周期进行M序列循环,同时主站也要通过直接参数页1去操作从站。

在这里插入图片描述

通过官方文档给出的表格可以知道,直接参数页内每个地址表示的功能,这里我们着重介绍直接参数页1,这是IOL运行最重要的一部分。至于直接参数页2,这是留给设备开发使用的,开发人员可以使用也可以考虑不使用,在使用时,按照参数页通信通道+地址的方式读写即可。所以下面我们依次看一看直接参数页1内每一个部分的内容。

·MasterCommand

直接参数页1地址0x00,为主机命令,是主站下发给设备,变更设备运行状态的指令。其指令包含:
在这里插入图片描述

上述指令中较为重要的就是最后两个,从站能否正常运行,完全取决于最后两条指令能否顺利发送到从站。从站在操作直接参数页1期间处在startup状态,这期间不能上报非通知类事件,不能进行ISDU交互,一般不能进行有效的PD交互。必须处在operate状态下才可以完整进行,而从站的状态切换又是完全取决于主站。

·MasterCycleTime

直接参数页1地址0x01,在这个位置上,主站会将主站的M序列循环周期事件写入进去,其作用是,给从站一个指示时间,当从站在超过3个该时间之后仍然没有收到一条M序列,从站需要认定与主站断开连接,切换设备状态到FallBack或其他处理。
在这里插入图片描述

不过这个位置的数据比较特殊,其包含了两部分,第一部分是时间基准,是IOL主从提前定义好的时间基准的代码。00表示间隔0.1ms时基,时基基础值为0ms;01表示间隔0.4ms时基,时基基准值为6.4ms;10表示间隔1.6ms时基,时基基准值为32.0ms;11保留不做使用。
第二部分是时基系数,数值范围0-63,表示有多少个时基,在解析时,让该系数值乘上时基代码对应的时基,再加上一个时基基础值。以0100 0111为例,时基代码01,表示实际间隔为0.4ms,时基基础值6.4ms,乘数为7。那么主站M序列循环时间就是:6.4+0.4*7 = 9.2ms。
在这里插入图片描述

·MinCyclTime

直接参数页1地址0x02,主站只读此地址数值,用来获取从站的M序列循环周期,此后主站会兼顾从站的性能,以从站所能接收的循环周期性能来发送M序列循环。虽然在直接参数页1内的位置落后于MasterCycleTime,被人造成一个该指令会在主机循环时间之后交互的错觉,这个参数在主机参数之后,那么主站该怎么确定循环周期时间呢?

其实获取从站最小循环周期时间这一步,早在建立连接握手期间就已经完成了,主站在握手序列发送的第一个字节0xA2,其含义就是:读取直接参数页1内0x02地址信息,只要从站能够正确回复,那么主站立即就确认了从站的最小循环时间。
·M-sequenceCapability
直接参数页1地址0x03,向主站展示从站的M序列能力编码识别字,在第六期我们已经清楚知道编码识别字包含的数值所对应的M序列能力内容,在这里,主站在读取了编码识别字之后,按照同样定义的解析方式反向解析出内容,明确从站的M序列信息。其详细内容请翻看第六期详细学习。

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

·RevisionID

直接参数页1地址0x04,表示从站协议栈使用的版本,在从站开发期间请将其固定为0x11。正常情况下只读,但是IOL定义其部分情况下可写,由主站更改其内容,即在更新固件期间将IOL协议栈的版本进行更新,该版本号出现差异,可由主站修改改版本号。然而个人认为,完全可以在程序编辑过程中有开发者管理版本号,减少代码开销,也因此非常多的从站设备都是不支持写入

·ProcessDataIn

直接参数页1地址0x05,表示设备传输的PDin字节的数量,主站通过读取该参数明确,避免在通信期间发生错误。详细内容请翻看第六期内容。

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

·ProcessDataOut

直接参数页1地址0x06,表示设备传输的PDout字节的数量,主站通过读取该参数明确,避免在通信期间发生错误。详细内容请翻看第六期内容。

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

·VendorID

直接参数页1地址0x07与0x08,0x07为高八位,0x08为低八位,两个字节组合表示IOL设备供应商全球唯一ID,主站设备会读取该参数作为确定设备身份的一个环节,如果上位设备做了功能,读取到该参数与IODD定义的VendorID不匹配,主站设备将放弃连接。
该ID为IOL联盟授权,请所有IOL设备供应商在生产制造IOL设备之前,务必在IOL联盟申请获得该ID,避免自定义ID号后产生纠纷造成财产损失。

·DeviceID

直接参数页1地址0x09、0x0A、0x0B,0x09为第一字节,0x0A为第二字节,0x0B为第三字节。三个字节组合成为供应商内部定义的唯一设备ID,用来区分制造的不同设备。主站设备会读取该参数作为确定设备身份的一个环节,如果上位设备做了功能,读取到该参数与IODD定义的DeviceID不匹配,主站设备将放弃连接。

·FunctionID

直接参数页1地址0x0C与0x0D,0x0C为高八位,0x0D为低八位。该参数在目前版本中没有使用,为保留项。

·SystemCommand

直接参数页1地址0x0F,在设备不支持ISDU传输时,用来存储主站发送的系统命令,参与从站设备的运行,若从站支持ISDU,主站务必将系统命令交互在ISDU中以避免出现错误。
这里的系统命令,是设备开发人员可以定义的参与设备运行的指令,例如LED闪烁控制指令等一些单次执行动作的指令,包括ISDU中也有相同的参数空间执行相同的功能,可以灵活的控制设备运行。

以上是本节的全部内容,如果各位读者仍然存在疑惑可以私信发送问题,笔者会一一解答并积累一期文章的内容更新出来。
笔者内容也许会存在错误,欢迎志同道合的开发者一起讨论。我们共同进步!
喜欢我的文章请关注我的微信公众号,我会不定期更新更多干货知识!
在这里插入图片描述

  • 24
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值