<< 点击显示目录 >> 主页 贝加莱CANopen通信使用助手 > 通过编程实现CANopen通讯 > 功能块与函数说明 > AsCANopen - Function blocks > CANopenRecvEmcyDev() |
该功能块用于从网络层接收缓冲区读取特定节点的紧急信息。
如果 "status "输出的返回值是 30820,那么 根据CiA标准草案301,emcy_err元素 不包含 该节点的紧急错误信息。如果 "status = 0",那么网络层接收缓冲区就包含各自节点的紧急信息。
这个功能块总是返回各自节点的接收缓冲区中输入的第一条紧急信息(即最古老的信息)。然后,该信息将从接收缓冲区中删除。因此,一个紧急信息只能被PLC程序读取一次。CANopenRecvEmcyDev()和 CANopenRecvEmcy() 功能块访问同一个接收缓冲区。
异步处理导致该功能块返回 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 |
应检查其收到的紧急信息的节点(0-127)的地址。 节点号0指的是主站自己的 对象 字典。这允许查询它自己堆栈的EMCY。 |
OUT |
status |
UINT |
错误编号 (0=无错误)。 |
OUT |
error |
UINT |
根据 "CIA405_AsCANopen_KERNEL_ERROR "数据类型的错误代码 。 |
OUT |
emcy_err_code |
UINT |
根据CiA标准草案301的紧急错误信息。 |
OUT |
emcy_err_register |
USINT |
根据CiA标准草案301的紧急错误信息。 |
OUT |
emcy_err_field1 |
USINT |
根据CiA标准草案301的紧急错误信息。 |
OUT |
emcy_err_field2 |
USINT |
|
OUT |
emcy_err_field3 |
USINT |
|
OUT |
emcy_err_field4 |
USINT |
|
OUT |
emcy_err_field5 |
USINT |
CANopenRecvEmcyDev (enable, adr(Device), node, status, error, emcy_err_code, emcy_err_register, emcy_err_field1, emcy_err_field2, emcy_err_field3, emcy_err_field4, emcy_err_field5)