编译High_Speed_Counter High_Speed_Counter 指令 High_Speed_CounterHigh_Speed_Counter 指令属于 High_Speed_Counter 工艺对象的一部分。该指令提供工艺模块的控制和反馈接口。 High_Speed_Counter 指令形成了用户程序与工艺模块之间的软件接口。为同步输入和输出数据,该指令必须从用户程序中循环调用。 High_Speed_Counter 指令对 S7-1500 和 ET 200SP的工艺模块均适用。可集中和分散使 用模块。在每种情况下该指令都适用于已分配给相关工艺对象的工艺模块的通道。每单位增量数该参数定义每个相关单位由增量或juedui值编码器提供给速度测量的计数脉冲数。 计数脉冲数取决于组态的信号评估。可输入一个介于 1 和65535 之间的值。 示例 1: 行程 1 米,编码器相应地传送 4000 个计数脉冲。应以每秒米数为单位测量速度。“信号评估”组态为“双重”。 这种情况下,需指定以下参数: • 每单位增量数:8000 • 速度测量的时基:1 s 示例 2:编码器每转传送 4096 个计数脉冲。应以每分钟转数为单位测量速度。“信号评估”(signal evaluation)组态为“单重”(Single)。 这种情况下,需指定以下参数: • 每单位增量数:4096 • 速度测量的时基:60s在用户程序中调用指令 在循环或时间控制的程序中可对每个计数器调用一次 High_Speed_Counter 指令。不允许在事件控制的中断程序中调用。 操作步骤 要在用户程序中调用指令,请按以下步骤操作: 1. 在项目树中打开 CPU 文件夹。 2.打开“程序块”(Program blocks) 文件夹。 3. 双击用于循环程序执行的 OB。 该块将在工作区中打开。 4.在“指令”(Instructions) 窗口中,打开“工艺”(Technology) 组和“计数和测量”(Counting andmeasurement) 文件夹。 文件夹中包含此指令。 5. 选择指令,并将其拖动到 OB 中。 “调用选项”(Calloptions) 对话框随之打开。 6. 从“名称”(Name) 列表中选择工艺对象或输入新工艺对象的名称。 7.单击“确定”(OK) 进行确认。 结果 如果工艺对象尚不存在,则会添加工艺对象。该指令已添加到 OB 中。已将工艺对象分配给该指令的此调用。 说明 如果单击指令用户界面中的“组态”(Configuration)、“调试”(Commissioning)或“诊 断”(Diagnostics) 按钮之一,则会打开相应的编辑器。
High_Speed_Counter 描述说明 High_Speed_Counter 指令用于通过用户程序控制工艺模块计数和测量功能。 调用必须以循环方式或在时间控制的程序中,对每个计数器调用一次 High_Speed_Counter 指令。不允许在事件控制的中断程序中调用。 工作原理 计数器值:计数器值在输出参数 CountValue 中提供。每次调用High_Speed_Counter 指 令都将更新该计数器值。测量值:工艺模块基于组态的更新时间将测量值异步更新到指令调用。每次调用该指令, 都会在输出参数 MeasuredValue中更新工艺模块Zui后确定的测量值。 测量值和计数器值在反馈接口中可并行提供。 Capture:输出参数 CaptureStatus =TRUE 表示在输出参数 CapturedValue 中存在有效的 Capture 值。 • 在以下条件下捕获 Capture 值:– 数字量输入具有参数分配“Capture” – CaptureEnable = TRUE – 具有 Capture功能的数字量输入沿 • 输出参数 CaptureStatus 在输入参数 CaptureEnable 的下降沿复位。 同步:输出参数SyncStatus = TRUE 表示已发生同步。 • 计数器值在以下条件下同步: –对数字量输入分配了参数“同步”(Synchronization),或者对增量编码器分配了参数 “在信号 N出现时同步”(Synchronization at signal N) – SyncEnable = TRUE – 静态变量SyncUpDirection(或 SyncDownDirection)= TRUE –在具有同步功能的数字量输入的信号沿或在编码器输入信号 N 的上升沿• 输出参数 SyncStatus 在以下部分的下降沿复位 –输入参数 SyncEnable 或 – 静态变量 SyncDownDirection 或 – 静态变量 SyncUpDirection通过用户程序更改参数 使用用户程序按如下方式修改参数: 1. 根据相应 Set变量进行检查,以确定工艺对象是否已准备好进行参数更改(Set 变量 = FALSE),或确定更改作业是否仍在运行(Set 变量 =TRUE) 为此,工艺对象背景 DB 的静态变量中提供了 UserCmdFlags 的下列 Set 变量: –SetReferenceValue0 – SetReferenceValue1 – SetUpperLimit –SetLowerLimit – SetCountValue – SetStartValue – SetNewDirection 2.如果工艺对象已准备好进行参数更改,请修改相关静态变量。 为此,可使用工艺对象背景 DB 的以下静态变量: –NewReferenceValue0 / NewReferenceValue0_M(用于 SetReferenceValue0) –NewReferenceValue1 / NewReferenceValue1_M(用于 SetReferenceValue1) –NewUpperLimit – NewLowerLimit – NewCountValue – NewStartValue –NewDirection 3. 设置相关 Set 变量以执行更改命令。4. 使用输出参数 Error 检查是否出现错误。如果未出现错误且工艺对象已自动复位 Set 变量,则参数更改成功。 说明 已更改计数限值如果新的计数上限小于当前计数器值,则会根据参数分配将该计数器值设为计数下限或起始值。如果新的计数下限大于当前计数器值,则会根据参数分配将该计数器值设为计数上 限或起始值。工作模式(High_Speed_Counter V3.0 或更高版本) 在工艺对象的“DQ0 特性”(Behavior of DQ0)下组态工作模式。 工作模式由输出参数 CompareMeasuredValue 进行指示: 状态 说明 FALSE工作模式“将计数值作为参考”: 比较功能与计数器值配合使用。以下静态变量专用于该工作模式: • NewReferenceValue0• NewReferenceValue1 • CurReferenceValue0 • CurReferenceValue1工作模式“将测量值作为参考”的这四个特定静态变量被忽略。 TRUE 工作模式“将测量值作为参考”:比较功能与测量值配合使用。以下静态变量专用于该工作模式: • NewReferenceValue0_M •NewReferenceValue1_M • CurReferenceValue0_M • CurReferenceValue1_M工作模式“将计数值作为参考”的这四个特定静态变量被忽略。确认事件 可通过输入参数 EventAck的上升沿确认指示的事件。在工艺对象复位计数通道的以下事 件的状态位之前,EventAck 必须保持置位状态: •CompResult0 • CompResult1 • ZeroStatus • PosOverflow • NegOverflow数字量输入的状态(TM Count 和 TM PosInput) 可通过静态变量 StatusDI0、StatusDI1 或StatusDI2 获得数字量输入的状态。 数字量输入的状态(紧凑型 CPU) 可通过静态变量 StatusDI0 和StatusDI1 获得数字量输入的状态。当紧凑型 CPU 的数字量 输入未用于计数器时,可以通过用户程序使用此数字量输入。通过用户程序使用数字量输出(TM Count 和 TM PosInput) 使用 High_Speed_Counter指令可设置数字量输出, • 如果对“置位输出”(Set output) 组态了“由用户程序使用”(Use by userprogram) 设置。 • 如果对“置位输出”(Set output) 组态了“在 CPU发出置位命令后,达到比较值之前”(After set command from CPU until comparison value)设置。 • 如果设置相应的静态变量 ManualCtrlDQm(临时覆盖)。 静态变量 SetDQ0 和 SetDQ1仅在以上情况下有效。在第一种和第三种情况下,DQm 跟 随 SetDQm 的值。在第二种情况下,DQm 在 SetDQm的上升沿置位。在计数器值对应于 比较值时或在 SetDQm 的下降沿,DQm 将复位。通过用户程序使用数字量输出(紧凑型 CPU)可使用 High_Speed_Counter 指令将 DQ1 数字量输出置位。 • 如果对“置位输出”(Set output)组态了“由用户程序使用”(Use by user program) 设置。 • 如果对“置位输出”(Set output) 组态了“在CPU 发出置位命令后,达到比较值之前”(After set command from CPU until comparisonvalue) 设置。 • 如果已设置相应的静态变量 ManualCtrlDQ1(临时覆盖)。 静态变量 SetDQ1仅在以上情况下有效。在第一种和第三种情况下,DQ1 跟随 SetDQ1 的 值。在第二种情况下,DQ1 在 SetDQ1的上升沿置位,并在计数器值对应于比较值时或在 SetDQ1 的下降沿复位。 说明 要通过 High_Speed_Counter指令将紧凑型 CPU 的物理数字量输出置位,必须先将 DQ1 信号分配到所需的数字量输出。 可使用High_Speed_Counter 指令和静态变量 StatusDQ0 将 DQ0 信号置位。 • 如果对“置位输出”(Setoutput) 组态了“由用户程序使用”(Use by user program) 设置。 • 如果对“置位输出”(Setoutput) 组态了“在 CPU 发出置位命令后,达到比较值之前”(After set command from CPU untilcomparison value) 设置。 • 如果已设置静态变量 ManualCtrlDQ0(临时覆盖)。 静态变量 SetDQ0仅在以上情况下有效。在第一种和第三种情况下,DQ0 跟随 SetDQ0 的 值。在第二种情况下,StatusDQ0 在 SetDQ0的上升沿置位,并在计数器值对应于比较值 时或在相应的下降沿复位。 说明 数字量输出 DQ0 不能用作物理输出。