CAN-bus现场总线基础教程【第6章】CAN总线应用层协议(CANopen)-CANopen主站设备的实现(26)
CANopen协议讲解

CANopen协议讲解一、引言CANopen是一种基于CAN总线的通信协议,用于实现分布式控制系统中的设备之间的通信。
本协议旨在详细介绍CANopen协议的基本原理、通信机制、数据结构和应用领域。
二、协议概述1. 协议定义:CANopen是一种开放的、标准化的通信协议,用于实现CAN总线上的设备之间的通信和数据交换。
2. 协议特点:a. 灵活性:CANopen协议支持多种数据类型和通信方式,适用于不同的应用场景。
b. 可扩展性:协议定义了一系列标准对象和服务,可以根据实际需求进行扩展和定制。
c. 实时性:CANopen协议采用基于事件驱动的通信机制,支持实时数据传输和处理。
d. 可靠性:协议提供了错误检测和纠正机制,保证通信的可靠性和稳定性。
三、通信机制1. 帧格式:CANopen协议使用标准的CAN数据帧格式进行通信,包括标识符、数据长度码和数据域等字段。
2. 节点地址:每个CANopen设备都有一个唯一的节点地址,用于识别和寻址设备。
3. 通信对象:CANopen协议定义了一系列标准对象,包括数据对象、远程对象和服务对象等,用于实现设备之间的数据交换和控制。
4. 状态机:CANopen设备通过状态机进行通信管理,包括节点状态、网络状态和通信状态等。
四、数据结构1. 数据类型:CANopen协议支持多种数据类型,包括布尔型、整型、浮点型、字符串型等。
2. 对象字典:CANopen设备使用对象字典来管理和存储数据对象,包括输入对象、输出对象和配置对象等。
3. PDO:PDO(Process Data Object)用于实现实时数据传输和同步控制,包括TPDO(Transmit PDO)和RPDO(Receive PDO)两种类型。
五、应用领域1. 工业自动化:CANopen协议广泛应用于工业自动化领域,用于实现分布式控制系统中的设备之间的通信和数据交换。
2. 汽车电子:CANopen协议被用于汽车电子系统中,如发动机控制、车身控制、底盘控制等。
CANopen协议CAN总线的通信协议

CANopen协议CAN总线的通信协议CANopen协议是一种广泛应用于现代工业自动化领域的通信协议,它基于CAN总线技术,为设备之间的通信提供了一套规范和标准化的方式。
本文将介绍CANopen协议的基本原理、通信对象和通信过程。
一、CANopen协议的基本原理CANopen协议是建立在CAN总线之上的,因此首先需要了解CAN总线的基本原理。
CAN总线是一种多主机、多从机的串行通信系统。
它采用差分信号传输的方式,具有低成本、抗干扰能力强、可靠性高等特点。
CANopen协议基于CAN总线,定义了一系列的对象字典和通信服务,用于设备之间的数据交换和控制。
设备可以根据对象字典的内容来读取和写入数据,也可以通过通信服务来实现不同设备之间的通信。
二、CANopen协议的通信对象CANopen协议定义了丰富的通信对象,包括节点、对象字典和数据类型等。
其中,节点是CANopen网络中的实体,可以是主控节点或从节点。
主控节点负责整个网络的管理和控制,而从节点则负责执行具体的任务。
对象字典是CANopen协议的核心,它存储了设备的参数、状态和控制信息等。
对象字典中的每个对象都有一个唯一的标识符,用于标识该对象的类型和属性。
通过读取和写入对象字典中的数据,设备之间可以进行数据交换和共享。
CANopen协议还定义了一系列的数据类型,如布尔型、整型、实型和字符串型等。
这些数据类型可以用于描述设备的各种参数和状态,同时也可以作为通信对象的数据格式。
三、CANopen协议的通信过程CANopen协议的通信过程可以分为以下几个步骤:1. 初始化:CANopen网络在启动时需要进行初始化,包括网络配置、节点配置和通信参数的设置。
2. 启动:主控节点向从节点发送启动命令,从节点根据接收到的命令进行初始化和配置,并报告自身的状态。
3. 数据传输:设备之间通过读取和写入对象字典来进行数据的传输。
主控节点可以向从节点发送读取或写入对象的命令,从节点则根据命令进行相应的操作并回复结果。
CANopen协议讲解

