Difference between revisions of "AXY:PLS Software Specification/zh-hans"

From SoftMC-Wiki
Jump to: navigation, search
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Languages}}
+
{{Languages|PLS_Software_Specification}}
 +
'''NEW PLS ARTICLE - [[Programmable Limit Switch|Programmable Limit Switch]]'''
 +
<strike>
 
= 参考 =
 
= 参考 =
 
* [[PLS Timing Issues|PLS Timing Issues]]
 
* [[PLS Timing Issues|PLS Timing Issues]]
* [[path-PLS|Path PLS]]
 
  
 
=介绍=
 
=介绍=
Line 138: Line 139:
  
 
===Step 2===
 
===Step 2===
Create the PLS data structure and define PLS positions. The number of
+
创建PLS数据结构并定义PLS位置。定义的位置的数量没有明确限制。调用[[MC-Basic:CREATEPLSDATA|CreatePlsData ]]创建一个存储n个位置位置数据的数组。该数组的索引从1开始,如果您尝试访问数组边界之外的索引,则会生成错误,例如:
defined positions is not explicitly limited. A call to [[MC-Basic:CREATEPLSDATA|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
 
  CreatePLSData 4 MyPLS
 
  MyPLS.PLSPosition[1] = 1000
 
  MyPLS.PLSPosition[1] = 1000
 
  MyPLS.PLSPosition[2] = 1100
 
  MyPLS.PLSPosition[2] = 1100
As a short form, you can use PPOS in place of [[MC-Basic:pls.PLSPOSITION|PlsPosition ]]:
+
作为一种简短的形式,您可以使用PPOS代替[[MC-Basic:pls.PLSPOSITION|PlsPosition ]]:
 
  MyPLS.Ppos[3] = 2000
 
  MyPLS.Ppos[3] = 2000
 
  MyPLS.Ppos[4] = 2200
 
  MyPLS.Ppos[4] = 2200
You cannot change PLS positions when the PLS is enabled. Position values
+
当PLS启用时,您无法更改PLS位置。 位置值必须单调增加。
must be increasing monotonically.
 
  
 
===Step 3===
 
===Step 3===
Set the polarity. PLSPOLARITY defaults to OFF, indicating the PLS state
+
设置极性. PLSPOLARITY默认为OFF, 表示PLS状态在第一个位置后应为OFF 更改[[MC-Basic:pls.PLSPOLARITY|PlsPolarity ]]为ON以反转状态。
should be OFF after the first position. Change [[MC-Basic:pls.PLSPOLARITY|PlsPolarity ]] to ON to
 
invert the state.
 
 
  MyPLS.PLSPolarity = ON
 
  MyPLS.PLSPolarity = ON
Change [[MC-Basic:pls.PLSPOLARITY|PlsPolarity ]] only if the PLS is disabled.
+
只有当PLS被禁用时才改变[[MC-Basic:pls.PLSPOLARITY|PlsPolarity ]]
  
 
===Step 4===
 
===Step 4===
Set [[MC-Basic:pls.PLSREPEAT|PlsRepeat ]]. If you want the PLS to repeat, set the value of
+
设置[[MC-Basic:pls.PLSREPEAT|PlsRepeat ]]。 如果要使PLS重复,请将PLSREPEAT的值设置为非零正数。 例如,要使PLS每10,000个位置单位重复,请输入:
PLSREPEAT to a non-zero, positive number. For example, to have the PLS
 
repeat every 10,000 position units, enter:
 
 
  MyPLS.PLSRepeat = 10000
 
  MyPLS.PLSRepeat = 10000
PLSREPEAT defaults to 0, indicating that there is no repetition. Change
+
PLSREPEAT默认为0,表示没有重复。 仅在PLS禁用时更改PLSREPEAT。
PLSREPEAT only when the PLS is disabled.
 
  
 
===Step 5===
 
===Step 5===
Set [[MC-Basic:pls.PLSHYSTERESIS|PlsHysteresis]], if the application requires it. Hysteresis is only
+
设置[[MC-Basic:pls.PLSHYSTERESIS|PlsHysteresis]],如果应用程序需要它。 仅当系统在PLS位置或其附近停止时才需要滞后。 通常,5或10个编码器(转换为位置单位)或2或3个解算器分辨率的PLSHYSTERESIS就足够了。
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
 
  MyPLS.PLSHysteresis = 0.01
  
 
===Step 6===
 
===Step 6===
Enable the PLS Enter:
+
启用PLS输入:
 
  MyPLS.PLSEnable = ON
 
  MyPLS.PLSEnable = ON
There are a few other PLS functions you may need:
+
还有一些其他可能需要的PLS功能:
*Change Polarity
+
*改变极性
The default output state of a PLS is 0. Change this
+
PLS的默认输出状态为0.通过修改PLSPOLARITY更改此初始状态。
initial state by modifying PLSPOLARITY.
 
 
  MyPLS.PLSPolarity = 1
 
  MyPLS.PLSPolarity = 1
The PLS must be disabled when changing this
+
更改此设置时必须禁用PLS。
setting.
+
*查询名称
*Query the Name
+
  查询驱动PLS的轴的名称:
  Query the name of the axis driving the PLS:
 
 
  ? MyPLS.PLSAxisName
 
  ? MyPLS.PLSAxisName
returns the axis associated with the PLS (A1).
+
返回与PLS(A1)相关联的轴。
*Disable the PLS
+
*禁用PLS
  Disable the PLS. For example:
+
  禁用PLS,例如:
 
  MyPLS.PLSEnable = OFF
 
  MyPLS.PLSEnable = OFF
You must disable a PLS to change PLS properties.
+
您必须禁用PLS才能更改PLS属性。 禁用PLS也有助于节省CPU资源。
Disabling a PLS also helps conserve CPU
+
*删除PLS
resources.
+
删除PLS,只有当PLS被禁用且内存中没有任务时才将其从系统中删除。 例如:
*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
 
  DeletePLS MyPLS
  
= Command Set =
+
= 命令集 =
A PLS is defined using the syntax for variable declaration. The following PLS properties are defined:
+
使用变量声明的语法定义PLS。 定义了以下PLS属性:
* PLS name
+
* PLS 名称
* Axis
+
*
* Output name
+
* 输出名称
* One or more PLS positions
+
* 一个或多个PLS位置
* Optional initial output state
+
* 可选的初始输出状态
* Optional repetition interval
+
* 可选重复间隔
* Optional hysteresis setting
+
* 可选滞后设定
 
+
</strike>
== PLS Commands ==
+
== PLS命令 ==
  
 
* [[MC-Basic:COMMON SHARED ... AS PLS|<nowiki>COMMON | DIM] SHARED <PLS name> AS PLS</nowiki>]]
 
* [[MC-Basic:COMMON SHARED ... AS PLS|<nowiki>COMMON | DIM] SHARED <PLS name> AS PLS</nowiki>]]

Latest revision as of 11:17, 16 October 2018

语言: 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命令