3. 轴指令(omron 机器自动化控制器)——>MC_GearIn

发布于:2025-03-26 ⋅ 阅读:(16) ⋅ 点赞:(0)

MC_GearIn

  • 设定主轴和从轴间的齿轮比,进行齿轮动作。
指令 名称 FB/
FUN
图形表现 ST表现
MC_GearIn 齿轮动作开始 FB 描述文本 MC_GearIn_instance (
Master :=《参数》 ,
Slave :=《参数》 ,
Execute :=《参数》 ,
RatioNumerator :=《参数》 ,
RatioDenominator :=《参数》 ,
ReferenceType :=《参数》 ,
Acceleration :=《参数》 ,
Deceleration :=《参数》 ,
Jerk :=《参数》 ,
BufferMode :=《参数》 ,
InGear =>《参数》 ,
Busy =>《参数》 ,
Active =>《参数》 ,
CommandAborted =>《参数》 ,
Error =>《参数》 ,
ErrorID =>《参数》
);

变量

▶输入变量
输入变量 名称 数据类型 有效范围 初始值 内容
Execute 启动 BOOL TRUE, FALSE FALSE 在上升沿开始指令。
Ratio
Numerator
齿轮比分子 DINT*1 正数或负数 *1 10000 指定主轴和从轴间的电子齿轮的分子。
Ratio
Denominator
齿轮比分母 UDINT*2 正数 10000 指定主轴和从轴间的电子齿轮的分母。
Reference
Type*3
位置类型
选择
_eMC_
REFERENCE
_TYPE
0: _mcCommand
1: _mcFeedback
2: _mcLatestCommand
0 *4 指定位置类型。
0:指令位置(最近任务周期*5下的计算值)
1:反馈位置(同一任务周期 *5下的取值)
2:指令位置(同一任务周期*5下的计算值)
Acceleration 加速度 LREAL 正数、或“0” 0 指定加速度。
单位为[指令单位/s2] *6
Deceleration 减速度 LREAL 正数、或“0” 0 指定减速度。
单位为[指令单位/s2] *3
Jerk
(Reserved)
跃度 LREAL 0 0 (Reserved)
BufferMode 缓存
模式选择
_eMC_
BUFFER_
MODE
0: _mcAborting
1: _mcBuffered
0 *2 指定多重启动运动指令时的动作。
0:中断
1:等待
  • 1.Ver.1.02以上的CPU单元和Ver.1.03以上的SysmacStudio组合时可使用。上述以下版本进行组合时,数据类型为“UINT”,有效范围为“正数”。

  • 2.Ver.1.02以上的CPU单元和Ver.1.03以上的SysmacStudio组合时可使用。上述以下版本进行组合时,数据类型为“UINT”。

  • 3.使用_mcLatestCommand时,必须在满足以下关系的条件下使用主轴、从轴。Master(主轴)设定的运动控制系统变量的轴号<Slave(从轴)设定的运动控制系统变量的轴号

  • 4.有效范围为枚举体的变量,其实际初始值不是数值,而是枚举元素。

  • 5.任务周期分为原始恒定周期任务的周期和固定周期任务(执行优先度5)的周期。

  • 6.关于指令单位,请参阅“NJ/NX系列CPU单元用户手册运动控制篇(SBCE-363)”或“NY系列工业用平板电脑/工业用台式电脑用户手册运动控制篇(SBCE-379)”的“单位转换设定”。

▶输出变量
输出变量 名称 数据类型 有效范围 内容
InGear 齿轮比到达 BOOL TRUE,
FALSE
从轴达到目标速度时变为TRUE。
Busy 执行中 BOOL TRUE,
FALSE
接收指令后变为TRUE。
Active 控制中 BOOL TRUE,
FALSE
控制中变为TRUE。
CommandAborted 执行中断 BOOL TRUE,
FALSE
指令中止时,变为TRUE。
Error 错误 BOOL TRUE,
FALSE
发生异常时变为TRUE。
ErrorID 错误代码 WORD * 发生异常时,输出错误代码。16#0000为正常。
  • 请参阅“A-1错误代码一览(P.A-2)”。

    ► 输出变量的反映时间

