Difference between revisions of "Master-Slave Connection/zh-hans"

From SoftMC-Wiki
Jump to: navigation, search
(Created page with "{{Languages}} {{Out-of-date}} = 介绍 = 主从运动将一个轴(从轴)的位置连接到另一个(主轴)的位置。 主轴是由softMC或外部轴控制的任何...")
 
Line 5: Line 5:
 
主从运动将一个轴(从轴)的位置连接到另一个(主轴)的位置。 主轴是由softMC或外部轴控制的任何轴。 外部轴通过由softMC控制的任何驱动器上的外部编码器输入连接到softMC。
 
主从运动将一个轴(从轴)的位置连接到另一个(主轴)的位置。 主轴是由softMC或外部轴控制的任何轴。 外部轴通过由softMC控制的任何驱动器上的外部编码器输入连接到softMC。
  
主从运动有两种类型:齿轮和凸轮。 当从轴的位置必须与主轴的位置成比例时,使用Gearing。 当关系更复杂时,使用Camming。 Camming允许您指定主轴和从轴位置的一对一映射。
+
主从运动有两种类型:齿轮和凸轮。 当从轴的位置必须与主轴的位置成比例时,使用齿轮系统。 当关系更复杂时,使用凸轮系统。 凸轮系统允许您指定主轴和从轴位置的一对一映射。
  
 
= 主轴源 =
 
= 主轴源 =
Line 20: Line 20:
 
无论A1是物理轴还是模拟轴,都有效。
 
无论A1是物理轴还是模拟轴,都有效。
  
您也可以使用'''POSITIONCOMMAND''' ('''PCMD''')作为齿轮或凸轮的源。 这消除了由主轴的位置误差引起的滞后。 不利一面是从轴正在跟随命令,而不是实际的位置。
+
您也可以使用'''POSITIONCOMMAND''' ('''PCMD''')作为齿轮系统或凸轮系统的源。 这消除了由主轴的位置误差引起的滞后。 不利一面是从轴正在跟随命令,而不是实际的位置。
  
 
很多时候,主源需要一个外部的编码器信号。 这可以是来自线性驱动电机的编码器或由外部设备(例如PLC或甚至其它softMC)控制的伺服电动机。 有时主源不是电机。 例如,您可以使用脉冲串作为主信号。 在所有这些情况下,信号连接到由softMC控制的驱动器之一的外部编码器输入。 驱动器接受标准的正交编码器信号以及脉冲串。 有关外部编码器输入的更多信息,请参阅驱动器的安装手册。
 
很多时候,主源需要一个外部的编码器信号。 这可以是来自线性驱动电机的编码器或由外部设备(例如PLC或甚至其它softMC)控制的伺服电动机。 有时主源不是电机。 例如,您可以使用脉冲串作为主信号。 在所有这些情况下,信号连接到由softMC控制的驱动器之一的外部编码器输入。 驱动器接受标准的正交编码器信号以及脉冲串。 有关外部编码器输入的更多信息,请参阅驱动器的安装手册。
Line 48: Line 48:
 
A1.Slave = GEAR 'Enable gearing
 
A1.Slave = GEAR 'Enable gearing
 
</pre>
 
</pre>
在绝对或相对运动期间启用齿轮传动会产生错误。 如果尝试在凸轮过程中启用齿轮传动,也会产生错误。在齿轮传动时使能齿轮允许增量运动。
+
在绝对或相对运动期间启用齿轮传动会产生错误。 如果尝试在凸轮系统中启用齿轮系统,也会产生错误。在齿轮传动时使能齿轮允许增量运动。
  
 
== 关闭齿轮 ==
 
== 关闭齿轮 ==
Line 101: Line 101:
 
[[Image:Axsystems;UserManual-4-IncrementalMoves.png|caption]]
 
[[Image:Axsystems;UserManual-4-IncrementalMoves.png|caption]]
  
= 凸轮 =
+
= 凸轮系统 =
Camming是齿轮的延伸。 它可以被认为是传动比根据主位置而变化的传动装置。 主轴位置可选地运行齿轮比,并驱动输入到凸轮表。 凸轮表是将主位置映射到从属位置的点对列表。 凸轮表的输出提供从轴位置。
+
凸轮系统是齿轮的延伸。 它可以被认为是传动比根据主位置而变化的传动装置。 主轴位置可选地运行齿轮比,并驱动输入到凸轮表。 凸轮表是将主位置映射到从属位置的点对列表。 凸轮表的输出提供从轴位置。
  
camming的操作看起来像:
+
凸轮系统的操作看起来像:
  
 
[[Image:Axsystems;UserManual-5-Camming.png|caption]]
 
[[Image:Axsystems;UserManual-5-Camming.png|caption]]
Line 111: Line 111:
 
softMC 凸轮系统功能是:
 
softMC 凸轮系统功能是:
  
