AXY:PLS Software Specification/zh-hans

From SoftMC-Wiki
Jump to: navigation, search
语言: English  • 中文(简体)‎

参考

介绍

可编程限位开关(PLS)是在达到指定轴位置时触发系统输出的机构。softMC中的PLS实现具有以下特点:

  • 多位置规格
  • PLS模式重复
  • 位置滞后
  • 启用和禁用PLS
  • 输出可以是数字或模拟的

本文详细说明在softMC中PLS实现的功能。 描述功能并定义支持的命令。

定义

PLS – 可编程限位开关

PLS – 在PLS命令中指定的位置,其输出状态被切换。

Digital output – 可以映射到位于运动总线上的设备,驱动器输出中的任一个或 EtherCAT/CAN I/O模块。
(固件版本5.0及更高版本不支持本地; 它只支持传统的SERCOS II运动控制器。)

Soft output – 32个虚拟输出之一

PLS位置在数组中定义,允许您更改PLS位置的各个值。这个数组必须单调增加。 定义的位置数量和PLS数量没有限制。初始输出极性由Pls Polarity 指定。当PLS被使能时,输出状态被设置。

PLS功能描述

PLS极性

输出极性由PLS的极性决定。该属性确定PLS位置表的第一条目的输出极性,即在第一和第二条目之间的段中。如果轴的实际位置在别处,则相应地确定输出极性,因此当轴将到达第一段时,极性将如图所示。

例如: 考虑以下PLS,其位置为10,25,30,50,65,极性为0,如图所示。

Figure 1a: Programmable Limit Switch polarity description

可以看出,第一段的极性(在10-25之间)如极性(1)所示。 在任何其他段中启用PLS将导致输出如图所示。

输出状态

当达到指定的轴位置时,PLS会触发输出(数字或模拟)。输出的初始状态将由PLS极性属性决定。当达到位置时,输出的状态被触发。每当达到位置时也会切换状态,而不考虑电机的转动方向。

Figure 1b: Programmable Limit Switch description

可以指定多个位置,在这种情况下,当达到每个位置时,数字输出的状态将被触发。例如,注意以下PLS规范:指定位置为100和200,启用后数字输出的初始状态为0.下表说明了输出状态如何随位置变化而变化。

Position Output State
0 0
100 1 (触发)
150 1 (没有变化)
200 0 (触发)
210 0 (还没有变化)
200 1 (再次触发)
150 1 (没有变化)
100 0 (再次触发)


Figure 2: Multiple PLS positions

如果轴位置围绕指定的PLS位置振荡,则每当指定位置被越过时,输出将被触发。

初始输出状态由用户隐式指定。 当PLS启用时,输出设置为此状态。

PLS位置数据

PLS位置数据存储在属于PLS机制的数据结构中。 使用CreatePlsData命令显式创建此数据结构。

PLS数据具有读/写访问权限。 用户必须确保PLS位置数据是单调的(以允许启用PLS)。

滞后

如果轴在指定的PLS位置停止,则由于实际轴位置的轻微不稳定性,数字输出的状态可能会持续触发。在这种情况下,可以选择指定滞后值。当并通过滞后值达到PLS位置时,输出状态将被触发。如在本示例中,如果滞后值为10,则输出将在位置110处从低电平变为高电平。当位置下降至90时,将返回到低电平。

Figure 3: Hysteresis in PLS position

重复间隔

可以以指定的间隔持续重复PLS位置。因此如果PLS位置指定为100,例如,重复间隔为2000,则在正方向上,输出状态在100位置上触发,再次在2100,4100,等位置上触发。并且在负方向上,在 -1900, -3900等位置上触发。

重复间隔必须为正,并且必须大于最小和最大PLS位置值之间的绝对值差. 即:

Repetition Interval > abs(PLS_Pos_Max - PLS_Pos_Min)

示例:

  • PLS Position values: -300, 100, 200
  • Repetition Interval: 2000
  • Polarity: 0

输出状态在-300, 100, 200触发,同样在1700 (-300 + 2000), 2100 (100+2000), 2200, 和 3700 (-300 + 2000 + 2000) 等位置触发。 在负方向上输出状态在-1800 (200 - 2000), -1900 (100 - 2000), -2300 (-300 - 2000), -3800等位置触发。

Figure 4: PLS Repetition Interval

PLS 约束

  • PLS的数量不受系统限制。 可以理解为定义的PLS数量与系统性能之间存在直接的权衡。
  • 每个PLS定义的PLS位置的数量不受限制。
  • 每个轴可以定义多个PLS。
  • PLSes以运动总线循环速率扫描

