<< 点击显示目录 >> 主页 贝加莱CAN通讯使用例程说明 > 通过编程实现CAN通讯 > 功能块与函数说明 > CAN_Lib > CAN_Lib - CMS Function Blocks and Functions > CAN_Lib - CMSmain() > Controlling CMS Objects with Event Variables |
事件变量(事件PV)要么由应用程序设置,以便通过 CMSmain() 功能块发送某些CAN报文 ,要么在CAN2000中断中接收到来自CAN2000驱动程序的CAN报文时,它们被再次重置。
在下面的表格中,给出了所述CMS对象的事件变量的状态变化。
客户端 |
事件变量状态 |
事件 |
|||
服务 |
对象类型 |
应用 |
CMSmain |
CAN2000 |
|
只读 |
B.变量 |
0 -> 1 |
|
|
发送RTR请求 |
只读 |
B.变量 |
|
1 -> 0x40 |
|
正在发送RTR请求 |
只读 |
B.变量 |
|
|
0x40 -> 0 |
已收到确认信息 |
只写 |
B.变量 |
0 -> 1 |
|
|
发送请求 |
只写 |
B.变量 |
|
1 -> 0x40 |
|
正在发送请求 |
只写 |
B.变量 |
|
|
0x40 -> 0 |
请求已被发送到CAN总线上 |
只读 |
M.变量 |
0 -> 1 |
|
|
发送请求 |
只读 |
M.变量 |
|
1 -> 0x40 |
|
正在发送的请求 |
只读 |
M.变量 |
|
|
xx -> 0xFF |
收到故障 帧 |
只读 |
M.变量 |
|
|
0x80 -> 0 |
已收到确认信息 |
只写 |
M.变量 |
0 -> 1 |
|
|
发送请求 |
只写 |
M.变量 |
|
1 -> 0x40 |
|
正在发送请求 |
只写 |
M.变量 |
|
|
0x40 -> 0 |
请求已被发送到CAN总线上 |
读取 |
R/W 变量 |
0 -> 1 |
|
|
发送读取请求 |
读取 |
R/W 可变的 |
|
1 -> 0x40 |
|
正在发送读取请求 |
读取 |
R/W 变量 |
|
|
0x40 -> 0x80 |
读取请求已被发送 |
读取 |
R/W 变量 |
|
|
xx -> 0xFF |
收到故障帧 |
读取 |
R/W 变量 |
|
|
0x80 -> 0 |
已收到读取确认 |
写入 |
R/W 变量 |
0 -> 2 |
|
|
发送写入请求 |
写入 |
R/W 变量 |
|
2 -> 0x40 |
|
正在发送写请求 |
写入 |
R/W 变量 |
|
|
0x40 -> 0x80 |
写入请求已被发送 |
写入 |
R/W变量 |
|
|
xx -> 0xFF |
收到故障帧 |
写入 |
R/W 变量 |
|
|
0x80 -> 0 |
已收到写入确认 |
通知事件 |
U. 事件 |
|
|
xx -> 1 |
事件已被收到 |
服务器 |
事件变量状态 |
事件 |
|||
服务 |
对象类型 |
应用 |
CMSmain |
CAN2000 |
|
只读 |
B.变量 |
0 -> 1 |
|
|
将CMSmain中的数据复制到控制器 |
只读 |
B.变量 |
|
1 -> 0 |
|
数据已被复制到控制器中 |
只写 |
B.变量 |
|
|
xx -> 1 |
已收到写入指示 |
只读 |
M.变量 |
|
|
xx -> 1 |
已收到读指示 |
只读 |
M.变量 |
|
1 -> 0x40 |
|
读取响应正在发送中 |
只读 |
M.变量 |
|
|
0x40 -> 0 |
读取响应已被发送 |
只写 |
M.变量 |
|
|
xx -> 1 |
已收到写指示 |
读取 |
R/W 变量 |
|
|
xx -> 1 |
已收到读指示 |
读取 |
R/W 变量 |
|
1 -> 0x40 |
|
读取响应正在发送中 |
读取 |
R/W 变量 |
|
|
0x40 -> 0 |
读取响应已被发送 |
写入 |
R/W 变量 |
|
|
xx -> 2 |
已收到写指示 |
写入 |
R/W 变量 |
|
2 -> 0x40 |
|
正在发送写响应 |
写入 |
R/W 变量 |
|
|
0x40 -> 0 |
写入响应已被发送 |
通知事件 |
U. 事件 |
0 -> 1 |
|
|
发送事件 |
通知事件 |
U. 事件 |
|
1 -> 0x40 |
|
事件正在发送中 |
通知事件 |
U. 事件 |
|
|
0x40 -> 0 |
事件已被发送到CAN总线上 |
键。 表中使用了以下缩写。 |
|||
B.变量 |
基本变量 |
||
M.变量 |
复用变量 |
||
R/W变量 |
读/写变量 |
||
U. 事件 |
不受控制的事件 |
重置事件变量(事件PV)在CAN中断中以异步方式发生在循环软件对象上,也就是说,在两次CMSmain()调用之间,很可能有多个CAN报文被发送到同一个CMS对象上,因此只有最后的数据被缓冲在分配的变量中。因此,应用程序必须保证在CAN总线上遵守抑制时间,这样数据就不会丢失。