同步(SYNC),该报文对象基于生产者/消费者模式,由SYNC生产者周期性的广播,作为网络基本时钟,实现整个网络的同步传输,每个节点都以该同步报文作为同步PDO触发参数,因此该同步报文的COB-ID具有比较高的优先级以及最短的传输时间。
同步报文一般由主站进行发送,原理比较简单,只要按照字典中配置的周期,循环发送同步报文即可。
/* 启动同步报文 */
void startSYNC(CO_Data *d)
{/* 如果同步报文定时器已经启动,则先停止 */if(d->syncTimer != TIMER_NONE){stopSYNC(d);}/* 按索引号0x1005和子索引号0注册字典入口的回调函数 */RegisterSetODentryCallBack(d, 0x1005, 0, &OnCOB_ID_SyncUpdate);/* 按索引号0x1006和子索引号0注册字典入口的回调函数 */RegisterSetODentryCallBack(d, 0x1006, 0, &OnCOB_ID_SyncUpdate);/* cob-id必须合法,sync配置字典时为0x40000000 & cob-id */if(*d->COB_ID_Sync & 0x40000000ul && *d->Sync_Cycle_Period){/* 设置定时发送同步报文 */d->syncTimer = SetAlarm(d, 0, &SyncAlarm, US_TO_TIMEVAL(*d->Sync_Cycle_Period), US_TO_TIMEVAL(*d->Sync_Cycle_Period));}
}
/* 同步报文定时事件回调函数 */
void SyncAlarm(CO_Data *d, UNS32 id)
{sendSYNC(d);
}




CANOpen同步报文相关推荐

  1. CANOpen紧急报文

     紧急报文,当设备内部发生错误时触发该对象,即发送设备内部错误代码. 在canopen内部维持一个错误表,对发生的错误进行记录.当错误发生后从表中查看该错误是否已经发生并未被解决时,则报告主站:如果 ...

  2. CANOpen网络管理报文

    网络管理报文用于监视和设置节点的运行状态,心跳机制和寿命保护机制都基于该报文. /* 改变节点状态 */ UNS8 masterSendNMTstateChange(CO_Data *d, UNS8 ...

  3. CANOpen报文类型

    CANOpen应用层协议细化了CAN总线协议中关于标识符的定义.定义标准报文的11比特标识符中高4比特为功能码,后7比特为节点号,重命名为通讯对象标识符(COB-ID). 功能码将所有的报文分为7个优 ...

  4. canopen 报文格式_CANopen协议报文处理

    CAN 报文由 7 个不同的位域组成,而 CANopen 就是规定其中的仲裁域(11 位标识符) 和数据域(8 字节数据) 的使用情况,11 位标识符和 8 字节数据在 CAN 帧中的位置如下图所示: ...

  5. canopen 报文格式_CANopen协议介绍

    1.CANopen协议简介 从OSI 网络模型的角度来看,CAN总线只定义了OSI网络模型的第一层(物理层) 和第二层(数据链路层),而在实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软 ...

  6. CANopen从站伺服配置报文及使用

    CANopen从站伺服配置报文及使用 步骤1:切换到预操作态 使PDO进入预操作态(在预操作状态下才可修改参数,否侧容易报错): 主站发送报文:0x000 0x80 0x01(节点号) 步骤二:失能P ...

  7. 【转】CANOPEN总线的相关问题点整理分享*****

    CANopen 是一个基于 CAN(控制局域网)串行总线系统和 CAL(CAN 应用层)的高层协议.CANopen 通讯协议 CiA DS-301 包括周期和事件驱动型通讯,不仅能够将总线负载减少到最 ...

  8. CANOpen状态机

    CANopen 的每一个节点都维护了一个状态机.该状态机的状态决定了该节点当前支持的通讯方式以及节点行为. 节点在不同的状态下支持不同的报文通讯 初始化:bootup报文(lifeguard的一种) ...

  9. CANopen笔记2

    PDO 过程数据对象用于在节点之间传送过程数据,如I/O模块I/O状态读取和设定,模拟量采集和模拟量输出等等,协议考虑从机硬件限制最多支持4组PDO,每组包含一个RPDO和一个TPDO.The Gol ...

最新文章

  1. Tengine HTTPS原理解析、实践与调试
  2. 神经网络算法学习---mini-batch++++mini-batch和batch的区别
  3. ​Web安全测试解决方案
  4. Linux软件安装及修改软件源
  5. 邪恶力量第一至九季/全集Supernatural迅雷下载
  6. 神经网络如何利用C语言实现动画?
  7. 学计算机去一线城市,这5个“新一线”城市在线抢人,选择去这上大学非常有前景!...
  8. PDF,图片转word
  9. 如何转型成为数据分析师
  10. 苹果ajax请求,请求苹果系统请求ajax提示没找到配置文件
  11. 点滴生活感悟(更新至29)
  12. AcWing 1129 热浪
  13. C盘系统文档迁移工具,一键解决重装,C盘爆满
  14. WordPress搭建“外贸独立站”完整操作教程
  15. 如何添加和删除字段?
  16. error(nargchk(1,2,nargin))
  17. minio java的lifecycle
  18. 中电十所提前批面经(通信算法岗)
  19. NLP强者!小i机器人再入“AI最佳掘金案例年度榜单”
  20. 计算机网络-——网络层

热门文章

  1. Qt工作笔记-仿大佬风格代码(使用#ifdef Q_OS_WIN32)
  2. Java高级语法笔记-文件读写
  3. 3dcaptcha php,php实现的Captcha验证码类实例
  4. linux cpu load 详解,理解linux cpu load - 什么时候应该担心了
  5. android 视频录制小例子,android 录制视频实例 VideoRecordDemo
  6. taylor+swift纽约公寓_国际巨星Taylor Swift有多爱豪宅?才30岁就有8套豪宅
  7. shell与python的优劣_论python 和 shell的实用性
  8. pixel 6 root
  9. python调用存储过程怎么传多个参数_Python - pyodbc调用具有参数名称的存储过程...
  10. (软件工程复习核心重点)第六章实现和测试-第五节:确认测试