3. 轴指令(omron 机器自动化控制器)——>MC_GearInPos
机器自动化控制器——第三章 轴指令 17
- MC_GearInPos
- 变量
- ▶输入变量
- ▶输出变量
- ▶输入输出变量
- 功能说明
- ▶时序图
- ▶重启运动指令
- ▶多重启动运动指令
- ▶异常
- 示例程序
- ▶动作示例
- ▶梯形图
- ▶结构文本(ST)
MC_GearInPos
-
设定主轴和从轴间的齿轮比,进行电子齿轮动作。
-
指定开始同步的主轴及从轴的位置。
指令 | 名称 | FB/ FUN | 图形表现 | ST表现 |
---|---|---|---|---|
MC_GearInPOS | 位置指定 齿轮动作 | FB | ![]() | MC_GearInPos_instance ( Master :=《参数》 , Slave :=《参数》 , Execute :=《参数》 , RatioNumerator :=《参数》 , RatioDenominator :=《参数》 , ReferenceType :=《参数》 , MasterSyncPosition :=《参数》 , SlaveSyncPosition :=《参数》 , Velocity :=《参数》 , Acceleration :=《参数》 , Deceleration :=《参数》 , Jerk :=《参数》 , BufferMode :=《参数》 , StartSync =>《参数》 , InSync =>《参数》 , 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下的计 算值) |
MasterSync Position | 主轴同步位置 | LREAL | 负数、正数、“0” | 0 | 指定绝对坐标的主轴同步位置。 单位为[指令单位]。 *6 |
SlaveSync Position | 从轴同步位置 | LREAL | 负数、正数、“0” | 0 | 指定绝对坐标的从轴同步位置。 单位为[指令单位]。*3 |
Velocity | 目标速度 | LREAL | 正数 | 0 | 指定目标速度。请务必设定目标速 度。不作设定就执行动作,将发生 异常。 单位为[指令单位/s] 。*3 |
Acceleration | 加速度 | LREAL | 正数或“0” | 0 | 指定加速度。 单位为[指令单位/s2]。*3 |
Deceleration | 减速度 | LREAL | 正数或“0” | 0 | 指定减速度。 单位为[指令单位/s2]。*3 |
Jerk (Reserved) | 跃度 | LREAL | 0 | 0 | (Reserved) |
BufferMode (Reserved) | 缓存 模式选择 | _eMC_ BUFFER_ MODE | 0: _mcAborting | 0 *2 | (Reserved) |
- 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)”的“单位转换设定”。
▶输出变量
输入变量 | 名称 | 数据类型 | 有效范围 | 初始值 | 内容 |
---|---|---|---|---|---|
Velocity | 目标速度 | LREAL | 正数 | 0 | 指定目标速度。请务必设定目标速 度。不作设定就执行动作,将发生 异常。 单位为[指令单位/s] 。*3 |
Acceleration | 加速度 | LREAL | 正数或“0” | 0 | 指定加速度。 单位为[指令单位/s2]。*3 |
Deceleration | 减速度 | LREAL | 正数或“0” | 0 | 指定减速度。 单位为[指令单位/s2]。*3 |
Jerk (Reserved) | 跃度 | LREAL | 0 | 0 | (Reserved) |
BufferMode (Reserved) | 缓存 模式选择 | _eMC_ BUFFER_ MODE | 0: _mcAborting | 0 *2 | (Reserved) |
- 请参阅“A-1错误代码一览(P.A-2)”。
► 输出变量的反映时间
变量 | 变为TRUE的时间 | 变为FALSE的时间 |
---|---|---|
StartSync | 轴开始移动后 | • Error变为TRUE时 • CommandAborted变为TRUE时 |
InSync | 从轴位置达到SlaveSyncPosition时 | • 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 |
- 使用注意事项
- 主轴和从轴指定同一轴时,会发生轻度故障等级的“主轴从轴相同(错误代码:5436 Hex)”的异常。
功能说明
- 通过Slave(从轴)指定动作对象轴,指定RatioNumerator(齿轮比分子)、RatioDenominator(齿轮比分母) 、ReferenceType(位置类型选择) 、Acceleration(加速度) 、Deceleration(减速度),进行齿轮动作。
- 可对Master(主轴)指定指令位置和反馈位置、最新的指令位置。
- 开始动作后,Slave(从轴)通过追赶动作,与Master(主轴)同步进行加减速动作。
- 从轴到达从轴同步位置之前称为Catching phase(追赶中)、到达后称为InGear phase(齿轮同步中)。
- 任何区间均与主轴的位置同步。
- 输入变量的Velocity(目标速度)即为Catching phase(追赶中)时的目标速度。
- 从轴沿开始动作时主轴的相同方向进行动作。
- 开始动作时,如果主轴速度为“0”,会发生异常。
- 此外,主轴正方向动作,且SlaveSyncPosition(从轴同步位置)比启动时的从轴位置小时,从轴进行反转动作。
- 同样,主轴负方向动作,且SlaveSyncPosition(从轴同步位置)比启动时的从轴位置大时,从轴也进行反转动作。
- 主轴速度不同周期变化较大时,从轴的速度也不固定。
- 齿轮比为正数时,Slave(从轴)沿Master(主轴)的同方向移动。
- 使用注意事项
- Ver.1.09以下的CPU单元使用本指令时,请勿对Master(主轴)执行MC_SetPosition(当前位置变更)指令。
- 对Master(主轴)执行MC_SetPosition(当前位置变更)指令时,可能出现Slave(从轴)急速跟踪的情况,非常危险。
- 要对Master(主轴)使用MC_SetPosition(当前位置变更)指令时,请解除Master(主轴)和Slave(从轴)的关系后执行该指令。
- MC功能模块通过以下3种速度,对利用Acceleration(加速度)和Deceleration(减速度)直线加减速的速度曲线进行计算。
- 以启动指令时的Slave(从轴)的速度为初速度 以启动指令时的Master(主轴)的速度乘以齿轮比得到的速度为终速度 以Velocity(目标速度)为目标速度追赶中的移动量较短时,可能达不到目标速度。
- 在MasterSyncPosition(主轴同步位置)、SlaveSyncPosition(从轴同步位置),为使Slave(从轴)追上Master(主轴),Velocity(目标速度)必须满足下列条件。
- 作为主轴速度使用的信息,因位置类型ReferenceType的设定而异。
- 在MasterSyncPosition(主轴同步位置)、SlaveSyncPosition(从轴同步位置),Slave(从轴)追不上Master(主轴)时,会发生“位置指定齿轮动作目标速度不足(错误代码:5447 Hex)”的错误。
- 计数模式为旋转模式时,根据CPU单元的版本,存在如下差异。
- Ver.1.10以上版本的CPU单元时主轴计数模式为旋转模式时,可指定超出环计数器上下限设定值范围的MasterSyncPosition(主轴同步位置)。
- 此时,主轴当前位置和主轴同步位置的关系与通过MC_MoveAbsolute(绝对值定位)指令在Direction(方向选择)中指定“无方向指定”时相同。
- MC_MoveAbsolute(绝对值定位)指令请参阅“MC_MoveAbsolute(P.3-47)”。
- 同样,从轴计数模式为旋转模式时,可指定超出环计数器上下限设定值范围的SlaveSyncPosition(从轴同步位置)。
- Ver.1.09以下版本的CPU单元时计数模式为旋转模式时,请确保在环计数器1周以内开始同步动作。
- 使用注意事项
- 有关对于主轴的注意事项,请参阅“同步控制的主轴及辅轴的注意事项(P.1-6)”。
► ReferenceType(位置类型选择)
- 可从下列选项中选择位置的类型。
- _mcCommand:指令位置(最近任务周期下的计算值)对当前周期,使用之前任务周期时计算的主轴指令位置。
- 在计算从轴指令位置之前的固定周期任务中,使用计算的主轴指令位置。
- _mcFeedback:同一任务周期下的取值使用同一任务周期时获取的主轴反馈位置。
- _mcLatestCommand:指令位置(同一任务周期下的计算值)使用同一任务周期时计算的主轴指令位置。
- 也可通过_mcCommand使用最新信息。
- 但是,设定时必须保证主轴编号比从轴编号小。
- 否则,本指令的Error(错误)将变为TRUE。
- ErrorID(错误代码)输出“主轴/从轴 轴号非升序(错误代码:5438 Hex)”。
- 使用注意事项
- 这里的任务周期分为原始恒定周期任务的周期和固定周期任务(执行优先度5)的周期。
- 同样,固定周期任务表示原始恒定周期任务或固定周期任务(执行优先度5)。
- 参考
- 相比选择之前任务周期时的计算值,选择同一任务周期时计算的指令位置时,同步精度更高。
- 但是必须使用主轴、从轴,确保“Master(主轴)设定的运动控制系统变量的轴号 < Slave(从轴)设定的运动控制系统变量的轴号”。
► 轴种类与位置类型的关系
- 可监控的轴种类和要监控的位置类型的关系如下所示。
轴种类 | ReferenceType | |
---|---|---|
_mcCommand、或 _mcLatestCommand | _mcFeedback | |
伺服轴 | ○ | ○ |
编码器轴 | × *1 | ○ |
虚拟伺服轴 | ○ | ○ |
虚拟编码器轴 | × *1 | ○ |
- 1.启动指令时,发生 “超过位置类型选择范围(错误代码:5430 Hex)”错误。
▶时序图
- 在Execute(启动)的上升沿,开始电子齿轮动作。
- 在启动Execute(启动)的同时,Busy(执行中)变为TRUE。
- 开始动作后,Active(控制中)和StartSync(跟踪中)变为TRUE,Slave(从轴)开始齿轮动作。
- 到达MasterSyncPosition(主轴同步位置)、SlaveSyncPosition(从轴同步位置)时,InSync(同步中)变为TRUE。
- 利用其它指令中断本指令时,CommandAborted(执行中断)变为TRUE,Busy(执行中)、Active(控制中)、StartSync(跟踪中)、InSync(同步中)变为FALSE。
- 利用其它指令中断本指令的情形如下所示。
- 根据SlaveSyncPosition的设定不同,可能达不到目标速度。
- 该时的示例如下所示。
- 此外,在达到InSync phase之前,也跟踪主轴位置。
- 该时的示例如下所示。
- 可在输入变量中指定Acceleration(加速度)、Deceleration(减速度)。
- 电子齿轮的动作示例如下所示。
▶重启运动指令
- 无法重启本指令。
- 重启后,将发生“无法重启运动指令(错误代码:543B Hex)”错误。
▶多重启动运动指令
- 包含异常停止中、减速停止中的主轴轴指令状态下,不影响本指令的执行。
- 多重启动运动指令的详情,请参阅“NJ/NX系列 CPU单元 用户手册 运动控制篇(SBCE-363)”或“NY系列 工业用平板电脑/工业用台式电脑 用户手册 运动控制篇(SBCE-379)”。
► 本指令执行中的其它指令启动
- 多重启动时的本指令的动作由BufferMode(缓存模式选择)指定。
缓存模式选择 | 说明 |
---|---|
中断 | 立即中止当前正在执行的指令,切换为本指令。 轴的动作方向因指令切换而反转时,根据轴参数中的 “反转时动作”进行反转。 |
- 关于BufferMode(缓存模式选择),请参阅“NJ/NX系列 CPU单元 用户手册 运动控制篇(SBCE-363)”或“NY系列 工业用平板电脑/工业用台式电脑 用户手册 运动控制篇(SBCE-379)”。
- 使用注意事项
- 以BufferMode(缓存模式选择)的“0:中断”以外的方式启动其它指令时,其它指令会发生异常。
▶异常
- 启动本指令发生异常时,Error(错误)变为TRUE。
- 可查看ErrorID(错误代码)的输出值,了解发生异常的原因。
► 发生异常时的时序图
- 同步控制中,不受主轴的异常状态的影响。
- 主轴的异常状态解除,正常动作时,从轴继续进行电子齿轮动作。
- 启动本指令时以及执行本指令中,从轴发生异常时,不会对主轴产生影响。
► 错误代码
- 关于指令发生的异常,请参阅“A-1 错误代码一览(P.A-2)”。
示例程序
- 下面,对以主轴同步位置为Pos1、从轴同步位置为Pos2进行动作的示例程序进行说明。
► 轴参数的设定
轴种类
轴 | 轴种类 |
---|---|
轴1 | 伺服轴(主轴) |
轴2 | 伺服轴(从轴) |
计数器模式
轴 | 计数器模式 |
---|---|
轴1 | 旋转模式 |
轴2 | 旋转模式 |
环计数器
轴 | 上限值 | 下限值 |
---|---|---|
轴1 | 360 | 0 |
轴2 | 360 | 0 |
坐标单位选择
轴 | 坐标单位 |
---|---|
轴1 | degree |
轴2 | degree |
▶动作示例
► 动作模式
1 主轴的开始
- 主轴(轴1)是实际上的伺服轴,控制速度进行动作。
2 主轴达到目标速度
- 主轴的指令速度达到目标速度时,主轴的InVelocity(达到目标速度)变为TRUE。
3 从轴的启动
- 主轴的InVelocity(达到目标速度)变为TRUE后,相对主轴的反馈位置,从轴(轴2)以齿轮比1:2进行齿轮动作。
- 同步位置主轴为Pos1、从轴为Pos2。
▶梯形图
► 主要变量
名称 | 数据类型 | 初始值 | 注释 |
---|---|---|---|
MC_Axis000 | _sAXIS_REF | - | 是主轴轴1的轴变量。 |
MC_Axis000.Details.Homed | BOOL | FALSE | 轴1为原点确定状态时变为TRUE。 |
MC_Axis000.MFaultLvl.Active | BOOL | FALSE | 轴1发生轻度故障等级的异常时变为TRUE。 |
MC_Axis001 | _sAXIS_REF | - | 是从轴轴2的轴变量。 |
MC_Axis001.Details.Homed | BOOL | FALSE | 轴2为原点确定状态时变为TRUE。 |
MC_Axis001.MFaultLvl.Active | BOOL | FALSE | 轴2发生轻度故障等级的异常时变为TRUE。 |
Pwr1_Status | BOOL | FALSE | 分配给MC_Power的实例PWR1的输出变量Status的 变量。进入伺服ON状态时,该变量变为TRUE。 |
Pwr2_Status | BOOL | FALSE | 分配给MC_Power的实例PWR2的输出变量Status的 变量。进入伺服ON状态时,该变量变为TRUE。 |
Hm1_D | BOOL | FALSE | 分配给MC_Home的实例HM1的输出Done的变量。 |
Hm2_D | BOOL | FALSE | 分配给MC_Home的实例HM2的输出Done的变量。 |
Vel_InVel | BOOL | FALSE | 分配给MC_MoveVelocity的实例VEL的输出 InVelocity的变量。达到目标速度时,该变量变为 TRUE。 |
Pos1 | LREAL | - | 是表示主轴同步位置的变量。 |
Pos2 | LREAL | - | 是表示从轴同步位置的变量。 |
StartPg | BOOL | FALSE | 如果该变量为TRUE,EtherCAT的过程数据通信已 建立,则进入伺服ON状态。 |
► 时序图
► 示例程序
▶结构文本(ST)
► 主要变量
名称 | 数据类型 | 初始值 | 注释 |
---|---|---|---|
MC_Axis000 | _sAXIS_REF | - | 是主轴轴1的轴变量。 |
MC_Axis000.Details.Homed | BOOL | FALSE | 轴1为原点确定状态时变为TRUE。 |
MC_Axis000.MFaultLvl.Active | BOOL | FALSE | 轴1发生轻度故障等级的异常时变为TRUE。 |
MC_Axis001 | _sAXIS_REF | - | 是从轴轴2的轴变量。 |
MC_Axis001.Details.Homed | BOOL | FALSE | 轴2为原点确定状态时变为TRUE。 |
MC_Axis001.MFaultLvl.Active | BOOL | FALSE | 轴2发生轻度故障等级的异常时变为TRUE。 |
Pwr1_Status | BOOL | FALSE | 分配给MC_Power的实例PWR1的输出变量Status的 变量。进入伺服ON状态时,该变量变为TRUE。 |
Pwr2_Status | BOOL | FALSE | 分配给MC_Power的实例PWR2的输出变量Status的 变量。进入伺服ON状态时,该变量变为TRUE。 |
Hm1_D | BOOL | FALSE | 分配给MC_Home的实例HM1的输出Done的变量。 |
Hm2_D | BOOL | FALSE | 分配给MC_Home的实例HM2的输出Done的变量。 |
Vel_InVel | BOOL | FALSE | 分配给MC_MoveVelocity的实例VEL的输出 InVelocity的变量。达到目标速度时,该变量变为 TRUE。 |
Pos1 | LREAL | - | 是表示主轴同步位置的变量。 |
Pos2 | LREAL | - | 是表示从轴同步位置的变量。 |
StartPg | BOOL | FALSE | 如果该变量为TRUE,EtherCAT的过程数据通信已 建立,则进入伺服ON状态。 |
Gearinpos_Ex | BOOL | FALSE | 该变量由FALSE→TRUE时,启动MC_GearInPos的 实例GEARIN1。 |
Vel_Ex | BOOL | FALSE | 该变量由FALSE→TRUE时,启动MC_MoveVelocity 的实例VEL。 |
InitFlag | BOOL | FALSE | 表示输入参数设定完成。 FALSE时,设定输入参数。输入参数设定完成后, 变为TRUE。 |
► 时序图