16
在 DB TestCopyData 的位 0 (OperationMode) 中,已对 FC 的模式进行编码。值 0 ... 3 标识模式:
模式 0
功能已阻止
模式 1
帧条目作为 DB TestCopyData 的开始
模式 2
不断以循环缓冲的形式写入 DB TestCopyData
模式 3
填充 DB TestCopyData 一次,然后设置模式 0。
详细编码请参见下表。
与模式一样,DBB0 的编码也包括已记录数据的传送方向。下列分配适用于编码:
位 0...3
模式(0、1、2、3),用于方向“RecvCopy”(复制接收帧)
位 4...7
模式(0、1、2、3),用于方向“SendCopy”(复制发送帧)
位 | .7 | .6 | .5 | .4 | .3 | .2 | .1 | .0 |
方向 | SendCopy | RecvCopy | ||||||
功能“SendCopy”和“RecvCopy”可以单独激活,也可同时激活,但是两个通信方向只能使用公共模式。
当在低有效半字节中设置模式 > 0 时,始终适用于两个通信方向。
只要在位 0...3 (RecvCopy) 中编码模式 0,就适用位 4...7 (SendCopy) 中的值。
例外:
要删除 DB TestCopyData,必须将 FF 写入 DBB0,将 0F 写入不足以实现。
DBB0 编码示例:
00h
未启用 TestCopy 功能
03h
只有 RecvCopy 功能(OperationMode = 3),没有 SendCopy 功能。
30h
只有 SendCopy 功能 (OperationMode = 3),没有 RecvCopy 功能。
33h
RecvCopy 功能和 SendCopy 功能 (OperationMode = 3)
FFh
删除 DB TestCopyData 的内容
通过监视表格运行 FC TestCopy,监视表格在 TD7 库中以完成形式“TestCopyMonitor”提供。
在 DB TestCopy 中,使用监视表格可以进行如下设置:
名称(符号) | 允许值(十六进制) | 含义 |
|---|---|---|
OperationMode | 00 | 模式 0:功能已阻止 |
11 | 模式 1:帧条目始终作为 DB TestCopyData 的开始 | |
22 | 模式 2:不断以循环缓冲的形式写入 DB TestCopyData | |
02 20 | 对 SendCopy 功能进行写入 对 RecvCopy 功能进行写入 | |
33 | 模式 3:填充 DB TestCopyData 一次,然后设置模式 0。 | |
03 30 | 对 SendCopy 功能进行填充 对 RecvCopy 功能进行填充 | |
FF | 删除整个 DB TestCopyData 并重置为默认值 |
作为输出值,FC TestCopy 在 DB TestCopyData(用于存储设置符合过滤条件的模式 1、2 或 3 后接收的接收帧)的 DBW12 (Recv_TgramCounter) 中返回一个计数值。
在 DBW26 (Sendcv_TgramCounter) 中输入发送帧数目。
在 DBB28 中,可收到一个返回值,指示处理 FC 期间发生的错误:
FC_RetVal = 0
无错误
FC_RetVal = 1
*的 DB TestCopyData 太短。
FC_RetVal = 10d
未定义在 DBB0 中输入的模式。
此外,还可以为 RecvCopy 或 SendCopy 使用以下特殊过滤器:
名称(符号) * | 允许值(十六进制) | 含义 |
|---|---|---|
Xxxx_TgrmType | FF | 将所有帧类型 (TA) 复制到 DB TestCopyData |
00 | 仅复制自发组织帧 (TA = 0) | |
11 | 仅复制查询组织帧 (TA = 1)。 | |
22 | 仅复制自发数据帧 (TA = 2)。 | |
33 | 仅复制查询数据帧 (TA = 3)。 | |
01 | 复制组织帧(TA = 0 或 1) | |
23 | 复制数据帧(TA = 2 或 3) | |
任何组合 | 复制任何 0、1、2、3 组合。 | |
Xxxx_DestSubscr | 所有允许的用户 | 用于过滤帧中的目标用户编号的过滤器 |
-1 | 无论目标用户编号如何,均复制所有帧 | |
Xxxx_DestObject | 所有允许的对象 | 用于过滤数据帧中的目标用户编号的过滤器 |
-1 | 无论目标对象编号如何,均复制所有帧 | |
Xxxx_SourceSubscr | 所有允许的用户 | 用于过滤帧中的源用户编号的过滤器 |
-1 | 无论源用户编号如何,均复制所有帧 | |
Xxxx_SourceObject | 所有允许的对象 | 用于过滤数据帧中的源对象编号的过滤器 |
-1 | 无论源对象编号如何,均复制所有数据帧 | |
Xxxx_StartIndex | 所有允许的索引 | 用于过滤数据帧中的起始索引的过滤器 |
-1 | 无论起始索引编号如何,均复制所有数据帧 |
可使用 TestCopy DB 的标签名称轻松添加所需过滤器标签。
当从一种模式切换到下一种模式时,不会删除 DB TestCopyData 的内容。仅重置 DB TestCopyData 的管理区域中的内部指针和帧计数器。因此,当存在模式更改时,建议使用删除功能“FF”将帧缓冲区域预设为 0。会使复制的帧块更*读取。
如果要复制发送帧和接收帧,则在“OperationMode”参数的左半字节中,必须输入与右半字节相同的模式。
以下规划适用于模式 0、1、2 和 3:
如果删除了缓冲区,则必须始终输入 FFh。
无法单独删除接收帧和发送帧。