1、第6章 通信功能与总线接口附件 CANopen协议简介与应用开发协议简介与应用开发 要 点:u CANopen协议简介;u CANopen协议具体应用开发。第6章 通信功能与总线接口附件 CANopen协议是建立在CAN基础上的通信网络技术,是欧洲CiA组织定义的几种CAN高层协议标准之一,因其开放性和低成本等优势,发布后不久就得到了广大厂商和用户的亲睐。在欧洲,在众多基于CAN的工业系统中,CANopen协议是事实上占据领导地位的标准。目前CANopen协议已经在运动控制、车辆工业、电机驱动、工程机械、船舶海运、楼宇自动化等行业得到广泛的应用。一 CANopen协议简协议简介第6章 通信功能
2、与总线接口附件 协议特性协议特性u 基于多种网络通信模式,适合对时间要求苛刻的通讯场合。u 以对象字典的形式来定义标准设备描述文件,并通过SDO(服务数据对象)报文存取。u 包含标准的设备监护服务信息(节点监视/心跳)、网络管理信息以及紧急信息对象。u 支持同步、异步传输模式。u 提供预定义连接集,简化系统配置工作。u 在实际应用中,一般以主从式结构模式为主。第6章 通信功能与总线接口附件 1.1 主节点主要的功能 控制从节点运行状态;通过SDO对对象字典的参数进行读取和修改;监视从节点的运行状况和是否发生错误(即进行节点保护);由从节点中获得相应的信息和运行状态;启动和终止SDO通讯;发送S
3、YNC报文;提供分配特定标识符等网络管理的服务。第6章 通信功能与总线接口附件 1.2 从节点功能负责底层的网络通讯和控制任务,每个从节点只完成属于自己范围内的特定任务。进行实时数据的传输,即PDO(过程数据对象)的通讯。响应主节点发送的管理信息帧。对自己负责的底层设备进行数据采集和控制。第6章 通信功能与总线接口附件 1.3 从节点架构CAN驱动:CAN控制器初始化,报文收发处理。通信对象:收发和解析各种报文对象,实现数据交互过程。对象字典:存储节点所有信息,向通信对象和应用程序提供接口。应用程序:实现节点的功能,如控制、数据采集等,用户自定义。第6章 通信功能与总线接口附件 1 1、CAN
4、 CAN驱动程序驱动程序 CAN控制器初始化程序;CAN中断处理程序;CAN报文发送程序。第6章 通信功能与总线接口附件 2 2、对象字典、对象字典 对象字典就是一个有序的对象组,每个对象采用一个16位的索引值来寻址,为了允许访问数据结构中的单个元素,同时也定义了一个8位的索引值,这个索引值通常被称为子索引。每个CANopen设备都有一个对象字典,对象字典包含了描述这个设备和它的网络行为的所有参数,对象字典通常用电子数据文档(EDS)来记录这些参数。第6章 通信功能与总线接口附件 第6章 通信功能与总线接口附件 通信子协议 SYNC报文参数设置(1005H、1006H、1007H)SDO报文参
5、数设置 客户端SDO(1200H-127FH)服务器SDO(1280H-12FFH)接收PDO报文参数设置 PDO通信参数(1400H-15FFH)PDO映射参数(1600H-17FFH)发送PDO报文参数设置 PDO通信参数(1800H-19FFH)PDO映射参数(1A00H-1BFFH)设备子协议 与特定设备相关的参数,用于存储设备的相关参数。(6000H-9FFFH)第6章 通信功能与总线接口附件 对象的结构Index:指出该对象在对象字典中的位置Object:指明该对象的类型Name:对象的名称Type:指明该对象的数据类型Attrib:对象的属性值M/O:说明该对象是强制实现的还是可
6、选的第6章 通信功能与总线接口附件 从节点对象字典实现 由于从节点需要实现的对象字典项不是很多,也不复杂,所以可以直接采用二维数组的形式来实现。例如:第6章 通信功能与总线接口附件 对象字典实现 将所有对象集合起来,得到对象字典;const indextable ObjDict_objdict=(subindex*)ObjDict_Index1000,sizeof(ObjDict_Index1000)/sizeof(ObjDict_Index10000),0 x1000,(subindex*)ObjDict_Index1001,sizeof(ObjDict_Index1001)/sizeof(
7、ObjDict_Index10010),0 x1001,(subindex*)ObjDict_Index1003,sizeof(ObjDict_Index1003)/sizeof(ObjDict_Index10030),0 x1003,;第6章 通信功能与总线接口附件 扫描函数 根据对象字典的实现方式,相应的扫描函数实现如下:const indextable*ObjDict_scanIndexOD(UNS16 wIndex,UNS32*errorCode,ODCallback_t*callbacks)int i;*callbacks=NULL;switch(wIndex)case 0 x100
8、0:i=0;break;case 0 x1001:i=1;break;case 0 x1003:i=2;*callbacks=ObjDict_Index1003_callbacks;break;case 0 x1005:i=3;*callbacks=ObjDict_Index1005_callbacks;break;case 0 x1008:i=4;break;case 0 x1009:i=5;break;case 0 x100A:i=6;break;case 0 x1010:i=7;break;case 0 x1011:i=8;break;第6章 通信功能与总线接口附件 存取函数 由getO
9、Dentry()和setODentry()函数来实现,思路如下:通过扫描函数定位到指定对象的入口;检查对应对象的访问权限,若越权返回错误码;若权限正确,允许访问,根据调用的函数,将指定内容copy进指定对象,或将指定对象里的内容copy到目标地址(注意检查是否越界);返回。第6章 通信功能与总线接口附件 3、报文对象、报文对象 报文格式 基于CAN总线的报文格式 11位标识符(或29位)+1-8byte数据 标识符格式 Node-ID由系统集成商定义,例如通过设备上的拨码开关设置。Node-ID范围是1127(0不允许被使用)。第6章 通信功能与总线接口附件 CANopen协议定义了四种报文对
10、象,分别是:网络管理报文对象NMT 服务数据对象SDO 过程数据对象PDO 预定义报文或特殊功能对象第6章 通信功能与总线接口附件 1.4 NMT 管理报文(Network Management)主要负责层管理、网络管理和ID分配服务,例如,初始化、配置和网络管理(其中包括节点保护)。网络管理中,同一个网络中只允许有一个主节点、一个或多个从节点,并遵循主从模式。第6章 通信功能与总线接口附件 NMT状态机状态机 从节点内必须实现一个状态机,其状态转换由主节点控制,不同的状态对应不同的报文对象可用性,目的是使主节点可以控制从节点在总线上的通信行为。第6章 通信功能与总线接口附件 Initiali
11、sation:从节点上电后自动进入该状态,主要完成节点的硬件初始化,通信参数和应用参数的重置,成功后自动进入Pre-Operational状态。第6章 通信功能与总线接口附件 Pre-Operational:在此状态中,从节点SDO被允许,主节点通过SDO完成从节点通信参数的设置,如从节点的PDO参数映射设置。主节点发送start_remote_node命令使从节点进入Operational状态。Operational:在此状态中,从节点完成自己的正常工作,采集数据,控制设备,与主节点通信,所有报文对象类型都被允许。Stopped:当从节点发生错误时,或主节点检测到从节点出错了,通过发送sto
12、p_remote_node命令使从节点进入此状态,除了接受NMT报文,其他报文对象都被禁止,以此消除对总线的不良影响。若主节点检测到错误节点恢复正常,仍可通过NMT报文让其正常运行。第6章 通信功能与总线接口附件 只有NMT-Master节点能够传送NMT 状态控制报文(通常都是主节点)。所有从设备必须支持NMT模块控制服务。NMT 状态控制消息不需要应答。NMT消息格式如右图:第一个字节表示从节点收到命令后需要进入的状态,第二个字节是接收命令的从节点第二个字节是接收命令的从节点IDID,若为,若为0 0,此时所有,此时所有节点都接收该命令节点都接收该命令第6章 通信功能与总线接口附件 实现
13、定义一个状态数组 包含所有的报文类型 状态改变函数 原子操作 状态报文可用性设置 状态转换 第6章 通信功能与总线接口附件 实现(续)状态转换最终还需要报文的解析来实现报文可用性的控制。canDispatch()UNS16 cob_id=UNS16_LE(m-cob_id);switch(cob_id 7)检查COB_ID对应的报文对象在目前节点状态下是否可用;若可用,则进入相应的报文处理函数;不可用则跳出;第6章 通信功能与总线接口附件 NMT节点保护 通过节点保护服务,NMT主节点可以检查每个节点的当前状态,当这些节点没有数据传送时这种服务尤其有意义。数据部分包括一个触发位(bit7),触
14、发位必须在每次节点保护应答中交替置“0”或者“1”。触发位在第一次节点保护请求时置为“0”。位0到位6(bits06)表示节点状态,可为下表中的数值。第6章 通信功能与总线接口附件 NMT心跳报文 从节点可被配置为产生周期性的被称作心跳报文的报文。当一个Heartbeat节点启动后它的Bootup报文是其第一个心跳报文。Heartbeat消费者通常是主节点,它为每个Heartbeat节点设定一个超时值,当超时发生时采取相应动作。一个节点不能够同时支持Node Guarding和Heartbeat协议!第6章 通信功能与总线接口附件 1.5 SDO SDO是服务数据对象接口(Service Da
15、ta Object)的缩写,顾名思义提供服务数据的访问接口,所谓服务数据指一些实时性要求不高的数据,一般是指节点配置参数,因此,SDO一般用来配置和获得节点的配置参数,充当OD对外的接口,其优先级只比心跳(Heartbeat)高。第6章 通信功能与总线接口附件 SDO基于CS模式,所有报文都需要确认。通常从节点作为SDO服务器,主节点作为客户端。客户端通过索引和子索引,访问服务器上的任意对象字典,SDO的上传与下载,是从server的角度去理解的,上传:client对server的OD进行读操作;下载:client对server的OD进行写操作。第6章 通信功能与总线接口附件 传送机制:加速传
16、送:最多传送4Byte数据 分段传送:传送数据大于4Byte 报文基本结构:第6章 通信功能与总线接口附件 SDO 命令字包含如下信息:下载/上传(Download/Upload)请求/应答(Request/Response)分段/加速传送(Segmented/Expedited)CAN帧数据字节长度 用于后续每个分段的交替清零和置位的触发位 SDO中实现了5个请求/应答协议:启动域下载,域分段下载,启动域上传,域分段上传和域传送中止。第6章 通信功能与总线接口附件 命令字细节第6章 通信功能与总线接口附件 命令字细节(续)第6章 通信功能与总线接口附件 实现方案SDO线程 借鉴操作系统多线程
17、机制的一套SDO服务处理方法,每个SDO线程表示的是与网络上其他节点建立的一个SDO链接,相当于在两个节点间建立一个SDO通讯路径,其中每个节点都拥有一个对这个路径的描述,在通讯过程中双方通过这个路径来交流,SDO通讯结束则释放该线程,每个节点可以同时与多个节点建立多个这样的路径且互不影响,就如同操作系统的多线程机制一样。第6章 通信功能与总线接口附件 一次SDO访问是这样完成的:SDO发起节点(client)收集足够的信息,建立一个SDO线程,将收集的信息以特定格式放入参数表,形成一帧SDO请求,发送出去;server收到这帧请求,为它建立一个SDO线程,将这帧请求解析以获得足够信息来初始化
18、这个SDO线程对应的参数表;程序按照参数表的描述去执行server的功能收集数据,然后将收集到的数据形成SDO应答帧返回给client;如果此次请求结束则释放该线程,否则等待下一帧请求到来;client在收到应答后判断该请求是否还有后续请求,无则释放此SDO线程;如果在这个过程中,server 和client所在节点有收到其他节点的SDO请求或需要通过SDO请求其它节点,则新建SDO线程来实现,跟上面的步骤一样。第6章 通信功能与总线接口附件 1.6 PDO PDO(Process Data Object)被用来传输实时数据,数据从一个生产者传到一个或多个消费者,采用无确认的方式,数据长度被限
19、制为18字节。PDO通讯没有协议规定。PDO数据内容只由它的映射参数对象定义,假定生产者和消费者知道这个PDO的数据内容。第6章 通信功能与总线接口附件 PDO通讯参数:包含哪个COB-ID将被PDO使用,传输类型,禁止时间和定时器周期。第6章 通信功能与总线接口附件 PDO通讯参数 PDO可以指定禁止时间,避免由于高优先级信息的数据量太大,始终占据总线,而使其它优先级较低的数据无力竞争总线的问题。禁止时间单位100us。PDO可以指定一个事件定时周期,当超过定时时间后,一个PDO传输可以被触发(不需要触发位)。事件定时周期由16位无符号整数定义,单位1ms。第6章 通信功能与总线接口附件 P
20、DO传输模式 异步触发模式 远程索取模式 同步触发模式 同步周期模式 同步非周期模式 PDO的同步传输模式 同步传输(通过接收SYNC对象实现同步),同步传输又可分为非周期和周期传输。非周期传输是由远程帧预触发或者由设备子协议中规定的对象特定事件预触发传送。周期传输则是通过接收同步对象(SYNC)来实现。第6章 通信功能与总线接口附件 每个SYNC后,有一段同步时间窗口,同步PDO在窗口内发送。可设置同步PDO的发送速率,如传输类型为0,表示PDO仅在有事件发生SYNC前,在时间窗口内发送。若为N(1-240),传送在每N个SYNC消息后触发。第6章 通信功能与总线接口附件 PDO的异步传输模
21、式 其触发方式可有两种,第一种是通过发送与PDO的COB-ID相同的远程帧来触发PDO的发送(传输类型为253),第二种是由设备子协议中规定的对象特定事件来触发(例如,定时传输,数据变化传输等,传输类型为255)。第6章 通信功能与总线接口附件 PDO映射参数:包含一个对象字典中对象的列表,这些对象映射到PDO里,包括它们的数据长度。生产者和消费者必须知道这个映射,以解释PDO内容。第6章 通信功能与总线接口附件 举个例子,一个PDO的映射参数对象(1A01):则这个PDO报文的内容是:改变1A01里面的内容,就可以改变该PDO报文的数据内容。第6章 通信功能与总线接口附件 实现sendPDO
22、event函数:用于辅助proceedPDO函数;循环更新每个PDO的当前trans_type_para;若当前传输类型等于原传输类型,调用buildPDO,发送PDO;若传参类型为TRANS_RTR_SYNC,则buildPDO,为远程请求的应答做好准备,设置当前状态为RTR_SYNC_READY;若当前传参类型为TRANS_SYNC_ACYCLIC或EVENT相关且未被禁止,则buildPDO,为事件触发做好准备;若不是同步事件,且事件周期和禁止时间不为0,则设置两个定时器,在计时器到达前将PDO状态设为禁止。第6章 通信功能与总线接口附件 实现(续)proceed PDO函数:接收到PD
23、O报文,有两种类型:若RTR为0,表示普通PDO报文,对从节点就是主节点发出的控制命令,需要从节点来执行。对普通PDO报文的处理:找到对应COB-ID的PDO映射参数,并把数据写入相应的对象中,等待应用来执行;若RTR为1,表示远程请求,根据传输类型不同作相应处理;若传输类型为TRANS_RTR,则buildPDO,发送应答PDO;若传输类型为TRANS_RTR_SYNC,且当前状态为RTR_SYNC_READY,则直接发送PDO;若传输类型为EVENT相关,则调用PDOEventTimerAlarm函数等待定时器到期,自动触发PDO发送。第6章 通信功能与总线接口附件 1.7 特殊功能对象
24、预定义报文或特殊功能对象为CANopen设备提供特定的功能,方便CANopen主站对从站管理。在CANopen协议中,已经为特殊的功能预定义了COB-ID,其主要有以下几种特殊报文:紧急事件对象(Emergency),当设备内部发生错误时触发该对象,即发送设备内部错误代码;时间标记对象(Time Stamp),为各个节点提供公共的时间参考;第6章 通信功能与总线接口附件 节点/寿命保护(Node/Life Guarding),主节点可通过节点保护方式获取从节点的状态。从节点可通过寿命保护方式获取主节点的状态;启动报文对象(Boot-up),从节点初始化完成后向网络中发送该对象,并进入到Pre-
25、Operational状态。第6章 通信功能与总线接口附件 特殊功能对象特殊功能对象SYNC 同步(SYNC),该报文对象基于生产者/消费者模式,由SYNC生产者周期性的广播,作为网络基本时钟,实现整个网络的同步传输,每个节点都以该同步报文作为同步PDO触发参数,因此该同步报文的COB-ID具有比较高的优先级以及最短的传输时间。第6章 通信功能与总线接口附件 描述(对象字典)1005H:存放SYNC的COB-ID 1006H:存放SYNC的通信周期 1007H:存放SYNC时间窗口 实现 sendSYNC:由定时器中断来调用,定时值就是通信周期;proceedSYNC:检查节点是否在Opera
26、tion状态,调用sendPDOevent函数来处理同步PDO;第6章 通信功能与总线接口附件 预定义连接集预定义连接集 由于动态分配CAN-ID将占用较多的系统资源,对于一些相对简单的CANopen网络,动态分配标识符也没有太大的必要性,为减少简单网络的组态工作量,CANopen定义了强制性的缺省标识符(CAN-ID)分配表。这些标志符在预操作状态下可用,通过动态分配还可修改他们。预定义连接集定义了4个接收PDO(ReceivePDO),4个发送PDO(TransmitPDO),1个SDO(占用2个CAN-ID),1个紧急对象和1个节点错误控制(Node-Error-Control)ID。也
27、支持不需确认的NMT-Module-Control服务,SYNC和Time Stamp对象的广播。第6章 通信功能与总线接口附件 第6章 通信功能与总线接口附件 第6章 通信功能与总线接口附件 CANopen支持多种类型设备模块,不同的设备子协议(DS 4XX),对于预定义连接集中的PDO定义是不同的。例如CiA DS 401作为I/O模块的设备子协议,详细地规定了各个PDO的通信参数和数据映射参数。四组PDO中一组用于DI/DO,其余三组用于AI/AO,若模块只实现其中的部分功能,则其他功能部分可以不使用。第6章 通信功能与总线接口附件 DS 401 RPDO1:映射到6200H的8个8bi
28、t array(DO)TPDO1:映射到6000H的8个8bit array(DI)对应最大64个DI/DO(Boolean)RPDO2:映射到6411H的前4个16bit array(AO)TPDO2:映射到6401H的前4个16bit array(AI)RPDO3:映射到6411H的中4个16bit array(AO)TPDO3:映射到6401H的中4个16bit array(AI)RPDO4:映射到6411H的后4个16bit array(AO)TPDO4:映射到6401H的后4个16bit array(AI)Integer类型第6章 通信功能与总线接口附件 2.1 2.1 应用对象应用
29、对象 低温等离子体设备系统。二 CANopen协议协议具体应应用开发开发第6章 通信功能与总线接口附件 PECVD设备系统概念图设备系统概念图除害装置气瓶柜气瓶柜Gas Box出气电极出气电极(阳极阳极)Heater等离子等离子电源匹配箱电源匹配箱 控制器電源電源下部电极下部电极(阴极阴极)压力计压力计节流阀节流阀Pump气体供给气体供给流量控制流量控制RF电源电源压力控制压力控制真空排气真空排气工艺腔室工艺腔室第6章 通信功能与总线接口附件 PECVD设备组成结构示意图设备组成结构示意图第6章 通信功能与总线接口附件 基于基于CANCAN总线的低温等离子体设备系统设计方案总线的低温等离子体设
30、备系统设计方案2.2 2.2 系统设计方案系统设计方案第6章 通信功能与总线接口附件 系统软件总体框架系统软件总体框架CAN驱动模块状态管理和反馈模块实时过程数据传输模块参数读取和配置模块紧急事件处理模块对象字典模块CANopen软件模块组成用户应用程序第6章 通信功能与总线接口附件 2.3 2.3 软件功能模块设计软件功能模块设计CAN 驱动模块CAN控制器初始化模块CAN中断处理模块CAN报文发送模块2.3.1 CAN驱动程序第6章 通信功能与总线接口附件 2.3.2 对象字典 对象字典是CANopen的核心概念,它存储了节点的所有信息。是一个有序的对象组,每个对象采用一个16位的索引值来
31、寻址,同时定义了一个8位的子索引用于访问数据结构中的单个元素。第6章 通信功能与总线接口附件 对象字典实体结构 对象字典功能框图对象字典实体读函数写函数对象字典模块0001H-0FFFH数据类型定义区(可选)1000H-1FFFH通信子协议区(必要)2000H-5FFFH制造商特定协议区(可选)6000H-9FFFH标准设备子协议区(必要)存储电流电压输入信号、电压控制信号、启/停、手/自动.第6章 通信功能与总线接口附件 实现方案 单片机计算资源紧缺,采用静态结构体数组 结构简单,易于实现 访问效率高第6章 通信功能与总线接口附件 对象字典接口函数 getODentry、setODentry
32、 与对象字典配套使用 访问指定对象 控制访问行为,杜绝非法访问,防止数据损坏第6章 通信功能与总线接口附件 2.3.3 状态控制 在节点内部运行着一个状态机,状态转换由管理者控制,节点在不同的状态下执行不同的任务,各个功能模块的使能情况也不同。1启动远程节点2暂停远程节点3进入预操作状态4重置节点5重置节点通信6初始化完成后自动进入预操作状态第6章 通信功能与总线接口附件 状态转换过程 功能可用性控制 调用相应的功能模块时检查功能使能表。只有服务被使能,调用才生效。第6章 通信功能与总线接口附件 从节点上电后在状态机里运行,状态受管理者控制,设计从节点的软件总体流程如下:第6章 通信功能与总线
33、接口附件 2.3.4 状态反馈 节点可以通过一种叫做心跳的方式周期性地向主站汇报当前的状态。生产者/消费者模式检测节点是否在线监视节点状态定时器中断处理发送,定时值取自对象字典。第6章 通信功能与总线接口附件 2.3.5 实时过程数据传输 引入CANopen的目的之一:更规范和有效地传输实时过程数据。两个问题:I/O数据什么时候被传输?数据如何封装?利用CANopen协议中的PDO(Process Data Object)功能 基于生产者/消费者模式。多种传输模式。数据长度被限制为18字节。数据内容由映射参数对象决定,双方都知道。第6章 通信功能与总线接口附件 多种传输模式?同步周期异步同步同
34、步非周期远程帧预触发事件预触发远程帧触发事件触发第6章 通信功能与总线接口附件 映射参数 包含一个对象字典中对象的列表,这些对象映射到PDO报文里,包括对象的数据长度。生产者和消费者必须知道这个映射,才能解释PDO报文的内容。第6章 通信功能与总线接口附件 实时过程数据传输模块组成接收PDO报文模块发送PDO报文模块建立PDO报文模块实时过程数据传输模块CAN驱动模块第6章 通信功能与总线接口附件 建立PDO函数 被发送和接收模块调用。根据映射参数表建立PDO报文。第6章 通信功能与总线接口附件 发送和接收模块 实现PDO报文的各种传输方式。处理收到的PDO报文。发送PDO模块同步周期发送功能
35、同步远程帧预触发发送功能异步事件触发发送功能接收PDO模块同步事件预触发发送功能PDO数据处理功能异步远程帧触发发送功能第6章 通信功能与总线接口附件 2.3.6 参数读取和设置 管理者如何配置和读取节点服务的参数?利用CANopen协议的SDO(Service Data Object)功能。对象字典的远程访问接口 用来配置和读取节点的参数 基于客户端/服务器模式第6章 通信功能与总线接口附件 对象字典安全要求高,数据项长度不一,访问须遵循一定的规范。SDO服务定义了5个协议:启动域下载,域分段下载,启动域上传,域分段上传和域传送中止。访问协议体现在SDO报文命令字中。第6章 通信功能与总线接
36、口附件 SDO服务实现 关键是解析SDO命令字。命令字前三位只有0、1、2、3、4这几种类型,对其进行分类并按照协议规范处理,SDO功能即可以实现。SDO服务处理模块启动域下载模块启动域上传模块域分段下载模块域分段上传模块域传送中止模块01234第6章 通信功能与总线接口附件 2.3.7 紧急事件服务属于网络管理的一部分嵌入到用户应用程序中若检测到紧急情况(过压、过流等),处理过程分两步:1.采取既定的紧急保护措施,断电保护、输出复位。2.以高优先级发送紧急事件报文,携带节点地址和错误代码,向管理者汇报报警信息,等待后续处理。第6章 通信功能与总线接口附件 2.4 2.4 协议栈测试协议栈测试
37、2.4.1 测试与实验平台搭建USB-CAN模块作为监控计算机的CAN网络接口具备存储功能的示波器观察总线波形挂载4个智能节点,囊括了基本的低温等离子体设备ZLGCANtest软件监视总线上所有报文总线波特率500Kbps第6章 通信功能与总线接口附件 2.4.2 单节点通信周期测试单节点实时过程数据传输最小周期测试 计算机发送同步报文后,节点根据PDO通信参数发送报文。设置PDO为同步周期发送模式,周期为”1”单节点参数配置通信最小周期测试 计算机发送SDO请求,从节点接收到后必须回复一个SDO应答,测试参数配置响应周期。第6章 通信功能与总线接口附件 2.4.3 多节点实时数据通信周期测试
38、模拟多节点CAN网络实际运行的情况测试最小的可靠网络数据刷新时间观测不同通信周期下的丢包现象同步周期同步报文数量接收PDO数量 延迟发送和丢包现象100ms10004000正常无延迟 40ms10004000正常无延迟 30ms10004000开始出现延迟发送现象 25ms10004000延迟发送现象加剧 20ms10004000延迟发送现象更严重 15ms10001973出现严重丢包现象 10ms10002052出现严重丢包现象第6章 通信功能与总线接口附件 2.4.4 实现功能总结 实现的协议栈提供的功能如下表所示:功能必要性本文协议栈SDO服务器端必要完成,支持1个服务器端SDO客户端必
39、要部分支持PDO发送必要完成PDO接收必要完成节点保护/心跳保护必要支持心跳保护运行状态机必要完成紧急事件报文必要完成,通知上层时间戳可选不支持自动设置CAN波特率可选不支持通过拨码开关设置节点号可选不支持可移植性C编写,模块化,可移植性较好第6章 通信功能与总线接口附件 2.4.5 应用 将CANopen与各设备软件功能模块结合,实现了设备的计算机控制、数据实时汇报等功能。相比原来的手动控制有效提高了设备控制精度和监控效率,对于提高低温等离子体设备系统的自动化水平有积极的借鉴意义。第6章 通信功能与总线接口附件 2.4.6 低温等离子体设备系统中主从节点帧格式定义真空计真空计报文种类cob-
40、id12345678控制报文202H手/自动启/停汇报报文182H真空度(低8位)真空度(高8位)手/自动状态启/停状态流量计流量计控制报文203H手自动切换关闭/阀控/清洗流量(低8位)流量(高8位)汇报报文183H手/自动状态关闭/阀控/清洗状态流量(低8位)流量(高8位)从站帧格式:第6章 通信功能与总线接口附件 变频器变频器控制报文204H运行/停止手/自动切换驱动频率(低8位)驱动频率(高8位)汇报报文184H运行/停止状态手/自动状态驱动频率(低8位)驱动频率(高8位)驱动电压(低8位)驱动电压(高8位)驱动电流(低8位)驱动电流(低8位)高压电源高压电源控制报文201H启动/停止
41、供电手/自动切换自动控制输出(00H-64H)汇报报文181H输出电流(低8位)输出电流(高8位)输出电压(低8位)输出电压(高8位)第6章 通信功能与总线接口附件 主站对象字典中的PDO映射参数(主站的,注意跟从站的区分)1.1、TPDO(发送报文,传输控制命令)(发送报文,传输控制命令)1.1.1 TPDO1(与高压电源通信)COB_ID:201H 6200 01 08 启/停控制(00启动,01断开)6200 02 08 手自动切换(00 单片机控制 ,01 手动控制)6410 01 08 自动控制输出(00H-64H,对应数字电位器5-0V)1.1.2 TPDO2(与真空计通信)COB
42、_ID:202H 6200 03 08 手/自动控制 6200 04 08 启停控制1.1.3 TPDO3 (与流量计通信)COB_ID:203H 6200 05 08 手/自动切换 6200 06 08 关闭/阀控/清洗 6411 01 10 流量设定值(16位)1.1.4 TPDO4 (与变频器通信)COB_ID:204H 6200 07 08 运行/停止 6200 08 08 手自动切换 6411 02 10 驱动频率(16位)第6章 通信功能与总线接口附件 1.2、RPDO(汇报报文,接收(汇报报文,接收I/O数据)数据)1.2.1 RPDO1(与高压电源通信)COB_ID:181H 6401 01 10 电流反馈(16位)6401 02 10 电压反馈(16位)1.2.2 RPDO2(与真空计通信)COB_ID:182H 6401 03 10 真空度反馈(16位)6000 01 08 手/自动状态 6000 02 08 启/停状态1.2.3 RPDO3 (与流量计通信)COB_ID:183H 6000 03 08 手/自动状态 6000 04 08 关闭/阀控/清洗状态 6401 04 10 流量设定值(16位)1.2.4 RPDO4 (与变频器通信)COB_ID:184H 6000 05 08 运行/停止状态 6000 06 08 手/自动状态