写入脉冲输出控制代码

存储高速计数器和脉冲输出控制代码的特殊数据寄存器,可通过系统变量sys_wHscOrPulseControlCode访问。系统变量sys_wHscOrPulseControlCode对应于特殊数据寄存器DT90052

通过脉冲输出控制代码执行的操作:

可使用系统变量sys_wHscChannelxControlCodesys_wPulseChannelxControlCode(其中x=通道编号)监控每个通道的控制代码设置。在执行另一个设置操作之前,此系统变量的设置保持不变。
注释
  • 执行强制停止可能会导致PLC输出侧的经过值与电机输入侧的经过值不同。因此,在脉冲输出已停止后,必须执行原点返回。
  • 如果禁止计数或如果执行软件复位,将无法设置近原点输入。

设置/复位近原点输入

若要在接近原点位置时减速运动,请指定近原点输入,并将存储脉冲输出控制代码(sys_wHscOrPulseControlCode)的特殊数据寄存器的位4设置为TRUE,然后再次重设回FALSE保留近原点位。将此位设置为TRUE后立即将其设置为FALSE,以便能够在原点返回时再次设置近原点输入。

  1.  (1) 初始和最终速度
  2.  (2) 目标速度
  3.  (3) 近原点输入:TRUE
  4.  (4) 原点输入:TRUE
  5.  (5) 原点输入始终有效。

继续/停止脉冲输出(强制停止)

通过将存储脉冲输出控制代码(sys_wHscOrPulseControlCode)的数据寄存器的位3设置为TRUE,脉冲输出将停止。应使用脉冲输出指令在每个程序中提供强制停止的可能性。将位3复位为FALSE可继续脉冲输出。

启用/禁用计数操作

Y*

脉冲输出

(1)

经过值

(2)

1

当控制代码的第1位设置为TRUE时,禁止计数且经过值保持为其当前值。当第1位复位至FALSE时,计数继续。

复位高速计数器的经过值(软件复位)

Y*

脉冲输出

(1)

经过值

(2)

脉冲输出控制代码的第0位(软件复位)

当控制代码的第0位设置为TRUE时,执行软件复位且经过值设置为0。经过值保持为值0,直到第0位复位至FALSE为止。

取消高速计数器和位置控制指令(仅限FP0R)

若要取消执行脉冲输出指令,请将存储脉冲输出控制代码(sys_wHscOrPulseControlCode)的数据寄存器的第2位设置为TRUE。然后脉冲输出控制标志将变为FALSE.若要重新允许执行指令,请将位2复位为FALSE

FP-Sigma描述

