F172_PulseOutput_Jog

JOG运行

此指令用于JOG运行。在位置控制触发器输入变为TRUE之后,将输出指定数量的脉冲。在达到目标值且脉冲输出停止之前执行减速。当指定通道的控制标志为FALSE且执行条件为TRUE时,脉冲从该通道输出。

参数

输入

s_dutDataTable

包含数据表的区域的开始地址

  • FP-S, FP-X:

    F172_PulseOutput_Jog_Type0_DUT_0

    F172_PulseOutput_Jog_Type1_DUT_0

  • FP0R:

    F172_PulseOutput_Jog_Type0_DUT_1

    F172_PulseOutput_Jog_Type1_DUT_1

n_iPulseOutputChannel*(十进制常量)

脉冲输出通道:

FP-XH C30 T/P: 0~3

FP-XH C60 T/P: 0~5

FP-S: 0,2

FP-X C30T/C60T: 0,1,2,3

FP-XC14T: 0,1,2

FP-X R: 0,1

FP0R: 0,1,2,3

FP-SigmaFP-X的描述

使用以下预定义DUT:F172_PulseOutput_Jog_Type0_DUT_0 (没有目标值的模式)或F172_PulseOutput_Jog_Type1_DUT_0 (目标值匹配停止模式)

可以在DUT中指定以下参数:
  • 控制代码
  • 频率
  • 目标值

脉冲输出特性

可在每次扫描中更改频率和目标值。但是,在指令执行期间,无法更改控制代码。选择两个不同操作模式之一:

  • 没有目标值的模式(类型0):

    只要执行条件为TRUE,即根据DUT中设置的条件输出脉冲。
    1.  (1) 执行条件
    2.  (2) CW脉冲输出
  • 目标值匹配停止模式(类型1):

    当达到目标值时,输出停止。在控制代码中设置此模式,并且在DUT中指定目标值(绝对值)。 (FPSV1.4或更高版本,FP-X)

    1.  (1) 执行条件
    2.  (2) CW脉冲输出
    3.  (3) 达到目标值(脉冲输出停止)

通用编程信息

只要使用此指令开始在线编辑程序(例如在RUN模式中),脉冲输出即停止。

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

  • FP-X: 当执行脉冲输出指令且正在输出脉冲时,相应通道的脉冲输出控制标志(例如sys_bIsPulseChannel0Active)为TRUE。只要此标志为TRUE,就无法执行其他脉冲输出指令。

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

  • FPS执行圆弧插补控制指令F176_PulseOutput_Center将圆弧插补控制标志(sys_bIsCircularInterpolationActive)设置为TRUE。保持此标志的状态,直到达到目标值(即使执行条件不再为TRUE)。在此期间,无法执行其他脉冲输出指令。

  • FPS在系统寄存器中将所有分配到脉冲输出通道的高速计数器设置为"未使用"。

  • FP-X在系统寄存器中设置所需通道的"脉冲输出"。

  • 如果以无效频率值开始执行指令,将出现运算错误。如果在指令执行期间频率更改为无效值,频率输出将被调节为允许范围的最小或最大值。

  • 在指令执行期间更改控制代码将无效。
  • 强烈建议将强制停止选项包含到位置控制程序中。

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

FP0R的描述

使用以下预定义DUT:F172_PulseOutput_Jog_Type0_DUT_1没有目标值的模式)或F172_PulseOutput_Jog_Type1_DUT_1目标值匹配停止模式

可以在DUT中指定以下参数:

  • 控制代码
  • 初始和最终速度
  • 目标速度
  • 加速时间
  • 减速时间
  • 目标值

