领跑工业自动化新趋势,New Dynamics Leading Industry Automaition,www.elco-,1,宜科(天津)电子有限公司,基于,CANopen,协议的绝对值编码器应用,张世桥,2012-6-13,1宜科(天津)电子有限公司基于CANopen协议的绝对值编码,CAN,总线介绍:,CAN,是,Controller Area Network,的缩写,即“局域网控制器”的意思,可以归属于工业现场总线的范畴,通常称为,CAN BUS,,即,CAN,总线,是目前国际上应用最为广泛的开放式现场总线之一,目前应用的,CAN,器件大多符合,CAN2.0,规范。,CAN 只定义物理层和数据链路层,没有规定应用层,本身并不完整,需要一个高层协议来定义CAN 报文中的11/29 位标识符、8 字节数据的使用,。,CANopen,一帧数据由一个,COB-ID,(报文头)和最大,8,字节数据组成,其中,COB-ID,可以是,11,位(,CAN2.0,),也可以是,29,位(,CAN2.0B,),当然,,CAN2.0B,需要向下兼容,11,位,CAN,报文。,CAN,总线的特点:,1).,可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。,2).,网络上的节点可分成不同的优先级,可以满足不同的实时要求。,3).,采用非破坏性位仲裁总线结构机制,当两个节点同时向网络上传送信息时,优先级低的 节点主动停止数据发送,而优先级高的节点可不受影响地继续传送数据。,4).,可以点对点,一点对多点及全局广播几种传送方式接收数据。,CAN总线介绍:,5).,直接通信距离最远可达,10km(,速率,4Kbps,以下,),。,6).,通信速率最高可达,1MB/s(,此时距离最长,40m),。,使用非屏蔽双绞线传输时,传输速率与传输距离的关系如下图所示,。,7).,节点数最多可达,110,个。,8).,采用短帧结构,每一帧的有效字节数为,8,个。,9).,每帧信息都有,CRC,校验及其他检错措施,数据错误率极低。,10).,通信介质可采用双绞线,同轴电缆和光纤,一般采用廉价的双绞线即可。,11).,节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上的其他操作不受影响。,传输速率,(,Kbps,),5,10,20,50,100,125,250,500,1000,最大传输距离(,m,),100000,6700,3300,1300,620,530,270,130,40,5).直接通信距离最远可达10km(速率4Kb,CANopen,协议:,CANopen,协议是,CAN-in-Automation(CiA),定义的标准之一,并且在发布后不久就获得了广泛的承认。尤其是在欧洲,,CANopen,协议被认为是在基于,CAN,的工业系统中占领导地位的标准。大多数重要的设备类型,例如数字和模拟的输入输出模块、驱动设备、操作设备、控制器、可编程控制器或编码器,都在称为“设备描述”的协议中进行描述;“设备描述”定义了不同类型的标准设备及其相应的功能。依靠,CANopen,协议的支持,可以对不同厂商的设备通过总线进行配置。,CANopen,协议中包含了标准的应用层规范和通信规范。在,CANopen,的应用层,设备间通过相互交换通信对象进行通信。,CANopen,规范的核心是,CANopen,的设备模型和各类型的通信对象。一个,CANopen,设备模块可分为,3,部分,如图:,CANopen 协议:,CANopen-绝对值编码器的应用解析ppt课件,CANopen-绝对值编码器的应用解析ppt课件,通信方式:,CANopen,网络通信和管理是通过不同的通信对象来完成的。,CANopen,协议定义了四种通信对象,分别为过程数据对象,PDO(Process Data Object),、服务数据对象,SDO(Service Data Object),、网络管理对象,NMT(NetWork Management Object),、预定义报文或者特殊功能对象。,一个,CANopen,设备必须支持一定数量的网络管理服务,需要至少一个,SDO,,每个生产或消费过程数据的设备需要至少一个,PDO,,所有其它的通信对象是可选的。,通信方式:CANopen网络通信和管理是通过不同的通信对象来,(,1,),PDO,过程数据对象,功能:用来传输,8,字节或更少数据(数据内容已预先定义)用于实时传,输数据,通讯方式:生产者,/,消费者,3,种消息触发模式:,事件触发模式(一个对象特定事件出现而触发),时间触发模式(如:规定时间内无事件发生),远程请求触发(接受到任何其他设备发出的一个远程请求),(1)PDO过程数据对象,(,2,),SDO,服务数据对象,功能:主要用于主节点对从节点的参数配置。用来在设备之间传输大,的低优先级数据,典型的是来配置,CANopen,网络上的设备。,通讯方式:客户机,/,服务器,它用于访问对象字典的入口。对,CANopen,对象进行读写。,读,/,写操作一般由客户端初始化,由服务器服务。,(2)SDO服务数据对象,(,3,),NMT,网络管理对象,提供网络管理(如初始化、启动和停止节点,侦测失效节点)服务。,网络管理中,同一个网络中只允许有一个主节点、一个或多个从节点,并遵循主从模式。,有一个节点专门作为,NMT,管理者(,NMT,主节点),主节点向从节点发送的,NMT,命令结构。如果节点,ID,是,0,表示命令会被广播至所有从节点,任何,NMT,从设备在上电时都必须主动报告自己上电信息,便于,NMT,主设备进行管理。,(3)NMT网络管理对象,(,4,)特殊功能对象,同步对象,紧急对象,时间标记对象,同步对象,功能:由同步生产者向网络进行周期性的广播,该对象提供基本的网络时钟,通信方式:生产者,/,消费者模式,(4)特殊功能对象,紧急对象,通信方式:生产者,n/,消费者,1,功能:网络中的节点检测到硬件或软件的错误可以将其通过紧急对象通知其他节点。,CANopen,错误包含两类错误:,通信错误和应用错误,时间标记对象,通信方式:生产者,/,消费者模式,功能:为应用设备提供公共的时间帧参考,。,紧急对象,CANopen,预定义连接集,为了减小简单网络的组态工作量,,CANopen,定义了强制性的缺省标识符(,CAN-ID,)分配表。这些标志符在预操作状态下可用,通过动态分配还可修改他们。,缺省,ID,分配表是基于,11,位,CAN,ID,,包含一个,4,位的功能码部分和一个,7,位的节点,ID(Node-ID),部分。其中的,7,位部分即为网络中设备的节点地址。,图,3-1,预定义连接集,ID,Node-ID,由系统集成商定义。,Node-ID,范围是,1127,(,0,不允许被使用)。如下表格,CANopen,预定义主,/,从连接集,CAN,标识符分配表。,CANopen 预定义连接集,CANopen-绝对值编码器的应用解析ppt课件,我们读取到一组编码器数据是,0 x181 0 x30 0 x1F 0 x00 0 x00,,我们应该如何理解呢?首先,“,0 x”,只是一个符号,它代表了紧跟着的数据是十六进制的(等同于在数据后面直接标“,H”,,上述表达式也可以表述为,181H 30H 1FH 00H 00H,),“,181”,我们查看上表后发现,它包含在,PDO1,(发送)里面,它代表了是由编码器发出的过程数据对象,表上显示是“,181H1FFH”,,这是因为,COB-ID,包含了节点号信息,地址,1,对应着,181H,,地址,2,对应了,182H,,以此类推,最大,127,个节点。“,0 x30 0 x1F 0 x00 0 x00”,就代表了数据内容,在,CAN,协议内,帧数据是低位在前,高位在后的。所以上述数据直接读取后得出编码器送出,1F30H,,这就代表了编码器的当前位置值。,那在总线上面,多个节点同时发送数据不会产生冲突么?以前我们说过,,CAN,协议具有仲裁,这里简单介绍一下仲裁是如何实现的。上面说了,,COB-ID,包含了节点号信息,也就是说,只要总线上的设备节点号不同,所送出的广播报文的,COB-ID,肯定是不同的,如果一个是,182H,,一个是,183H,,仲裁时怎么做?我们把,182H,换算成二进制是,0001 1000 0010,(,B,),“,B”,代表了二进制,,183H,换算成二进制是,0001 1000 0011,(,B,),这里我就简单描述为“,0”,比“,1”,的优先级高,“,0”,为低电平,“,1”,为高电平,在线上低电平会把高电平拉低,一旦,183H,发现数据传输过程中与自身数据不符合,就终止上传,保证了,182H,的数据先上总线。,我们读取到一组编码器数据是0 x181 0 x30 0 x1,ELCO CANOPEN,编码器:,1.,编码器说明,此转换板与,ELCO EAC58C10,系列,13,位绝对编码器配合使用。该编码器以标准,CAN OPEN,协议,(CiA DSP 406),为基础,增加了一些制造商特定参数。,2.,接线说明,P1,端子接线(,IN,),Ub,1,外部供电,,10-30V,GND,2,外部供电,0V,CAN+,3,CAN,总线正,CAN-,4,CAN,总线负,0V,5,CAN,地,GND1,6,旋转方向和外部置零电源地,CLR,7,外部置零信号,,10-30V,,以,GND1,为参考,LH,8,冻结当前信号,,10-30V,,以,GND1,为参考,ELCO CANOPEN 编码器:Ub1外部供电,10-30,P2,端子接线(,OUT,),J3,、,J4,与编码器连接,其中,J4,为,5V,一端(,1,脚为,+5V,),,J3,为,GND,一端(,1,脚为,GND,)。,注:如果,CLR,与,DIR,需要与电源地共地时,只需在功能版,(GLO),上,R0(P1,下边,),焊接一个,0,电阻或短接即可,Ub,1,外部供电,,10-30V,GND,2,外部供电,0V,CAN+,3,CAN,总线正,CAN-,4,CAN,总线负,0V,5,CAN,地,P2 端子接线(OUT)Ub1外部供电,10-30VGND2,3.,指拨开关说明,通过指拨开关选择,可以设置编码器节点地址,,CAN,波特率,是否启用,120,欧姆终端电阻,编码器旋转方向。,节点地址设定:,节点地址(,Node_ID,)通过选择指拨开关,E2,来设定,当开关,DIPx,拨到,OFF,时,,Dx,0,;当开关,DIPx,拨到,ON,时,,Dx,1,。,D1,LSB,,,D7,MSB,节点地址可由设置为,1,127,。出厂值为,64(,只有,DIP7,为,ON,,其余均为,OFF),。,开关,DIP7,DIP6,DIP5,DIP4,DIP3,DIP2,DIP1,说明,D7,D6,D5,D4,D3,D2,D1,3.指拨开关说明开关DIP7DIP6DIP5DIP4DIP,CAN,波特率设定:,编码器支持,8,种不同的波特率传输,,CAN,波特率通过选择指拨开关,E1,来设定,:,DIP1,DIP2,DIP3,波特率,DIP4,0,0,0,1000Kbps,0,逆时针旋转为正方向,1,0,0,800Kbps,1,顺时针旋转方向为正方向(默认 值),0,1,0,500Kbps,1,1,0,250Kbps,0,0,1,125Kbps,(默认),1,0,1,100Kbps,0,1,1,50Kbps,1,1,1,20Kbps,CAN 波特率设定:DIP1DIP2DIP3波特率DIP40,匹配电阻设定:,CAN,总线终端电阻通过选择指拨开关,E2,来设定当,DIP8,设为,ON,时,选择接入,120,的终端电阻。,匹配电阻设定:,制造商特定子协议区域(,Detailed Description of the Manufacturer,),1.,编码器位数(