设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
控制专题
›
『数控/电机控制/运动控制/工业总线』
›
CANopen轻松入门四
返回列表
发新帖
CANopen轻松入门四
[复制链接]
17316
|
0
|
2024-1-9 09:17:56
|
显示全部楼层
|
阅读模式
1、网络管理NMT
前文所述,一个CANopen网络中为了保证可靠、可控,必须要NMT网络管理,就像一个军队一样,要令行禁止,才能达到稳定、高效的目标。如图6.1所示。指挥员(NMT主机)通过发号施令,士兵(NMT从机)进行自由俯卧训练,这样整个训练都是有序的。
网络管理与部队管理
所以每个CANopen从节点的CANopen协议栈中,必须具备NMT管理的相应代码,这是节点具备CANopen协议的最基本的要素。
1.1 NMT节点状态
NMT管理涉及到一个CANopen节点从上电开始的6钟状态,包括:
1.初始化(Initializing):节点上电后对功能部件包括CAN控制器进行初始化
2.应用层复位(Application Reset):节点中的应用程序复位(开始),比如开关量输出模拟量输出模拟量输出的初始值;
3.通讯复位(Communication reset):节点的CANopen通讯复位(开始),从这个时刻,此节点就可以进行CANopen通讯了
4.预操作状态(Pre-operational):节点的CANopen通讯处于操作就绪状态,此时此节点不能进行PDO通信,而可以进行SDO进行参数配置和NMT网络管理的操作;
5.操作状态(operational):节点收到NMT主机发来的启动命令后,CANopen通讯被激活,PDO通信启动后,按照对象字典里面规定的规则进行传输,同样SDO也可以对节点进行数据传输和参数修改;
6.停止状态(Stopped):节点收到NMT主机发来的停止命令后,节点的PDO通信被停止,但SDO和NMT网络管理依然可以对节点进行操作;
除了初始化状态,NMT主机通过NMT命令可以让网络中任意一个的CANopen节点进行其他5种状态的切换。如图所示。
当然CANopen节点也可以程序自动完成这些状态的切换。.。
NMT管理状态转换图
2 、NMT节点上线报文
任何一个CANopen从站上线后,为了提示主站它已经加入网络(便于热插拔),或者避免与其他从站Node-ID冲突。这个从站必须发出节点上线报文(boot-up),如图6.3所示,节点上线报文的ID为700h+Node-ID,数据为1个字节0。生产者为CANopen从站。
NMT节点上线报文
3、NMT节点状态与心跳报文
为了监控CANopen节点是否在线与目前的节点状态。CANopen应用中通常都要求在线上电的从站定时发送状态报文(心跳报文),以便于主站确认从站是否故障、是否脱离网络。
如图所示,为心跳报文发送的格式,CANID与节点上线报文相同为700h+Node-ID,数据为1个字节,代表节点目前的状态,04h为停止状态,05h为操作状态,7Fh为预操作状
NMT节点状态与心跳报文
CANopen从站按其对象字典中1017h中填写的心跳生产时间(ms)进行心跳报文的发送,而CANopen主站(NMT主站)则会按其1016h中填写的心跳消费时间进行检查,假设超过诺干次心跳消费时间没有收到从站的心跳报文,则认为从站已经离线或者损坏。
4 NMT节点守护
在早期CANopen应用中,还有一种可以通过轮询模式监视从站状态的节点守护模式,它与心跳报文模式二者不能并存。通过节点守护,MNT主机可以检查每个节点的当前状态。
数据部分包括一个触发位(bit7),触发位必须在每次节点保护应答中交替置“0”或者“1”。触发位在第一次节点保护请求时置为“0”。位0到位6(bits0~6)表示节点状态,可为表中的数值。
节点守护状态
由于远程帧在CAN发展中逐渐被淘汰,而节点守护由于需要更多的主站开销与增加网络负载,CiA协会已经不建议使用,被心跳报文所取代
5 NMT节点状态切换命令
NMT网络管理中,最核心的就是NMT节点状态切换命令,这是NMT主站所进行网络管理的“命令”报文。使用者必须牢记这些命令。
CANID均为000h,具备最高的CAN优先级。数据为2个字节:
第1个字节代表命令类型:
01h为启动命令(让节点进入操作状态);
02h为停止命令(让节点进入停止状态);
80h为进入预操作状态(让节点进入预操作状态);
81h为复位节点应用层(让节点的应用恢复初始状态,比如列车门都恢复打开状态);
82h为复位节点通讯(让节点的CAN和CANopen通讯重新初始化,一般用于总线收到干扰,导致节点总线错误被动,或者总线关闭时)。
第二个字节代表被控制的节点Node-ID,
如果要对整个网络所有节点同时进行控制,则这个数值为0即可。
节点状态切换命令
2、CANopen主站设备
通常NMT主站也称为CANoepn主站,上文所述为CANopen最基本的NMT操作,而作为一个完整的CANopen 主站设备,设备模型如图6.6所示。为了满足管理整个CANopen网络的从站设备,需要具备以下功能:
支持PDO、SDO发送与接收;
支持NMT网络管理;
支持PDO 通信类型并能够支持监控每一个PDO 目标;
LSS 层设置功能:从站波特率设置、从站节点编号设置;
支持从站管理功能:类型与名称读取、对象字典读写;
紧急报文发送功能;
扩展CANopen标准指示灯功能。
CANopen设备模型
目前有二种形式的主站,一种是可编程控制器(PLC)中的一个单元,它的内部集成了CANopen的主站功能,这个单元能连接到CANopen总线,同时因为它是PLC中的一个单元,它能与PLC的CPU交换数据,因此通过编写PLC程序对它所连接的CANopen从站进行管理和控制。
带CANopen的PLC
另一种是通过PC扩展一个CANopen主站通信卡,从而令PC具有管理CANopen通信网络的能力。推荐使用PCI 总线或USB 总线来扩展CANopen通信卡
CANopen主站卡
本文章转载自广州致远(原文作者周立功、黄敏思)
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
zhouyan
回复楼主
返回列表
『数控/电机控制/运动控制/工业总线』
『机器视觉/AI/IoT/机器人论坛』
『高级语言/组态软件/触摸屏』
『操作系统xp/xin7/win10/linux』