'''凸轮支持双向运动'''。 主轴可以无限制地在正或负方向运行,而不会累积错误
+
'''凸轮系统支持双向运动'''。 主轴可以无限制地在正或负方向运行,而不会累积错误
  
 
'''凸轮表由轴位置指令驱动''',轴位置反馈或通过外部编码器输入引入的编码器驱动。 它由物理轴或模拟轴驱动。
 
'''凸轮表由轴位置指令驱动''',轴位置反馈或通过外部编码器输入引入的编码器驱动。 它由物理轴或模拟轴驱动。
Line 130: Line 130:
  
 
== 传动比 ==
 
== 传动比 ==
在凸轮中,您可以使用'''''<nowiki><''axis''>.</nowiki>''GEARRATIO'''设置主轴位置和从轴位置之间的比例常数。如果GEARRATIO = 1,表示凸轮表与主轴位置一一对应。 如果小于1,则凸轮表的速度比主轴运动速度慢。例如,以主轴速度的一半的运行凸轮表:
+
在凸轮系统中,您可以使用'''''<nowiki><''axis''>.</nowiki>''GEARRATIO'''设置主轴位置和从轴位置之间的比例常数。如果GEARRATIO = 1,表示凸轮表与主轴位置一一对应。 如果小于1,则凸轮表的速度比主轴运动速度慢。例如,以主轴速度的一半的运行凸轮表:
 
<pre>
 
<pre>
 
A1.GearRatio = 0.5 '以一半的速度驱动凸轮表
 
A1.GearRatio = 0.5 '以一半的速度驱动凸轮表
Line 136: Line 136:
 
主轴旋转两个单位驱动凸轮表一个单位
 
主轴旋转两个单位驱动凸轮表一个单位
  
'''GEARRATIO''' 是一个双精度浮点数。 要反转从轴的方向,输入负数的比例。 它的值在凸轮中是可变的,但是由于旧值和新值之间的差异很大,必须仔细进行,以避免从轴的位置跳跃。
+
'''GEARRATIO''' 是一个双精度浮点数。 要反转从轴的方向,输入负数的比例。 它的值在凸轮系统中是可变的,但是由于旧值和新值之间的差异很大,必须仔细进行,以避免从轴的位置跳跃。
  
 
== 增量运动 ==
 
== 增量运动 ==
Line 176: Line 176:
 
从轴的净运动命令是从轴位置的最后一个点对小于第一个。如果不想在从轴中进行网络运动,则必须将第一个和最后一个点对的从轴位置分配为相同。
 
从轴的净运动命令是从轴位置的最后一个点对小于第一个。如果不想在从轴中进行网络运动,则必须将第一个和最后一个点对的从轴位置分配为相同。
  
主位置反馈,外部位置或位置(取决于主轴定义)和从轴位置进行快照,并对主轴和从轴的凸轮表中的所有项进行'''偏移'''。在凸轮运动开始时,凸轮表相对于轴的实际位置是递增的。例如,假设一个凸轮表从(0,0)开始,但当凸轮启用时,主轴位置为1000,从轴位置('''PCMD''') 为-2000。 在整个凸轮循环中,表中的每个点对都被(1000,-2000)隐含地调整。
+
主位置反馈,外部位置或位置(取决于主轴定义)和从轴位置进行快照,并对主轴和从轴的凸轮表中的所有项进行'''偏移'''。在凸轮运动开始时,凸轮表相对于轴的实际位置是递增的。例如,假设一个凸轮表从(0,0)开始,但当凸轮系统启用时,主轴位置为1000,从轴位置('''PCMD''') 为-2000。 在整个凸轮循环中,表中的每个点对都被(1000,-2000)隐含地调整。
  
 
在每个凸轮循环之后,到主轴和从轴的偏移通过softMC调整。 根据主轴位置起始点和终点之间的差异调整凸轮主轴位置。 如果凸轮表具有净运动,则每个后续循环将净运动添加到从轴指令位置。
 
在每个凸轮循环之后,到主轴和从轴的偏移通过softMC调整。 根据主轴位置起始点和终点之间的差异调整凸轮主轴位置。 如果凸轮表具有净运动,则每个后续循环将净运动添加到从轴指令位置。
  
主轴和从轴都可以处于'''旋转模式''',而不影响凸轮操作。
+
主轴和从轴都可以处于'''旋转模式''',而不影响凸轮系统操作。
  
 
== 凸轮循环 ==
 
== 凸轮循环 ==
 
一个凸轮循环是通过整个凸轮表移动主轴位置反馈的操作。您可以使用位置或位置外部,代替主轴位置反馈。在凸轮循环结束时,凸轮结束或转换到下一个循环。 下一个循环只需重复当前的凸轮或另一个凸轮。凸轮重复的次数由'''''<nowiki><cam></nowiki>''.CYCLES'''控制。 其他凸轮自动与'''NEXT '''和'''PREVIOUS'''连接。
 
