1、,CANopen通讯协议培训,Confidential Property of Schneider Electric,王兆宇2017-03-03,CAN通讯的简介,历史,CAN (Controller Aera Network,控制器局部网) 是德国Bosch公司在1983年开发的一种串行数据通讯协议,最初应用于现代汽车中众多的控制与测试仪器之间的数据交换,是一种多主方式的串行通讯总线,介质可以是双绞线、同轴电缆和光纤,速率可达1Mbps,支持多达128个节点;具有高抗电磁干扰性,而且能够检测出产生的任何错误,保证数据通讯的可靠性。通信机制比较简单,适合于所有机械的嵌入式网络,可以降低设备的复
2、杂程度,在工业领域(如汽车、电梯、医疗、船舶、纺织机械等)得到了广泛应用,是欧洲重要的网络标准 CANopen的术语 1993年CiA发布用来描述传送机制的CAL(Communication Application Layer) 规范 1995年CiA发布DS-301通信描述文件:CANopen 2001年CiA发布DS-304,在标准CANopen总线上集成4层安全元件(CANsafe),Page 2,Confidential Property of Schneider Electric |,CAN通讯,术语,Page 3,Confidential Property of Schneider
3、 Electric |,CAN=Controller Area Network 控制器局域网 CiA=CAN in Automation 协会 www.can-cia.org CANopen 是CAN应用层协议,它基于信息广播的通讯概念 : 每一个连接到总线的站点都在接收其它站点的信息.然后决定他们的动作,是否回答相关指令. CAN 协议授权所有的站点同步访问总线.然后根据 COB-ID 给予优先权. COBIDComunication Object Identifier-由通讯标识码和从站地址组成 EDSElectronic Data Sheet,用于描述设备通讯相关的文件 CAL-CAN
4、的应用层 CAL (CAN application layer ),由Cia(CAN In Automation)定义,CAN通讯的模型,模型,Page 4,Confidential Property of Schneider Electric |,CANopen和ISO模型,CiA DS-301 = Communication profile,EMPTY,EMPTY,EMPTY,EMPTY,CAN 2.0 A and B + ISO 11898,CAN 2.0 A and B = ISO 11898-1 and 2,ISO 11898 + DS-102,Device Profile CiA
5、DSP-401 I/O modules,Device Profile CiA DSP-402 Drives,Device Profile CiA DSP-404 Measuring devices,Device Profile CiA DSP-4xx,CAL= CAN Application Layer,应用层,描述层,会话层,传输层,网络层,链路层 = LLC + MAC,物理层,7,6,5,4,3,2,1,CAN specifications,CAN通讯的模型,CANopen的物理层,Page 5,Confidential Property of Schneider Electric |,
6、CAN的非归零编码: 用两种不同的电平分别表示显性状态和隐性状态显性电平会覆盖隐性电平 当同一网络的不同设备同时发显性和隐性数据,则总线显示显性电平,否则是隐性电平 隐性电平的逻辑值为1,显性电平的逻辑值为0 每个位可以没有上升或下降沿,CAN通讯的模型,CAN的物理层,Page 6,Confidential Property of Schneider Electric |,CAN数据帧的位填充: 非归零编码的一个特点是,如果传输大量连续的相同极性的位,发生的数据信号不能提供可用于重新同步的上升沿或下降沿。 因此,使用位填充技术用于确保所有总线节点的同步。 这意味着在传输消息期间,最多五个连续
7、位具有相同的极性。 CAN帧中的位填充区域包括SOF,仲裁字段,控制字段,数据字段和CRC字段。 理论最差情况Smax=(34 + 8 dlc - 1) : 4 = 8 + 2 dlc,dlc表示数据长度代码,CAN报文有效数据字节数量,CAN通讯的模型,CAN的物理层,Page 7,Confidential Property of Schneider Electric |,CAN数据帧的位定时: 位定时是一个复杂的话题,为了减轻用户处理这种艰难任务的负担,CANopen不仅规定了波特率,也规定了位定时的采样点, 位定时分为4个部分:同步段、传播段、相位段1和相位段2 采样点恰好位于相位段1和
8、2之间。 每个段由基本时间单位(tq)的整数倍构成。 基本时间单位是CAN节点使用的最小时间分辨率。 其长度由CAN控制器的振荡器频率的分频后产生。 同步段1个tq,传播段18个tq,相位段1-18个tq,相位段2-2个tq,采样点同步跳转宽度SJW为1个基本时间单位。,CAN通讯的模型,CAN的物理层,Page 8,Confidential Property of Schneider Electric |,CANopen 电平: 在显性状态时,CAN-High线上的电压值会升高一个预定值(对CAN驱动数据总线来说,这个值至少为1V)。而CAN-Low线上的电压值会降低一个同样值(对CAN驱动
9、数据总线来说,这个值至少为1V)。于是在CAN驱动数据总线上,CAN-High线就处于激活状态,其电压不低于3.5(2.5V+1V=3.5V),而CAN-Low线上的电压值最多可降至1.5V(2.5V-1V=1.5V)。 CAN的高低电平是一个差分信号 在受到干扰时,因为CAN_H和CAN_L是差分信号,所以Vdiff不变,CAN通讯,模型-物理层,Page 9,Confidential Property of Schneider Electric |,硬件接线 使用屏蔽双绞线,三根线,CAN_H,CAN_L和CAN_GND 通讯长度与通讯速度的关系如下图所示 可以使用CANopen中继器完成
10、总线长度的扩展拓扑 直线拓扑,总线的末端需加两个120欧姆的终端电阻 总线最大个数128 主站1+从站127,CAN通讯,模型-物理层,Page 10,Confidential Property of Schneider Electric |,通讯线的线径和通讯长度的关系 电缆阻抗: 32 站: 21 64 站: 18,5 100 站: 16,CAN通讯,模型-物理层,Page 11,Confidential Property of Schneider Electric |,通讯线的相关参数: 每米阻抗(r):70 m /m终端电阻 (Rt):一般120 (最小 108 , 最大132 )线缆
11、阻抗 (Z):一般 120 (最小108 , 最大 132 )电缆延迟:5 ns/m,CAN通讯,模型-物理层,Page 12,Confidential Property of Schneider Electric |,通讯线的支线长度限制 最大支线长度计算公式: 未连接终端电阻支线电缆的最大长度Ld和累计支线长度Ldi的经验法则: t PROPSEG : 位周期的数据传输段的长度 t P : 每个长度单位的特定线路延迟 例: 波特率= 500 kbit/s: t PROPSEG = 12 * 125ns = 1500 ns; t P = 5 ns/m,CAN通讯,模型-物理层,Page 13
12、,Confidential Property of Schneider Electric |,CiA DS-102 Bit-rates,CAN通讯,模型-物理层,Page 14,Confidential Property of Schneider Electric |,CiA DS-102 设计时建议 CANopen设备应至少支持波特率20K,并且支持的越多越好 超过200米长度的CANopen线缆建议加光电隔离 超过1Km建议使用CANopen repeater-重发器。,CAN通讯的模型,CAN的物理层,Page 15,Confidential Property of Schneider
13、Electric |,CANopen 中继器的作用: 可以使用CANopen中继器完成总线长度的扩展 电气的隔离 拓扑方式的扩展 很小的延迟-与产品有关,CANopen 硬件接线的针脚定义: RJ45使用1,2和3脚而SUB-D9接头采用2,3和7,CAN通讯的模型,CAN的物理层,Page 16,Confidential Property of Schneider Electric |,CANopen 5针迷你接头针脚定义:,针脚定义: 1: (CAN_SHLD) = CAN 屏蔽层可选 2: (CAN_V+) = CAN 外部电源正可选 3: CAN_GND = Ground/0V/V-
14、4: CAN_H = CAN_H 5: CAN_L = CAN_L,CAN通讯的模型,CAN的物理层,Page 17,Confidential Property of Schneider Electric |,CANopen 5针端子接头针脚定义:,针脚定义: 1: CAN_GND = Ground/0 V/V- 2: CAN_L = CAN_L 3: (CAN_SHLD) = CAN 屏蔽可选 4: CAN_H = CAN_H 5: (CAN_V+) = CAN 外部电源正可选,CAN通讯的模型,CANopen的数据链路层,Page 18,Confidential Property of S
15、chneider Electric |,总线访问 CAN数据帧的结构 错误处理,CAN通讯的链路层,CANopen的数据链路层,Page 19,Confidential Property of Schneider Electric |,ISO 11898进行了标准化,CAN的数据链路层是其核心内容数据链路层的服务由逻辑链路控制(LLC)和媒体访问控制(MAC)中实现,LLC提供: 数据接收过滤,过载通知和管理恢复MAC负责: 数据打包/解包、帧编码、媒体访问管理、错误检测、错误信令、应答、串/并转换等功能。这些功能都是围绕信息帧传送过程展开的。,CAN通讯的链路层,广播方式,Page 20,C
16、onfidential Property of Schneider Electric |,CAN 广播发送方式 广播通信的CAN概念意味着网络的每个站可以监听发送站的帧(这里:站2)。收到帧后,每个节点决定广播的消息接受还是不接受。 数据接收过滤是在每个CAN节点中实现。 CAN广播发送的处理方式与司机接听交通台的广播的情况是类似的。 每个司机根据自己要走的路和广播发送的路况信息决定广播的数据是否采用。,CAN通讯的链路层,RTR,Page 21,Confidential Property of Schneider Electric |,CAN 的RTR 远程传输请求(RTR)就像是提问题。具
17、有答案的节点将在第二次通信中产生所请求的数据。 该数据帧也可以由对该对象感兴趣的其他消费者接收。 远程帧和数据帧由称为标识符的特定字段标识。,CAN通讯的链路层,多主访问,Page 22,Confidential Property of Schneider Electric |,CAN多总线访问 CAN协议允许从不同节点同时进行总线访问。 如果多个节点访问总线,则需要进行仲裁。 CAN中使用的总线访问方法是一种非破坏性的逐位仲裁,称为具有冲突检测和消息优先级仲裁(CSMA / CD + AMP)的载波侦听多路访问。 消息优先级在CAN标识符中解码。 当总线处于空闲状态时,几个节点可以开始传输帧
18、。 每个节点在完整消息期间从总线逐位读回,并将发送的比特值与接收的比特值进行比较。 根据定义,具有主导值的位将覆盖具有隐性值的位(这必须由收发器提供)。,CAN通讯的链路层,Producer-consumer,Page 23,Confidential Property of Schneider Electric |,CAN 的生产者和消费者 该写入对象服务将数据帧从一个节点(生产者)发送到一个或多个接收节点(消费者)。 这并不意味着一个节点将接受消息,这意味着某些站点对此信息感兴趣。这项服务是经典的CAN通信服务。 第二通信服务是请求特定消息。 此读取对象服务由一个或多个消费者启动。 因此,这
19、些节点将传输所谓的远程帧。 拥有所请求信息的节点将传送相应的数据帧。,CAN通讯的链路层,总线仲裁,Page 24,Confidential Property of Schneider Electric |,CAN 的总线仲裁,CAN通讯的数据帧,4种数据帧,Page 25,Confidential Property of Schneider Electric |,CAN 的4种数据帧 数据帧:这些帧将数据从生产者传输到消费者,而不保证将被处理。远程帧:这些请求帧由客户端发送到服务器以请求传输数据帧(标识符将具有与请求相同的值)。错误帧:当站检测到总线上存在错误时,会发送这些帧。过载帧:这些帧
20、被发送以要求连续帧之间的额外的时间间隔(数据或请求)。,CAN通讯的模型,帧结构以及CAN2.0A和CAN2.0B,Page 26,Confidential Property of Schneider Electric |,CAN数据帧结构 帧起始和帧结束-表示帧开始或结束 仲裁段-表示帧的优先级 控制段-表示数据的字节数及保留位的段 数据段-数据的内容,可发送 08 个字节的数据 CRC段-用于检验数据的正确与否 ACK-表示确认正常接收的段 CAN的2.0A和2.0B CAN针对ID参数规定了两种不同的格式。其中标准消息格式用了11位的ID,而扩展消息格式用了29位的ID。 CAN 2.0
21、A-只规定了标准消息格式(扩展消息会被认为是错误) CAN 2.0B active-能处理标准和扩展消息格式 CAN 2.0B passive-处理标准消息,忽略扩展消息 CAN控制器必须完全支持11位信息包括收、发,和必须支持接收扩展帧,CAN通讯的模型,CANopen的应用层,Page 27,Confidential Property of Schneider Electric |,CANopen的4种标准服务 CANopen的对象字典 CANopen的标识符 CANopen的CIA405功能块 CIA402的流程,CANopen通讯的模型,模型-应用层,Page 28,Confident
22、ial Property of Schneider Electric |,4种标准服务 1.网络管理:参数设置,启动,监视(主/从) 2.实时小容量过程数据(8字节)传送:SDO =Service Data Object (客户端-服务器) 4.管理同步(SYNC),时基参数,致命错误的预定义信息:SFO = Special Function Object CANopen 定义: 数据怎样传输: DS-301通信描述文件适用于所有产品、 定义每种信息COB-ID标示符的分配 什么样的数据: DS-4XX 产品描述文件对每个产品家族进行详细规定(discrete I/O, analogue I/
23、O, variable speed drives, encoders, etc.) 这些功能通过设备对象词典OD =Object Dictionary进行描述,CANopen通讯的模型,DS301 DS4XX,Page 29,Confidential Property of Schneider Electric |,DS301 描述OD和通信配置文件区域中的对象的一般结构:索引1000到1FFF。 适用于所有CANopen产品。 DS-4xx 设备模型: 描述各种类型产品(离散量I / O模块,模拟I / O,变频器,测量仪器)的相关对象。 标准对象:索引6000到9FFF 具体对象:索引20
24、005FFF一些对象是强制性的,其他对象是可选的。 它们可以在只读模式或读/写模式下访问。,PDO用于实时传输少量的过程数据( = 8 bytes ) 一个 PDO 可以由对象字典中几个不同索引的数据组成,规划方式则是透过对象字典中对应 PDO mapping 及 PDO 参数的索引。 此服务不需确认。 PDO 分为两种: 传送用的 TPDO 及接收用的 RPDO。一个节点的 TPDO 是将数据由此节点传输到其他节点,而 RPDO 则是接收由其他节点传输的数据。 PDO 可以用同步或异步的方式传送: 同步的 PDO 是由 SYNC 信号触发,而异步的 PDO 是由节点内部的条件或其他外部条件触
25、发。例如若一个节点规划为允许接受其他节点产生的 TPDO 请求,则可以由其他节点送出一个没有数据但有设置 RTR 位元的 TPDO(TPDO 请求),使该节点送出需求的数据。,PDO详细描述,PDO,每个发送或接收PDO在对象字典中由两个对象描述。 PDO通信参数指示如何传输或发送的:使用的COB-ID使用的发送/接收模式对于发送PDO,2个消息之间的最小时间(禁止时间)PDO映射参数指示传输哪些数据:对象字典OD中的对象列表每个对象的大小,PDO详细描述,PDO通讯内容和工作方式,PDO详细描述,TPDO,TPDO的地址0x180019FF,PDO详细描述,TPDO,TPDO的地址0x1A0
26、01BFF,PDO详细描述,RPDO,RPDO的地址0x140015FF,PDO详细描述,TPDO,RPDO的地址0x160017FF,PDO的的触发方式: 事件触发: 当数据变化时,立刻发送出去,不需要等待主机轮询才发送,所以实时性好,而且避免重复数据占用大量总线占用资源,就像数据压缩了一样。事件驱动类型的RPDO可立即处理收到的数据。 远程请求或轮询: 此方式就像485通信一样,主控主动远程请求或者轮询,子设备才发送PDO。因为市面上有一些不支持远程帧的CAN控制器,不建议使用。 同步传输: CAN总线上有一个设备作为SYNC信号的生产者,其他设备作为消费者。生产者和消费者都又SYNC计数
27、功能,消费者计数到一定时(1240),自动发送PDO。 if(同步传输&事件触发): 顾名思义,不仅满足定时还满足事件触发,才发送PDO。,PDO详细描述,PDO的触发方式,PDO的的触发方式: 事件触发: 当数据变化时,立刻发送出去,不需要等待主机轮询才发送,所以实时性好,而且避免重复数据占用大量总线占用资源,就像数据压缩了一样。事件驱动类型的RPDO可立即处理收到的数据。 远程请求或轮询: 此方式就像485通信一样,主控主动远程请求或者轮询,子设备才发送PDO。因为市面上有一些不支持远程帧的CAN控制器,不建议使用。 同步传输: CAN总线上有一个设备作为SYNC信号的生产者,其他设备作为
28、消费者。生产者和消费者都又SYNC计数功能,消费者计数到一定时(1240),自动发送PDO。 if(同步传输&事件触发): 顾名思义,不仅满足定时还满足事件触发,才发送PDO。,PDO详细描述,PDO的触发方式,PDO的的触发方式:,PDO详细描述,PDO的触发方式,PDO的非周期传输方式:,PDO详细描述,PDO的非周期传输方式,事件 product X,SYNC,SYNC,SYNC,SYNC,TxPDO_PX,SYNC,SYNC,SYNC,SYNC,TxPDO_PX,远程请求product X,SYNC,SYNC,TxPDO_PX,远程请求 product X,非周期 传输方式0,请求(轮
29、询) - 通过接收远程触发传输类型= 252,PDO的周期传输方式:,PDO详细描述,PDO的周期传输方式,SYNC,SYNC,SYNC,SYNC,TxPDO_PX,SYNC,SYNC,SYNC,SYNC,SYNC,SYNC,SYNC,SYNC,TxPDO_PX,TxPDO_PX,例当n = 3,例当 n = 3,周期传输在同步信号之后 传输方式1240(SYNC个数),PDO的事件:,PDO详细描述,PDO的事件触发,事件 product X,TxPDO_PX,TxPDO_PX,TxPDO_PX,SYNC,SYNC,SYNC,SYNC,SYNC,SYNC,SYNC,SYNC,SYNC,SYN
30、C,远程请求 product X,远程请求product X,事件触发传输方式254制造商特定事件,255设备子协议约定,事件触发传输方式253,在收到远程请求后发送,为了确保能够发送具有低优先级的对象,可以分配一个PDO的2个传输之间的最小时间。该参数用于TxPDO通信参数对象索引0x1800至0x19FF中的“禁止时间”参数。,PDO的禁止时间,PDO的inhabit time,服务数据对象(SDO) SDO常用于存取读取或设定节点的参数数据。提供对象字典的节点称为SDO 服务器,存取对象字典的节点称为SDO 客户端。SDO 通讯一定由SDO 客户端开始,并提供初始化相关的参数。 在CAN
31、open的术语中,上传是指由 SDO 服务器 中读取数据,而下载是指设定 SDO 客户端 的数据。 由于对象字典中的数据长度可能超过8个字节,无法只用一个CAN数据包传输,SDO也支援长数据包的分割(segmentation)和合并(desegmentation)。这样的对象有二种:SDO下载/上传(SDO download/upload)及SDO区块下载/上传(SDO Block download/upload)。CANopen协议较新版本支持SDO区块传输,可以允许传输大量的数据,且传输的overhead可以较低。 负责处理SDO数据传输的COB ID可在对象字典中设置。在对象字典的索引0
32、x1200至0x127F可设定SDO 服务器的COB ID,最多可设定到127个。而SDO 客户端可以在对象字典的索引0x1280至0x12FF中设定。不过预定义连结(pre-defined connection set)定义在开机后(Pre-operational状态)可用来设定设备组态的SDO。 接收用的COB ID为0x600 +节点ID,而传送用的COB为0x580 +节点ID。,SDO,SDO的详细说明,SFO,SYNC对象,SYNC是CANopen管理各节点同步数据收发的一种方法,相当于网络节拍,基于同步的PDO按照这个网络节拍来执行实时数据的收发。SYNC属于生产/消费型通讯方式
33、,网络中有且只有一个SYNC生产者,一般有多个消费者,其网络标识符优先级很高,一般设置为0x80,基本上除了NMT优先级最高。SYNC生产者按照固定频率发送SYNC报文,需要SYNC的节点(消费者)将其接收并计数,当计数值达到节点相应TPDO要求时,该TPDO映射的数据被发送(根据PDO传输类型也可能是映射数据更新),此过程中SYNC生产者提供网络节拍,各消费者以节拍周期的倍数执行数据传输功能。 在CANopen网络中应用SYNC要注意以下几点: 1. SYNC并不是主节点必须的功能,不一定要和NMT放在同一节点上,实际网络应用中可以在网络中找一个任务较少、实时性好的节点来作为SYNC生产者,
34、SYNC消费者可以有多个,但是生产者同时只能有一个存在。 2. SYNC是不带数据的,以使报文尽可能短,目的是为了加快其传输,减少网络占用。 3. SYNC发出后,需要发送数据的PDO要在规定时间段内发送数据,这个时间段叫做时间窗口(对象1006H指定),要小于SYNC节拍周期,以便每个周期留一定时间来进行其他类型的网络通讯。,SFO,SYNC对象,SYNC是CANopen管理各节点同步数据收发的一种方法,相当于网络节拍,基于同步的PDO按照这个网络节拍来执行实时数据的收发。SYNC属于生产/消费型通讯方式,网络中有且只有一个SYNC生产者,一般有多个消费者,其网络标识符优先级很高,一般设置为
35、0x80,基本上除了NMT优先级最高。SYNC生产者按照固定频率发送SYNC报文,需要SYNC的节点(消费者)将其接收并计数,当计数值达到节点相应TPDO要求时,该TPDO映射的数据被发送(根据PDO传输类型也可能是映射数据更新),此过程中SYNC生产者提供网络节拍,各消费者以节拍周期的倍数执行数据传输功能。 在CANopen网络中应用SYNC要注意以下几点: 1. SYNC并不是主节点必须的功能,不一定要和NMT放在同一节点上,实际网络应用中可以在网络中找一个任务较少、实时性好的节点来作为SYNC生产者,SYNC消费者可以有多个,但是生产者同时只能有一个存在。 2. SYNC是不带数据的,以
36、使报文尽可能短,目的是为了加快其传输,减少网络占用。 3. SYNC发出后,需要发送数据的PDO要在规定时间段内发送数据,这个时间段叫做时间窗口(对象1006H指定),要小于SYNC节拍周期,以便每个周期留一定时间来进行其他类型的网络通讯。 4.SYNC常用于伺服的数据的同步输入获取或更新输出(例如轴控制)。,SFO,SYNC对象,两个连续 SYNC 消息之间的时间段称为通讯循环周期,可以在 SYNC 生产者的对象字典(对象索引为十六进制的 1006)中进行调整。 同步传输 PDO 在接收到 SYNC 消息后的指定时间范围内开始传输。此时间范围称同步窗口长度,可在所有必须传输同步 PDO 的设
37、备的对象字典(对象索引为十六进制的 1007)中进行配置。,SFO,时间戳对象,时间戳对象提供所有设备作为统一的时间基准。 这个时间是以6个字节编码的,代表从1984年1月1日起的绝对时间(毫秒)。,SFO,EMCY,当设备发生故障(电流,电压,温度,通讯等)时,会触发EMCY通讯帧。 EMCY的COB-ID存储在对象字典主索引为0x1014的对象内。 使用EMCY信息前要确认0x1014对象的第31位为0,即EMCY信息是有效的。 设备内产生某些特定的内部错误,会触发EMCY信息的发送,发生过的错误记录在索引为0x1003的对象中,SFO,Node guard 和Heart beat,Pag
38、e 49,Confidential Property of Schneider Electric |,为了检测通讯中断,节点一般会提供Node guard或Heart beat服务 节点保护服务:通过每隔一定间隔(寿命)发送“remote transmit request” (远程发送请求) (RTR)来扫描节点。通过将“保护时间”与“寿命系数”相乘来计算得出“寿命”,一旦“寿命”到期,如果节点没有收到(主站)RTR 就会触发一个“Life Guarding” (寿命保护)故障, 并发送一个紧急电报(EMCY):假如设置了“Guard Time” (保护时间)为500 ms,“Life Tim
39、e Factor” (使用期限系数)为4, Life Time(生存期限)为4 x 500 ms = 2秒。 心跳服务:如果选择此服务,“Master Consumer Time of Node”(节点的消费时间)参数必须大于“Node Heartbeat的Producer Time”(心跳的生产时间)。如果当前配置的节点的“Master Consumer Time of Node”(节点的消费时间)为0,则不启动心跳服务。 在“节点的消费时间”过去之后没有收到“心跳信息”,变频器就会触发一个“心跳”事件并发送一个紧急电报(EMCY)。 Node guard和Heart beat服务只能选择一
40、种。,CANopen通讯的模型,对象字典-OD,Page 50,Confidential Property of Schneider Electric |,对象字典 对象词典OD是一序列对象组,可以通过以下方式进行访问: 16位索引号 有时候加上8位子索引号 描述了产品的所有功能,描述采用ASCII格式的EDS 表格文件(Electronic Data Sheet) 这种描述使用严格的语法,并可用于总线配置工具(例如 Sycon 等) EDS文件: 对象字典描述了产品所有CANopen通讯功能 这些描述使用EDS (Electronic Data Sheet)文件来描述 EDS文件有严格的格式
41、,并可以被编程软件所使用 (SoMachine、Unity、Sycon 等等.),CANopen通讯的模型,对象字典-OD,Page 51,Confidential Property of Schneider Electric |,对象字典的结构:,CANopen通讯的模型,NMT,Page 52,Confidential Property of Schneider Electric |,网络管理 NMT状态表如右图所示,NMT 主站控制的状态转换: 允许的通讯操作类型 1: Start_Remote_Node a. NMT 2: Stop_Remote_Node b. Node Guard
42、3: Enter_Pre-Operational_State c. SDO 4: Reset_Node d. EMCY 5: Reset_Communication e. PDO. 6: Node initialisation stopped,CANopen通讯的模型,默认标识符的分配,Page 53,Confidential Property of Schneider Electric |,标识符 把COB-ID 标示符分成两个部分: 功能代码 用于对以下对象进行编码: 处于接收模式的2 PDOs, 处于传送模式的2 PDOs, 1 SDO, 1 EMCY 对象, 1 Node Guardi
43、ng 标示符, 1 SYNC 对象, 1 Time Stamp 对象和一个节点保护. Node ID 同产品地址(网络地址)有关,CANopen通讯的模型,默认标识符的分配,Page 54,Confidential Property of Schneider Electric |,默认标识符分配,DSP402 状态表,默认标识符的分配,Page 55,Confidential Property of Schneider Electric |,变频器的CIA402协议,CANopen与符合IEC61131-3标准的控制器接口,默认标识符的分配,Page 56,Confidential Prope
44、rty of Schneider Electric |,CIA405协议 使用标准化的CANopen接口,用于IEC 61131-3可编程器件,如PLC。 符合CiA从IEC 61131-3级别的任何应用程序的需求是从CANopen连接节点的设备对象索引中读取或写入(SDO)。 在过程映像中支持的过程数据对象(PDO) ,输入(接收PDO;即:IX )或输出(发送PDO;即:QW )。 接收到的异步错误消息(EMCY)被记录在每个节点的缓冲区中。 网络状态由网络管理(NMT)控制。 节点保护功能可用于CANopen以及进程数据的同步通信。,CIA405的功能块,功能块的说明一,Page 57,
45、Confidential Property of Schneider Electric |,CIA405库功能块 CiA 405 库提供了一组满足 CiA405 要求的功能块,用于从控制器(CANopen主站)的应用程序(IEC61131-3 程序)访问 CANopen 网络。将 CANopen 管理器添加到控制器 CAN 总线接口后,控制器库管理器会自动声明该库。 网络管理 功能块: CIA405 .NMT :控制 CANopen 设备 NMT 状态 CIA405 .RECV_EMCY :扫描所有设备的 EMCY 存储 CIA405 .RECV_EMCY_DEV :获取指定设备的最后一条存储
46、的 EMCY 消息 自有节点 id 功能块: CIA405 .GET_LOCAL_NODE_ID :获取控制器 CANopen 管理器节点 ID,CIA405的功能块,功能块的说明二,Page 58,Confidential Property of Schneider Electric |,CIA405库功能块 查询状态 功能块: CIA405 .GET_CANOPEN_KERNEL_STATE :获取 CANopen 内核当前状态 CIA405 .GET_STATE :获取指定设备的当前状态 SDO 访问 功能块: CIA405 .SDO_READ :读取指定设备的任意大小的对象 CIA40
47、5 .SDO_READ4 :读取指定设备的最多 4 个字节的对象 CIA405 .SDO_WRITE :写入指定设备的任意大小的对象 CIA405 .SDO_WRITE4 :写入指定设备的最多 4 个字节的对象 对于驱动器的控制,建议使用PLCopen功能块,CIA405的功能块练习,功能块的使用,Page 59,Confidential Property of Schneider Electric |,1,在SoMachine中读取canopen的从站状态,例如lxm28 2,使用trace跟踪canopen的从站状态 3,使用功能块写入lxm28的加、减速度 4,使用功能块读取ATV320的逻辑输入点状态,