nxcomSdoRead()

<< 点击显示目录 >>

主页  贝加莱CANopen通信使用助手 > 通过编程实现CANopen通讯 > 功能块与函数说明  > AsNxCoM - FBs >

nxcomSdoRead()

这个FB可以用来读取最多512字节的SDO数据。

 

 

这个功能块只能有条件地 用于冗余。

 

参数

输入/输出

参数

数据类型

说明

IN

enable

BOOL

该功能块仅在enable为<>0时执行。

IN

pDevice

UDINT

(given as a pointer to STRING)

接口的名称。

例如。"SS1.IF1"

IN

node

USINT

所需从属设备的节点号(1...127)。

IN

index

UDINT

SDO索引

IN

subIndex

UDINT

SDO子指数

IN

dataCount

UDINT

要读取的字节数(最大512字节)。

IN

pData

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)

 

pDevice

该参数指定了接口名称(STRING)的地址。接口名称(语法:SL<x>.SS<y>.IF<z>)描述了应该被访问的CAN接口(例如:"SS1.IF1")。

 

dataCount

这个参数定义了要读取的字节数(最大512字节)。如果输入0,BF返回ERR_OK而不向堆栈发送消息。

 

pData

该参数指定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

指定的文件长度是无效的。

检查指定的数据长度。