AXY:PLS Software Specification/zh-hans

From SoftMC-Wiki
< AXY:PLS Software Specification
Revision as of 11:17, 16 October 2018 by Guy (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
语言: English

NEW PLS ARTICLE - Programmable Limit Switch

参考

介绍

可编程限位开关(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

创建PLS数据结构并定义PLS位置。定义的位置的数量没有明确限制。调用CreatePlsData 创建一个存储n个位置位置数据的数组。该数组的索引从1开始,如果您尝试访问数组边界之外的索引,则会生成错误,例如:

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

作为一种简短的形式,您可以使用PPOS代替PlsPosition :

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

当PLS启用时,您无法更改PLS位置。 位置值必须单调增加。

Step 3

设置极性. PLSPOLARITY默认为OFF, 表示PLS状态在第一个位置后应为OFF 更改PlsPolarity 为ON以反转状态。

MyPLS.PLSPolarity = ON

只有当PLS被禁用时才改变PlsPolarity

Step 4

设置PlsRepeat 。 如果要使PLS重复,请将PLSREPEAT的值设置为非零正数。 例如,要使PLS每10,000个位置单位重复,请输入:

MyPLS.PLSRepeat = 10000

PLSREPEAT默认为0,表示没有重复。 仅在PLS禁用时更改PLSREPEAT。

Step 5

设置PlsHysteresis,如果应用程序需要它。 仅当系统在PLS位置或其附近停止时才需要滞后。 通常,5或10个编码器(转换为位置单位)或2或3个解算器分辨率的PLSHYSTERESIS就足够了。

MyPLS.PLSHysteresis = 0.01

Step 6

启用PLS输入:

MyPLS.PLSEnable = ON

还有一些其他可能需要的PLS功能:

  • 改变极性

PLS的默认输出状态为0.通过修改PLSPOLARITY更改此初始状态。

MyPLS.PLSPolarity = 1

更改此设置时必须禁用PLS。

  • 查询名称
查询驱动PLS的轴的名称:
? MyPLS.PLSAxisName

返回与PLS(A1)相关联的轴。

  • 禁用PLS
禁用PLS,例如:
MyPLS.PLSEnable = OFF

您必须禁用PLS才能更改PLS属性。 禁用PLS也有助于节省CPU资源。

  • 删除PLS

删除PLS,只有当PLS被禁用且内存中没有任务时才将其从系统中删除。 例如:

DeletePLS MyPLS

命令集

使用变量声明的语法定义PLS。 定义了以下PLS属性:

  • PLS 名称
  • 输出名称
  • 一个或多个PLS位置
  • 可选的初始输出状态
  • 可选重复间隔
  • 可选滞后设定

PLS命令