根据DS301的内容进行介绍1、CAN总线CAN标准报文2、CANopen应用层协议CANopen 协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。
同时,CANopen 完全基于CAN 标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。
一个标准的CANopen 节点(下图),在数据链路层之上,添加了应用层。
该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。
一个标准的CANopen 节点CANopen 应用层协议细化了CAN 总线协议中关于标识符的定义。
定义标准报文的11 比特标识符中高4 比特为功能码,后7 比特为节点号,重命名为通讯对象标识符(COB-ID)。
功能码将所有的报文分为7个优先级,按照优先级从高至低依次为:网络命令报文(NMT)同步报文(SYNC)紧急报文(EMERGENCY)时间戳(TIME)过程数据对象(PDO)服务数据对象(SDO)节点状态报文(NMT Err Control)7 位的节点号则表明CANopen 网络最多可支持127个节点共存(0 号节点为主站)。
下表给出了各报文的COB-ID 范围。
NMT 命令为最高优先级报文,由CANopen 主站发出,用以更改从节点的运行状态。
SYNC 报文定期由CANopen 主站发出,所有的同步PDO 根据SYNC报文发送。
EMERGENCY报文由出现紧急状态的从节点发出,任何具备紧急事件监控与处理能力的节点会接收并处理紧急报文。
TIME 报文由CANopen 主站发出,用于同步所有从站的内部时钟。
PDO 分为4 对发送和接收PDO,每一个节点默认拥有4对发送PDO 和接收PDO,用于过程数据的传递。
SDO 分为发送SDO 和接收SDO,用于读写对象字典。
MT Error Control报文由从节点发出,用以监测从节点的运行状态。
状态机CANopen 的每一个节点都维护了一个状态机。
CAN-bus现场总线基础教程【第6章】CAN总线应用层协议(CANopen)-CANopen主站设备及其应用(23)

文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.第6章 CAN 总线应用层协议——CANopen1.1 CANopen 主站设备及其应用由于可靠性、实时性、低成本、抗干扰性、兼容能力等多个方面的优势,CAN-bus 与其高层协议CANopen 已成为了车辆数据通信系统的事实标准,并普遍应用于所有的可移动设施,例如船舶舰艇、客车火车、升降电梯、重载车辆、工程机械、运动系统、分布式控制网络等。
几乎所有的通用 I/O 模块、驱动器、智能传感器、PLC 、MMI 设备的生产厂商都提供有支持CAN-bus 与CANopen 标准的产品。
只要符合 CANopen 协议标准及其设备协议子集标准的系统,就可以在功能和接口上保证各厂商设备的互用性和可交换性。
1.1.1 CANopen 网络特点作为标准化应用,CANopen 建立在设备对象描述的基础上,设备对象描述规定了基本的通信机制及相关参数。
CANopen 可通过总线对设备进行在线配置,与生产厂商无关联,支持网络设备的即插即用("Plug and Play")。
CANopen 支持2类基本数据传输机制:PDO 实现高实时性的过程数据交换,SDO 实现低实时性的对象字典条目的访问。
SDO 也用于传输配置参数,或长数据域的传输。
CANopen 既规定了各种设备之间的通信标准,也定义了与其他通信网络的互连规范。
1.1.2 CANopen 网络中的设备分类在说明CANopen 网络设备分类之前,我们有必要先了解其网络通信模型。
CAN-bus 支持 “生产者-消费者”通信模型,支持一个生产者和一个或多个消费者之间的通信关系。
生产者提供服务,消费者接收则可以(消费)或忽略服务。
需要注意,CANopen 标准作为CAN-bus 的应用层协议之一,除了支持上述服务类型外,还支持“客户端-服务器”通信模型。
CANopen协议讲解