启用和禁用

定义后,禁用PLS(不生成输出模式)。 当PLS被使能时,输出被设置。 输出设置为定义的初始状态。只有当PLS被禁用时,才能更改PLS属性。每个启用的PLS都需要CPU资源。通过禁用未使用的PLS(s)来节省这些资源。 PLSEnable 控制PLS的状态。

MyPLS.PlsEnable = ON | OFF

PLSENABLE查询PLS的状态:

?MyPls.PlsEnable
if(MyPLS.PlsEnable = OFF)
. . .

或驱动事件:

EventOn MyEvent MyPLS.PlsOutput = ON

PLS 输出状态

查询与PLS关联的数字输出,以查询PLS输出的状态。
例如,假设PLS输出被分配给SYSTEM.DOUT.1。 要确定PLS的输出状态,请查询SYSTEM.DOUT.1的状态:

-->?Sys.Dout.1
0 | 1

示例

Step 1

在Config.Prg或终端中使用COMMON SHARED <PLS name> AS PLS声明PLS。您必须命名PLS,指定驱动PLS的轴,并命名要由PLS控制的输出。例如:

Common Shared MyPLS as PLS A1 System.Dout.1

将MyPLS设置为由连接到SYSTEM.DOUT.1的轴A1驱动的PLS。 输出可以是数字输出(SYSTEM.DOUT.1到DOUT.20)或者可以是模拟输出之一(SYSTEM.VOUT.1到VOUT.32). 在Common Shared as PLS执行后, PLS禁用。 PLS的属性设置为:

  • 单个PLS位置存在于0
  • 初始输出极性为1
  • PLSREPEAT设置为0.
  • 滞后设置为0.

只要PLS保持禁用,可以明确设置这些属性。 您可以使用PLSOUTPUT来检查与给定PLS相关联的输出。

Step 2

Create the PLS data structure and define PLS positions. The number of defined positions is not explicitly limited. A call to CreatePlsData creates an array of n positions that stores the position data. The array is 1- based and an error is generated if you attempt to access an index outside of the array bounds. For example:

CreatePLSData 4 MyPLS
MyPLS.PLSPosition[1] = 1000
MyPLS.PLSPosition[2] = 1100

As a short form, you can use PPOS in place of PlsPosition :

MyPLS.Ppos[3] = 2000
MyPLS.Ppos[4] = 2200

You cannot change PLS positions when the PLS is enabled. Position values must be increasing monotonically.

Step 3

Set the polarity. PLSPOLARITY defaults to OFF, indicating the PLS state should be OFF after the first position. Change PlsPolarity to ON to invert the state.

MyPLS.PLSPolarity = ON

Change PlsPolarity only if the PLS is disabled.

Step 4

Set PlsRepeat . If you want the PLS to repeat, set the value of PLSREPEAT to a non-zero, positive number. For example, to have the PLS repeat every 10,000 position units, enter:

MyPLS.PLSRepeat = 10000

PLSREPEAT defaults to 0, indicating that there is no repetition. Change PLSREPEAT only when the PLS is disabled.

Step 5

Set PlsHysteresis, if the application requires it. Hysteresis is only necessary if the system does stop on or near a PLS position. Normally, a PLSHYSTERESIS of 5 or 10 counts of encoder (converted to position units) or 2 or 3 counts of resolver resolution is sufficient.

MyPLS.PLSHysteresis = 0.01

Step 6

Enable the PLS Enter:

MyPLS.PLSEnable = ON

There are a few other PLS functions you may need:

  • Change Polarity

The default output state of a PLS is 0. Change this initial state by modifying PLSPOLARITY.

MyPLS.PLSPolarity = 1

The PLS must be disabled when changing this setting.

  • Query the Name
Query the name of the axis driving the PLS:
? MyPLS.PLSAxisName

returns the axis associated with the PLS (A1).

  • Disable the PLS
Disable the PLS. For example:
MyPLS.PLSEnable = OFF

You must disable a PLS to change PLS properties. Disabling a PLS also helps conserve CPU resources.

  • Delete a PLS

Delete a PLS to remove it from the system only when the PLS is disable and there are no tasks in memory. For example:

DeletePLS MyPLS

Command Set

A PLS is defined using the syntax for variable declaration. The following PLS properties are defined:

  • PLS name
  • Axis
  • Output name
  • One or more PLS positions
  • Optional initial output state
  • Optional repetition interval
  • Optional hysteresis setting

PLS Commands