一个凸轮循环是通过整个凸轮表移动主轴位置反馈的操作。您可以使用位置或位置外部,代替主轴位置反馈。在凸轮循环结束时,凸轮结束或转换到下一个循环。 下一个循环只需重复当前的凸轮或另一个凸轮。凸轮重复的次数由'''''<nowiki><cam></nowiki>''.CYCLES'''控制。 其他凸轮自动与'''NEXT '''和'''PREVIOUS'''连接。
  
当主轴向前移动时,凸轮位置反馈计数。当主轴位置大于凸轮表中的最后一个条目时,循环结束。然后,凸轮移动到下一个循环。 类似地,当主轴位置减小,主轴'''PFB '''小于表中的第一个条目时,循环结束。 凸轮移动到上一个循环。 这一切都取决于桌子是增加还是减少。 如果没有NEXT(或PREVIOUS)凸轮循环,则禁用凸轮,从轴停止。
+
当主轴向前移动时,凸轮位置反馈计数。当主轴位置大于凸轮表中的最后一个条目时,循环结束。然后,凸轮移动到下一个循环。 类似地,当主轴位置减小,主轴'''PFB '''小于表中的第一个条目时,循环结束。 凸轮移动到上一个循环。 这一切都取决于桌子是增加还是减少。 如果没有NEXT(或PREVIOUS)凸轮循环,则禁用凸轮系统,从轴停止。
  
 
凸轮循环是否重复,以及应该重复的次数在'''''<nowiki><cam></nowiki>''.CYCLES'''中指定。您可以输入'''1'''以指定凸轮运行一次并且不重复,'''-1'''表示凸轮无限期运行,或使用正数来指定循环运行的次数。
 
凸轮循环是否重复,以及应该重复的次数在'''''<nowiki><cam></nowiki>''.CYCLES'''中指定。您可以输入'''1'''以指定凸轮运行一次并且不重复,'''-1'''表示凸轮无限期运行,或使用正数来指定循环运行的次数。

Revision as of 09:51, 6 June 2017

语言: [[::Master-Slave Connection|English]]  • [[::Master-Slave Connection/zh-hans|中文(简体)‎]]
IMPORTANT.svgIMPORTANT
This entry is outdated and requires revision.


介绍

主从运动将一个轴(从轴)的位置连接到另一个(主轴)的位置。 主轴是由softMC或外部轴控制的任何轴。 外部轴通过由softMC控制的任何驱动器上的外部编码器输入连接到softMC。

主从运动有两种类型:齿轮和凸轮。 当从轴的位置必须与主轴的位置成比例时,使用齿轮系统。 当关系更复杂时,使用凸轮系统。 凸轮系统允许您指定主轴和从轴位置的一对一映射。

主轴源

主从运动中主源是三个源中的一个:

  1. softMC控制的物理轴。
  2. softMC内的模拟轴。
  3. 编码器信号连接到连接到softMC的驱动器的外部编码器输入。

softMC内部时钟每SERCOS周期产生增量脉冲。 要设置轴的主源,请使用MASTERSOURCE。例如,将轴A2的主输入设置为A1轴的位置反馈输入:

A2.MasterSource = A1.PositionFeedback

无论A1是物理轴还是模拟轴,都有效。

您也可以使用POSITIONCOMMAND (PCMD)作为齿轮系统或凸轮系统的源。 这消除了由主轴的位置误差引起的滞后。 不利一面是从轴正在跟随命令,而不是实际的位置。

很多时候,主源需要一个外部的编码器信号。 这可以是来自线性驱动电机的编码器或由外部设备(例如PLC或甚至其它softMC)控制的伺服电动机。 有时主源不是电机。 例如,您可以使用脉冲串作为主信号。 在所有这些情况下,信号连接到由softMC控制的驱动器之一的外部编码器输入。 驱动器接受标准的正交编码器信号以及脉冲串。 有关外部编码器输入的更多信息,请参阅驱动器的安装手册。

外部信号连接后,可以使用变量POSITIONEXTERNAL (PEXT)将其分配为任意轴的主源。 例如,要设置轴A2跟随轴A1的外部编码器输入,可输入:

A2.MasterSource = A1.Pext

要使此功能正常工作,必须在SERCOS中将轴配置为在报文7上运行,并且必须选择PEXT作为从驱动器传回的数据元素之一。

如果轴必须被控制,而不是添加一个模拟的主轴,它可以跟随一个内部时钟。 这使得主轴是'TIMEPULSE一种类型。 将GEARRATIO设置为低值(小于零),并逐步增加其值,以避免超出速度限制。

为获得最佳性能,主轴应具有小于从轴的轴号。 如果从轴为A1,主轴为A2,则在运动中插入一个额外的时间周期。

如果主轴速度倍率改变,则从速度相应地改变。 在相对运动,从轴根据其新的速度倍率运动。 VELOCITYOVERRIDE对从轴的主信号没有影响。 它也对传动比或凸轮表没有影响。 VELOCITYOVERRIDE修改添加到齿轮或凸轮运动上的增量动作的速度。

齿轮

当两个轴进行齿轮啮合时,从轴的位置指令与主轴信号成比例,如下所示。

