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

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

3天内不再提示

睿远研究院丨IO-Link规范解读(六):主从站状态机解析

传感器专家网 2025-10-28 17:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

书接上文,今天我们就来好好聊聊主从站的DL-Mode状态机,还请各位童鞋前排坐好!

1主站状态机解析

wKgZO2j7UaiAdV8JAAK_0Kf7CNA656.png

主站的DL-Mode状态机有5个大状态,也是我们很熟悉的建立通信、开始、预操作、操作状态,各个状态之间通过一些命令来切换。

wKgZO2j7UaiAdBpyAAKmID3EEQY032.png

我们看一下每个事件的详细动作:

1

T1

从Idle_0到EstablishComm_1。清除wakeup的重试次数为0

2

T2~T4

从EstablishComm_1到Startup_2。依次以COM3~COM1来传出,一旦传输成功,则激活消息处理程序并配置为COMx

3

T5

从EstablishComm_1到Idle_0。三个速率都未成功,则退回Idle状态,并通知SM模块进入INACTIVE

4

T6

从Startup_2到Preoperate_3。SM模块请求PREOPERATE状态。激活OD、ISDU、Event三个模块进入Active状态,将MSG处理模块切换到PREOPERATE状态

5

T7

从Preoperate_3到Startup_2。 SM模块请求STARTUP状态。将MSG处理模块切换到STARTUP状态,去激活OD、ISDU、Event三个模块,返回STARTUP状态给SM模块

6

T8

从Preoperate_3到Idle_0。去激活所有处理程序,返回INACTIVE状态给系统管理

7

T9

从Preoperate_3到Idle_0。MSG检测到通信中断,则去激活所有处理程序,通知SM模块相关状态

8

T10

从Preoperate_3到Operate_4。 SM模块请求OPERATE状态。激活PD处理程序,将MSG处理模块切换到OPERATE状态;通知SM模块,DL已经进入OPERATE状态

9

T11

从Startup_2到Operate_4。 SM模块请求OPERATE状态。激活OD、ISDU、Event三个模块,将MSG处理模块切换到OPERATE状态

10

T12

从Operate_4到Startup_2SM模块请求STARTUP状态。将MSG处理模块切换到STARTUP状态,去激活OD、ISDU、Event三个模块,返回STARTUP状态给SM模块

11

T13

从Operate_4到Idle_0。SM模块设置SIO模式,去激活相关模块,返回INACTIVE状态

12

T14

从Operate_4到Idle_0。 MSG处理模块通过SM模块,与从站通信中断。去激活所有处理程序,返回COMLOST状态给SM模块

2 从站状态机解析

wKgZO2j7UaiAanDhAAIHnZ0zDJ0927.png

从站的状态机,看起来是不是和主站的很类似,但从站由于是被动式等待,它不像主站有主动发送3次报文的建立通信过程,它直接等待主站发送某一个速率的报文,一旦匹配就建立连接。其他三个状态和主站基本一致,它的切换主要是主站来发起切换命令。

wKgZO2j7UaiATMueAARou4zJ29c209.png

具体的事件如下:

1

T1

从Idle_0到EstablishComm_1,当检测到唤醒电流脉冲时,激活消息处理模块并切换状态;DL_Mode切换到ESTABCOM状态,通知SM模块

2

T2

从EstablishComm_1到Startup_2,当成功建立COM3、COM2或COM1模式中的任意一个传输速率时,切换状态。激活OD和Command模块,DL_Mode切换到COM1、COM2或者COM3,通知SM模块进行Mode的切换

3

T3

从Startup_2到Preoperate_3,当收到MCmd_PREOPERATE命令时,切换状态;当检测到非法的M序列类型时,返回到Startup_2状态

4

T4

从Preoperate_3到Operate_4,当收到MCmd_OPERATE命令时,切换状态;激活PD处理模块,DL_Mode通知SM模块

5

T5

从Startup_2到Operate_4,当收到MCmd_OPERATE命令且设备支持V1.0模式时,切换状态到Operate_4;激活PD处理模块,ISDU处理模块,Event处理模块,DL_Mode通知SM模块

6

T6

从Preoperate_3到Startup_2,当收到MCmd_STARTUP命令时,将状态设置为Startup_2;去使能ISDU、Event模块

7

T7

从Operate_4到Startup_2,当收到MCmd_STARTUP命令时,将状态设置为Startup_2;将模块(PD、ISDU、Event)置为非活动状态

8

T8

从Preoperate_3到Idle_0,当收到MCmd_FALLBACK命令时,等待TFBD的时间,然后将所有模块置为非活动状态,状态设置为Idle_0

9

T9

从Operate_4到Idle_0,当收到MCmd_FALLBACK命令时,等待TFBD的时间,然后将所有模块置为非活动状态,状态设置为Idle_

10

T10

从EstablishComm_1到Idle_0,当唤醒过程失败后,经过一段时间TDSIO后,从站进入SIO模式,将所有模块置为非活动状态,状态设置为Idle_0

11

T11

从Operate_4到Startup_2,当消息处理模块(MessageHandler)检测到非法的M序列类型时,将模块(PD、ISDU、Event)置为非活动状态,状态设置为Startup_2。DL_Mode通知SM模块进入Startup状态

12

T12

从Preoperate_3到Startup_2,当消息处理模块(MessageHandler)检测到非法的M序列类型时,将ISDU和Event handler置为非活动状态,状态设置为Startup_2;DL_Mode通知SM模块进入Startup状态

结语

如果大家正在使用睿远的从站协议栈,应该会发现其中有两个判断DL-Mode的函数:

