当前位置: 首页 > news >正文

IgH初始化--未接从站

ec_master_idle_thread流程

第一次循环

ec_fsm_master_state_start封装报文,待发送

设置下一状态机ec_fsm_master_state_broadcast

ecrt_master_send发送ec_fsm_master_state_start封装的报文

ecrt_master_send时,检测到master绑定的网卡处于link down状态,则给报文设置datagram->state = EC_DATAGRAM_ERROR;

根据master是否idle,选定一个延时时间,延时时间到后,执行第二次循环。

第二次循环

执行ec_fsm_master_state_broadcast函数

fsm->rescan_required,不需要

master->slave_count,没扫描到从站,所以是0

所以ec_fsm_master_state_broadcast中的if条件不好被执行,最终执行最后的ec_fsm_master_restart的函数,在ec_fsm_master_restart函数中将状态机设置为ec_fsm_master_state_start并立即执行。

root@ubuntu:/home/gsf# while true;do dmesg -c;sleep 1;done
[  396.698450] ec_master: loading out-of-tree module taints kernel.
[  396.700257] EtherCAT: Master driver 1.5.2 unknown
[  396.700271] geshifei ec_fsm_master_reset 128:  set fsm->state to ec_fsm_master_state_start
[  396.700272] geshifei ec_fsm_coe_init 175:  set fsm->state to null
[  396.700272] geshifei ec_fsm_soe_init 109:  set fsm->state to NULL
[  396.700273] geshifei ec_fsm_change_init 70:  set fsm->state to NULL
[  396.700274] geshifei ec_fsm_sii_init 78:  set fsm->state to NULL
[  396.700274] geshifei ec_fsm_sii_init 78:  set fsm->state to NULL
[  396.700336] EtherCAT: 1 master waiting for devices.
[  396.707191] ec_generic: EtherCAT master generic Ethernet device module 1.5.2 unknown
[  396.707198] EtherCAT: Accepting 6C:24:08:29:52:19 as main device for master 0.
[  396.707209] ec_generic: Binding socket to interface 2 (enp4s0).
[  396.754697] EtherCAT 0: Starting EtherCAT-IDLE thread.
[  396.754877] geshifei Idle thread running with send interval = 5000000 us, max data size=7931618
[  396.754881] geshifei Idle thread running with send interval = 5000000 us, max data size=7931618
[  396.754895] geshifei ec_master_idle_thread 1603: exec ec_fsm_master_exec
[  396.754897] geshifei ec_fsm_master_exec 163:  exec fsm->state
[  396.754898] geshifei ec_fsm_master_state_start 210:  begin...
[  396.754900] geshifei ec_fsm_master_state_start 257:  set fsm->state to ec_fsm_master_state_broadcast
[  396.754901] geshifei ec_master_idle_thread 1606: exec ec_master_exec_slave_fsms
[  396.754902] geshifei ec_master_exec_slave_fsms 1477: begin...
[  396.754903] geshifei ec_master_exec_slave_fsms 1531: master->fsm_exec_count=0  count=0
[  396.754904] geshifei ec_master_idle_thread 1614: exec ec_master_queue_datagram
[  396.754905] geshifei ec_master_idle_thread 1617: exec ecrt_master_send
[  396.754906] geshifei ecrt_master_send 2518:  set datagram->state = EC_DATAGRAM_ERROR

http://www.dtcms.com/a/333276.html

相关文章:

  • 一站式学会——进制转换与位运算符详解(通俗易懂)
  • ElasticSearch不同环境同步索引数据
  • 20250815在荣品RD-RK3588-MID开发板的Android13下调通TP芯片FT8206
  • linux安装docker-compose
  • STM32在使用DMA发送和接收时的模式区别
  • 使用C# 高效实现 Word 文档内容查找与替换的6种方法
  • Java 调用 Python 脚本:实现 HelloWorld
  • 数据驱动测试提升自动化效率
  • 车辆减振器异响测试系统
  • [Pyro] 基础构件 | 随机性sample | 可学习参数param | 批量处理plate
  • find命令解读
  • 重塑工业设备制造格局:明远智睿 T113-i 的破局之道
  • 2025北京世界机器人大会:技术、场景、生态实现三重跃迁
  • ARM+OpenPLC 组合详解及经典示例
  • MySQL → SQL → DDL → 表操作 → 数据类型 知识链整理成一份系统的内容
  • 基于 ArcFace/ArcMargin 损失函数的深度特征学习高性能人脸识别解决方案
  • pandas中df.to _dict(orient=‘records‘)方法的作用和场景说明
  • 题解:CF2127D Root was Built by Love, Broken by Destiny
  • CUDA × JetPack 初学者全指南
  • Python工具箱系列(六十四)
  • go语言运算符·关系运算符
  • sql CURRENT_TIMESTAMP
  • 【DSP28335 事件驱动】唤醒沉睡的 CPU:外部中断 (XINT) 实战
  • java注释功能
  • ESP32-C3_TCP
  • Linux操作系统从入门到实战(二十二)命令行参数与环境变量
  • 信刻光盘摆渡系统案例——某省纪委
  • 微服务容错与监控体系设计
  • 生存主义:隐形异变 (Survivalist: Invisible Strain)免安装中文版
  • Leetcode 最小生成树系列(1)