caption

齿轮工作在主轴运行的两个方向。这表示,成比例地,自由地使用。主轴和从轴之间的偏移量在齿轮传动可用时保存,并在整个齿轮传动过程中保持。

使能齿轮

要使能齿轮传动,请将MASTERSLAVE设置为GEAR:

A1.Slave = GEAR 'Enable gearing

在绝对或相对运动期间启用齿轮传动会产生错误。 如果尝试在凸轮系统中启用齿轮系统,也会产生错误。在齿轮传动时使能齿轮允许增量运动。

关闭齿轮

要关闭齿轮,将SLAVE设置为OFF。:

A1.Slave = OFF 'Disable gearing

当关闭齿轮时,从轴的速度以<''axis''>.DECELERATIONMAX (DMAX)的减速度减速到零。 关闭轴不会自动关闭齿轮。 重新启用轴时,不需要再次启用齿轮传动。 但是,轴使用JOGSTOP需要关闭齿轮。

'STOP立即关闭齿轮。轴的速度以设定<''axis''>DMAX减速度到零。 对于JOG,齿轮将立即关闭,运动由JOG运动曲线控制。

如果在' 从轴的RTK之前执行主轴RTK(实时内核或软件代码)' (即,如果?axislist在显示从轴之前显示主轴),并且主轴源是PCMD,则执行时间不会延迟。 如果主源是反馈,PFBPEXT,则系统延迟1 SERCOS周期时间。 如果从轴RTK在主轴RTK之前执行,则会产生1个周期时间的附加延迟。

<''axis''>.GEARRATIO设置主轴和从轴之间的比例常数。:
A1.GearRatio = 0.5 '从轴的速度是主轴的一半

GEARRATIO是一个双精度浮点数,设置为小于零,从轴为相反的方向。


增量运动

softMC支持齿轮增量运动。从轴的运动曲线是传动曲线和增量运动的曲线之和:

caption

您可以使用带有和不带齿轮的增量移动。 使用齿轮传动启动绝对移动会产生错误。 如果对执行增量移动的齿轮轴发出STOP,齿轮将立即关闭,齿轮速度指令以<axis>.DECELERATIONMAX斜变为零,然而,增量移动曲线的终止以及随后的“JOG”启动都受 <a </ nowiki>''xis>''STOPTYPE'''的约束。 齿轮增量运动发出'''JOG'''与在在齿轮下发出'''JOG'''类似,主要区别是JOG运动曲线的启动受'''''<nowiki><''axis''>.STARTTYPE的限制。 如果STARTTYPE是IMMEDIATE (IMMED)或SUPERIMMEDIATE (SIMM),则jog立即开始。 根据<''axis''>.DEC<''axis''>.ACC,增量运动的速度向上或向下上升到指定的点动速度。 如果STARTTYPE为GCOM,SYNC或INPOS,则jog配置文件将被延迟。

以下示例立即启动JOG(STARTTYPE=IMMEDIATE).。

Jog A1 100 TimeJog=5000
Sleep 2000
A1.StartType=IMMED
Jog A1 200

生成的曲线是:

caption

下一个示例显示在上一个示例中,在增量运动完成之后启动(STARTTYPE = GCOM):

Jog A1 100 TimeJog=5000
Sleep 2000
A1.StartType=GCOM
Jog A1 200

所得到的曲线是:

caption

凸轮系统

凸轮系统是齿轮的延伸。 它可以被认为是传动比根据主位置而变化的传动装置。 主轴位置可选地运行齿轮比,并驱动输入到凸轮表。 凸轮表是将主位置映射到从属位置的点对列表。 凸轮表的输出提供从轴位置。

凸轮系统的操作看起来像:

caption

主要特性

softMC 凸轮系统功能是:

凸轮系统支持双向运动。 主轴可以无限制地在正或负方向运行,而不会累积错误

凸轮表由轴位置指令驱动,轴位置反馈或通过外部编码器输入引入的编码器驱动。 它由物理轴或模拟轴驱动。

凸轮表是二维的。 这些点可能不规则地间隔开。 点之间使用线性插补。

凸轮曲线不需要返回到曲线末端的原始位置。

凸轮表可以离线计算或存储,也可以在运行中计算。

凸轮循环无限期循环或指定循环的特定次数。

多个凸轮被定义并自动连接在一起。

主轴位置处理通过主-从齿轮比(GEARRATIO)进行。

发出的增量运动与凸轮曲线相加以形成从位置命令。

传动比

在凸轮系统中,您可以使用<''axis''>.GEARRATIO设置主轴位置和从轴位置之间的比例常数。如果GEARRATIO = 1,表示凸轮表与主轴位置一一对应。 如果小于1,则凸轮表的速度比主轴运动速度慢。例如,以主轴速度的一半的运行凸轮表:

A1.GearRatio = 0.5 '以一半的速度驱动凸轮表

主轴旋转两个单位驱动凸轮表一个单位