变量 变为TRUE的时间 变为FALSE的时间
InGear 以下关系成立时
• 加速中:从轴速度≥主轴速度×齿轮比
• 减速中:从轴速度≤主轴速度×齿轮比
• Error变为TRUE时
• CommandAborted变为TRUE时
Busy Execute的上升沿 • Error变为TRUE时
• CommandAborted变为TRUE时
Active 开始指令后 • Error变为TRUE时
• CommandAborted变为TRUE时
CommandAborted • 利用其它指令多重启动运动指令(中断),中止本
指令时
• 因发生异常,中止本指令时
• 发生异常过程中,启动本指令时
• 执行MC_Stop指令中,启动本指令时
• 启动了MC_GearOut指令时
• Execute为TRUE时,与Execute的FALSE同时
• Execute为FALSE时,1个周期后
Error 本指令的启动条件或输入参数中含有异常因素时 异常已解除时
▶输入输出变量
输入输出变量 名称 数据类型 有效范围 内容
Master 主轴 _sAXIS_REF 指定主轴。 *1
Slave 从轴 _sAXIS_REF 指定从轴。*1
  • 1.请使用在Sysmac Studio的轴基本设定画面中创建的用户定义变量的轴变量名称(默认 “MC_Axis***”)或系统定义变量的 轴变量名称(_MC_AX[], _MC1_AX[], _MC2_AX[*])。
  • 使用注意事项
  • 主轴和从轴指定同一轴时,会发生轻度故障等级的“主轴从轴相同(错误代码:5436 Hex)”的异常。

功能说明

  • 通过Slave(从轴) 指定动作对象轴,指定RatioNumerator(齿轮比分子)、RatioDenominator( 齿轮比分母) 、ReferenceType(位置类型选择) 、Acceleration(加速度) 、Deceleration(减速度),进行齿轮动作。
  • 可对Master(主轴)指定指令位置和反馈位置、最新的指令位置。
    在这里插入图片描述
  • 开始动作后,Slave(从轴)以Master(主轴)速度乘以齿轮比得到的速度为目标速度,进行加减速动作。
  • 达到目标速度之前称为Catching phase(追赶中)、达到后称为InGear phase(齿轮同步中)。
  • 齿轮比为正数时,Slave(从轴)沿Master(主轴)的同方向移动。
    在这里插入图片描述
  • 齿轮比为负数时,Slave(从轴)沿Master(主轴)的反方向移动。
    在这里插入图片描述
  • 在Execute(启动)的上升沿,开始电子齿轮动作。
  • 使用注意事项
  • Ver.1.09以下的CPU单元使用本指令时,请勿对Master(主轴)执行MC_SetPosition(当前位置变更)指令。
  • 对Master(主轴)执行MC_SetPosition(当前位置变更)指令时,可能出现Slave(从轴)急速跟踪的情况,非常危险。
  • 要对Master(主轴)使用MC_SetPosition(当前位置变更)指令时,请解除Master(主轴)和Slave(从轴)的关系后执行该指令。
  • 有关对于主轴的注意事项,请参阅“同步控制的主轴及辅轴的注意事项(P.1-6)”。

    ► ReferenceType(位置类型选择)

  • 可从下列选项中选择位置的类型。
    • _mcCommand:指令位置(最近任务周期下的计算值)对当前周期,使用之前任务周期时计算的主轴指令位置。
    • 在计算从轴指令位置之前的固定周期任务中,使用计算的主轴指令位置。
    • _mcFeedback:同一任务周期下的取值使用同一任务周期时获取的主轴反馈位置。
    • _mcLatestCommand:指令位置(同一任务周期下的计算值)使用同一任务周期时计算的主轴指令位置。
    • 也可通过_mcCommand使用最新信息。
    • 但是,设定时必须保证主轴编号比从轴编号小。
    • 否则,本指令的Error(错误)将变为TRUE。
    • ErrorID(错误代码)输出“主轴/从轴 轴号非升序(错误代码:5438 Hex)”。
  • 使用注意事项
  • 这里的任务周期分为原始恒定周期任务的周期和固定周期任务(执行优先度5)的周期。
  • 同样,固定周期任务表示原始恒定周期任务或固定周期任务(执行优先度5)。
  • 参考
  • 相比选择之前任务周期时的计算值,选择同一任务周期时计算的指令位置时,同步精度更高。
  • 但是必须使用主轴、从轴,确保“Master(主轴)设定的运动控制系统变量的轴号 < Slave(从轴)设定的运动控制系统变量的轴号”。

    ► 轴种类与位置类型的关系

  • 可监控的轴种类和要监控的位置类型的关系如下所示。
轴种类 ReferenceType
_mcCommand、或
_mcLatestCommand
_mcFeedback
伺服轴
编码器轴 × *1
虚拟伺服轴
虚拟编码器轴 × *1
  • 1.启动指令时,发生“超过位置类型选择范围(错误代码:5430Hex)”错误。
  • ○虚拟伺服轴○○虚拟编码器轴×○
