在canopen通信中,java生产者消费者模式心跳时间与消费者心跳时间有什么关系

捷配欢迎您!
微信扫一扫关注我们
当前位置:&>>&&>>&&>>&如何快速实现CANopen网络的组建与配置
  CANopen协议兴起于欧洲,现阶段在欧洲特别是工业发达的德国几乎所有的设备都提供CANopen的支持,我国工业还相对的落后,正处在引进国外先进设备的阶段,这就要求我们懂得CANopen通信协议,同时能够利用CANopen设备正确的组建一个适合特定应用的CANopen网络。CANopen的多种数据传输方式为各种应用提供优异的解决方案,普遍应用于数据采集与传输、电机控制、汽车、充电控制以及纺织等行业。  1. CANopen从站/主站特点  具有网络管理(Network Management:简称NMT)主机功能的设备通常被称为CANopen主站设备,通常也具有服务数据(Service Date Object:简称SDO)客户端功能。反之具有网络管理(NMT)从机功能的设备通常被称为CANopen从站设备,且其必须具备有服务数据服务器功能。这样CANopen主站设备就可以控制从站以及读写CANopen从站设备的对象字典。  (1) CANopen从站特性  CANopen从站在CANopen网络中拥有唯一的节点地址,并且能独立完成特定的功能,例如数据采集、电机控制等等。对实时性要求高的数据,通常通过实时数据过程( Data Object:简称PDO)进行传输,因此CANopen从站应当支持一定数量的PDO传输功能。根据CANopen协议 V4.02的定义,每个从站都预定义了4个TPDO(Transmit Process Data Object:简称TPDO)和4个RPDO(Receive Process Data Object),另外从站也应具有节点/寿命保护或心跳报文以及生产紧急报文等功能。每个CANopen从站都应有一个对象字典,描述了从站所具有的应用参数和通信参数。  (2)& CANopen主站特性  CANopen主站在网络所起的作用有别于CANopen从站,通常CANopen主站在网络中负责网络管理、从站参数配置以及从站数据的处理,其并不一定具有特定的功能,但也有自己的对象字典和唯一的节点地址。  2. CANopen网络组建  由于CANopen是基于CAN的一种应用层协议,因此其网络组建与CAN总线一致,典型的总线型结构,从站和主站都挂接在该总线上即可,在一个CANopen网络中只能有一个主站设备和若干个从站设备同时工作。CANopen网络布线时选用带屏蔽,提高总线抗干扰能力。表 1所示为CAN通信波特率与总线长度的关系。注意网络中的各节点的支线长度不易过长,波特率大于100Kbps的情况下,支线总长度不应大于30m,单个节点的支线也不应大于60cm。
表1 总线长度与波特率关系
  (1)基本的CANopen网络结构
图1 CANopen基本网络结构
  图 1所示为CANopen网络的基本结构,在该网络中有一个CANopen主站,负责管理网络中的所有从站,每个设备都有一个独立的节点地址(NodeID)。从站与从站之间也能建立通信,通常需要事先对各个从站进行配置,使各个从站之间能够建立起独立的PDO通信。  (2) 复杂的CANopen网络结构
图2 带网关设备的CANopen网络
  图 3所示为带有网关设备的CANopen网络,与基本的CANopen网络相比,该网络中增加了一个CANopen网关设备,该网关设备可以是CANopen转DeviceNet、Profibus、Modbus或其它的设备。在CANopen网络中,我们也可把该网关设备作为一个从站设备或者是CANopen主站设备。  3. CANopen网络中从站的配置  CANopen从站设备在出厂时都设定有默认参数,并且这些参数都与节点地址绑定,例如实时数据传输PDO,其预定义连接集定义了其默认的参数有4个TPDO和4个RPDO,其COB-ID(Communication Object -ID)如表 2所示。在一些应用简单的场合只需要采用默认设置即可进行正常通信,但对于一些应用比较复杂的场合,则需要对从站进行相应的配置,最常见的配置参数有PDO的COB-ID、PDO映射参数、以及节点/寿命保护等参数。
表2 PDO预定义链接
  CANopen网络中,对从站的参数配置或获取都是通过SDO进行传输,因此从站和主站都必须支持SDO传输才能进行正常的配置。为了快速配置从站设备,在配置从站之前通过NMT使整个网络设备进入到预操作状态。  (1) 通信参数配置  CANopen设备的通信参数包括PDO的COB-ID、传输类型、禁止时间以及映射参数等。其参数配置顺序如图 3所示。
