CMSinit()

<< 点击显示目录 >>

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

CMSinit()

CMS对象可以通过CMSinit()和 CMSmain() 函数块进行发送和接收  。

CMS对象被定义在一个数据对象中(见客户端和服务器的CMS数据对象),它可以用于客户端和服务器。客户端和服务器的区分是在CMSinit()函数中使用 user_type 输入参数进行的  。如果一个节点上需要两种类型(客户端和服务器),就必须创建两个数据对象。CMS服务的请求或识别是用事件变量控制的(见用事件变量控制CMS对象)。

 

 

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

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

 

手柄必须被初始化

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

隐藏指针的使用

 

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

参数

输入/输出

参数

数据类型

说明

IN

enable

BOOL

这个功能块只有在 enable 为<>0时才会执行  。

IN

us_ident

UDINT

来自 CANopen()的用户ID

IN

user_type

USINT

0... 节点类型 CLIENT

1...节点类型SERVER

IN

queue_cnt

UINT

保留

IN

modul_name

UDINT

(given as a pointer to STRING)

含有CMS对象的数据对象名称的字符串上的地址。

观察关于使用应用模块的说明

OUT

cms_entry

UINT

CMS数据对象中的错误条目编号或CMS对象的数量。

OUT

cms_id

UDINT

CMSmain()需要CMS标识符 。

OUT

status

UINT

错误编号 (0=无错误)

调用语法(自动化基础)

CMSinit(enable,us_id,user_type,queue_cnt,addr(modul_name),cms_entry,cms_id,status)

cms_entry参数

cms_entry 参数用于识别应用程序中的缺陷条目。

如果在CMS数据对象中定义的变量在目标系统中没有找到,那么在 状态 输出 中会给出相应的错误号  (但功能块继续执行)。在这种情况下 ,cms_entry 参数返回有缺陷的CMS对象的编号(1=CMS数据对象中的第一个CMS对象,2=第二个CMS对象,等等)。

注意

为了避免违反周期时间,CMSinit()函数只能在软件对象的INIT-SP(初始化子程序)中调用。

 

只有在确定CMSinit()函数在所有必要的工位上执行完毕后,才可以调用CMSmain( )FB。否则,不能排除FB错误的可能性。

 

管理所需的内存是数据对象中每个条目22字节,每个使用的CAN ID 54字节。对于复用变量,每个CAN ID还需要一个(最大复用器*2)字节。对于CAN2000驱动程序中的管理,每个使用的块需要占用512个字节,其中CAN ID的第8到10位决定了块的编号。扩展的CAN标识符(CAN标识符> 2047)不支持复用变量。

样本

Automation Basic

ANSI C

Structured Text