1、CANopen概述nCANopen协议中包含了标准的应用层规范和通信规范。在CANopen的应用层,设备间通过相互交换通信对象进行通信。nCANopen规范的核心是CANopen的设备模型和各类型的通信对象。一个CANopen设备模块可分为3部分,如图:12问题n一、地址编码方式n二、通信方式n三、主/从节点通信机制n四、状态机n五、仲裁机制n六、差分传输n七、CANopen与DeviceNet区别3一、地址编码方式n为了减小简单网络的组态工作量,CANopen定义了强制性的缺省标识符(CAN-ID)分配表。这些标志符在预操作状态下可用,通过动态分配还可修改他们。n缺省ID分配表是基于11位C
2、ANID,包含一个4位的功能码部分和一个7位的节点ID(Node-ID)部分。其中的7位部分即为网络中设备的节点地址。4一、地址编码方式n一个网段上最多支持127个节点nNode-ID范围是1127(0不允许被使用)。n如过要使用网络配置工具通过通讯的方式来设定CANopen设备的NODE-ID,就要使用LSS协议。n大多数的终端设备(非gateway等)都使用自己的参数群或是的拨码开关来设定NODE-ID。5二、通信方式根据通信对象功能,通信关系可分为以下3类:n主/从关系可以对应NMT SYNC 节点保护等 一对多,一唯一,可以有应答,也可以没有。n客户机/服务器可以对应SDO 一对一,带
3、应答。n生产者/消费者可以对应PDO Heartbeat等,一对多,一不唯一,没有应答。6二、通信方式nCANopen网络通信和管理是通过不同的通信对象来完成的。nCANopen协议定义了四种通信对象,分别为过程数据对象PDO(Process Data Object)、服务数据对象SDO(Service Data Object)、网络管理对象NMT(NetWork Management Object)、预定义报文或者特殊功能对象。n一个CANopen设备必须支持一定数量的网络管理服务,需要至少一个SDO,每个生产或消费过程数据的设备需要至少一个PDO,所有其它的通信对象是可选的。7(1)PDO
4、过程数据对象n功能:用来传输8字节或更少数据(数据内容已预先定义)用于实时传输数据n通讯方式:生产者/消费者n3种消息触发模式:事件触发模式(一个对象特定事件出现而触发)时间触发模式(如:一规定时间内无事件发生)远程请求触发(接受到任何其他设备发出的一个远程请求)8(2)SDO服务数据对象n功能:主要用于主节点对从节点的参数配置。用来在设备之间传输大的低优先级数据,典型的是来配置CANopen网络上的设备。n通讯方式:客户机/服务器n它用于访问对象字典的入口。对CANopen对象进行读写。n读/写操作一般由客户端初始化,由服务器服务。9(3)NMT网络管理对象n提供网络管理(如初始化、启动和停
5、止节点,侦测失效节点)服务。n网络管理中,同一个网络中只允许有一个主节点、一个或多个从节点,并遵循主从模式。n有一个节点专门作为NMT管理者(NMT主节点)n主节点向从节点发送的NMT命令结构。如果节点ID是0表示命令会被广播至所有从节点n任何NMT从设备在上电时都必须主动报告自己上电信息,便于NMT主设备进行管理。10(4)特殊功能对象n同步对象n紧急对象n时间标记对象11同步对象n功能:由同步生产者向网络进行周期性的广播,该对象提供基本的网络时钟n通信方式:生产者/消费者模式12紧急对象n通信方式:生产者n/消费者1n功能:网络中的节点检测到硬件或软件的错误可以将其通过紧急对象通知其他节点
6、。nCANopen错误包含两类错误:通信错误和应用错误13时间标记对象n通信方式:生产者/消费者模式n功能:为应用设备提供公共的时间帧参考。14三、主/从节点通信机制n主节点与从节之间的主要区别在于主节点具有管理报文(NMT)以及服务数据客户端(client)等功能,有了这些功能,主节点就可以管理CANopen网络。n对于开发主节点和从节点设备来说有着较大的区别,主节点主要负责整个网络的管理并且能加载所有节点的EDS(Electronic Data Sheet)文件,例如主节点可以管理任意一个从节点进入特定的工作状态、配置从节点的参数、完成与从节点的数据交换等功能。n从网络结构来说从节点属于被
7、动设备,受主站管理,从节点只需要支持PDO、SDO服务器、预定义或特殊功能对象。n关于COB-ID,不论是主发给从,还是从发给主的消息,COB-ID都是从站的NODE_ID号 15CANopen网络中两种组网方式n(1)CANopen网络中,需要一个CANopen主节点设备和至少一个CANopen从节点设备;n(2)CANopen网络中,至少需要两个CANopen从节点,由于CANopen可以支持点对点的工作方式,即对CANopen从节点配置正确的情况下,CANopen网络中没有主节点,从节点与从节点之间也能够建立通信并完成实时数据的交换过程。n对于第一种组网方式需要一个CANopen主站,现
8、阶段能提供的CANopen主站有很多种可以选择,例如工业电脑、PLC、工控主机等。主站的开发方式可以选择带CANopen API函数的主站卡、带OPC服务器的主站卡或者带CANopen主节点的PLC。nhttp:/ (2楼)1.要结合网络节点数据吞吐量来看,DI、AI变化发送(触发)方式实时性好,而且比主节点定时查询方式占用网络资源少,缺点是万一触发发送失败,没有第二次机会让主节点知道变化,只能等到下一次变化,而且触发发送还有个变化多大幅度才触发发送的问题,幅度小了可能是场数据灾难,大了可能灵敏度有下降。定时申请数据的查询方式优点就是触发的缺点,缺点也就是触发的优点。两种方式结合着来,一般AI
9、采用查询方式,DI就要综合考虑了。2.AO和DO一般采用触发方式 19http:/ 主结点定时每隔8毫秒读取AI结点的数据(2)、AO主结点定时每隔8毫秒给AO结点发送输出数据(3)、DO主结点定时每隔8毫秒给DO结点发送输出数据(4)、DI 主结点定时每隔8毫秒读取DI结点的数据 同时DI结点自身发生变化时,会定时每隔1毫秒给主结点“主动”的发送数据。(4楼)你没有利用到CAN总线的冲突检测机制,主节点定时查询是可以广播的,每个从节点收到查询广播就可以上传数据,而不会引起冲突,这个和485是有区别的。你这种做法只是把CAN当成了高速485.DI的1ms主动发送数据也是不科学的,除非是高速DI
10、,一般PLC的DI都有1ms的防抖滤波。20四、状态机n(1)一个从节点可以实现一个NMT状态机,NMT状态机如下图:21四、状态机n该状态机将在上电复位后自动运行,进入预运行状态,通过SDO配置参数,但不可以实现PDO通信。nNMT主节点可以控制所有的从节点进入“运行状态”。在“运行状态”PDO的通信才被允许。n如果一个节点被转换到“停止状态”,那么它将不能实现PDO和SDO通信,但可以执行NMT命令。22四、状态机n网络的启动过程一般是n系统初始化-辨识设备-网络配置-切换到运行态 23四、状态机(2)紧急对象的状态机如图:0:上电后自动进入无错误状态1:紧急对象产生后进入有错误状态2:一
11、个错误被更正,但非全部错误3:产生新的错误4:所有的错误被改正24五、仲裁机制(1)只要总线空闲,任何单元都可以开始发送报文,如果两个或两个以上的单元同时开始传送报文,那么就会有总线访问冲突。通过使用了标识符的逐位仲裁可以解决这个冲突。仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先与远程帧。在仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送。如果发送的是一“隐性”电平而监视到的是一“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。25五、仲裁机制(2)网络中的节点检测到硬件或软件的错误可将
12、其通过紧急对象通知其它节点。内部的任何错误都将被编码为定义好的错误代码传送给其他节点,如果错误全部被纠正,则节点将发送一个带有代码“无错误”的报文。26六、差分传输nCAN总线采用差分信号传输,通常情况下只需要两根信号线(CAN-H和CAN-L)就可以进行正常的通信。在干扰比较强的场合,还需要用到屏蔽地即CAN-G(主要功能是屏蔽干扰信号),CAN协议推荐用户使用屏蔽双绞线作为CAN总线的传输线。在隐性状态下,CAN-H与CAN-L的输入差分电压为0 V(最大不超过0.5 V),共模输入电压为2.5 V。在显性状态下,CAN-H与CAN-L的输入差分电压为2 V(最小不小于0.9 V),如图
13、1所示。27七、CANopen与DeviceNet区别1.传输距离 CANopen网络可实现远距离传输(10 km),工作速率可调(1 Mb/s 通讯速率 5 kb/s)。DeviceNet最大传输距离为500 m。因此,在实际应用中,要考虑到传输距离的限制而选择总线协议。28七、CANopen与DeviceNet区别2.标识符分配 CANopen支持CAN2.0 A 11位和CAN2.0 B 29位标识符,而且报文的优先级只能通过它的大小来区分,通常节点地址比较小的COB-ID报文的优先级最高。如果要传送需要快速响应的事件,则要通过预定义和特殊功能对象,如同步(SYNC),时间标记对象(ti
14、me stamp),紧急事件(emergency),PDO 用来传输实时数据,优先级大于SDO,因为SDO的数据量大,通常用于设备初始化组态。而DeviceNET只用了CAN2.0 A的11位标识符去分组定义报文的优先级,这种信息组设计方法使总线优先级可任意分布,而不仅和节点地址有关,还取决于它是I/O还是显示报文,报文的组号等。29七、CANopen与DeviceNet区别3.初始化组态不同30七、CANopen与DeviceNet区别4.应用领域 CANopen不仅可以用在远距离的通信系统中,还可以用在像咖啡机、电子直线加速器、大型超市自动化、安全系统、注压机等系统中。DeviceNET比
15、较适合应用在传感器设备、微型执行器设备等设备上。31七、CANopen与DeviceNet区别n CANopen与DeviceNet严格来说,其应用领域是不一样的,DeviceNet是专门针对中大型工业自动化及过程自动化系统而开发的,虽然厂商一直在强调DeviceNet是多么的快,不过一旦与位置控制,运动控制扯上关系,就目前DeviceNet的性能及实时性来说,是远不够的。但CANopen协议一开始制定就是为了运动控制,伺服控制等需要高速,高实时性要求的系统而设计的,所以其数据传输的实时性很高,当然,实时性与数据容量是成反比的,实时性要高,自然数据传输量就要少,这样也会限制网络的大小。32七、CANopen与DeviceNet区别5.现状nDeviceNET的技术以及应用在国内外已经趋于成熟,CANopen协议在欧洲已经非常流行,但国内应用的还不多,有待进一步研究。n本文来自:电子电路图()详细出处参考:http:/