<< 点击显示目录 >> 主页 贝加莱CAN通讯使用例程说明 > 通过编程实现CAN通讯 > 功能块与函数说明 > CAN_Lib > CAN_Lib - CMS Function Blocks and Functions > CMSdlreq() |
CMSdlreq()函数可以将任何数据大小的 "复用域 "对象从客户端传输到服务器。
根据CAL规范CiA/DS202-2(CMS多路域协议)将数据分割成独立的CAN帧。如果数据长度为5个字节,则以 "快速域下载 "协议进行传输。如果 启动 参数设置为1,则开始进行新的启动域传输,必要时中断任何活动的域下载。为了 传输数据,必须循环调用FBK,直到域传输完成(状态 =0)。
每调用一次FBK,就有一个段(域请求),最多有8个数据字节。8个数据字节的段(域请求)通过CAN BUS传输(注意:只有在收到最后一个段的确认后才会传输该段)。 dl_len 参数检查已经发送的数据的大小。在 enable (1->0)的 负边沿, 释放COB和FUB管理任务。
这个功能块只能有条件地 用于冗余。
适用的限制在下面的章节中描述。
其他信息可以在 "冗余 " 部分找到 。
输入/输出 |
参数 |
数据类型 |
说明 |
||||||||
IN |
enable |
BOOL |
启用的含义 。 •位置边缘(0->1)。 定义CAN标识符的COB(COB=通信对象)。 •负边(1->0)。 删除COB。 •enable = 1。 继续下载。 |
||||||||
IN |
initiate |
BOOL |
Pos. edge (0->1)... 启动新域 |
||||||||
IN |
us_ident |
UDINT |
来自 CANopen()的用户ID |
||||||||
IN |
client_id |
UDINT |
从客户到服务器发送COB的CAN标识符 |
||||||||
IN |
server_id |
UDINT |
从服务器到客户端发送COB的CAN标识符 |
||||||||
IN |
mult |
UDINT |
复用域的复用器。多路复用器包含特定的应用数据。 mux (UDINT)的字节1到3 被接受到启动域下载协议中。字节0被忽略。注意应用中改变的字节顺序(MOTOROLA <--> INTEL)。 |
||||||||
IN |
data_adr |
UDINT |
下载数据的地址 |
||||||||
IN |
data_len |
UDINT |
下载数据的长度 |
||||||||
OUT |
add_code |
UINT |
在异常终止情况下的附加错误信息 |
||||||||
OUT |
err_class |
USINT |
根据CANopen()的错误等级 |
||||||||
OUT |
err_code |
USINT |
根据CANopen()的错误 |
||||||||
OUT |
dl_len |
UDINT |
发送的下载数据的大小。 |
||||||||
OUT |
status |
UINT |
|
CMSdlreq(enable,initiate,us_ident,client_id,server_id,mult,data_adr,data_len,add_code,err_class,err_code,dl_len,status)
在异常终止情况下的额外错误信息。
add_code |
说明 |
16 |
切换位错误 |
18 |
服务器上的域的缓冲区太小 |
49 |
发送的域数据多于在域启动协议中输入的数据 |
err_class |
描述:5 |
5 |
服务错误 |
6 |
访问错误 |
err_code |
说明 |
3 |
参数不一致 |
7 |
类型冲突 |