CMSdlcon()

<< 点击显示目录 >>

主页  贝加莱CAN通讯使用例程说明 > 通过编程实现CAN通讯 > 功能块与函数说明 > CAN_Lib > CAN_Lib - CMS Function Blocks and Functions >

CMSdlcon()

CMSdlcon()函数使服务器能够接收任何数据长度的 "复用域 "对象。

根据CAL规范CiA/DS202-2(CMS多路域PROTOCOLS)将数据分割成独立的CAN帧。如果数据长度为5字节,则以 "快速域下载 "协议进行传输。

 

为了接收数据,必须循环调用FBK,直到域传输完成(状态 =0)。如果 启动 参数设置为1,就可以用FBK接收一个新的域。一旦下载激活或尚未准备好(status=1),initiate参数就必须被重置(值为0)。 dl_len 参数检查已经收到的数据的大小。

 

enable (1->0) 的负边  释放COB和FBK管理任务。必须有足够大的内存区域供接收域使用(见 data_addrdata_len 参数)。

 

 

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

适用的限制在下面的章节中描述。

 

手柄必须被初始化

不活动的CPU上的特殊错误代码

隐藏指针的使用

 

其他信息可以在 "冗余 " 部分找到

参数

输入/输出

参数

数据类型

说明

IN

enable

BOOL

启用的含义 。

位置边缘(0->1)。

定义CAN标识符的COB(COB=通信对象)。

负边(1->0)。

删除COB。

enable = 1。

继续下载。

IN

initiate

BOOL

1... startpulse,激活接收域。

IN

us_ident

UDINT

来自 CANopen()的用户ID

IN

client_id

UDINT

从客户端到服务器发送COB的CAN标识符。

IN

server_id

UDINT

从服务器到客户端发送COB的CAN标识符。

IN

data_adr

UDINT

下载数据的地址

IN

data_len

UDINT

下载数据的长度(字节)。

OUT

add_code

UINT

在异常终止的情况下的附加错误信息

OUT

err_class

USINT

根据CANopen()的错误等级

OUT

err_code

USINT

根据CANopen()的错误

OUT

mult

UDINT

复用域的复用器

OUT

dl_len

UDINT

已经下载的数据的大小

OUT

status

UINT

状态

说明

0

下载成功

1

下载正在进行,未完成(dl_len <> data_len)。

xxxx

错误号码也会输出到 状态 输出。

调用语法(自动化基础)

CMSdlcon(enable,initiate,us_ident,client_id,server_id,data_adr,data_len,add_code,err_class,err_code,mult,dl_len,status)

add_code 参数

在异常终止情况下的额外错误信息。

add_code

说明

16

切换位错误

18

服务器上的域的缓冲区太小

49

发送的域数据多于在域启动协议中输入的数据

err_class (错误类别) 参数

err_class

描述:5

5

服务错误

6

访问错误

err_code (错误代码) 参数

err_code

说明

3

参数不一致

7

类型冲突

例子

Automation Basic

ANSI C

Structured Text