图3 通信参数配置顺序
  在配置PDO的通信参数时,首先禁止PDO通信,根据DS301 V4.02的定义,当COB-ID的最高位(第31位)为1时即可禁止该PDO通信,禁止PDO通信操作示例如图 4所示。需要注意的是只有在PDO禁止的情况下,相应的传输类型、映射参数以及COB-ID的值才能被改变,否则试图以任何方式去更改都会出现错误。  (2)其它参数的配置  除了通信相关的参数之外,CANopen设备还有一些与安全相关的参数,例如节点/寿命保护或者心跳报文。根据DS301 V4.02的定义,同一个CANopen从站中只可能使用节点/寿命保护或心跳报文的一种。节点/寿命保护可以实现双向保护,即主站可监控从站的状态,而从站也可监控主站是否在线。心跳报文只是一种单向的保护机制,心跳报文的消费者可以监控到心跳报文生产者的状态。在网络总线负载较大的情况下,建议使用心跳报文的保护机制来减轻总线负载。
图4 禁止PDO通信方法
  (3)配置从站与从之间的通信  CANopen网络中从站与从站可以直接进行PDO通信而不需要主站的参与,这样就提高了实时数据的实时性。将接收从站RPDO的COB-ID更改为发送从站TPDO的COB-ID,这样就建立了两个从站之间了PDO通信,在通信过程中也不需要主站的任何干预。表 3所示。
表3 从站与从站通信COB-ID配置
  4. 结语  根据不同应用环境可选用不同的线缆来组建CANopen网络,在CANopen网络的布置方面,需要了解线缆的阻抗、容抗、信号延时等来匹配总线的终端,减少由于信号衰减或反射而导致总线工作异常。从而组建一个抗干扰能力强、稳定可靠的CANopen网络。  致远电子股份有限公司提供各种接口的CANopen接口卡、CANopen终端设备(包括数据采集,电机控制等)、CANopen、网关及网桥、OPC服务器以及基于CANopen协议的整套组网方案及应用开发。
