F166_HighSpeedCounter_Set

目标值匹配打开(高速计数器)

如果高速计数器的经过值与目标值匹配,则中断处理立即将指定的输出变为TRUE

参数

输入

n_diHscChannel (DINT)

高速计数器通道:

FP-S0–3

FP-X R0–11

FP-X T0–7

FP00–3

F168_PulseOutput_Trapezoidal0–3

F171_PulseOutput_Trapezoidal0–5

s_diTargetValue (DINT)

在以下范围内为目标值指定一个32位数据值:

FP0F168_PulseOutput_Trapezoidal-838808–+8388607

FPS, FP-X, F171_PulseOutput_Trapezoidal: -2147483467–+2147483648

输出

d_Y (BOOL)

当经过值与目标值匹配时变为TRUE的输出:

FP-S, FP0, F168_PulseOutput_Trapezoidal: Y0–Y7

FP-SV3.1或更高版本),F171_PulseOutput_TrapezoidalY0–Y1F

FP-XY0–Y29F

标注

目标值匹配打开控制的特征

目标值: 10000

  1.  (1) 高速计数器的经过值
  2.  (2) 执行条件
  3.  (3) 高速计数器控制标志
  4.  (4) PLC输出

当经过值与目标值匹配时,PLC输出变为TRUE另外,高速计数器控制标志变为FALSE,且指令被禁用。

如果指定了尚未执行的输出,则仅设置或复位相应WY地址的内部存储器。

中断操作

当经过值与目标值匹配时,将执行中断程序。任何已输入任务列表的中断都将自动启用。每个通道编号都会分配一个特殊的中断程序编号。

中断程序使用的通道:

PLC类型

FP0FP-e

FPSFP0H

FP-X (继电器类型), FP-XH

FP-X (晶体管类型)

FP0R

中断0

通道0

通道0

通道0

通道0

通道0

中断1

通道1

通道1

通道1

通道1

通道1

中断2

通道2

通道2

中断3

通道2

通道2

通道3

通道3

通道2

中断4

通道3

通道3

通道4

通道4

通道3

中断5

通道5

通道5

中断6

通道6

通道6

通道4

中断7

通道7

通道7

通道5

中断8

通道8

中断9

通道9

中断10

中断11

通道A

中断12

通道B

通用编程信息

  • 在系统寄存器中选择所需通道的高速计数器输入。

  • FP-XFP0R: 当执行高速计数器指令时,所用通道的高速计数器控制标志(例如sys_bIsHscChannel0ControlActive)变为TRUE。只要控制标志为TRUE,就无法执行使用相同通道的其他高速计数器指令。

  • FP0, FP-e, FPS: 高速计数器控制标志(例如sys_bIsHscChannel0ControlActive)和脉冲输出控制标志(例如sys_bIsPulseChannel0Active)被分配为相同的特殊内部继电器编号(例如R903A)。因此,当执行高速计数器指令或脉冲输出指令时,所用通道的高速计数器控制标志(例如sys_bIsHscChannel0ControlActive)和脉冲输出控制标志(例如sys_bIsPulseChannel0Active)均为TRUE。只要此标志为TRUE,就无法执行其他高速计数器指令或脉冲输出指令。

  • 如果主程序和中断程序都包含同一通道的代码,请确保两者不同时执行。

  • 若要将之前通过此指令设置为TRUE的PLC输出设置为FALSE,请使用RSTMOVE指令。

  • 若要取消指令执行,将存储高速计数器控制代码(sys_wHscOrPulseControlCode)的数据寄存器的第3位设置为TRUE。然后高速计数器控制标志变为FALSE。若要重新启用执行高速计数器指令,请将第3位复位至FALSE

  • 在执行扫描时,高速计数器控制标志或脉冲输出控制标志的状态可能改变。例如,如果多次读取接收到的字节数,则在单次扫描中可能存在不同的状态。

错误标志

sys_bIsOperationErrorHold(变为TRUE并保持为TRUE)
  • 如果通道编号或数据表的值超出允许范围
  • 如果尚未在系统寄存器中设置高速计数器
sys_bIsOperationErrorNonHold(对于一次扫描变为TRUE)
  • 如果通道编号或数据表的值超出允许范围
  • 如果尚未在系统寄存器中设置高速计数器

示例

全局变量

在全局变量列表中,定义项目中所有POU都可以访问的变量。

POU头

所有用于编程此函数的输入和输出变量已在POU头中声明。所有编程语言使用相同的POU头。

	VAR_EXTERNAL
		out_0: BOOL:=FALSE;
			(*output Y0 of PLC*)
	END_VAR
	VAR 
		start: BOOL:=FALSE;
			(*start condition*)
	END_VAR

POU本体

当变量start设置为TRUE时,执行此函数。

LD本体

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,F166_HighSpeedCounter_Set!,Instance,12,0,26,5,,?DEN?Hn_diHscChannel?Ds_diTargetValue?AENO?Cd_Y);
B(B_VARIN,,0,10,2,12,4,);
B(B_VARIN,,10,10,3,12,5,);
B(B_VAROUT,,out_0,26,2,28,4,);
B(B_CONTACT,,start,5,1,7,3,R);
L(1,2,5,2);
L(7,2,12,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST本体

IF DF(start) then
    F166_HighSpeedCounter_Set(n_diHscChannel := 0, 
      s_diTargetValue := 10, 
      d_Y => out_0);
END_IF;
注释
为输入变量分配编号(例如[运行监控] > [监控头(N)],单击变量,输入数值,按下<Enter>),或者用编号替换输入变量。

最后更新日期: 此页面上的反馈松下热线