脉冲输出特性

  1.  (1) 目标速度1
  2.  (2) 目标速度2
  3.  (3) 脉冲输出控制标志
  4.  (4) 执行条件
  • 脉冲输出频率根据指定加速时间和指定减速时间而变化。
  • 最大速度50kHz和初始速度之差决定加速斜坡的斜率。
  • 最大速度50kHz和最终速度之差决定减速斜坡的斜率。
  • 当启动指令后执行条件变为FALSE时,将执行减速停止。
  • 当减速期间执行条件变为TRUE时,将再次执行加速。
  • 脉冲输出期间可以更改目标速度。
  • 使用25%的占空比输出脉冲。
  • 通过脉冲输出方法"脉冲/方向",在已输出方向信号之后,输出脉冲约300ms;电机驱动器特性同时考虑在内。
  • 当加速期间请求减速停止时,将以从目标速度减速的相同斜率执行减速。
  • 加速时间和减速时间优先于初始速度和最终速度。这意味着加速时间和减速时间的值将不变,而初始速度和最终速度的值可能会被脉冲输出指令修正,以便在指定时间内启用加速和减速。修改值被写入可使用系统变量sys_iPulseChannelxCorrectedInitialSpeedsys_iPulseChannelxCorrectedFinalSpeed(其中x=通道编号)访问的数据寄存器

选择两个不同操作模式之一:

  • 没有目标值的模式(类型0):

    只要执行条件为TRUE,即根据DUT中设置的条件输出脉冲。只要执行条件为FALSE,即开始减速停止。

    1.  (1) 初始和最终速度
    2.  (2) 目标速度的改变
    3.  (3) 执行条件
    4.  (4) 脉冲输出控制标志
    5.  (5) 减速停止
  • 目标值匹配停止模式(类型1):

    当达到目标值时,输出停止。在控制代码中设置此模式,并且在DUT中指定目标值(绝对值)。当达到目标值时,将执行减速停止。在指定减速时间内执行减速。

    1.  (1) 初始和最终速度
    2.  (2) 目标速度的改变
    3.  (3) 执行条件
    4.  (4) 脉冲输出控制标志
    5.  (5) 目标值
    6.  (6) 减速时间

脉冲输出期间更改目标速度

  • 如果加速期间经过值超过加速禁止区域开始位置(例如sys_diPulseChannel0AccelerationForbiddenAreaStartingPosition),则无法执行加速。
  • 减速度不可低于修正的最终速度。

通用编程信息

只要使用此指令开始在线编辑程序(例如在RUN模式中),脉冲输出即停止。

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

  • 当执行脉冲输出指令且正在输出脉冲时,相应通道的脉冲输出控制标志(例如sys_bIsPulseChannel0Active)为TRUE。只要此标志为TRUE,就无法执行其他脉冲输出指令。
  • 在指令执行期间更改控制代码将无效。
  • 强烈建议将强制停止选项包含到位置控制程序中。

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

示例

POU头

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

	VAR_EXTERNAL
		bActivateJog: BOOL:=FALSE;
	END_VAR
	VAR 
		dutJog: F172_PulseOutput_Jog_Type0_DUT_0:=dwControlCode := 16#1110;
			(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 1=Frequency range 48Hz-100kHz
Digit 1: 1=Incremental counting
Digit 0: 0=CW*)
		diSpeed: DINT:=300;
		@'': @'';
	END_VAR

LD本体

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bActivateJog,4,1,6,3,);
B(B_F,E_MOVE!,Instance,16,0,22,4,,?DEN?D?AENO?C);
B(B_VARIN,,diSpeed,14,2,16,4,);
B(B_VAROUT,,dutJog.diSpeed,22,2,24,4,);
L(1,2,4,2);
L(6,2,16,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bActivateJog,4,1,6,3,);
B(B_VARIN,,dutJog,14,2,16,4,);
B(B_VARIN,,0,14,3,16,5,);
B(B_F,F172_PulseOutput_Jog!,Instance,16,0,29,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
L(1,2,4,2);
L(6,2,16,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST本体

 (bActivateJog) then
  dutJog.diSpeed:=diSpeed;
END_IF;
IF (bActivateJog) then
  F172_PulseOutput_Jog(s_dutDataTable := dutJog, 0);
END_IF;

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