GEARRATIO 是一个双精度浮点数。 要反转从轴的方向,输入负数的比例。 它的值在凸轮系统中是可变的,但是由于旧值和新值之间的差异很大,必须仔细进行,以避免从轴的位置跳跃。

增量运动

从轴进行增量运动,增量运动中的曲线与齿轮曲线相加,形成从轴位置。

凸轮表

凸轮表是主/从点对的列表,其定义主轴与从轴的一对一映射。可以指定点的对数。它根据应用程序所可能大或小。以下为典型的凸轮表:

CAM1.1 = (10, 20)CAM1.2 = (20, 40)CAM1.3 = (30, 60)CAM1.4 = (40, 80)CAM1.5 = (50, 100)

在凸轮表中,主轴和从轴两者的位置是在各轴的位置单位。 表中的各个点以不定期的间隔给出。 如果凸轮曲线具有光滑的长段和急弯曲线时非常有用。 不规则的间隔允许您为平滑部分和急弯曲线使用几个点和多个点。 虽然主位置的间隔是不规则的,但它必须始终大于零。主轴位置必须在凸轮表上单调增加或减小。 从轴不受此要求的限制。

在主位置完全位于主位置之一的异常情况下,从站位置是主站/从站点对的对应点。 当主位置位于两点之间时,softMC使用线性插值来计算位置。

凸轮表在一个方面是递增的,在另一方面是绝对的。在凸轮表中,位置是绝对的。假设你想要一个具有5点的凸轮表,每个主轴位置的每个点分隔10个单位,从轴位置分隔20个单位。 表(假定名称为CAM1)是:

CAM1.1 = (10, 20)CAM1.2 = (20, 40)CAM1.3 = (30, 60)CAM1.4 = (40, 80)CAM1.5 = (50, 100)

主轴和从轴位置在表格中是绝对的。 此方法不是输入凸轮表项目的有效方法,它只是表项的说明。 创建凸轮表将在后面介绍。

凸轮表是增量的参考起始点。 当凸轮表启用时,凸轮表中的起始位置总是偏移到主轴和从轴位置。 上表的操作与下表相同,其中点对被调整以允许第一个点从(10,20)变为(0,0):

CAM1.1 = (0, 0)CAM1.2 = (10, 20)CAM1.3 = (20, 40)CAM1.4 = (30, 60)CAM1.5 = (40, 80)

可以指定凸轮表来命令净运动。凸轮表的起点和终点不同。凸轮表对于起点而言是递增的或递减的原因是允许凸轮表产生净运动,同时允许多次连续调用它。考虑下面的图表,显示了这样一个具有执行四个周期的净运动的凸轮表:

caption

从轴位置通过棘轮方式连续循环向上。在表中的开始位置可以不等于实际的从轴位置或凸轮从轴位置(其被固定在凸轮表)和实际从位置(每个循环棘轮向上)的不匹配超过一个周期。

要移动的距离通过凸轮表数据间接指定。主轴一个周期的总位移是最后一个点对的主轴位置,减去第一个的主轴位置,除以GEARRATIO

在许多应用中,您必须确保该数量是精确的,或者主轴位置随着时间的推移而缓慢运动。softMC使用双精度数(16位精度)进行凸轮计算。使用softMC计算数学表达式以获得最大的精度。例如,如果GEARRATIO = 1:3,使用softMC计算值,而不是使用舍入的值计算:

MasterGearRatio = 1/3 '好:1/3精确到16位

MasterGearRatio = 0.33333 '差: 1/3精确到五位

从轴的净运动命令是从轴位置的最后一个点对小于第一个。如果不想在从轴中进行网络运动,则必须将第一个和最后一个点对的从轴位置分配为相同。

主位置反馈,外部位置或位置(取决于主轴定义)和从轴位置进行快照,并对主轴和从轴的凸轮表中的所有项进行偏移。在凸轮运动开始时,凸轮表相对于轴的实际位置是递增的。例如,假设一个凸轮表从(0,0)开始,但当凸轮系统启用时,主轴位置为1000,从轴位置(PCMD) 为-2000。 在整个凸轮循环中,表中的每个点对都被(1000,-2000)隐含地调整。

在每个凸轮循环之后,到主轴和从轴的偏移通过softMC调整。 根据主轴位置起始点和终点之间的差异调整凸轮主轴位置。 如果凸轮表具有净运动,则每个后续循环将净运动添加到从轴指令位置。

主轴和从轴都可以处于旋转模式,而不影响凸轮系统操作。

凸轮循环

一个凸轮循环是通过整个凸轮表移动主轴位置反馈的操作。您可以使用位置或位置外部,代替主轴位置反馈。在凸轮循环结束时,凸轮结束或转换到下一个循环。 下一个循环只需重复当前的凸轮或另一个凸轮。凸轮重复的次数由<cam>.CYCLES控制。 其他凸轮自动与NEXT PREVIOUS连接。

