《CANopen 绝对值编码器的应用解读课件.ppt》由会员分享,可在线阅读,更多相关《CANopen 绝对值编码器的应用解读课件.ppt(31页珍藏版)》请在三一办公上搜索。
1、1,宜科(天津)电子有限公司,基于CANopen协议的绝对值编码器应用 张世桥 2012-6-13,CAN总线介绍:CAN是Controller Area Network的缩写,即“局域网控制器”的意思,可以归属于工业现场总线的范畴,通常称为CAN BUS,即CAN总线,是目前国际上应用最为广泛的开放式现场总线之一,目前应用的CAN器件大多符合CAN2.0规范。CAN 只定义物理层和数据链路层,没有规定应用层,本身并不完整,需要一个高层协议来定义CAN 报文中的11/29 位标识符、8 字节数据的使用。CANopen一帧数据由一个COB-ID(报文头)和最大8字节数据组成,其中COB-ID可以
2、是11位(CAN2.0),也可以是29位(CAN2.0B),当然,CAN2.0B需要向下兼容11位CAN报文。 CAN总线的特点: 1).可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。 2).网络上的节点可分成不同的优先级,可以满足不同的实时要求。 3).采用非破坏性位仲裁总线结构机制,当两个节点同时向网络上传送信息时,优先级低的 节点主动停止数据发送,而优先级高的节点可不受影响地继续传送数据。 4).可以点对点,一点对多点及全局广播几种传送方式接收数据。,5).直接通信距离最远可达10km(速率4Kbps以下)。 6).通信速
3、率最高可达1MB/s(此时距离最长40m)。 使用非屏蔽双绞线传输时,传输速率与传输距离的关系如下图所示。 7).节点数最多可达110个。 8).采用短帧结构,每一帧的有效字节数为8个。 9).每帧信息都有CRC校验及其他检错措施,数据错误率极低。 10).通信介质可采用双绞线,同轴电缆和光纤,一般采用廉价的双绞线即可。 11).节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上的其他操作不受影响。,CANopen 协议:CANopen 协议是CAN-in-Automation(CiA)定义的标准之一,并且在发布后不久就获得了广泛的承认。尤其是在欧洲,CANopen
4、 协议被认为是在基于CAN 的工业系统中占领导地位的标准。大多数重要的设备类型,例如数字和模拟的输入输出模块、驱动设备、操作设备、控制器、可编程控制器或编码器,都在称为“设备描述”的协议中进行描述;“设备描述”定义了不同类型的标准设备及其相应的功能。依靠CANopen 协议的支持,可以对不同厂商的设备通过总线进行配置。CANopen协议中包含了标准的应用层规范和通信规范。在CANopen的应用层,设备间通过相互交换通信对象进行通信。 CANopen规范的核心是CANopen的设备模型和各类型的通信对象。一个CANopen设备模块可分为3部分,如图:,通信方式:,CANopen网络通信和管理是通
5、过不同的通信对象来完成的。CANopen协议定义了四种通信对象,分别为过程数据对象PDO(Process Data Object)、服务数据对象SDO(Service Data Object)、网络管理对象NMT(NetWork Management Object)、预定义报文或者特殊功能对象。 一个CANopen设备必须支持一定数量的网络管理服务,需要至少一个SDO,每个生产或消费过程数据的设备需要至少一个PDO,所有其它的通信对象是可选的。,(1)PDO过程数据对象 功能:用来传输8字节或更少数据(数据内容已预先定义)用于实时传 输数据 通讯方式:生产者/消费者 3种消息触发模式: 事件触
6、发模式(一个对象特定事件出现而触发) 时间触发模式(如:规定时间内无事件发生) 远程请求触发(接受到任何其他设备发出的一个远程请求),(2)SDO服务数据对象 功能:主要用于主节点对从节点的参数配置。用来在设备之间传输大 的低优先级数据,典型的是来配置CANopen网络上的设备。 通讯方式:客户机/服务器 它用于访问对象字典的入口。对CANopen对象进行读写。 读/写操作一般由客户端初始化,由服务器服务。,(3)NMT网络管理对象提供网络管理(如初始化、启动和停止节点,侦测失效节点)服务。网络管理中,同一个网络中只允许有一个主节点、一个或多个从节点,并遵循主从模式。有一个节点专门作为NMT管
7、理者(NMT主节点)主节点向从节点发送的NMT命令结构。如果节点ID是0表示命令会被广播至所有从节点任何NMT从设备在上电时都必须主动报告自己上电信息,便于NMT主设备进行管理。,(4)特殊功能对象同步对象紧急对象时间标记对象同步对象功能:由同步生产者向网络进行周期性的广播,该对象提供基本的网络时钟通信方式:生产者/消费者模式,紧急对象通信方式:生产者n/消费者1功能:网络中的节点检测到硬件或软件的错误可以将其通过紧急对象通知其他节点。CANopen错误包含两类错误: 通信错误和应用错误时间标记对象通信方式:生产者/消费者模式功能:为应用设备提供公共的时间帧参考。,CANopen 预定义连接集
8、为了减小简单网络的组态工作量,CANopen定义了强制性的缺省标识符(CAN-ID)分配表。这些标志符在预操作状态下可用,通过动态分配还可修改他们。缺省ID分配表是基于11位CANID,包含一个4位的功能码部分和一个7位的节点ID(Node-ID)部分。其中的7位部分即为网络中设备的节点地址。图3-1 预定义连接集IDNode-ID由系统集成商定义。Node-ID范围是1127(0不允许被使用)。如下表格CANopen预定义主/从连接集CAN标识符分配表。,我们读取到一组编码器数据是0 x181 0 x30 0 x1F 0 x00 0 x00,我们应该如何理解呢?首先,“0 x”只是一个符号,
9、它代表了紧跟着的数据是十六进制的(等同于在数据后面直接标“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,这就代表了编码器的当前位置值。那在总线上面,多个节点同时发送数据不会
10、产生冲突么?以前我们说过,CAN协议具有仲裁,这里简单介绍一下仲裁是如何实现的。上面说了,COB-ID包含了节点号信息,也就是说,只要总线上的设备节点号不同,所送出的广播报文的COB-ID肯定是不同的,如果一个是182H,一个是183H,仲裁时怎么做?我们把182H换算成二进制是0001 1000 0010(B),“B”代表了二进制,183H换算成二进制是0001 1000 0011(B),这里我就简单描述为“0”比“1”的优先级高,“0”为低电平,“1”为高电平,在线上低电平会把高电平拉低,一旦183H发现数据传输过程中与自身数据不符合,就终止上传,保证了182H的数据先上总线。,ELCO
11、CANOPEN 编码器:1. 编码器说明此转换板与ELCO EAC58C10 系列13 位绝对编码器配合使用。该编码器以标准CAN OPEN协议(CiA DSP 406)为基础,增加了一些制造商特定参数。2 .接线说明 P1端子接线(IN),P2 端子接线(OUT)J3、J4与编码器连接,其中J4为5V一端(1脚为+5V),J3为GND一端(1脚为GND)。注:如果CLR与DIR需要与电源地共地时,只需在功能版(GLO)上R0(P1下边)焊接一个0电阻或短接即可,3 .指拨开关说明通过指拨开关选择,可以设置编码器节点地址,CAN 波特率,是否启用120 欧姆终端电阻,编码器旋转方向。节点地址设
12、定:节点地址(Node_ID)通过选择指拨开关E2 来设定当开关DIPx 拨到OFF 时,Dx0;当开关DIPx 拨到ON 时,Dx1。D1LSB,D7MSB节点地址可由设置为1127。出厂值为64(只有DIP7为ON,其余均为OFF)。,CAN 波特率设定:编码器支持8 种不同的波特率传输,CAN 波特率通过选择指拨开关E1 来设定:,匹配电阻设定:CAN 总线终端电阻通过选择指拨开关E2 来设定当DIP8 设为ON 时,选择接入120的终端电阻。,制造商特定子协议区域(Detailed Description of the Manufacturer)1.编码器位数(ELCOBits)ELC
13、OBits:编码器位数,出厂值为02. 硬件置位值(SetPosition)SetPosition: 外部硬件置位值,出厂值为0当外部置位时,将编码器位置置为此值。,3.置位方式选择(CLRSelect)CLRSelect: 置位方式选择,出厂值为1数据内容:当该值为1时,才支持外部置位功能(硬件CLR置位)。4.方向选择功能选择(DIRSelect)CLRSelect: 方向选择功能方式选择,出厂值为1数据内容:当该值为1时,支持外部方向选择功能(硬件DIR方向选择)。 当该值为2时,支持CAN参数方向选择。,标准的设备子协议区域(Detailed Description of the Ge
14、neral Encoder Parameters)1.操作参数(Operating parameters)数据内容:Bit 0: Code sequence; Standard: Bit = 0Bit0 (顺时针)Bit1 (逆时针)Bit 1.15: 保留 (0)只有当DIRSelect(Object 2008h)为2时,才可通过修改此参数设置编码器旋转方向选择。,2.每分辨率对应的单位(Mearsuring unit per revolution)Mearsuring unit per revolution:每分辨率对应的单位,出厂值为0 x20003.测量单位内的总测量范围(Total
15、mearsuring range in mearsuring units)Mearsuring unit per revolution:每分辨率对应的单位,出厂值为0 x2000000,4.预置值(Preset value)Preset value:CAN 置位值,出厂值为0数据内容:可将编码器的零点值与系统机械零点值进行修正为一致。读取时,该参数为0往里写入时,将编码器值置位写入值如:将该参数值设为0 x20,则此时编码器位置值为0 x20,5.编码器当前位置值(Position value) Position value:编码器当前位置值。6.发送测量值间隔时间(Cyclic timer)
16、Cyclic timer: TXPDO1发送测量值间隔时间,出厂值为500(单位为1ms)取值范围为1ms65535msEg:1ms = 1h256ms = 256h,7.每圈对应的测量值(SingleTurn resolution)SingleTurn resolution:每圈对应的测量值,出厂值为8192数据内容:通过修改此参数,可将编码器单圈分辨率缩放为用户需要显示的位置。如:可设为36000,则可表示为0360 度。8.出厂序号(Serial number)Serial number:出厂序号,出厂值为0。数据内容:内部参数。,CANopen与DeviceNet区别1.传输距离 CA
17、Nopen网络可实现远距离传输(10 km),工作速率可调(1 Mb/s 通讯速率 5 kb/s)。 DeviceNet最大传输距离为500 m。 因此,在实际应用中,要考虑到传输距离的限制而选择总线协议。2.标识符分配 CANopen支持CAN2.0 A 11位和CAN2.0 B 29位标识符,而且报文的优先级只能通过它的大小来区分,通常节点地址比较小的COB-ID报文的优先级最高。如果要传送需要快速响应的事件,则要通过预定义和特殊功能对象,如同步(SYNC),时间标记对象(time stamp),紧急事件(emergency),PDO 用来传输实时数据,优先级大于SDO,因为SDO的数据量
18、大,通常用于设备初始化组态。,而DeviceNET只用了CAN2.0 A的11位标识符去分组定义报文的优先级,这种信息组设计方法使总线优先级可任意分布,而不仅和节点地址有关,还取决于它是I/O还是显示报文,报文的组号等。3.初始化组态不同,4.应用领域 CANopen不仅可以用在远距离的通信系统中,还可以用在像咖啡机、电子直线加速器、大型超市自动化、安全系统、注压机等系统中。 DeviceNET比较适合应用在传感器设备、微型执行器设备等设备上 CANopen与DeviceNet严格来说,其应用领域是不一样的 , DeviceNet是专门针对中大型工业自动化及过程自动化系统而开发的,虽然厂商一直在强调DeviceNet是多么的快,不过一旦与位置控制,运动控制扯上关系,就目前DeviceNet的性能及实时性来说,是远不够的。但CANopen协议一开始制定就是为了运动控制,伺服控制等需要高速,高实时性要求的系统而设计的,所以其数据传输的实时性很高,当然,实时性与数据容量是成反比的,实时性要高,自然数据传输量就要少,这样也会限制网络的大小。,谢 谢!,