TestCopyMonitor的操作 DB TestCopyData 的操作模式和传送方向 在 DB TestCopyData 的位 0(OperationMode) 中,已对 FC 的模式进行编码。值 0 ... 3 标识 模式: • 模式 0 功能已阻止 • 模式1 帧条目作为 DB TestCopyData 的开始 • 模式 2 不断以循环缓冲的形式写入 DB TestCopyData •模式 3 填充 DB TestCopyData 一次,设置模式 0。要使用 TestCopy 功能,用户程序必须符合以下条件: •CPU 上必须提供 FC TestCopy 功能。 • CPU 上必须具有 DB TestCopyData,且具有足够的长度。 –为此,请将 DB TestCopyData (DB99) 从 TD7 库复制到 CPU 中。 – 如有必要,可在 DW40中通过增大或减小“TestCopyBuffer”数组大小来更改 DB 中缓冲 区的长度,该长度默认为 [0..240] WORD。 •在要写入其发送和/或接收帧的 CPU 300/400 (BComData / XComData / PComData) 的相 应通信DB 中,进行以下输入: – 在通信 DB 的 DW32 (TestCopyDBNo) 中输入 DB TestCopyData的编号。 – 在通信 DB 的 DW34 (TestCopyFCNo) 中输入 FC TestCopy 的编号。 对 CPU 1500的通信 DB 继续执行相同操作。DB BConnectData 中的变量具有相同的名称。 将 FC TestCopy 链接到用户程序中如果满足上述条件,则会通过 CPU 的相应通信 FB 循环处理测试功能。 不能在用户程序中调用 FC TestCopy。监视已写入数据 使用现成的监视表格“TestCopyMonitor”,可将监视表格从 TD7 库复制到 CPU 的“监视表格和强制表格”(Watch and force tables) 目录中。 如果要在 CPU 启动后仍保留设置,也可以将设置直接存储在DB BConnectData 各 BConnection 实例的起始值中。
操作员输入注意事项当从一种模式切换到下一种模式时,不会删除 DB TestCopyData 的内容。仅重置 DB TestCopyData的管理区域中的内部指针和帧计数器。当存在模式更改时,建议使用 删除功能“FF”将帧缓冲区域预设为 0。会使复制的帧块更容易读取。如果要复制发送帧和接收帧,则在“OperationMode”参数的左半字节中,必须输入与右半字 节相同的模式。FC TimeTask功能 FC TimeTask 在 CPU 中保持连续的日期和时间。FC 无参数。 将 FC 链接到循环用户程序(在 OB1 内)中FC BasicTask 之后。 仅当 CPU 由本地 TIM 同步后才可使用 FC TimeTask。激活相关 TIM模块的时钟同步。 在 CPU 启动后,TIM 首次通过组织帧提供日期和当前时间。此后,以 TIM 组态中指定的时间间隔执行时钟同步。对于 MPI/合用线的时钟同步,建议采用 1 分钟的时间间隔。FC TimeTask 通过 TIM 提供的时间设置CPU 时钟。 FC 在每个 OB1 循环中读出时间。读出的时间输入到 DB BasicData 的前两个双字中,标记为有效或无效,并带有一个说明是夏令时还是标准时间的指示符。 如果需要,所有块的当前时间均取自 DBBasicData。例如,数据点典型值以这种方式将其数 据或 FC Trigger 加上时间戳,以检查是否达到为 FC设置的时间,或者是否已经过预设的时 间间隔。该时钟也可用于用户程序。除了时间状态外,还可以根据数据位16.1“CpuClockOk”确定日期/时间是否有效。只要 CPU 上的时间有效,FC TimeTask 就会将该位设置为1。在用户程序中,此位可通过符号名 “BasicData.CpuClockOk”直接查询。 FC Trigger 功能 FC在可由用户组态的时间将输出置位,或以预设的时间间隔将输出置位(存储器位、数据 位或数字量输出)。 FC 将在一个 OB1循环后将此输出复位。 也可以在循环用户程序 (OB1) 中的任意点多次调用 FC。 如果要使用 FC Trigger触发运行程序段或软件功能,建议先直接调用 FC Trigger,再执 行该功能。根据 FC Trigger设置的存储器位触发功能的应用举例如下: • 通过功能运行 • 调用块 • 每 2 小时触发计数值传送如果需要激活多个功能,则当所有功能都查询由 FC 设置的相同存储器位时,可由一个 FC Trigger块来执行激活。但仅在触发功能未重置此存储器位本身时有效。 触发块重置存储器位时的解决方法: • 经常调用 FCTrigger,但只能针对不同的输出存储器位。 • 调用 FC Trigger后,在适当数量的其他存储器位中重新生成设定的输出存储器位。 FC 访问 DB BasicData 的前两个数据双字中的 SINAUT时钟。如果 FC TimeTask 包含在用户 程序中,则会持续提供,且由本地 TIM 以固定间隔同步。仅当 DB BasicData数据字节 7(时 间状态字节,位 0 =1)中的时间标记为有效时,FC Trigger 才会将为其设置的时间与当前时 间进行比较。FCTrigger 运行的精度取决于时间精度以及 OB1 循环时间。 如果 OB1 循环时间小于 1秒(通常状况),则恰好在编程设定的时间(jingque到秒)设置输出, 且 OB1 循环时间误差小于 1 秒。 如果 OB1循环时间大于 1 秒,则 FC 使用 4 秒的公差。如果对 FC 进行处理的时间过迟,但 仍在组态的 4秒公差之内,则仍会将输出置位。 为 FC 组态的边沿存储器位“Flag”与输出在同一时间置位,并在组态时间的 5 秒之后复位。沿存储器位不能使用任何占位符参数,且不能由用户程序复位。 有关对 FC Trigger进行参数分配的示例,请参见下文。指定月和年的值 每个参数都分为两部分。每个参数有两个值,每个值均由两位数字指定为 BCD编码值。 • 前两位数字指定小时、秒或月份值。 • 两位数字指定分钟、日或年的值。 在不需要的参数部分中输入 FF。允许哪些参数取决于特定参数和“IntervalMode”参数。参数说明之后提供了更 多信息。时间或时间间隔的参数分配示例IntervalMode = FALSE(或 0) FC 根据时间原则运行。当达到设定的时间时,会将一个 OB1循环的输出“TriggerOutput”置 位。 所有时间参数均可用于指定时间点。对不需要的参数应分配 FF。检查是否达到指定时间时会忽略不需要的参数。 “IntervalMode” = 0,在某些范围内也可以设置时间间隔,参见以下示例。启动期间的错误消息 FC在每个循环都会检查参数 Hour_Minute、Second_Day 和 Month_Year,确保它们的值保持在允许的范围内。允许值还取决于“IntervalMode”参数。如果参数分配不正确,则仅会在启动过程中在诊断缓冲区中输入错误消息(事件 ID B113)。 CPU 不切换为 STOP模式。之后,FC 会检查参数而不输出错误消息,直到错误消除。 诊断消息可帮助jingque验证错误参数(参数的连续编号,例如 2、3或 4)。导致出现诊断消 息的原因与参数“IntervalMode”相关。• BasicTask_Bnn 用于 S7‑300 CPU用于 S7‑300 CPU 的块不能用于 S7‑400 或 S7‑1500 CPU。 自版本 V3.0 + SP2 的块库起,面向S7‑300 CPU 提供 16 种版本的“BasicTask_B”FC。提供 这些版本以用于确定本地TIM 1531 IRC 的组态数量,CPU 通过此类本地接口进行通信。 根据本地 TIM 模块的数量(nn),FC 接收后缀“nn”,例如,“BasicTask_B03”。 在 CPU 中生成 TD7onCPU时,将生成合适的“BasicTask_B”FC。可以从 CPU“TD7onCPU”目 录中“BasicTask_B”FC的“注释”(Comment) 块属性中获取用于确定本地 TIM 1531 IRC 数 量的块版本。说明:用于对接收的数据进行特殊处理的用户 FC 编号。 如果指定 FC,该 FC 会随收到的数据一起由用户程序自动调用。调用时,接收帧仍在通信 DB 的接收邮箱中。 用户 FC 中的程序可以从接收邮箱读取接收帧,并以任何所需方式对其进行处理,例如将接收的数据写入中间缓冲区。 可使用用户程序通过 DW60 中的“CurrentComDB”变量从 DBBasicData 中读 取有关通信 DB 的必需信息。CurrentComDB 包含以下信息: • S7‑1500 DBBConnectData 中当前 BConnection 实例的索引 • S7‑300/400 当前通信 DB 的编号 在打开的通信DB 中,可通过 DW10 中的“CurrentReceivedMessage”变量找 到接收邮箱中当前接收帧的起始位置。 DBBasicData 该数据块提供中央数据管理。其包含必须为所有块集中维护的信息。数据块包含用户 记录和连接描述。FCDistribute 辅助块,用于将接收邮箱中的数据分布到所需的数据点典型值,或者分布到用户记录中的节 点对象。 FC Search用于以下搜索任务的辅助块: • 在用户记录内的用户对象中搜索初始地址 •从两个对象引用列表的一个列表中搜索本地对象编号(背景数据块),以找到目标地址 不完整的已接收消息 几乎所有块都需要辅助块。 FCStartup 每个 CPU 均需要该块。该块必须链接到启动程序 OB100。 该块的任务是在 DB BasicData中设置启动存储器位以及将对应的沿存储器位复位(如果已 设置)。 该块无参数。