当主轴向前移动时,凸轮位置反馈计数。当主轴位置大于凸轮表中的最后一个条目时,循环结束。然后,凸轮移动到下一个循环。 类似地,当主轴位置减小,主轴PFB 小于表中的第一个条目时,循环结束。 凸轮移动到上一个循环。 这一切都取决于桌子是增加还是减少。 如果没有NEXT(或PREVIOUS)凸轮循环,则禁用凸轮系统,从轴停止。

凸轮循环是否重复,以及应该重复的次数在<cam>.CYCLES中指定。您可以输入1以指定凸轮运行一次并且不重复,-1表示凸轮无限期运行,或使用正数来指定循环运行的次数。

例如,假设您想要一个凸轮运行四个周期,如下所示:

caption

您将使用以下行:

CAM1.CYCLE = 4 ' 运行cam1四次

如果你想要一个凸轮无限次运行相同的凸轮表,使用:

CAM1.CYCLE = -1 '无限运行

当两个凸轮表在双链中互连时,一次只有一个凸轮表处于活动状态。这可以通过控制活动凸轮表的循环时间参数来改变另一个链接的凸轮表。将其值设置为-1会导致活动凸轮的无限周期。更新链接表中的所有相关值后,将活动表循环设置为1.在当前周期结束时,将交换两个表,并生成链接凸轮表。

您可以使用<''axis''>.CAMCYCLE监视运行的循环次数。当主轴位置向前移动时, CAMCYCLE计数上升。当 CAMCYCLE到达CYCLE时,如果有下一个凸轮,轴将转换到下一个凸轮。 类似地,当主轴位置向后移动时且 CAMCYCLE达到0时,如果有上一个凸轮,则循环将转换到上一个凸轮。

softMC允许您同时指定多个凸轮表。凸轮表的最大数量为256。softMC允许您使用当前凸轮表NEXT PREVIOUS的两个属性将凸轮表连接在一起。这些属性允许从一个凸轮表自动转换到另一个凸轮表,而不会在主轴位置或从轴位置上错误累积。

要将一个凸轮表链接到另一个凸轮表,请将 NEXTPREVIOUS分配给所需的凸轮表。例如:

StartCam.Next = ForwardCam

StartCam.Previous = ReverseCam

三个凸轮(Cam0,Cam1,Cam2)的连接如下图所示。

caption

分别设置NEXT PREVIOUSNEXTPREVIOUS指针不能动态更改。但可以在凸轮表的下一个转换处更改。 如果您不想在当前凸轮表循环结束时链接到另一个凸轮表,请将NEXTPREVIOUS设置为NULL(0)。

如果您已连接凸轮,CYCLES指定凸轮循环运行的次数。例如,假设Cam1由一个向前的旋转主轴驱动。如果CAM1.NEXT=CAM2和CAM1.CYCLES=4,在转换到Cam2之前,Cam1会循环4次。类似的,如果主轴向后旋转,CAM1.PREVIOUS=Cam0,在转换到Cam0之前,Cam1循环4次。

如果凸轮运行到足以满足循环次数,并且没有凸轮与当前凸轮相连,轴将自动禁用凸轮并以最大减速度减速至速度零。

创建凸轮表

凸轮表包含将主轴位置反馈映射到从轴位置的点对。凸轮表只是凸轮的一部分,凸轮的其他特性包括CYCLE, NEXTPREVIOUS。只有凸轮的凸轮表部分永久存储在softMC闪存盘中。 其他属性在程序运行期间设置。

凸轮表有两种类型:静态和动态。 静态表被构建并存储在闪存盘中,以便在运行时构建动态表。 您应该根据应用程序选择一种类型。

静态表

静态凸轮表离线构建,并永久存储在softMC闪存盘中。它们允许您使用高级工具以图形方式构建和检查凸轮表,并且在运行时不要从系统处理资源中脱离出来。当正常操作时,凸轮台不变,静态凸轮台通常是最佳选择。

您可以使用两种方式构建静态表。 第一种,您可以使用Windows工具来构建表,然后使用softMC工具来转换和存储表。 第二种,您可以在softMC内部构建静态凸轮表。 两种方法如下图所示。

caption

如果使用静态表,请使用基于Windows的工具。 该方法更简单,您可以使用更多可用于绘制和分析凸轮表的工具。

您可以使用Windows应用程序(如文本编辑器,电子表格(Excel)或数学程序(MatLab))创建点对。对于电子表格,为每个点对创建一个带有两列和一行的新工作表。不要在标题中包含一行,也不要在表单中包含任何其他信息。每行的第一个元素是主轴位置。第二个是相应的从轴位置。 主轴位置必须随着每个点对增加或减小,只要它是单调的。其值不能改变方向(即增加然后减小)或保持不变。

表完成后,保存为逗号分隔变量或.CSV文件。 这是一种文本文件格式,每个点对都有一行,主轴值和从轴值之间有逗号。 对于五点凸轮表,.CSV文件如下所示:

10, 2020, 4030, 6040, 8050, 100

