F175_PulseOutput_Linear

线性插补

根据指定DUT中的参数从两个通道输出脉冲,从而使目标位置路径形成直线。当指定通道的控制标志为FALSE且执行条件为TRUE时,脉冲从该通道输出。

参数

输入

n_iPulseOutputChannel常量

脉冲输出通道:

FP-XH C30 T/P: 0~3

FP-XH C60 T/P: 0~5

FPS: 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

对于插补,通道0和1或通道2和3成对使用。只能指定0或2(对于C14T:仅限0)。

输入/输出

s_dutDataTable (DUT)

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

FPS, FP-X: F175_PulseOutput_Linear_DUT_0

FP0R: F175_PulseOutput_Linear_DUT_1

FP-SigmaFP-X的描述

使用以下预定义DUT:F175_PulseOutput_Linear_DUT_0

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

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

在执行指令时计算各轴的以下参数并存储在DUT的运算结果区域中。

  • X轴初始和最终速度
  • X轴目标速度
  • Y轴初始和最终速度
  • Y轴目标速度
  • X轴频率范围
  • Y-axis frequency range
  • X轴加速/减速步幅数
  • Y轴加速/减速步幅数

脉冲输出特性

X轴目标值(通道0): 5000

Y轴目标值(通道2)(FP-X:通道1): 2000

控制两个轴,以便按照线性路径到达目标位置。

  • 各轴的目标值必须在-8388608–8388607范围内。当此指令与其他脉冲输出指令(例如F171_PulseOutput_Trapezoidal)配合使用时,这些指令中的目标值必须在相同范围内。
  • 当在要求精度的应用中使用时,必须通过实际机器试运行。
  • 如果主程序和中断程序都包含同一通道的代码,请确保两者不同时执行。
  • 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在系统寄存器中设置所需通道的"脉冲输出"。

  • 当正在以RUN模式编辑程序时,脉冲输出停止,但是在已下载程序变更之后会恢复。
  • 强烈建议将强制停止选项包含到位置控制程序中。

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

FP0R的描述

使用以下预定义DUT:F175_PulseOutput_Linear_DUT_1

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

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

在执行指令时计算各轴的以下参数并存储在DUT的运算结果区域中。

  • X轴初始和最终速度
  • X轴目标速度
  • Y轴初始和最终速度
  • Y轴目标速度

脉冲输出特性

X轴目标值(通道0): 5000

Y轴目标值(通道1): 2000

脉冲从X轴(通道0)和Y轴(通道1)输出,以便初始速度为500Hz,目标速度为5kHz,并且加速时间和减速时间为300ms。控制两个轴,以便按照线性路径到达目标位置。

使用25%的占空比输出脉冲。通过脉冲输出方法"脉冲/方向",在已输出方向信号之后,输出脉冲约300ms;电机驱动器特性同时考虑在内。

  • 当达到目标值时,脉冲输出停止。

  • 各轴的目标值必须在-8388608–8388607范围内。当此指令与其他脉冲输出指令(例如F171_PulseOutput_Trapezoidal)配合使用时,这些指令中的目标值必须在相同范围内。
  • 当在要求精度的应用中使用时,必须通过实际机器试运行。
  • 如果主程序和中断程序都包含同一通道的代码,请确保两者不同时执行。
  • 当执行脉冲输出指令且正在输出脉冲时,相应通道的脉冲输出控制标志(例如sys_bIsPulseChannel0Active)为TRUE。只要此标志为TRUE,就无法执行其他脉冲输出指令。
  • 当正在以RUN模式编辑程序时,脉冲输出停止,但是在已下载程序变更之后会恢复。
  • 强烈建议将强制停止选项包含到位置控制程序中。

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

示例

POU头

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

	VAR
		bTrigger: BOOL:=FALSE;
		dutLinearData: F175_PulseOutput_Linear_DUT_0:=dwControlCode := 16#1000,
diInitialAndFinalSpeed := 500,
diMaximumSpeed := 5000,
diAccelerationAndDecelerationTime := 300,
diTargetValue_X := 5000,
diTargetValue_Y := 2000;
			(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 0=Fixed
Digit 1: 0=Relative value control 
Digit 0: 0=CW/CCW
*)
		@'': @'';
	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 := 6 ;
        NETWORK_BODY
B(B_CONTACT,,bTrigger,4,2,6,4,R);
B(B_VARIN,,dutLinearData,11,4,13,6,);
B(B_VARIN,,0,11,3,13,5,);
B(B_F,F175_PulseOutput_Linear!,Instance,13,1,28,6,,?DEN?Hn_iPulseOutputChannel?Ds_dutDataTable?As_dutDataTable?AENO);
L(1,3,4,3);
L(6,3,13,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST本体

IF DF(bTrigger) then
    F175_PulseOutput_Linear(n_iPulseOutputChannel := 0, 
      s_dutDataTable := dutLinearData);
END_IF;

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