《alios things开发系列》Canopen开发

      大家好,我是阿桃,一个想成为被点赞关注的程序员。

     工控行业、物联网行业、机器人行业软件开发可联系我

前言

最近因项目需要在alios上平台开发Canopen主站应用,花了两天时间研究了一下,比起Modbus的话Canopen相对会复杂一些,毕竟alios采用的Canopen协议栈是第三方的Canopen协议栈Canfestival。

正文

阿里云那边提供的针对合作商的alios中对canopen进行了封装并只提供静态库,由于关于在alios上开发Canopen的资料还比较少所以只能看它的源码是如何调用,并且它里面主站的源码耦合度比较高、源码的API说明也没用,比起alios上的modbus这个让我觉得更加麻烦,总感觉开发效率被卡住了。

来说说我的一个开发思路吧。

一、熟悉Canopen协议

开发的前提了解协议栈,CAN本身实现了物理层以及链路层协议,Canopen是基于CAN之上的应用层协议,关于如何学习Canopen的教程,我看了下网上的资料,看一下下面这个博主的博客就能差不多了解了,包括Canfestival的简单入门,更具体的话需要去看一下源码中提供的sample。

https://blog.csdn.net/ybhuangfugui/category_9278739.html

总而言之,快速开发的话,需要重点了解SDO修改对象字典的内容、PDO实时数据交互的控制、NMT状态机的切换这些的作用,CAN相对于RS485在安全性、可靠性等方面都比较高,因为RS485就包含物理层,而CAN本身包含链路层的优先级总裁、碰撞检测这些机制,并且Canopen应用层协议的一些故障修复机制我认为也做的比较好。

二、熟悉如何与Canopen从站设备交互

一般的从站设备都会有关于Canopen技术指导手册,一般还会给出一些像CAN网络负载的最优配置、如PDO实时数据交互的时间限制等,还有设备子协议的对象字典如何交互,然后根据你自己的应用层去根据这些数据进行逻辑处理。

三、研究alios提供的Canopen接口

这部分是比较麻烦的,一个是直接跟阿里那边相关负责人交流,阿里云那边会有个合作公司优先级,可能回复效率会有点问题,另外就是解析alios提供的Canopen接口调用,我是花了大半天时间才看懂它的一个Canopen主站框架,耦合较高,然后在它的基础上修改我应用的主站。

文章每周持续更新,原创虽短,确不容易,欢迎大家点赞关注,一起交流技术一起提升成长。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值