wKgZO2j7UamAIQd_AADd6xVZXRU264.png

第一个是判断当前是否为idle阶段,如果是idle阶段,在收到唤醒报文后,开始尝试建立连接;另一个就是判断当前DL的Mode是在哪个阶段,方便用户判断当前状态。

好了,本篇把主站和从站的DL-Mode状态机详细解析了一遍,相信大家对DL-Mode这个模块应当会更加熟悉了。下一期,我们就开始介绍最最重要的,IO-Link的消息模块。

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

    关注

    2

    文章

    497

    浏览量

    28889
  • IO-Link
    +关注

    关注

    2

    文章

    195

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

    前言 上次讲到CM模块的内容,那么今天聊聊整个参数模块的内容。 IO-Link中,我们聊参数,到底在聊啥呢,参数其实是我们口语化的名词,它的本质前面讲了就是存储在从或者主站内部的ISDU内容,一个
    的头像 发表于 12-12 21:51 4628次阅读
    <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规范解读(十二):SM模块与CM模块解析

    Manager,负责协调主的各个应用程序模块,并根据端口状态启动或停止其他应用程序。 1 System Manager模块 System Manager 模块作为IO-Link最核心的模块,承上启下,把从最底层
    的头像 发表于 12-04 18:27 4623次阅读
    <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模块<b class='flag-5'>解析</b>

    研究院IO-Link规范解读(十一):ISDU状态机与EVENT事件

    上篇我们介绍了ISDU的典型编码格式和应用案例,本篇我们就来详细介绍下,ISDU的状态机,并把EVENT事件的逻辑,给大家好好解析下。 1主ISDU状态机 如上图所示,ISDU的
    的头像 发表于 11-29 18:28 3118次阅读
    <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>与EVENT事件

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

    的参数。传感器的各项参数设置都要靠它,它不仅可以设置参数,也可以作为只读参数来读取,甚至可以作为命令,基本是无所不能了。 1 ISDU总览 ISDU与PD数据不同,在请求的状态下才会发起,一般由主发起相关请求,比如读ISDU和写ISDU。 ISDU的数据可以和PD数据一
    的头像 发表于 11-24 10:37 4196次阅读
    <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详解

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

    丢弃,减少后端工作量。 那么今天我们就来深入研究下,消息处理模块中提到的各类M-Sequence,以及主从的消息处理状态机!   1 M-Sequence Type 上回讲到主
    的头像 发表于 11-07 16:18 5792次阅读
    <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 与消息处理<b class='flag-5'>状态机</b>

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

    ,特别是固定的协议一般都有协议的报文头和报文尾,根据简单规则过滤该报文是否为合法报文,避免进一步的深度解析,减少MCU的处理压力。 1 M-Sequence定义 11.8 主与从的交互,通过一系列的消息来交换数据,因此我们称
    的头像 发表于 11-01 17:43 8874次阅读
    <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 通信的 “硬件底座”,它直接决定了系统的可靠性、抗干扰能力和部署灵活性。打个比方,就像盖房子,物理层就是地基和骨架,地基不稳、骨架不牢,房子肯定住着不踏实。本期我们
    的头像 发表于 10-21 17:26 2809次阅读
    <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 3946次阅读
    <b class='flag-5'>IO-Link</b><b class='flag-5'>规范</b><b class='flag-5'>解读</b>(五):数据链路层<b class='flag-5'>解析</b>

    STM32 Nucleo IO-Link开发套件技术解析

    适用于IO-Link的STMicroelectronics P-NUCLEO-IOD5A1 Nucleo套件由堆叠在NUCLEOG071RB开发板上的X-NUCLEOIOD02A1
    的头像 发表于 10-16 10:01 481次阅读
    STM32 Nucleo <b class='flag-5'>IO-Link</b>开发套件技术<b class='flag-5'>解析</b>

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

    前言 今天我们继续解读IO-Link 1.1.4规范,本篇文章将给大家介绍IO-Link技术的概览,包含IO-Link命名的含义、
    的头像 发表于 09-25 19:25 441次阅读
    <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>通信技术概述

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

      IO-Link 技术定义与组织规范 从今日起,小将开始长篇连载IO-Link规范解读系列文
    的头像 发表于 09-18 18:17 664次阅读
    <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>

    有奖直播 | @3/20 IO-Link:开启工业新时代的智能工业之旅

    工业自动化新风向!#IO-Link#技术正在重新定义智能制造!你知道它如何助力工业4.0吗?3月20日,大联大友尚集团携手意法半导体资深专家和IO-Link设计公司,做客#大大通直播间#,带你深度解析
    的头像 发表于 03-13 16:34 539次阅读
    有奖直播 | @3/20 <b class='flag-5'>IO-Link</b>:开启工业新时代的智能工业之旅

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

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

    Profinet协议IO-Link主站网关-三格电子

    Profinet协议IO-Link主站网关 型号:SG-PN-IOL-8A-001 产品用途 SG-PN-IOL-8A-001网关是Profinet从IO-Link的网关设备,
    的头像 发表于 01-07 16:26 1062次阅读
    Profinet协议<b class='flag-5'>IO-Link</b>主站网关-三格电子

    借助IO-Link收发器简化微控制器设计

    IO-Link是24 V、3线工业通信标准,支持工业从IO-Link之间的点对点通信,进而与更高级别的过程控制网络进行通信。
    的头像 发表于 01-03 11:02 2207次阅读
    借助<b class='flag-5'>IO-Link</b>收发器简化微控制器设计