<< 点击显示目录 >> 主页 贝加莱CANopen通信使用助手 > 通过编程实现CANopen通讯 > 功能块与函数说明 > AsNxCoM - FBs > nxcomSdoRead() |
这个FB可以用来读取最多512字节的SDO数据。
这个功能块只能有条件地 用于冗余。
输入/输出 |
参数 |
数据类型 |
说明 |
IN |
enable |
BOOL |
该功能块仅在enable为<>0时执行。 |
IN |
UDINT (given as a pointer to STRING) |
接口的名称。 例如。"SS1.IF1" |
|
IN |
node |
USINT |
所需从属设备的节点号(1...127)。 |
IN |
index |
UDINT |
SDO索引 |
IN |
subIndex |
UDINT |
SDO子指数 |
IN |
UDINT |
要读取的字节数(最大512字节)。 |
|
IN |
UDINT (given as pointer to ARRAY OF USINT) |
SDO数据缓冲区(由FB读取的数据被保存在这里)。 |
|
OUT |
status |
UINT |
错误编号 (0=无错误)。 |
OUT |
coStatus |
UDINT |
该输出包含 CANopen堆栈的状态。 |
nxcomSdoRead(enable, pDevice, node, index, subIndex, dataCount, pData, status, coStatus)
该参数指定了接口名称(STRING)的地址。接口名称(语法:SL<x>.SS<y>.IF<z>)描述了应该被访问的CAN接口(例如:"SS1.IF1")。
这个参数定义了要读取的字节数(最大512字节)。如果输入0,BF返回ERR_OK而不向堆栈发送消息。
该参数指定SDO数据缓冲区的地址。由FB读取的数据被保存在这个数据缓冲区中。它是一个ARRAY OF USINT,必须至少与要读的指定字节数一样大。如果输入0,BF返回ERR_OK,而不向堆栈发送信息。
误差数字 |
常数 |
错误描述 |
纠错 |
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 |
指定的文件长度是无效的。 |
检查指定的数据长度。 |