▶时序图
  • 在启动Execute(启动)的同时,Busy(执行中)变为TRUE。
  • 在下一个周期Active(控制中)变为TRUE。
  • 达到目标速度时,InGear(达到齿轮比)变为TRUE。
  • 利用其它指令中断本指令时,CommandAborted(执行中断)变为TRUE,Busy(执行中)、Active(控制中)、InGear(达到齿轮比)变为FALSE。
  • 要中途结束电子齿轮动作,可使用MC_GearOut(齿轮动作解除)指令、或MC_Stop(强制停止)指令。
    在这里插入图片描述
  • 可在输入变量中指定Acceleration(加速度)、Deceleration(减速度)。
    在这里插入图片描述
  • 将Acceleration(加速度)或Deceleration(减速度)指定为“0”并启动时,不作加减速而达到目标速度。
    在这里插入图片描述
▶重启运动指令
  • 在定位动作中变更输入变量,再次将Execute(启动)设为TRUE,可变更本指令的动作。
  • 重启运动指令可变更的输入变量为,RatioNumerator(齿轮比分子)、RatioDenominator(齿轮比分母)、Acceleration(加速度)、Deceleration(减速度)。
  • 重启运动指令的详情,请参阅“NJ/NX系列 CPU单元 用户手册 运动控制篇(SBCE-363)”或“NY系列 工业用平板电脑/工业用台式电脑 用户手册 运动控制篇(SBCE-379)”。
  • 作为参考,通过Catching phase(追赶中)重启,变更Acceleration(加速度)时的时序图如下所示。
    在这里插入图片描述
  • 通过InGear phase(齿轮同步中)重启,变更RatioNumerator(齿轮比分子)、RatioDenominator(齿轮比分母)时的时序图如下所示。
  • 动作与Acceleration(加速度)和Deceleration(减速度)均设为“0”时相同。
    在这里插入图片描述
▶多重启动运动指令
  • 多重启动运动指令的详情,请参阅“NJ/NX系列 CPU单元 用户手册 运动控制篇(SBCE-363)”或“NY系列 工业用平板电脑/工业用台式电脑 用户手册 运动控制篇(SBCE-379)”。

    ► 其它指令执行中的本指令启动

  • 对当前正在执行的指令启动本指令,可切换或缓存到本指令。
  • 各轴可缓存到1个。
  • 多重启动指令时的本指令的动作由BufferMode(缓存模式选择)指定。
缓存模式选择 说明
中断 立即中止当前正在执行的指令,切换为本指令。
轴的动作方向因指令切换而反转时,根据轴参数中的“反转时动作”进行反转。
等待 当前正在执行的指令正常完成后,已缓存的本指令自动启动。
  • 关于BufferMode(缓存模式选择),请参阅“NJ/NX系列 CPU单元 用户手册 运动控制篇(SBCE-363)”或“NY系列 工业用平板电脑/工业用台式电脑 用户手册 运动控制篇(SBCE-379)”。

    ► 本指令执行中的其它指令启动

  • 可对从轴以中断方式执行指令的多重启动。
  • 此时,中止齿轮动作,开始多重启动的动作。
  • 无法以非中断方式多重启动指令。
▶异常
  • 在执行本指令中发生异常时,Error(错误)变为TRUE,轴停止动作。
  • 可查看ErrorID(错误代码)的输出值,了解发生异常的原因。
    在这里插入图片描述
  • 参考
  • 同步控制中,不受主轴的异常状态的影响。
  • 主轴的异常状态解除,正常动作时,从轴继续进行电子齿轮动作。
  • 启动本指令时以及执行本指令中,从轴发生异常时,不会对主轴产生影响。

    ► 错误代码

  • 关于指令发生的异常,请参阅“A-1 错误代码一览(P.A-2)”。

示例程序

  • 下面,对与齿轮比成正比动作的示例程序进行说明。
  • 参考
  • 作为保留(Reserved)处理的输入变量只能指定为初始值。
  • 本例中,不指定参数。
▶参数设定
  • 该示例程序中使用的最少的必要设定如下所示。

    ► 轴参数的设定

      轴种类

轴种类
轴1 伺服轴(主轴)
轴2 伺服轴(从轴)
轴3 伺服轴(从轴)

      计数器模式

计数器模式
轴1 旋转模式
轴2 旋转模式
轴3 旋转模式

      环计数器

上限值 下限值
轴1 360 0
轴2 360 0
轴3 360 0

      坐标单位选择

坐标单位
轴1 mm
轴2 mm
轴3 mm
▶动作示例

在这里插入图片描述