控制代码的第0~15位以4个为一组进行分配。每组中的位设置由十六进制数表示(例如00020000 0000 1001 = 16#2009)。

IV

(1)

通道编号(通道n16#n

III

0(固定)

II

(2)

近原点输入(第4位)

0: FALSE

1: TRUE

I

(3)

脉冲输出(第3位)

0:继续

1:停止

(4)

0(第2位,固定)

(5)

计数(第1位)

0:允许

1:禁止

(6)

将经过值复位至0(第0位)

0:否

1:是

示例:16#2009

数值

描述

IV

2

通道编号: 2

III

0

(固定)

II

0

近原点输入: FALSE

I

9

十六进制9对应于二进制1001

脉冲输出:停止(第3位)

1

(第2位,固定)

0

计数:允许(第1位)

0

将经过值复位至0:是(第0位)

1

FP-X描述

IV

(1)

通道编号(通道n16#n

III

(2)

1(固定)

II

(3)

近原点输入(第4位)(参见摘要)

0: FALSE

1: TRUE

I

(4)

脉冲输出(第3位)

0:继续

1:停止

(5)

计数(第1位)

0:允许

1:禁止

(6)

将经过值复位至0(第0位)

0:否

1:是

示例:16#2109

数值

描述

IV

2

通道编号: 2

III

1

(固定)

II

0

近原点输入: FALSE

I

9

十六进制9对应于二进制1001

脉冲输出:停止(第3位)

1

(第2位,固定)

0

计数:允许(第1位)

0

将经过值复位至0:是(第0位)

1

FP0R的描述

控制代码的第0~15位以4个为一组进行分配。每组中的位设置由十六进制数表示(例如00020001 0000 1001 = 16#2109)。

IV

(1)

通道编号(通道n16#n

III

1(固定)

II

(2)

位置控制开始请求

0:禁用

1:启用

(3)

减速停止请求

0:禁用

1:启用

(4)

近原点输入(第4位)(参见摘要)

0: FALSE

1: TRUE

I

(5)

脉冲输出(第3位)

0:继续

1:停止

(6)

取消脉冲输出控制(第2位)

0:继续

1:停止

(7)

计数(第1位)

0:允许

1:禁止

(8)

将经过值复位至0(第0位)

0:否

1:是

示例:16#2109

数值

描述

IV

2

通道编号: 2

III

1

(固定)

II

0

位置控制开始请求:禁用

减速停止请求:禁用

近原点输入: FALSE

I

9

十六进制9对应于二进制1001

脉冲输出:停止(第3位)

1

取消脉冲输出控制(第2位)

0

计数:允许(第1位)

0

将经过值复位至0:是(第0位)

1

FP0、FP-e的描述

控制代码的第0-15位以4个为一组分配,每个组包含一个通道的设置。每组中的位设置由十六进制数表示(例如0000 0000 1001 0000 = 16#90)。

II

I

通道

1

0

  1.  (1) 脉冲输出(第3位)

    0:继续

    1:停止

  2.  (2) 近原点输入(第2位)(参见摘要)

    0: FALSE

    1: TRUE

  3.  (3) 计数(第1位)

    0:允许

    1:禁止

  4.  (4) 将经过值复位至0(第0位)

    0:否

    1:是

示例:16#90

数值

描述

II

9

通道编号: 1

十六进制9对应于二进制1001

脉冲输出:停止(第3位)

1

近原点输入:FALSE(第2位)

0

计数:允许(第1位)

0

将经过值复位至0:是(第0位)

1

I

0

示例:对通道2FP-SIGMA)启用近原点输入

POU头

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

	VAR
	 bEnableNearHome: BOOL:=FALSE;
	END_VAR
	VAR CONSTANT
		PLS_CH2_ENABLE_NEAR_HOME: WORD:=16#2010;
			(*Enables near home input for channel 2*)
		PLS_CH2_CONTINUE: WORD:=16#2000;
			(*Disables near home input for channel 2
and starts deceleration*)
	END_VAR

LD本体

原点返回操作期间对通道2启用近原点输入。

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,PLS_CH2_ENABLE_NEAR_HOME,20,2,22,4,);
B(B_VARIN,,PLS_CH2_CONTINUE,20,6,22,8,);
B(B_F,E_MOVE!,Instance,22,0,28,4,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,28,2,30,4,);
B(B_F,E_MOVE!,Instance,22,4,28,8,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,28,6,30,8,);
B(B_CONTACT,,bEnableNearHome,4,1,6,3,R);
L(7,2,7,6);
L(1,2,4,2);
L(6,2,22,2);
L(7,6,22,6);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST本体

if DF(bEnableNearHome) then
    PLS_CH2_ENABLE_NEAR_HOME:=sys_wHscOrPulseControlCode;
    PLS_CH2_CONTINUE:=sys_wHscOrPulseControlCode;
end_if;

示例:对通道0FP0FP-eFP-SIGMA)执行强制停止

POU头

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

LD本体

对通道0执行脉冲输出的强制停止。

ST本体

if DF(bStopPulseOutput) then
    PLS_CH2_STOP_PULSE_OUTPUT:=sys_wHscOrPulseControlCode;
    PLS_CH2_CONTINUE:=sys_wHscOrPulseControlCode;
end_if;
注释

执行强制停止可能会导致PLC输出侧的经过值与电机输入侧的经过值不同。因此,在脉冲输出已停止后,必须执行原点返回。

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