技术资料出处:致远电子
该文章仅供学习参考使用,版权归作者所有。
因本网站内容较多,未能及时联系上的作者,请按本网站显示的方式与我们联系。
【】【】【】【】
上一篇:下一篇:
本文已有(0)篇评论
发表技术资料评论,请使用文明用语
字符数不能超过255
暂且没有评论!
暂且没有信息...
12345678910
12345678910
导线、线束、熔断器、插接器、各种开关和继电器等他们都属于汽车电路的基本元件,汽车电路的基本组成部分。今天小编就来普及一下他们的基本知识。  1.导线  导线有低压导线和高压导线。  选线因素:绝缘、通过电流的大小和机械强度。且应用条件不同,三个因素各有侧重,例如:  高压电路...[][][][][][][][][][]
IC热门型号
IC现货型号
推荐电子百科在法汉-汉法词典中发现10个解释错误,并通过审核,将获赠《法语助手》授权一个
添加笔记:
<div id="correct" title="在法汉-汉法词典中发现10个解释错误,并通过审核,将获赠《法语助手》授权一个">有奖纠错
CANopen的物理层CANbus每次发送的数据量不大,其中包括11比特的ID、远程传输请求(RTR)比特及大小不超过8字节的数据。CANopen将CANbus 11比特的ID分为4比特的功能码及7比特的CANopen节点ID。7比特的ID共有128种不同的组合,其中ID 0不使用,因此一个CANopen网络上最多允许127台设备。CANbus在CAN 2.0 B规格中允许29比特的ID,因此若配合CAN 2.0 B使用,CANopen网络上可以超过127台设备,不过在实际运用中,大多数的CANopen网络上设备数量均低于此数值。
CANopen将CANbus的11比特ID称为通信对象ID(COB-ID)。当传输数据出现碰撞时,CANbus的仲裁机制会使COB-ID最小的消息继续发送,不用等待或重传。COB-ID的前4个比特是CANopen的功能码,因此数值小的功能码表示对应的功能重要,允许的延迟时间较短。
以下是一个标准的CANopen页框:
在CANopen标准中,部份COB-ID被保留作网络管理及SDO通信用。而在设备初始化后,有些功能码和COB-ID会映射到标准的功能,不过后续仍可以规划为其他用途。
CANopen设备间的通信可分为以下三种通信模型。
在'主从'master/slave模型中,一个CANopen设备为master,负责发送或接收其他设备(称为slave)的数据。NMT协定就使用了master/slave模型。
客户端/服务器(client/server)模型定义在SDO协定中,SDO client将对象字典的索引及子索引发送给SDO server,因此会产生一个或数个需求数据(对象字典中,索引及子索引对应的内容)的SDO封包。
生产者/消费者(producer/consumer)模型用在Heartbeat and Node Guarding协定。由一个生产者送出数据给消费者,同一个生产者的数据可能给一个以上的消费者。又可分为二种:
push-model:生产者会自动送出数据给消费者。
pull-model:消费者需送出请求消息,生产者才会送出数据。
NMT(网络管理, Network management)协议是用来发布(设备内部)状态机的状态变更命令(如启动设备或停止设备)、以及监测远程设备启动及故障情形。
NMT master使用的模块控制协定可变更设备的状态。其COB-ID为0,其功能码及节点ID均为0,因此网络上的所有节点均会处理这个消息。在此消息的数据部份会有此消息实际针对节点的ID,此ID也可为0,表示所有节点都要变更为指定的状态。
心跳协定(Heartbeat protocol)是用来监控网络中的节点及确认其正常工作。心跳消息的生产者(一般是slave设备)周期性的送出功能码1110、ID为本身节点ID的消息,消息的数据部份有一个表示节点状态的比特。而心跳消息的消费者负责接收上述数据,若在指定时间(于设备的对象字典中定义)内,消费者均未收到消息,可采取相关行动(例如显示错误或重置该设备)。
其格式为:
COBID + DATA (status of node)
CANopen设备需要在bootup时自动从Initializing状态切换至Pre-operational状态,设备会在切换完成后送出一个心跳消息,这就是心跳协定。
有一种pull model的NMT协定,称作节点监控(Node guarding)协定,也可以作从机的监控。
服务数据对象(SDO)协定
服务数据对象(SDO)可用来访问远程节点的对象字典,读取或设置其中的数据。提供对象字典的节点称为SDO server,访问对象字典的节点称为SDO client。SDO通信一定由SDO client开始,并提供初始化相关的参数。
在CANopen的术语中,上传是指由SDO server中读取数据,而下载是指设置SDO server的数据。
由于对象字典中的数据长度可能超过8个字节,无法只用一个CAN页框传输,SDO也支持长消息的分割(segmentation)和合并(desegmentation)。这样的对象有二种:SDO下载/上传(SDO download/upload)及SDO区块下载/上传(SDO Block download/upload)。CANopen协定较新版本支持SDO区块传输,可以允许传输大量的数据,且传输的overhead可以较低。
负责处理SDO数据传输的COB ID可在对象字典中设置。在对象字典的索引0xF可设置SDO server的COB ID,最多可设置到127个。而SDO client可以在对象字典的索引0xFF中设置。不过预定义链接(pre-defined connection set)定义在开机后(Pre-operational状态)可用来设置设备组态的SDO。接收用的COB ID为0x600 +节点ID,而发送用的COB为0x580 +节点ID。
以下用SDO下载来说明SDO的协定,SDO client在要启始下载时,会送出CAN消息,其ID为接收端SDO channel的COB ID,而CAN页框的数据字段内容如下:
CAN页框的数据字段
接收(=0)
ccs是SDO传输时client指令的识别码,可分为以下几种:
0:SDO区域下载
1:启始下载
2:启始上传
3:SDO区域上传
4:中断SDO传输
n为此消息中实际数据的长度,只有在e和s设置时有效
e若设为1,表示是快速传输(expedited transfer),目前消息即包括了所有要传输的数据。若设为0,表示要传输的数据无法用一个消息发送,会分割为数个消息。
s若设为1,且e也设为1,表示数据长度记录在n。若n设为0,表示实际完整数据的长度会放在此消息中的数据字段中。
索引是要访问数据的对象字典索引。
子索引是要访问变量的子索引。
数据在快速传输(e=1)时是要上传的数据,若s=1且e=0,则是实际数据的长度。
进程数据对象(PDO)协定
进程数据对象(PDO)协定可用来在许多节点之间交换即时的数据。可透过一个PDO,发送最多8字节(64比特)数据给一设备,或由一设备接收最多8字节(64比特)的数据。一个PDO可以由对象字典中几个不同索引的数据组成,规划方式则是透过对象字典中对应PDO mapping及PDO参数的索引。
PDO分为两种:发送用的TPDO及接收用的RPDO。一个节点的TPDO是将数据由此节点传输到其他节点,而RPDO则是接收由其他节点传输的数据。一个节点分别有4个TPDO及4个RPDO。
PDO可以用同步或异步的方式发送:同步的PDO是由SYNC消息触发,而异步的PDO是由节点内部的条件或其他外部条件触发。例如若一个节点规划为允许接受其他节点产生的TPDO请求,则可以由其他节点送出一个没有数据但有设置RTR比特的TPDO(TPDO请求),使该节点送出需求的数据。 
借由RPDO也可以使两个或两个以上的设备同时启动。只要将其RPDO对应到相同的TPDO即可。
同步(SYNC)协定
同步协定使用生产者/消费者模型。同步生产者(Sync-Producer)会定时产生同步信号供同步消费者(Sync-Consumer)使用。当同步消费者收到信号,即可以进行已规划好的同步工作。
同步信号会定时产生,若有PDO是由同步信号引发,透过PDO发送时间及同步信号发送周期之间的调整,可以使传感器定期的取様,而致动器也可以根据最新的输入信号产生对应的输出。
在对象字典中,同步对象的索引为0x1005,可透过编辑此对象启动同步协定。
时间标记对象(TIME)协定
一般而言,时间标记对象的内容是从日午夜之后到现在之间经过的时间,单位为。为一个48比特(6字节)的数值。
不过有些应用会要求时间要非常精确,这种情形会需要精准的同步,尤其是在大型网络,通信速度受限时更是如此。此时需要将各设备的时钟同步,精准度要到毫秒的等级。这个要求可透过高分辨率的同步信号达成,在同步信号中也包括了另一种时间标记,可供各设备调整时钟用。
同步信号中的时间标记型态为unsigned32,单位为1毫秒,因此时间标记会在每72分钟归零重新计数。
以下是在master初始化2个压力传感器(ID分别为1和2)中,通信的数据。
master将系统设置为operational mode
Master送出SYNC消息,使设备送出数据
CD 82 01 00
ID 1的节点(CID-0x180),读到的压力为0x0182CD (99021)
E5 83 01 00
ID 2的节点(CID-0x181),读到的压力为0x301)
CANopen专有名词
PDO进程数据对象 - 对应实际物理量的输入及输出。数据的单位可能是RPM, V, Hz, mAmp...。
SDO服务数据对象 - 一般来说是组态设置的数据,如节点位置、节点ID、通信速度、位移、增益等……。
COB-ID - CAN对象编号
CAN ID - CAN Identifier.是在每个CAN消息前面的消息识别码,共11比特。
EDS - 电子数据档(Electronic data sheet)是INI格式的文件。
DCF - 设备组态文件(Device configuration file),是加强版的EDS,可以设置节点ID及通信速度。
(另一种使用CAN的工业通信定)
关注我们的微信
下载手机客户端
赞助商链接
在法语课堂快速找到适合自己的法语学习课程/course
欧洲最具活力的中文社区.最大的关于法国的中文网络平台
法语爱好者的家园 留学与考试的助手 提供各种法语相关的信息与服务您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
CANopen轻松入门.pdf 39页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
&#xe600;下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:100 &&
CANopen轻松入门
你可能关注的文档:
··········
··········
CANopen 轻松入门
工程技术笔记
CANopen DS301
用于初次接触CANopen 的用户,主要以CANopen DS301
为主要教授方向
广州致远电子股份有限公司
广州致远电子股份有限公司
CANopen 轻松入门
20 15/ 10/0 1
工程技术笔记
?20 13 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.
广州致远电子股份有限公司
CANopen 轻松入门
2. CANopen 在ISO 层级中的位置2
3. CANopen 协议诞生和发展3
4. CANopen 的预定义报文ID 分类5
网络管理(NMT )与特殊协议(Special protocols )报文ID 分类5
过程数据对象(PDO )和服务数据对象(SDO)的报文ID 分类7
对象字典OD
(Object dictionary)9
对象字典概述10
通讯对象子协议区(Communication profile area )10
通用通讯对象(General communication objects )10
制造商特定子协议(Manufacturer-specific Profile ) 11
标准化设备子协议(Standardized profile area) 12
对象字典和EDS 文件实例12
网络管理NMT
(Network management)
与CANopen 主站 16
NMT 节点状态16
NMT 节点上线报文17
NMT 节点状态与心跳报文18
NMT 节点守护18
NMT 节点状态切换命令19
CANopen 主站设备20
过程数据对象PDO
(Process data object)22
正在加载中,请稍后...&#xe621; 上传我的文档
&#xe602; 下载
&#xe60c; 收藏
该文档贡献者很忙,什么也没留下。
&#xe602; 下载此文档
正在努力加载中...
04_SoMachine_CANopen功能库指南-M258
下载积分:1000
内容提示:04_SoMachine_CANopen功能库指南-M258
文档格式:PDF|
浏览次数:38|
上传日期: 17:48:11|
文档星级:&#xe60b;&#xe60b;&#xe60b;&#xe60b;&#xe60b;&#xe60b;
全文阅读已结束,如果下载本文需要使用
&#xe71b; 1000 积分
&#xe602;下载此文档
该用户还上传了这些文档
04_SoMachine_CANopen功能库指南-M258
关注微信公众号

我要回帖

更多关于 java生产者消费者代码 的文章

 

随机推荐