1 主轴的开始

  • 主轴(轴1)是实际上的伺服轴,控制速度进行动作。

2 从轴的启动

  • 主轴的反馈速度达到目标速度后,相对主轴的反馈位置,从轴(轴2)以齿轮比1:2进行齿轮动作,从轴(轴3)以齿轮比2:3进行齿轮动作。

3 从轴的停止

  • 主轴的反馈位置(MC_Axis000.Act.Pos)达到1000.0以上时,解除轴2的齿轮动作,以减速度DecRate使轴2减速停止。
  • 此时,轴3继续进行齿轮动作。
▶梯形图

    ► 主要变量

名称 数据类型 初始值 注释
MC_Axis000 _sAXIS_REF 是主轴轴1的轴变量。
MC_Axis000.Act.Pos LREAL 表示轴1的反馈当前位置。
MC_Axis001 _sAXIS_REF 是从轴轴2的轴变量。
MC_Axis002 _sAXIS_REF 是从轴轴3的轴变量。
Pwr1_Status BOOL FALSE 分配给MC_Power的实例PWR1的输出变量Status的
变量。进入伺服ON状态时,该变量变为TRUE。
Pwr2_Status BOOL FALSE 分配给MC_Power的实例PWR2的输出变量Status的
变量。进入伺服ON状态时,该变量变为TRUE。
Pwr3_Status BOOL FALSE 分配给MC_Power的实例PWR3的输出变量Status的
变量。进入伺服ON状态时,该变量变为TRUE。
StartPg BOOL FALSE 如果该变量为TRUE,EtherCAT的过程数据通信已
建立,则进入伺服ON状态。
Vel_InVel BOOL FALSE 分配给MC_MoveVelocity的实例VEL的输出
InVelocity的变量。达到目标速度时,该变量变为
TRUE。
Gearin1_Act BOOL FALSE 分配给MC_GearIn的实例GEARIN1的输出Active的
变量。GEARIN1变为控制中时,该变量变为
TRUE。
Gearout_Ex BOOL FALSE 该变量由FALSE→TRUE时,启动MC_GearOut的实
例GEAROUT。

    ► 时序图
在这里插入图片描述

    ► 示例程序
在这里插入图片描述在这里插入图片描述

    ► 内联ST的内容

IF (Gearin1_Act=TRUE) AND (MC_Axis000.Act.Pos>=LREAL#1000.0) THEN
	Gearout_Ex := TRUE;
END_IF
▶结构文本(ST)

    ► 主要变量

名称 数据类型 初始值 注释
MC_Axis000 _sAXIS_REF 是主轴轴1的轴变量。
MC_Axis000.Act.Pos LREAL 表示轴1的反馈当前位置。
MC_Axis001 _sAXIS_REF 是从轴轴2的轴变量。
MC_Axis002 _sAXIS_REF 是从轴轴3的轴变量。
Pwr1_Status BOOL FALSE 分配给MC_Power的实例PWR1的输出变量Status的
变量。进入伺服ON状态时,该变量变为TRUE。
Pwr2_Status BOOL FALSE 分配给MC_Power的实例PWR2的输出变量Status的
变量。进入伺服ON状态时,该变量变为TRUE。
Pwr3_Status BOOL FALSE 分配给MC_Power的实例PWR3的输出变量Status的
变量。进入伺服ON状态时,该变量变为TRUE。
StartPg BOOL FALSE 如果该变量为TRUE,EtherCAT的过程数据通信已
建立,则进入伺服ON状态。
Vel_InVel BOOL FALSE 分配给MC_MoveVelocity的实例VEL的输出
InVelocity的变量。达到目标速度时,该变量变为
TRUE。
Gearin1_Act BOOL FALSE 分配给MC_GearIn的实例GEARIN1的输出Active的
变量。GEARIN1变为控制中时,该变量变为
TRUE。
Gearout_Ex BOOL FALSE 该变量由FALSE→TRUE时,启动MC_GearOut的实
例GEAROUT。
Vel_Ex BOOL FALSE 该变量由FALSE→TRUE时,启动MC_MoveVelocity
的实例VEL。
Gearin1_Ex BOOL FALSE 该变量由FALSE→TRUE时,启动MC_GearIn的实
例GEARIN1。
Gearin2_Ex BOOL FALSE 该变量由FALSE→TRUE时,启动MC_GearIn的实
例GEARIN2。
InitFlag BOOL FALSE 表示输入参数设定完成。
FALSE时,设定输入参数。输入参数设定完成后,
变为TRUE。

    ► 时序图

在这里插入图片描述