当您将.CSV文件添加到项目中时,ControlStudio将其转换为凸轮表并将其存储在softMC中。

当使用MC-Basic构建凸轮表时,首先全局分配凸轮存储。使用Common Shared <var> as Cam:

Common Shared CAM1 as Cam

这里使用CAM1作为名称。 将CAM1替换为任何合法的softMC名称。 最简单的方法是将此行包含在Config.Prg中,然后重新启动softMC。 另一种选择是在终端窗口输入。 请记住,只有在softMC重置之后,此行的效果才会持续。

使用MC-Basic,为表的点对创建存储。 首先,选择一个任务来计算点对,并在该任务中输入以下行:

Program CamMaker
CreateCamData 5 CAM1

这为CAM1分配了五个数据点。 本质上是创建了两个名为CAM1.MASTERDATA和CAM1.SLAVEDATA的数组(大小为5)。

计算要在MC-Basic中使用的点对。 构建循环并遍历数组。 该数组是基于1的,如果超出此数组的范围,则会收到错误。 对于这个例子,这些点被简单地加载:

CAM1.MasterData[1]=10
CAM1.SlaveData[1]=20
CAM1.MasterData[2]=20
CAM1.SlaveData[2]=40
CAM1.MasterData[3]=30
CAM1.SlaveData[3]=60
CAM1.MasterData[4]=40
CAM1.SlaveData[4]=80
CAM1.MasterData[5]=50
CAM1.SlaveData[5]=100

最后,将表存储在闪存盘上。如果你使用:

StoreCamData MyCam.Cam Cam1

这将凸轮以MyCam.Cam存储在闪存中。该文件的名称遵循8.3格式。文件名不能超过8个字符,扩展名不能超过3个字符。凸轮数据文件必须具有.cam扩展名,该文件可以随时使用 LOADCAMDATA加载。

如果您创建了凸轮存储(Common Shared <var> as Cam),请将其删除:

DeleteCam Cam1

如果正在使用凸轮表,或者加载了附加的任务,则无法删除凸轮表。

动态凸轮表

凸轮表可以动态计算。这允许您根据操作期间发生的事件(例如轴的当前位置或速度)构建凸轮曲线。此过程与从MC-Basic创建静态凸轮表的过程相同,但不要将数据放在闪存中。 而是直接使用凸轮表。

运行凸轮

现在你知道凸轮系统的概念,你需要知道如何一个一步的使用它。 在本节中,CAM1是我们的一个例子。 整个过程如下图所示::

caption

第1步:分配空间Common Shared <var> as Cam分配凸轮的空间。所有的凸轮都是全局的,所以这一行必须位于Config.Prg中。 例如:

Common Shared CAM1 as Cam

第2步:加载凸轮数据这可以通过两种方式实现。对于已经计算并存储在softMC中的静态凸轮数据阵列,请使用LOADCAMDATA':

LoadCamData MyCam.Cam CAM1

动态计算凸轮。这是一个两步的过程。 首先,为数据数组创建空间,然后填充该空间。例如,对于五个元素数组,输入:

CreateCamData 5 CAM1

CAM1.MasterData[1]=10

CAM1.SlaveData[1]=20

CAM1.MasterData[2]=20

CAM1.SlaveData[2]=40

CAM1.MasterData[3]=30

CAM1.SlaveData[3]=60

CAM1.MasterData[4]=40

CAM1.SlaveData[4]=80

CAM1.MasterData[5]=50

CAM1.SlaveData[5]=100

这与构建静态凸轮表类似。不同之处在于,这个凸轮表从不存储到闪存中或从闪存加载。

第3步:初始化其他元素初始化凸轮的其他元素:

CAM1.Next = CAM2

CAM1.Previous = CAM0

CAM1.Cycles = 3

第4步:初始化轴初始化与凸轮相关的轴的元素。 将FIRSTCAM 设置为轴跟随的第一个凸轮轴:

A1.FirstCam = CAM1

将凸轮中的主轴位置设置在要启动的位置。 例如,您可能有一个凸轮表,主轴位置从0到100.00,但凸轮的正确起始位置可能为33.333,因此输入:

A1.FirstCamOffset = 33.333

FIRSTCAMOFFSET必须在主轴位置的范围内。请记住,FIRSTCAMOFFSET默认为0.如果主轴位置范围不包括零,则如果未设置FIRSTCAMOFFSET,则会生成错误。

设置GEARRATIO并命名主轴信号的来源:

A1.GearRatio = 1.00

A1.MasterSource = A2.PFB

最后,将 SLAVE设置为CAM:

A1.Slave = CAM

第5步:使能轴此时,启用camming。 但是,您必须使能驱动器才能看到运动:

A1.Enable = ON

如果轴处于相对或绝对运动,或在STOP期间,则无法启用凸轮系统。当传动装置被使能或正在执行的绝对运动时,使能凸轮会产生错误。禁用或使能驱动器不会影响装置是否启用。 要禁用凸轮,请将SLAVE设置为OFF:

A1.Slave = OFF 'Disable camming

当凸轮系统禁用时,从轴的速度以 <''axis''>.DECELERATIONMAX (<''axis''>.DMAX)设定的减速度减速到零。发出JOGSTOP停止轴禁用凸轮。发出STOP立即关闭凸轮。轴的速度以<''axis''>.DECELERATIONMAX设定的速度减速到零。

如果发出JOG 命令,该轴上的凸轮将立即禁用,凸轮曲线以速率<''axis''>.DEC坡度变为零。JOG曲线以<''axis''>.ACC指定的速度上升。在短时间内,轴的曲线是这两个曲线的总和,如下所示。

caption

在凸轮系统曲线变为零之后,运动曲线完全由JOG曲线控制。禁用主轴或从轴不会禁用凸轮。当重新启用时,凸轮保持活动状态,并且相应地指示从轴位置。在重新使能驱动器时,如果从轴的位置和凸轮表的命令之间的距离大于POSITIONERRORMAX,会发生故障。如果从轴存在大的位置错误,重新启用凸轮时要小心。 电机快速启用后立即更正此错误。

第6步:读取动态信息关于凸轮的操作有很多只读属性。

轴属性

<''axis''>.ACTIVECAM 提供由该轴执行的凸轮的名称。

凸轮属性

<cam>.CAMCYCLE 提供凸轮执行的循环次数。 如果凸轮主机向前移动,当前凸轮在CAMCYCLE = CYCLE循环完成时结束。

当凸轮主轴向后移动时,在CAMCYCLE = 0时,当前凸轮结束。

<cam>.CAMINDEX提供当前凸轮表内的当前索引。例如,如果表中有100个点,凸轮已经完成一半,则CAMINDEX = 50。

<cam>.MASTERDATACAMINDEX 一起使用,以提供凸轮内当前索引的主轴位置值。 例如,如果当前凸轮表主轴位置范围为-10到10,则位置CAM1.MASTERDATA [CAMINDEX] = 0.00在该范围的中间。

CAM1.MASTERDATA [CAMINDEX]不等于主轴反馈(</nowiki><''axis''>.PFB) 的位置,因为凸轮相对于起始位置是增量的。

<cam>.SLAVEDATACAMINDEX 一起使用,为凸轮的当前索引给出从轴位置的值。 与CAMVALUE一样,CAM1.SLAVEDATA [CAMINDEX]不等于</nowiki><''axis''>.PCMD ,因为两者可能彼此偏移。

模拟主-从轴

模拟轴用于增强机器控制。 他们通常是在齿轮和凸轮。常见的三个用途是:

  1. 作为从轴的固定速度的主轴
  2. 监视物理轴。
  3. 同步从轴

固定速度主轴

模拟轴最常见的用途是作为齿轮或凸轮轴的固定速度主轴。这可以用于测试或作为正常操作的一部分。模拟轴通常使用JOG设置为固定速度。从轴在没有物理电机的情况下被驱动。例如,如果要查看凸轮表,可以使用以固定速度运行的模拟轴。 在某种意义上,模拟轴提供了主轴速度精确固定的理想条件。 这可以让您微调凸轮并仔细检查齿轮轴的同步。

固定速度的模拟轴和凸轮组合在一起,可以生成机器所需的任何曲线。您只需要加载曲线,凸轮表,并用固定速度的模拟轴驱动从轴。

监视物理轴

模拟轴用于通过将仿真轴设为物理轴并监视模拟轴的位置和/或速度来监视机器控制物理轴。例如,如果将非旋转模拟轴是旋转物理轴的从轴,则可以监视物理轴行进的总距离,因为可以使用来自模拟轴的任何变量来触发事件。您可以根据模拟轴生成事件。 模拟轴的位置反馈可以驱动可编程限位开关(PLS),增加更多的监控灵活性。


同步从轴

许多机器具有多个从动轴作为一组控制。通常,当这些轴共享一个物理轴作为主轴时,将保持同步。然而,在某些机器上,存在特殊的操作模式,其中物理轴不能提供所有必要的功能。假设一台机器,即使主轴停止,从轴必须保持最小速度。在这种情况下,您可以在物理主轴和从轴驱动器之间插入模拟轴,因此模拟轴为物理主轴的从轴,其他轴是模拟轴的从轴。使用事件来告知物理轴在何时高于或低于最小值,并使用JOG将模拟轴保持在所需最小值以上,以便即使物理主轴停止,也可以保持从动轴的移动。

例如:

Program

OnEvent Vel_Below_Min PseudoAxis.Vcmd < 100

Jog PseudoAxis 100

‘This indirectly turns gearing off

End OnEvent

OnEvent Vel_Above_Min PseudoAxis.Vcmd >= 100

PseudoAxis.Slave=Gear

End OnEvent

Attach PseudoAxis

EventOn Vel_Below_Min

EventOn Vel_Above_Min

While 1

Sleep 100

End While

End Program

下图显示了此过程。

caption