F171_PulseOutput_Jog_Positioning

JOG运行和位置控制

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

参数

输入

s_DUT_DataTable (DUT)

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

F171_PulseOutput_Jog_Positioning_Type0_DUTF171_PulseOutput_Jog_Positioning_Type1_DUT
n_iPulseOutputChannel(十进制常量)

脉冲输出通道:0–3

标注

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

  • 类型0在指定目标速度范围内可以更改速度。

  • 类型1当位置控制触发器输入变为TRUE时,可以更改一次目标速度。

脉冲输出特性

  1.  (1) 初始和最终速度
  2.  (2) 目标速度
  3.  (3) 目标值
  4.  (4) 加速时间
  5.  (5) 减速时间
  6.  (6) 执行条件
  7.  (7) 位置控制触发器输入
  8.  (8) 脉冲输出控制标志
  • 脉冲输出频率根据指定加速时间和指定减速时间而变化。

  • 目标速度和初始速度之差决定加速斜坡的斜率。

  • 目标速度和最终速度之差决定减速斜坡的斜率。

  • 在位置控制触发器输入变为TRUE之后,脉冲输出继续,然后当达到目标值时,减速并停止。

停止脉冲输出

可通过以下操作之一停止脉冲输出:

  • 将位置控制触发器变为TRUE(脉冲输出继续,直到已达到目标值且减速已完成):通过将位置控制触发器输入变为TRUE或通过将存储脉冲输出控制代码的数据寄存器的第6位从FALSE设置为TRUE,可以启动位置控制触发器(例如 MOVE(16#140, sys_wHscOrPulseControlCode);)。

  • 请求减速停止:若要执行减速停止,请将存储脉冲输出控制代码的数据寄存器的第5位从FALSE设置为TRUE(例如MOVE(16#120, sys_wHscOrPulseControlCode);)。当加速期间请求减速停止时,将以从目标速度减速的相同斜率执行减速。

  • 执行紧急停止:若要执行紧急停止,请将存储脉冲输出控制代码的数据寄存器的第3位从FALSE设置为TRUE(例如,MOVE(16#108, sys_wHscOrPulseControlCode);)。

注释

停止时,对程序中使用的通道禁用所有脉冲输出功能。

JOG运行类型0

使用以下预定义DUT:F171_PulseOutput_Jog_Positioning_Type0_DUT

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

  • 控制代码

  • 初始和最终速度

  • 目标速度

  • 加速时间

  • 减速时间

  • 目标值

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

不改变目标速度:

改变目标速度:

  1. 初始和最终速度

  2. 目标速度

  3. 目标值

  4. 加速时间

  5. 减速时间

  6. 执行条件

  7. 位置控制触发器输入

  8. 脉冲输出控制标志

  • 若要更改速度,将执行条件保持为TRUE

  • 如果目标速度设置为大于50kHz的值,将被修正为50kHz

  • 如果加速期间经过值超过加速禁止区域开始位置(例如sys_diPulseChannel0AccelerationForbiddenAreaStartingPosition),则无法执行加速。

  • 减速度不可低于修正的最终速度。

  • 如果在中断程序中执行指令,则无法更改目标速度。

JOG运行类型1

使用以下预定义DUT:F171_PulseOutput_Jog_Positioning_Type1_DUT

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

  • 控制代码

  • 初始和最终速度

  • 目标速度1

  • 加速时间

  • 目标速度2

  • 修改时间

  • 减速时间

  • 目标值

目标速度1<目标速度2

目标速度1>目标速度2

  1. 初始和最终速度

  2. 目标速度

  3. 目标速度

  4. 目标值

  5. 加速时间

  6. 修改时间

  7. 减速时间

  8. 执行条件

  9. 位置控制触发器输入

在位置控制触发器输入变为TRUE后,脉冲输出频率将更改,使用更改时间对目标速度2加速或减速。无法进一步改变目标速度。如果在加速期间打开,位置控制触发器输出将被忽略。

通用编程信息

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

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

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

  • 在系统寄存器402中设置位置控制触发器输入(X0X1X2X3)。

  • 对于位置控制触发器输入,仅检测到上升沿(TRUE)。

  • 当已请求减速停止时,无法启动指令。

  • 若要在停止操作后重新启动指令,请将执行条件变为FALSE,然后再次变为TRUE

  • 强烈建议将强制停止选项包含到位置控制程序中。

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

示例

POU头

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

	VAR
		Start: BOOL:=FALSE;
		dutJog: F171_PulseOutput_Jog_Positioning_Type0_DUT:=dwControlCode := 16#010,
diInitialAndFinalSpeed := 1000,
diTargetSpeed := 7000,
diAccelerationTime := 300,
diDecelerationTime := 450,
diTargetValue := 10000;
			(*Digit3: 0=Pulse output
Digit2: 1=Fixed
Digit0: 0=CW/CCW2*)
		diInitialAndFinalSpeed: DINT:=1000;
		@'': @'';
	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 := 5 ;
        NETWORK_BODY
B(B_F,E_MOVE!,Instance,13,0,19,4,,?DEN?D?AENO?C);
B(B_VARIN,,diInitialAndFinalSpeed,11,2,13,4,);
B(B_VAROUT,,dutJog.diInitialAndFinalSpeed,19,2,21,4,);
B(B_CONTACT,,Start,6,1,8,3,);
L(1,2,6,2);
L(8,2,13,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,F171_PulseOutput_Jog_Positioning!,Instance,8,0,24,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutJog,6,2,8,4,);
B(B_VARIN,,0,6,3,8,5,);
B(B_CONTACT,,Start,2,1,4,3,);
L(1,2,2,2);
L(4,2,8,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST本体

IF (Start) then
    dutJog.diInitialAndFinalSpeed:=diInitialAndFinalSpeed;
END_IF;
IF (Start) then
  F171_PulseOutput_Jog_Positioning(s_dutDataTable := dutJog, 0);
END_IF;

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