<< 点击显示目录 >> 主页 贝加莱CAN通讯使用例程说明 > 通过编程实现CAN通讯 > 功能块与函数说明 > CAN_Lib > CAN_Lib - CAN Function Blocks and Functions > CANread() |
CANread()函数用于从CAN控制器读取CAN报文。
enable 输入通知CAN控制器是否要为给定的CAN标识符定义一个缓冲区( enable 的正边 0->1),或者是否要再次删除它( enable 的负边 1->0)。如果 使能 =1,当前的数据将从CAN控制器中获取。
这个功能块只能有条件 地用于冗余。
适用的限制在下面的章节中描述。
其他信息可以在 "冗余 " 部分找到 。
输入/输出 |
参数 |
数据类型 |
说明 |
||||||
IN |
enable |
BOOL |
启用的含义 。 •位置边缘(0->1)。 定义CAN标识符的COB •Neg. edge (1->0): 删除COB。 •enable = 1。 从控制器接收数据。 |
||||||
IN |
us_ident |
UDINT |
来自 CANopen() 函数的用户识别号 。 |
||||||
IN |
can_id |
UDINT |
CAN标识符 |
||||||
IN |
data_adr |
UDINT (given as a pointer) |
存储读取数据的地址(最大8个字节)。 |
||||||
OUT |
data_lng |
USINT |
数据的长度。 |
||||||
OUT |
status |
UINT |
|
CANread(enable, us_ident, can_id, adr(data_adr), data_lng, status)
如果CAN功能块在C函数中被本地调用(并且FBK结构在该函数中被本地声明,而不是用_LOCAL/_GLOBAL),那么静态FBK内存必须被初始化为0。
仅适用于带有英特尔82527或博世CC770 CAN控制器的CAN接口
CANread()函数可以同时定义最多13个不同的CAN标识符(例如,SG3或5AC901.ICAN-00)。
在函数本身中,在第一次调用时(即 启用 输入0->1的正边)为每个CAN标识符分配了一个临时的内部COB(COB=通信对象) 。