CANopen协议讲解CANopen是一种基于CAN总线的通信协议,用于工业自动化领域中设备之间的数据交换和控制。
它是由CAN in Automation (CiA)组织开发和维护的,目前已成为工业领域最常用的开放式通信协议之一。
本文将详细介绍CANopen协议的基本原理、通信结构、数据通信方式以及应用领域等内容。
1. CANopen协议的基本原理CANopen协议基于CAN总线,采用了面向对象的通信模型。
它将设备抽象为对象,每个对象具有唯一的标识符,通过读写对象字典中的数据来实现设备之间的通信。
CANopen协议还定义了一套标准的通信服务和对象类型,使得不同厂商的设备可以互相兼容和交互。
2. CANopen协议的通信结构CANopen协议采用了主从式的通信结构,其中一个节点作为主节点,其他节点作为从节点。
主节点负责控制总线的访问和数据传输,从节点负责接收和响应主节点的指令。
主节点和从节点之间的通信通过报文进行,包括数据报文和远程帧。
3. CANopen协议的数据通信方式CANopen协议支持多种数据通信方式,包括点对点通信、广播通信和组播通信。
点对点通信是指主节点与特定从节点之间的通信,广播通信是指主节点向所有从节点发送相同的指令,组播通信是指主节点向特定组内的从节点发送指令。
4. CANopen协议的对象字典CANopen协议使用对象字典来存储设备的数据和配置信息。
对象字典是一个由多个对象组成的数据结构,每个对象包含了标识符、数据类型、访问权限等信息。
通过读写对象字典中的数据,可以实现设备之间的数据交换和控制。
5. CANopen协议的应用领域CANopen协议广泛应用于工业自动化领域,包括机械设备、工厂自动化、物流系统等。
它提供了可靠的数据传输和实时性能,适用于各种复杂的控制和监测应用。
CANopen协议还支持设备的配置和诊断功能,使得系统维护和故障排除更加方便。
总结:CANopen协议是一种基于CAN总线的通信协议,用于工业自动化领域中设备之间的数据交换和控制。
CANopen协议应用指南

