您的位置:主页 > 新闻中心 > 行业资讯 >

CANopen小我私家之所见,所想

行业资讯 / 2022-12-03 05:45

本文摘要:头条私信我:电子书可领取电工、电气、PLC零基础入门相关书籍加入圈子学习和阅读更多有用、实用的电工、电气PLC知识(此处已添加圈子卡片,请到今日头条客户端检察) TonyZhou: 一直想写一篇关于CANopen的文章,鉴于小我私家知识能力没有动笔,今天做了一番思想斗争,斗胆揭晓一下自己对CANOPEN的肤浅认识。 计划从销售人员,技术人员角度都分析一下CANopen的优势,文章可能没有什么章法,只是想到那里说那里,接待拍砖。

米乐m6官网app下载

头条私信我:电子书可领取电工、电气、PLC零基础入门相关书籍加入圈子学习和阅读更多有用、实用的电工、电气PLC知识(此处已添加圈子卡片,请到今日头条客户端检察)  TonyZhou: 一直想写一篇关于CANopen的文章,鉴于小我私家知识能力没有动笔,今天做了一番思想斗争,斗胆揭晓一下自己对CANOPEN的肤浅认识。  计划从销售人员,技术人员角度都分析一下CANopen的优势,文章可能没有什么章法,只是想到那里说那里,接待拍砖。配景:CANopen四问1. CANopen的起源,CANopen从何而来?德国Bosch公司于1983年研发CAN协议,用于汽车传动系统的网络通讯。

之后称为国际尺度ISO11898,现在CANopen由非营利组织CiA(CAN in Automaion)举行尺度的起草及审核事情,基本的 CANopen 设备及通讯子协定界说在 CAN in Automation (CiA) draft standard 301. 中。针对个体设备的子协定以 CiA 301 为基础再举行扩充,如针对 I/O 模组的 CiA401 及针对运动控制的 CiA402。2. CANopen硬件的优势?CAN协议最大的突出特点是错误检测,限制和处置惩罚。当CAN设备检测到总线错误时,会拒绝之前吸收到的位序列,然后发送“错误帧”,其完全由CAN芯片自己处置惩罚,不需要人为编程。

支持多主站,类似Profibus DP,总线上每个设备都是主站,也是从站,免去了人为仲裁的历程,利便用户开发。报文短帧结构,CAN报文通常只有8个字节,数据帧很是短,在抗滋扰能力上具有先天的优势。

解释一下,为什末短帧结构抗滋扰好?如果通讯报文长,发送一帧耗时也就长,加入遇到滋扰,辛辛苦苦好不容发送了一条报文,效果因为滋扰对方还没有收到,只能嚎啕大哭。成本低廉,CAN外设基本在现在主流芯片上都可以找到,20几块钱的MCU都支持CAN外设,有的还支持两个CAN。这里有CiA的努力推广作用。

3. CANopen软件优势?CANopen主要有CiA在推广,是非盈利组织,CANopen协议资料,网上一堆,任何人都可以下载到,我们常用的DS301(Draft Standand),DS402,CAN粉丝险些人手一本,犹如葵花宝典,一定要珍藏一本。CANopen协议开发,开源项目很是多,CanFestival就是其中一个,我做过移植,在步科MT4414TE-CAN触摸屏,用在8位单片机上,此源码有点泯灭资源,网上有许多基于MCU的精简源码。开发完整的CANopen协议栈,是很艰辛的事情,想要做好很是难。难点就在于你对CANopen协议的明白上,好比EMCY,复位节点,是否需要“NO Initialization”,heartbeat,Node guard是否需要?如那边理?这条不能算是其优点。

4. 为什么如此多公司在推广CANopen?CANopen对于运动控制来说是一款优秀的通讯协议,接纳了面向工具的一些设计思路,好比工具字典,历程数据工具(PDO),服务数据工具(SDO)等等。CANopen在欧洲已成为最普通的协议,任何一家自动化公司都有CANopen的通讯接口,也成了低配。低配并不代表欠好,只是说明其性价比更高。CANopen界说了完整的同步控制机制,使其成为主流的运动控制协议,除了在CAN总线上运行外,还被搬到了以太网上(CANopen over Ethernet),形成了著名的PowerLink,EtherCat工业以太网协议。

在这里多空话几句,所谓的运动控制总线尺度,没有多大意义,因为运动控制技术都掌握在各个厂商手里,每一个稍微大一点的厂商,都有自己的专用运动控制协议,如三菱的SSCNET,安川的MECHATROLINK,倍福的CANOPEN以及EtherCat,施耐德的CANopen,西门子的SiMotion,贝加莱的PowerLink,博世力士乐的SERCOS。由于CANopen(可以看DS402,伺服控制尺度)在运动控制的优势,尤其是同步控制,不管几流的厂商,在运动控制系统中,多几多少都加入了自己的工具,导致运动控制系统通常是关闭的,很少走互联门路,事实上要做到互联也很是难题。二三流厂家,开发自己的CANopen协议,凭据自己的需求,将其移至到差别的物理层上去运行,形成自己的运动控制系统,其性能优劣就在于其对CANopen协议的明白水平了。

基础:CANopen世界里的九个艰涩观点1. DCF是CAN网络的设置(Config)的数据存档文件。其作用不大,在Codesys软件里就有此选项。2. EDS电子数据表格,是形貌一台从站设备的属性,参数的文件,是对从站设备工具字典的形貌。好比一台伺服驱动器,如果其内部参数(每个参数对应工具字典中的一个位置,由index,sub-index决议)没有更改,其对应的EDS文件就不会更改。

