尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
CANopen 某志驱动器, 撞击掉使能恢复正常状态
CANopen 某志驱动器, 撞击掉使能恢复正常状态前言数据手册介绍控制状态机 0x6040轮廓位置模式调试过程的怀点绝对位置模式下执行到指定位置相对位置模式下执行到指定位置撞击后自动复位处理函数电机清故障码清警告码个人分析AI协助分析为什么第二次必失败快速验证方法修改之后代码“完美解决-无论多少次撞击掉使能都恢复正常状态”总结一、整体流程(4 大步骤)二、逐步骤指令明细(你代码真实执行顺序)前言在自动化设备调试中,我们经常会遇到这样的场景:设备发生撞机保护后,第一次复位一切正常;但第二次撞机后,电机就再也使能不上了。最近在某志CANopen 驱动器的摆臂轴调试中就遇到了这个问题。撞击掉使能后,上位机下发恢复指令,下位机执行回原流程,但摆臂电机始终无法进入Operation Enabled状态。抓包发现状态字死死卡在0x0008。本文将完整复盘这次排查过程,重点解析CiA402 标准状态机与厂商自定义寄存器(0x200B/0x2006)混用带来的致命陷阱,并给出经过验证的非阻塞式清故障+使能代码模板。数据手册介绍控制状态机 0x6040轮廓位置模式调试过程的怀点以下为绝对位置模式和归零模式的代码,当时怀疑过有问题,但是第一次能够正常运行,为什么第二次不能正常的执行了呢?绝对位置模式下执行到指定位置/* 绝对位置模式下执行到指定位置*/voidAxis_Run_inABPositionMode(Axis_Var*Axis,uint32_tProfileVelocity,int32_tTargetPosition){switch(Axis-RunState){case0://增加这个步骤是为了Axis-RunState++;break;case1:Axis-i32TargetPosition=TargetPosition;Axis-u32ProfileVelocity=ProfileVelocity;Axis-RunState++;break;case2:Axis-i8Mode=0x01;Axis-u16ControlWord=0x1F;Axis-RunState++;break;case3:Axis-u16ControlWord=0x0F;Axis-RunState++;break;case4:/* 给电机一个状态变化的时间*/if(++Axis-RunTimes=50){Axis-RunTimes=0;Axis-RunState++;}break;case5:if(((Axis-u16DSPStatus(13))3)(abs(Axis-i32ActualPosition-Axis-i32TargetPosition)1000));/* 到位*/elseif((Axis-u16DSPStatus(19))9);/* 堵转*/elsereturn;Axis-RunState++;break;case6:Axis-RunState=RUN_FINISH;break;default:break;}}相对位置模式下执行到指定位置/* 相对位置模式下执行到指定位置*/voidAxis_Run_inRLPositionMode(Axis_Var*Axis,uint32_tProfileVelocity,int32_tTargetPosition){switch(Axis-RunState){case0:Axis-i32TargetPosition=TargetPosition;Axis-u32ProfileVelocity=ProfileVelocity;Axis-RunState++;break;case1:Axis-i8Mode=0x01;Axis-u16ControlWord=0x5F;Axis-RunState++;break;case2:Axis-u16ControlWord=0x4F;Axis-RunState++;break;case3:/* 1S间隔*/if(++Axis-RunTimes=100){Axis-RunTimes=0;Axis-RunState++;}break;case4:/* 到位判断*/if((Axis-u16DSPStatus(13))3);elsereturn;Axis-RunState++;break;case5:Axis-RunState=RUN_FINISH;break;default:break;}}撞击后自动复位处理函数voidSystem_rehome(void){staticuint8_trehome_state=0;static_Axis_ AxisID=_Axis_Y;staticuint16_ttimes=0,errtimes=0,cnt=0,rehometimes=0;//计数器if(++cnt20)return;cnt=0;switch(rehome_state){case0:if(1==Axis_ClearFault(AxisID)){rehome_state++;}break;case1:if(1==Axis_ClearWarnig(AxisID)
RELATED

相关推荐

终极窗口置顶神器:AlwaysOnTop完整使用指南,免费提升工作效率300%

终极窗口置顶神器:AlwaysOnTop完整使用指南,免费提升工作效率300%

终极窗口置顶神器:AlwaysOnTop完整使用指南,免费提升工作效率300% 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 你是否经常在Windows系统中需要同时查看…

📅 2026/9/10 16:35:59
MCP实战指南,mcp视频教程,2小时学透mcp

MCP实战指南,mcp视频教程,2小时学透mcp

文章目录MCP课程概述MCP能干什么?MCP是什么?那些平台支持MCP查询MCP应用场景使用前的准备工作Cursor使用MCPCline中使用MCPMCP的工作原理MCP的工作流程手动开发MCP项目server.py的构建大众用户使用MCP热门MCP Servers 推荐A2A协议:开启Agent间…

📅 2026/9/10 16:37:29
AI程序员Devin的现实挑战与人类开发者应对策略

AI程序员Devin的现实挑战与人类开发者应对策略

1. 当AI程序员Devin遭遇现实:一场技术理想主义的挫败去年三月,当Cognition公司高调发布"全球首个AI程序员"Devin时,整个科技圈为之震动。这个号称能独立完成编码、调试、部署全流程的AI工程师,以每月500美元的定价向人类…

📅 2026/9/10 16:50:12
MORE NEWS

更多资讯

📰

企业级AI开发:从单点工具到智能流水线的演进与实践

1. 企业级AI开发工作流演进:从单点工具到智能流水线的必然趋势十年前我刚入行AI开发时,整个团队还在用Excel表格管理模型训练任务,每个数据科学家守着各自的Jupyter Notebook单兵作战。直到某次紧急项目交付前夜,当发现特征工程和…

📰

hyperframes:帧序号驱动的HTML视频动效新范式

1. “hyperframes”不是新框架,而是HTML动效合成的底层思维重构最近在几个前端技术群和设计开发交叉社区里,“hyperframes”这个词突然高频出现,但翻遍npm、GitHub Trending、MDN文档甚至W3C草案,都找不到一个叫“hyperframes”的…

📰

Android Studio复刻微信界面:Fragment+RecyclerView实战与避坑指南

简介:这份资源面向具备一定 Java 基础、希望借助 Android Studio 实践界面开发的初学者与进阶学习者,围绕仿微信客户端界面这一典型场景,帮助读者打通从布局搭建到交互细节的完整链路。压缩包共 1041 个文件,约 24.25MB&#xff0…

📰

数据中心有源电缆(AEC)技术解析与应用实践

1. 数据中心有源电缆(AEC)的技术革命在数据中心流量每年增长超过25%的背景下,传统铜缆的传输瓶颈日益凸显。有源电缆(Active Electrical Cable,简称AEC)通过在电缆两端集成信号调理芯片,实现了铜…

📰

DSP芯片开发实战:存储架构、DMA与实时性优化入门

1. 先别急着写代码,搞清楚DSP到底指什么刚接触这块的时候,我被问得最多的一句话是「学DSP是不是得先把信号与系统啃一遍」。问这话的人里,有一半连示波器都没怎么摸过,另一半则是从单片机转过来、看到「哈佛架构」「流水线」「EDM…

📰

EPSON机器人指令集实战:系统命令、运动控制与I/O通信避坑

简介:《EPSON爱普生机器人指令集》是一份面向工业机器人编程、调试与维护人员的指令速查资料,聚焦EPSON RC环境下常用命令的语义、参数与返回值,便于读者在程序编写和现场调试时快速定位所需指令。内容按系统管理、机器人控制、运动控制三类展…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