CANopen协议应用指南CANopen协议是一种用于控制与通信领域的通用现场总线协议。
它构建在CAN(控制器区域网络)总线上,提供了一种开放、高效、可靠和灵活的方式来组织和管理分布式系统。
本文将介绍CANopen协议的应用指南,主要包括网络结构、数据通信、设备配置和节点管理等方面。
首先,网络结构是CANopen协议应用的基础。
CANopen网络由一个或多个节点组成,节点之间通过CAN总线进行通信。
每个节点都有一个唯一的标识符,用于区分不同的节点。
网络结构可以是主-从结构,其中一个节点作为主节点,负责控制和管理其他从节点;也可以是对等结构,所有节点都可以互相通信和交互。
网络结构的选择取决于实际应用的需求。
其次,数据通信是CANopen协议的核心功能之一、CANopen提供了多种数据通信方式,包括广播通信、点对点通信和多点通信。
广播通信是将数据广播到整个网络中的所有节点;点对点通信是两个特定节点之间的直接通信;多点通信是将数据发送到一个或多个指定的节点。
CANopen还提供了一种灵活的通信参数设置机制,可以根据应用需求进行定制。
设备配置是CANopen协议应用中的重要环节。
每个CANopen设备都有一个设备描述文件(EDS),其中包含了设备的标识、功能和配置信息。
在设备配置过程中,需要根据实际应用需求修改和设置设备的各个参数,例如节点ID、通信速率、数据对象和服务对象等。
设备配置的目的是确保网络中的所有节点能够正确地进行通信和交互。
最后,节点管理是CANopen协议应用中的关键任务之一、节点管理包括节点的启动、停止、心跳检测、重启以及节点状态的监控和管理等。
CANopen协议提供了一系列的节点管理服务,如NMT(网络管理)服务、SDO(服务数据对象)服务和EMCY(紧急)服务等。
通过节点管理,用户可以对网络中的节点进行灵活的控制和管理。
总结而言,CANopen协议是一种强大的通信协议,可以广泛应用于控制与通信领域。
can总线与canopen协议
竭诚为您提供优质文档/双击可除can总线与canopen协议篇一:•canopen协议讲解根据ds301的内容进行介绍1、can总线can标准报文2、canopen应用层协议canopen协议不针对某种特别的应用对象,具有较高的配置灵活性,高数据传输能力,较低的实现复杂度。
同时,canopen完全基于can标准报文格式,而无需扩展报文的支持,最多支持127个节点,并且协议开源。
一个标准的canopen节点(下图),在数据链路层之上,添加了应用层。
该应用层一般由软件实现,和控制算法共同运行在实时处理单元内。
一个标准的canopen节点canopen应用层协议细化了can总线协议中关于标识符的定义。
定义标准报文的11比特标识符中高4比特为功能码,后7比特为节点号,重命名为通讯对象标识符(cob-id)。
功能码将所有的报文分为7个优先级,按照优先级从高至低依次为:网络命令报文(nmt)同步报文(sync)紧急报文(emeRgency)时间戳(time)过程数据对象(pdo)服务数据对象(sdo)节点状态报文(nmterrcontrol)7位的节点号则表明canopen网络最多可支持127个节点共存(0号节点为主站)。
下表给出了各报文的cob-id范围。
nmt命令为最高优先级报文,由canopen主站发出,用以更改从节点的运行状态。
sync报文定期由canopen主站发出,所有的同步pdo根据sync报文发送。
emeRgency报文由出现紧急状态的从节点发出,任何具备紧急事件监控与处理能力的节点会接收并处理紧急报文。
time报文由canopen主站发出,用于同步所有从站的内部时钟。
pdo分为4对发送和接收pdo,每一个节点默认拥有4对发送pdo和接收pdo,用于过程数据的传递。
sdo分为发送sdo和接收sdo,用于读写对象字典。
mterrorcontrol报文由从节点发出,用以监测从节点的运行状态。
状态机canopen的每一个节点都维护了一个状态机。
CANopen通讯协议介绍
CANopen通讯协议介绍CANopen是一种现场总线通信协议,它基于CAN(Controller Area Network)总线,用于在工业自动化和机器控制领域的设备之间进行通信。
它提供了一种标准化的通信和数据传输方式,具有高可靠性和实时性的特点。
CANopen协议在1994年首次发布,由CAN in Automation(CiA)组织负责制定和推广。
它采用基于对象的通信模型,通过定义不同类型的对象和对象字典来进行数据传输和设备之间的交互。
CANopen协议定义了不同的设备和功能模块之间的消息结构、通信规则和参数设置等。
CANopen协议提供了一种灵活且可扩展的通信方式,可以支持多种不同类型的设备和功能模块。
它可以用于各种应用领域,例如工业机器人、自动化生产线、电动机控制、安全系统和智能家居等。
CANopen协议适用于小型设备和大型系统,可以通过简单的点对点连接或复杂的网络结构进行通信。
1. 对象导向:CANopen协议采用面向对象的通信模型,通过定义对象和对象字典来进行数据传输和设备之间的交互。
对象可以是实际的物理设备、功能模块或数据结构。
对象字典是一个集合,用于存储和管理不同类型的对象。
2. 报文结构:CANopen协议定义了不同类型的报文结构,包括同步报文、时间戳报文、心跳报文、PDO(Process Data Object)报文和SDO (Service Data Object)报文等。
这些报文用于不同的通信任务和数据传输需求。
3. 设备配置:CANopen协议支持动态设备配置,可以自动检测和配置新加入的设备。
设备可以通过网络管理工具或主控设备进行配置和监控。
设备的参数设置和功能扩展可以通过SDO报文进行远程配置。
4. 网络管理:CANopen协议支持多种网络拓扑结构,包括主从结构、多主结构和对等结构等。
它提供了网络节点的自动发现、节点状态监测、网络同步和错误诊断等功能。
可以通过网络管理工具进行网络配置和监控。
CAN-bus现场总线基础教程【第6章】CAN总线应用层协议(CANopen)-嵌入式CANopen协议转换模块(24)
第6章 CAN 总线应用层协议——CANopen1.1 嵌入式CANopen 协议转换模块CANopen 协议作为CAN 总线的应用层协议,拥有复杂的网络管理(Network Management )、实时过程数据对象( Process Data Object )、服务数据对象(Service Data Object )、预定义连接和特殊功能对象等基本功能,另外CANopen 协议还定义了指示灯规范、通信安全架构、在线配置、以及EDS 文件规范、标准设备规范等一系列的协议规范。
因此开发基于CANopen 协议的设备有着非常高的难度以及较长的开发周期。
1.1.1 XGate-COP10简介XGate-COP10是广州致远电子股份有限公司开发的一款嵌入式CANopen 协议转换模块,该模块内部已经集成了CANopen 从站协议栈代码,可将CANOpen 协议转换为简单的串口协议,并通过UART 接口与用户CPU 通信。
其支持CANopen 标准协议DS301、DS302、DS303、DS305。
XGate-COP10所有的功能均通过CiA 的一致性测试软件的测试,保证了与其它CANopen 设备的良好的兼容性。
该模块的问世让用户不需要对CANOpen 协议有深入了解即可快速方便的使现有设备具有CANopen 通信能力。
该模块具有如下所示的功能特点:● 网络管理服务对象(支持NMT 的Boot up 、Node Guarding /Life guarding 、HeartbeatProducer 功能);● 过程数据对象(支持TPDO 与RPDO );● 支持服务数据对象(SDO )服务器;● 紧急报文对象; ● 同步报文对象; ● 网络配置对象(支持LSS 从站); ● 串口通信能力;● 96字节的输入输出(I/O )数据缓冲。
XGate-COP10从站具有高实时性,并可以支持多达12个RPDO 和TPDO 过程数据传输,适用于各种干扰强、实时性要求高的场合,小巧的体积适用于嵌入到各种电路板中,在用户系统中的结构如图0.1所示。
几种CAN应用层协议介绍
几种CAN应用层协议介绍CAN(Controller Area Network)是一种专门用于高速通信的实时总线系统,在汽车领域被广泛应用。
为了实现CAN总线上的数据传输与通信,需要使用CAN应用层协议。
本文将介绍几种常见的CAN应用层协议,包括CANopen、DeviceNet和J1939。
一、CANopenCANopen是一种开放式的CAN应用层协议,在广泛应用于工业自动化领域。
它定义了一套标准的通信和设备配置方法,使得不同厂商的CAN设备可以进行互操作。
CANopen协议分为两个层次:通信层和对象字典层。
1. 通信层CANopen的通信层定义了一组规范的消息对象类型,包括消息ID、数据长度和数据内容等信息。
这些消息对象类型可以被设备和应用程序使用,用于进行数据的读取、写入和事件的触发等操作。
2. 对象字典层CANopen的对象字典层定义了一套用于描述设备的数据结构和功能的规范。
设备上的每个对象都有一个唯一的索引号,并包含了对象的属性、数据类型和访问权限等信息。
通过对象字典层,应用程序可以获取设备的状态信息、配置参数和执行控制命令等。
二、DeviceNetDeviceNet是一种用于工业自动化领域的CAN应用层协议,主要用于连接工业设备和控制器。
它的特点是简单易用、稳定可靠,并具有较强的扩展性。
DeviceNet定义了一套标准的通信和设备配置方法,可以支持不同类型的设备之间的互联互通。
DeviceNet协议基于主从结构,其中主节点负责进行总线控制和数据交换,从节点则负责执行具体的控制操作。
DeviceNet协议支持多种网络拓扑结构,包括线性拓扑、星型拓扑和树状拓扑等。
三、J1939J1939是一种广泛应用于商用车辆领域的CAN应用层协议,主要用于车辆电子系统之间的通信。
它是由卡车和汽车制造商共同制定的一套通信标准,包括消息格式、通信速率和设备标识等方面。
J1939协议定义了一套复杂的消息格式,包括消息ID、数据长度和数据内容等信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.
第6章 CAN 总线应用层协议——CANopen
1.1 CANopen 主站设备的实现
上文介绍了CANopen 协议转换模块——XGate-COP10和基于该模块设计的I/O 设备,本章节中将介绍CANopen 网络中具有主站功能的设备如何开发。
尽管在CiA 组织的CANopen 规范中没有明确的定义主站设备和从站设备,但大家还是习惯把具有网络管理(NMT )能力的CANopen 设备称之为CANopen 主站设备。
除此之外CANopen 主站还应具有服务数据(SDO )客户端功能,这样CANopen 主站能够控制以及访问网络中的所有CANopen 从站。
PCI-5010-P 就是具有这些功能的CANopen 主站板卡(PCI 接口),下文
将介绍如何基于该产品快速实现功能强大的CANopen 主站设备。
1.1.1 CANopen 网络的拓扑结构 一个CANopen 网络中的主站设备管理着其它的从站设备,而且一个网络只允许有一个CANopen 主站设备和最多127个从站设备存在。
图6.1所示为PCI-5010-P 在CANopen 网络中的典型应用形式。
1.1.2 PCI-5010-P CANopen 主站卡简介
PCI-5010-P 系列工业级CAN 通信卡支持CANopen 主站协议,支持CiA 建议的标准波特率以及自定义波特率,并提供多个操作系统的设备驱动、工具软件等,能真正的满足客户的各种应用需求,为工业通信CANopen 网络提供了可靠性、高效率的解决方案,在计算机中的硬件与软件结构如图6.2所示。
图6.2 PCI-5010-P 在计算机中的硬件与软件结构
PCI-5010-P 具有如下特性:
用PCI 总线,兼容PCI 2.2规范;
图6.1 PCI-5010-P 在CANopen 网络中的结构
文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.
● 支持CAN2.0A 协议; ● 支持CANopen 协议;
● 符合ISO/DIS 11898-2 规范;
● 集成1路电气完全隔离的CAN 通道; ● DC 2500V 电气隔离保护; ● 增强ESD/EMI 性能;
● 遵守工业应用规范。
1.1.3 PCI-5010-P 驱动安装
PCI-5010-P 通信卡没有任何开关和跳线用于分配中断和I/O 地址,这些都是由BIOS 自动分配。
因此在安装驱动程序之前板卡必须事先安装到PCI 槽上,以下是安装步骤。
通常在新加装PCI 机会后,启动计算机之后会弹出“找到新硬件”的界面后,这时需要手动的把PCI-5010-P 的驱动所在的文件夹添加到搜索的位置,这样直接点击下一步,驱动程序加载程序就自动的把驱动程序安装完成。
1.1.4 基于PCI-5010-P 的PC 机端软件设计
图6.3所示为PCI-5010-P 的操作流程,其概括性的描述了PCI-5010-P 的所有功能及相应的API 函数调用结构。
以下将详细介绍常用的API 函数功能及使用。
图6.3 PCI-5010-P API 函数操作流程图
1. 初始化PCI-5010-P
PCI-5010-P 被打开时,必须按照图6.3所示的顺序来操作,即需要经历打开、初始化参数、添加节点,启动CANopen 主站等步骤。
在关闭PCI-5010-P 时,其操作与初始化的流程相反,操作代码如程序清单6.1所示。
程序清单6.1 PCI-5010-P 操作代码
1 void OnStartCANopen(void){
2 ......
3 ZCOMA_Open(1,0,0);
// 打开PCI-5010-P 4 ZCOMA_Init(1,0,0,&testcfg,&hPCopmst); // 初始化协议 5
ZCOMA_AddNode(hPCopmst,&nodecfg);
// 添加节点 6 ZCOMA_Start(1,0) ;}
// 开始设备
7
void CloseDevice(void){
文库资料 ©2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.
2. 注册RPDO (接收PDO )
PCI-5010-P 主站卡能接收来自CANopen 网络中的所有PDO 数据,但是需要在接收指定的PDO 数据之前需要把该PDO 的COB-ID 注册到CANopen 协议栈中。
其实现代码可参考程序清单6.2。
程序清单6.2 注册RPDO 到CANopen 协议栈中
12 void RegisterRPDO(void){ 13 if (ZCOMA_InstallPDOforInput(hPCopmst,NodeID,PDOID) != 0) { // 注册接收PDO 14
...... }
3. SDO 传送数据
作为一个CANopen 主站设备应该具备SDO 客服端功能,这样就可以通过SDO 来访问网络中节点的任意对象字典,其中包括下载和上传数据。
其操作可参考程序清单6.3。
程序清单6.3 SDO 数据传输示例
15 void SDOTranstmit(void){ 16 .....
17 ZCOMA_UploadDatabySDO(hPCopmst,NodeID,index,subindex,buf,&datlen,1000); // 上传数据
18 ZCOMA_DownloadDatabySDO(hPCopmst,NodeID,index,subindex,buf,datlen,1000); // 下载数据
19
}
4. NMT 网络管理
PCI-5010-P 作为CANopen 主站设备,其最主要的特征就是拥有对整个网络的控制权,即网络管理功能(NMT )。
可使网络中的CANopen 设备进入到不同的操作状态(启动从站、停止从站、进入预操作状态、复位协议栈,复位通信参数等)。
其操作示例可参考程序清单6.4。
程序清单6.4 网络管理功能
20 void NodeStateSet(void) { 21 DWORD state = 0x01;
22
ZCOMA_SetNodeState(hPCopmst,0x01,state) ; } // 启动节点地址为1的从站
5. 其它功能
PCI-5010-P 不仅具有如上所述的基本功能之外,还具有其它一些CANopen 相关的功能特性,例如获取指定从站的当前工作状态、发送网络时间标识、远程请求PDO 数据以及处理紧急错误代码等(具体操作可参考API 函数库手册)。
这些功能都为开发一个完整的CANopen 主站设备提供了必备条件。
经过以上步骤,通过调用PCI-5010-P 的API 函数库完全可以实现一个特定功能的CANopen 主站设备。
因为PCI-5010-P CANopen 协议栈经过CiA 的一致性测试,所以能很好的好的兼容其它的CANopen 设备。