多说一句,不是所有的主控制器都需要使用EDS,好比Beckhoff就不需要,他需要你对CANopen DS301,DS402足够熟悉,人工对齐设置;步科FD,JD伺服根据DS402尺度制定EDS文件,用户可直接设置,降低开发周期。3. 复位节点当设备遇到异常(如从站断线后重连,使用M258测试步科FD伺服),主控会发送“复位节点”,步科的ED伺服复位节点,驱动器恢复出厂值,而且连CAN通讯参数也恢复成默认值。FD,JD伺服是除了CAN通讯参数外,其他设置参数恢复出厂值。

4. EMCY紧迫报文,从站如伺服,在断电后会发送一条紧迫报文,告诉主控其状态,一般伺服断电后,其电容电量能保证其发送该条报文。5. 心跳,节点掩护设置心跳参数,设置心跳周期,心跳消费时间,这个消费者时间实际上是作为一个超时参数。主站收到一个心跳后,开始计时,如果在超时时间内没有收到下一个心跳,则认为从站离线,并陈诉错误,根据用户设置的错误处置惩罚方法处置惩罚。

网络中的每个节点都可以设置心跳,主站可以监听从站,从站可以监听主站,从站还可以监听从站。这里有一个生产者、消费者的观点,总线上的设备界说自己是心跳的生产者,还是消费者。生产者发生心跳,消费者监听心跳,然后在捕捉到异常后�做出对应的处置惩罚。

小我私家认为心跳作用不大,假设某个设备断线,重连后复位节点,而此设备恰好是使用了原点功效的伺服呢?断电上电后,原点位置改变。所以在一些客户应用中,泛起此情况,小伙子,你麻利的,赶忙断电重启吧。节点掩护,其作用类似心跳,但可以读取从站设备的CANopen通讯状态(初始化,预操作,操作中,停止),属于DS301的领域。6. DS301和DS402的区别DS301就是一个通讯协议栈,DS402是建设在DS301的上层协议,属于伺服类的控制协议,协议中划定好每个工具字典值得作用,好比0x6040,是控制字。

DS402把一个伺服应该具有的功效都界说好了,开发厂家根据协议界说即可。7. 工具字典从软件的角度来说,工具字典本质就是一些数据结构的荟萃。可以这么明白,把工具字典看做是一本书,CANopen设备的行为准则是要参考这本书的,不管它做什么,只要它的行为要参考工具字典,就必须先查阅字典,再决议要不要做。好比它什么时候发送TPDO,这个行为是需要查询工具字典中对应于TPDO的传输类型以及Event timer。

另有就是像PDO映射的原理,好比我要发送的数据,都是去查询这本书,看下它那里写的什么内容,然后我在把这部门内容以PDO的形式发送出去。例如你的法式收到了一笔CAN报文,由于可以会见工具字典的工具是SDO,首先要判断它是SDO工具,那么你的法式就需要根据SDO中指定的索引和子索引去查找工具字典(一个排好序的数据结构集),找到相应的工具后根据SDO中的指令去操作这个工具,例如把一个值赋给字典中的变量。8. SDO这个很简朴,就是类似串口的一发一回模式,主站发送请求帧,从站回复应答帧。

大家看几个例子就明确了。To write the 1 byte data : 0xFD in the object dictionary of node 5, at index 0x1400, subindex 2, sends :605 2F 00 14 02 FD 00 00 00If success, the node 5 responds :585 60 00 14 02 00 00 00 00To write the 4 bytes data : 0x60120208 in the object dictionary of node 5, at index 0x1603, subindex 1, sends :605 23 03 16 01 08 02 12 60If success, the node 5 responds :585 60 03 16 01 00 00 00 009. PDO分为TX-PDO,RX-PDO。

上图,这就是PDO的设置历程,0x1402(吸收PDO通讯参数),PDO使用的cob-id,传输类型,Inhibit time,EventTimer。0x1602(映射工具),上例中映射为Controlword,Target position。这里着重讲一下Transmission Type,上述是codesys中支持的集中方式:acyclic sync(数值为0):同步PDO,同步方式由详细设备协议界说Cyclic sync(数值为1-240):同步PDO,每个N个SYNC周期后,发送PDOSync rtr(数值253):同步PDO,收到远程帧请求后发送PDOAsync(数值253):异步PDO,收到远程帧后发送PDO最后两个Async(254,255),都是设备厂家界说的,也是大家最常用的,当事件发生时发送。

米乐m6官网app下载

各个厂家在这里基本都是使用数据变化时发送方式,FD,JD伺服两种方法是一样的,都是数据变化发送。要注意设置“克制时间”,降低CANOPEN通讯带宽。

详细案例主控制器写target position,mode of operation给伺服,此PDO的cob-id为0x200 node id。传输方式为255或者254,克制时间为100,也就是10ms。先写到这里吧,看看回声再写下篇文章(想写写codesys与CANopen)。此文获得了步科孙志武的修正,相同了心跳报文和节点复位,再次表现谢谢。

接待智友留言交流,拍砖狠砸!供稿:上海步科。


本文关键词:米乐m6官网app下载,CANopen,小我,私家,之,所见,所想,头条,私信,我

本文来源:米乐m6官网app下载-www.sbbpdy.com