0
点赞
收藏
分享

微信扫一扫

canOpen学习二之canOpen应用实现请求节点状态、改变节点状态、写字典、读字典


一、主机请求节点状态
1、函数:​​​UNS8 masterRequestNodeState(CO_Data* d, UNS8 nodeId)​​ 2、参数

d:CO_Data
nodeId:节点ID

3、调用方式​​masterRequestNodeState(&master_objdict_Data,0x01);​​​ 4、说明节点状态存储在​​struct_CO_Data​​结构体的​​e_nodeState NMTable[NMT_MAX_NODE_ID];​​这个数组当中,主要参数为:

01h为启动命令(让节点进入操作状态);
02h为停止命令(让节点进入停止状态);
80h为进入预操作状态(让节点进入预操作状态);
81h为复位节点应用层(让节点的应用恢复初始状态,比如列车门都恢复打开状态);
82h为复位节点通讯(让节点的 CAN 和 CANopen 通讯重新初始化,一般用于总线收到
干扰,导致节点总线错误被动,或者总线关闭时)。

二、主机改变节点状态
1、函数:​​​UNS8 masterSendNMTstateChange(CO_Data* d, UNS8 nodeId, UNS8 cs)​​ 2、参数

d:CO_Data
nodeId:节点ID
cs:节点状态

3、调用方式​​masterSendNMTstateChange(&master_objdict_Data,0x01,NMT_Start_Node);​​ 4、cs参数取值为:

01h为启动命令(让节点进入操作状态);
02h为停止命令(让节点进入停止状态);
80h为进入预操作状态(让节点进入预操作状态);
81h为复位节点应用层(让节点的应用恢复初始状态,比如列车门都恢复打开状态);
82h为复位节点通讯(让节点的 CAN 和 CANopen 通讯重新初始化,一般用于总线收到
干扰,导致节点总线错误被动,或者总线关闭时)。

三、主机写从机字典(修改从机通信)
1、函数:​​​UNS8 writeNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS32 count, UNS8 dataType, void *data, UNS8 useBlockMode)​​ 2、参数

d:CO_Data
nodeId:节点ID
index:索引
subIndex:子索引
count:写入字节数
dataType:数据类型
data:数据
useBlockMode:返回错误代码

3、调用方式

size=2;
sendData[0]=0xd0;
sendData[1]=0x07;

writeNetworkDict(&master_objdict_Data,0x01,0x1017,0,size,uint16,&sendData,0); //写从节点0x01的字典索引为0x1017的内容
while(getWriteResultNetworkDict(&master_objdict_Data,0x01,&abortCode) == SDO_UPLOAD_IN_PROGRESS) //等待写入完成
{

}
printf("data:%d size:%d abortCode:%d\r\n",data,size,abortCode);

四、主机读从机字典(读取从机参数)
1、函数:​​​readNetworkDict (CO_Data* d, UNS8 nodeId, UNS16 index, UNS8 subIndex, UNS8 dataType, UNS8 useBlockMode)​​ 2、参数

d:CO_Data
nodeId:节点ID
index:索引
subIndex:子索引
dataType:数据类型
useBlockMode:返回错误代码

3、调用方式

u16 data;   //存放读取的数据
u32 size; //读取的字节
u32 abortCode; //返回错误代码
readNetworkDict(&master_objdict_Data,0x01,0x1017,0,sizeof(UNS16),0); //读取从机1字典索引为0x1017的内容
while(getReadResultNetworkDict(&master_objdict_Data,0x01,&data,&size,&abortCode) ==SDO_UPLOAD_IN_PROGRESS) //等待读取完成
{

}
printf("data:%d size:%d abortCode:%d\r\n",data,size,abortCode);

五、工程文件
​主机工程文件​​从机工程文件


举报

相关推荐

0 条评论