<< 点击显示目录 >> 主页 贝加莱CANopen通信使用助手 > 通过编程实现CANopen通讯 > 功能块与函数说明 > AsNxCoM - FBs > nxcomGetDiag() |
这个FB可以用来读取指定节点的诊断信息。CANopen堆栈总是保存最后5个电报。读取的电报会被缓冲器删除。
这个函数块可以取代 nxcomGetState() 和 nxcomRecvEmcyDev()。
这个功能块只能有条件 地用于冗余。
输入/输出 |
参数 |
数据类型 |
说明 |
||||||||||||||||||||||||||||||||||||||||||||||||
IN |
enable |
BOOL |
该功能块仅在enable为<>0时执行。 |
||||||||||||||||||||||||||||||||||||||||||||||||
IN |
UDINT (given as a pointer to STRING) |
接口的名称。 例如。"SS1.IF1" |
|||||||||||||||||||||||||||||||||||||||||||||||||
IN |
node |
USINT |
所需从属设备的节点号(1...127)。 |
||||||||||||||||||||||||||||||||||||||||||||||||
IN |
flags |
UDINT |
标志。 •nxcomFLAG_PEEK - 不要从诊断列表中删除节点。 |
||||||||||||||||||||||||||||||||||||||||||||||||
IN |
UDINT (given as a pointer to STRUCT nxcomEmcyTelegrams_t) |
指针指向一个由5个紧急电报组成的数组,每个8字节。 |
|||||||||||||||||||||||||||||||||||||||||||||||||
OUT |
status |
UINT |
错误编号 (0=无错误)。 |
||||||||||||||||||||||||||||||||||||||||||||||||
OUT |
coStatus |
UDINT |
该输出包含 CANopen堆栈的状态。 |
||||||||||||||||||||||||||||||||||||||||||||||||
OUT |
nodeFlags |
UDINT |
节点标志
|
||||||||||||||||||||||||||||||||||||||||||||||||
OUT |
lastDiagInfo |
UDINT |
从机的最后诊断信息(见CANopen堆栈状态)。 |
||||||||||||||||||||||||||||||||||||||||||||||||
OUT |
devTypeValid |
BOOL |
表示devType参数中的设备类型是否有效的标志。 |
||||||||||||||||||||||||||||||||||||||||||||||||
OUT |
devType |
UDINT |
设备类型 例如
|
||||||||||||||||||||||||||||||||||||||||||||||||
OUT |
nmtState |
UDINT |
所需从属设备的当前NMT状态
|
||||||||||||||||||||||||||||||||||||||||||||||||
OUT |
emcyCount |
UDINT |
实际读取的紧急电报的数量。 |
||||||||||||||||||||||||||||||||||||||||||||||||
OUT |
UDINT |
其他信息 |
nxcomGetDiag(enable, pDevice, node, flags, pEmcyData, status, coStatus, nodeFlags, lastDiagInfo, devTypeValid, devType, nmtState, emcyCount, addInfo)
该参数指定了接口名称(STRING)的地址。接口名称(语法:SL<x>.SS<y>.IF<z>)描述应该被访问的CAN接口(例如 "SS1.IF1")。
该参数指定紧急电报的地址(结构nxcomEmcyTelegrams_t)。结构 nxcomEmcyTelegrams_t 包含 5 个电报,每个有 8 个数据字节。当FB处理成功后,紧急电报会被保存在这里。
该输出包含附加信息。
状况 |
值 |
描述 |
CANOPEN_MASTER_NODE_STATE_DEINIT |
0x00 |
状态未被初始化。 |
CANOPEN_MASTER_NODE_STATE_INIT_SDO |
0x01 |
初始化SDO通道请求。 |
CANOPEN_MASTER_NODE_STATE_ADD_NODE |
0x02 |
将节点添加到NMT服务中。 |
CANOPEN_MASTER_NODE_SET_CONS_EMCY_COB_ID |
0x03 |
将EMCY COB-ID分配给port-lib。 |
CANOPEN_MASTER_NODE_STATE_RESET_NODE |
0x04 |
重置节点请求。 |
CANOPEN_MASTER_NODE_STATE_GET_1000_REQ |
0x05 |
从节点读取对象1000。 |
CANOPEN_MASTER_NODE_STATE_GET_1000_CNF |
0x06 |
等待SDO-CNF obj 1000。 |
CANOPEN_MASTER_NODE_STATE_SET_PREOPERATIONAL |
0x07 |
将节点设置为运行前。 |
CANOPEN_MASTER_NODE_STATE_SET_GUARD_REQ |
0x08 |
设置守护时间。 |
CANOPEN_MASTER_NODE_STATE_SET_GUARD_CNF |
0x09 |
等待g-time的确认。 |
CANOPEN_MASTER_NODE_STATE_SET_LIFE_REQ |
0x0A |
设置寿命系数 |
CANOPEN_MASTER_NODE_STATE_SET_LIFE_CNF |
0x0B |
等待l-fact的确认。 |
CANOPEN_MASTER_NODE_STATE_SET_SYNC_REQ |
0x0C |
设置SYNC电报的COB ID。 |
CANOPEN_MASTER_NODE_STATE_SET_SYNC_CNF |
0x0D |
等待SYNC电报的确认。 |
CANOPEN_MASTER_NODE_STATE_SET_EMCY_INVAL_REQ |
0x0E |
重置EMCY电报的COB ID。 |
CANOPEN_MASTER_NODE_STATE_SET_EMCY_INVAL_CNF |
0x0F |
等待EMCY的确认。 |
CANOPEN_MASTER_NODE_STATE_SET_EMCY_REQ |
0x10 |
设置SYNC电报的COB ID。 |
CANOPEN_MASTER_NODE_STATE_SET_EMCY_CNF |
0x11 |
等待SYNC电报的确认。 |
CANOPEN_MASTER_NODE_STATE_SDO_PARAM_REQ |
0x12 |
SDO下载数据集。 |
CANOPEN_MASTER_NODE_STATE_SDO_PARAM_CNF |
0x13 |
等待数据集的确认。 |
CANOPEN_MASTER_NODE_STATE_START_NODE |
0x14 |
发送节点启动请求。 |
CANOPEN_MASTER_NODE_STATE_INIT_TX_DATA |
0x15 |
TPDO的第一次数据交换。 |
CANOPEN_MASTER_NODE_STATE_INIT_RX_DATA |
0x16 |
RPDO的第一次数据交换。 |
CANOPEN_MASTER_NODE_STATE_ACTIVATE_GUARDING |
0x17 |
配置防护(HBT或NDGD)。 |
CANOPEN_MASTER_NODE_STATE_OPERATE |
0x18 |
节点激活。 |
CANOPEN_MASTER_NODE_STATE_STOPPED |
0x19 |
节点处于STOP模式。 |
CANOPEN_MASTER_NODE_STATE_STOP_NODE |
0x1A |
在CAN-Stop节点之后停止。 |
误差数字 |
常数 |
错误描述 |
纠错 |
0 |
ERR_OK |
无错误 |
|
65534 |
ERR_FUB_ENABLE_FALSE |
FB "enable "参数不等于1。 |
启用FB。 |
65535 |
ERR_FUB_BUSY |
任务仍在处理中,再次调用FB。 |
继续调用FB。 |
|
|
|
|
34500 |
nxcomERR_INVALID_DEVICE |
为接口指定的名称无效。 |
检查接口的名称。 |
34501 |
nxcomERR_SEND_MESSAGE |
发送到CANopen协议栈的消息失败。 |
这是一个内部AR错误,没有纠错建议。请联系B&R支持。 |
34502 |
nxcomERR_TIMEOUT |
发送到CANopen协议栈的消息超时。 |
这是一个内部AR错误,没有纠正错误的建议。请联系B&R支持部门。 |
34503 |
nxcomERR_CANOPEN_STACK |
发送到CANopen协议栈的消息因错误而终止。 |
检查CANopen堆栈状态(见参数coStatus - CANopen堆栈状态)。 |
34504 |
nxcomERR_DATALEN |
指定的文件长度是无效的。 |
检查指定的数据长度。 |