<< 点击显示目录 >> 主页 贝加莱CANopen通信使用助手 > 通过编程实现CANopen通讯 > 功能块与函数说明 > AsCANopen - Function blocks > CANopenSDORead8() |
当使用在后台持续运行的SDO传输时,该功能块用于读取节点的对象条目。
datalen "输出指定了有效数据字节的数量(从data0开始)。网络层在任何时候都只支持PLC程序的一次SDO传输。通过设置 "enable = TRUE "来启动SDO传输,使该SDO通道不能被其他功能块使用。这种锁定状态一直保持到数据传输发生后再次以 "enable = FALSE "调用SDO功能块。在 "节点=0 "的情况下调用功能块可以访问PLC上的本地对象字典。这也允许从一个单独的OD中读取数值。
异步处理导致该功能块返回 ERR_FUB_BUSY ,直到FBK成功完成或发生错误。
该功能块 不能 用于 冗余!
输入/输出 |
参数 |
数据类型 |
说明 |
IN |
enable |
BOOL |
只有当 enable 为<>0时才会执行此功能块 。 |
IN |
pDevice |
UDINT (transmitted as a pointer to STRING) |
设备名称(语法:SL<x>.SS<y>.IF<z>) |
IN |
node |
USINT |
要读取的节点的地址(1-127或0为本地OD)。 |
IN |
index |
UINT |
要读取的索引条目的编号。 |
IN |
subindex |
USINT |
要读取的子索引项的编号。 |
OUT |
status |
UINT |
错误编号 (0=无错误)。 |
OUT |
error |
UINT |
根据CIA405_CANopen_KERNEL_ERROR 数据类型的错误代码 。 |
OUT |
errorinfo |
UDINT |
CIA405_SDO_ERROR "数据类型用于SDO功能块的ERRORINFO参数,返回通信伙伴的SDO中止代码。一般的中止代码在CiA标准草案301中定义;也可以根据需要进行扩展。 |
OUT |
data0 |
USINT |
读取条目的数据字节。 |
OUT |
data1 |
USINT |
|
OUT |
data2 |
USINT |
|
OUT |
data3 |
USINT |
|
OUT |
data4 |
USINT |
|
OUT |
data5 |
USINT |
|
OUT |
data6 |
USINT |
|
OUT |
data7 |
USINT |
|
OUT |
datalen |
USINT |
读取条目的长度。 |
CANopenSDORead8 (enable, adr(Device), node, index, subindex, status, error, errorinfo, data0, data1, data2, data3, data4, data5, data6, data7, datalen)