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

机器自动化控制器------第三章 轴指令 11

MC_SetPosition

  • 将轴的指令当前位置和反馈当前位置变更为任意值。
指令 名称 FB/ FUN 图形表现 ST表现
MC_SetPosition 当前位置变更 FB MC_SetPosition_instance ( Axis :=《参数》 , Execute :=《参数》 , Position :=《参数》 , ReferenceType :=《参数》 , Relative :=《参数》 , ExcutionMode :=《参数》 , Done =>《参数》 , Busy =>《参数》 , CommandAborted =>《参数》 , Error =>《参数》 , ErrorID =>《参数》 );

变量

▶输入变量
输入变量 名称 数据类型 有效范围 初始值 内容
Execute 启动 BOOL TRUE, FALSE FALSE 在上升沿开始指令。
Position 目标位置 LREAL 负数、正数、"0" 0 指定绝对坐标的目标位置。 单位为[指令单位]。 *1
ReferenceType 位置类型选择 eMC REFERENCE_ TYPE 0: _mcCommand 1: _mcFeedback 0 *2 指定位置类型。 0:指令位置(伺服轴、虚拟伺服轴) 1:反馈位置(编码器轴、虚拟编码器 轴)
Relative (Reserved) 相对位置选择 BOOL TRUE, FALSE FALSE (Reserved)
ExecutionMode (Reserved) 执行模式 选择 eMC EXECUTION_ MODE 0: _mcImmediately 0 *2 (Reserved)
  • 1.关于指令单位,请参阅"NJ/NX系列CPU单元用户手册运动控制篇(SBCE-363)"或"NY系列工业用平板电脑/工业用台式电脑用户手册运动控制篇(SBCE-379)"的"单位转换设定"。
  • 2.有效范围为枚举体的变量,其实际初始值不是数值,而是枚举元素。
▶输出变量
输出变量 名称 数据类型 有效范围 内容
Done 完成 BOOL TRUE, FALSE 指令执行完毕时变为TRUE。
Busy 执行中 BOOL TRUE, FALSE 接收指令后变为TRUE。
CommandAborted 执行中断 BOOL TRUE, FALSE 指令中止时,变为TRUE。
Error 错误 BOOL TRUE, FALSE 发生异常时变为TRUE。
ErrorID 错误代码 WORD *1 发生异常时,输出错误代码。16#0000为正常。
    1. 请参阅 "A-1 错误代码一览(P.A-2)"

► 输出变量的反映时间

变量 变为TRUE的时间 变为FALSE的时间
Done 指令当前位置和反馈当前位置的变更已完成时 • Execute为TRUE时,与Execute的FALSE同时 • Execute为FALSE时,1个周期后
Busy Execute的上升沿 • Done变为TRUE时 • Error变为TRUE时
CommandAborted • 因发生异常,中止本指令时 • 发生异常过程中,启动本指令时 • 执行MC_Stop指令中,启动本指令时 • Execute为TRUE时,与Execute的FALSE同时 • Execute为FALSE时,1个周期后
Error 本指令的启动条件或输入参数中含有异常因素时 异常已解除时
▶输入输出变量
输入输出变量 名称 数据类型 有效范围 内容
Axis _sAXIS_REF 指定轴。 *1
  • 1.请使用在Sysmac Studio的轴基本设定画面中创建的用户定义变量的轴变量名称(默认 "MC_Axis***")或系统定义变量的 轴变量名称(_MC_AX[], _MC1_AX[], _MC2_AX[*])。

功能说明

  • 将伺服轴的指令当前位置变更为指定的目标位置。
  • 此外,对编码器轴执行指令后,将反馈当前位置变更为指定的目标位置。
  • 以绝对坐标的位置指定目标位置。
  • 在指令当前位置变更的同时,反馈当前位置也会变更,保持该时的位置偏差进行变更。
  • 对指令伺服轴执行指令后,保持当前位置和反馈当前位置的差,进行变更。
  • 因此,执行本指令后,轴的反馈当前位置变为下列计算公式所示的值。
  • 变更后的反馈当前位置 = 目标位置 - 变更前的位置偏差 对伺服轴指定反馈位置时,或者对编码器轴指定指令位置时,发生位置类型选择异常。
  • 计数模式为[旋转模式]时,在环计数器下限值以上、低于环计数器上限值的范围内设定目标位置。
  • 如果目标位置超出该范围,则环计数器发生异常。
  • 计数模式为[线性模式]时,即使超出软件限制的范围,也可设定目标位置。
  • 无论轴停止还是动作中,均可使用本指令。
  • 使用注意事项
  • 本指令完成后,指定轴的原点未确定。
  • 因此,本指令完成后,无法使用如下功能和指令,敬请注意。
    • 软件限制功能
    • MC_MoveZeroPosition(高速原点复位)指令
    • 多轴协调动作指令(直线插补和圆弧插补)

► ReferenceType(位置类型选择)

  • 使用伺服轴或虚拟伺服轴时,请选择"0: _mcCommand(指令位置)"。
  • 使用编码器轴或虚拟编码器轴时,请选择"1: _mcFeedback(反馈位置)"。

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

  • 可监控的轴种类和要监控的位置类型的关系如下所示。

| 轴种类 | ReferenceType ||

轴种类 _mcCommand _mcFeedback
伺服轴 ×
编码器轴 × *1
虚拟伺服轴 ×
虚拟编码器轴 × *1
  • 1.启动指令时,发生"超过位置类型选择范围(错误代码:5430Hex)"错误。
▶时序图

► 轴处于停止状态下使用本指令时

  • 在Execute(启动)的上升沿,开始当前位置的变更。
  • 在启动Execute(启动)的同时,Busy(执行中)变为TRUE。
  • 当前位置的变更完成时,Done(完成)变为TRUE。

► 轴动作中使用本指令时

  • 在绝对位置定位中执行本指令后,随着位置的变更,动作的目标值也会变更。
  • 例如,利用MC_MoveAbsolute(绝对值定位)指令,在移动到400(mm)的过程中,将当前位置由200(mm)变更为800(mm)后的轴的动作和时序图如下所示。
  • 此时,由于当前值为800(mm)、目标值为400(mm),因此轴反转。
  • 如下图所示,即使利用MC_MoveAbsolute(绝对值定位)指令变更了当前位置,在从新的当前位置向MC_MoveAbsolute(绝对值定位)指令指定的目标位置定位完成后,Done(完成)也变为TRUE。
  • 参考
  • 在MC_MoveRelative(相对值定位)指令动作中或MC_MoveVelocity(速度控制)指令动作中执行本指令后,当前位置发生变更。
  • 但是,对MC_MoveRelative(相对值定位)指令和MC_MoveVelocity(速度控制)指令的动作没有影响。
  • 存在已缓存指令时,切换缓存时相对变更后的位置进行定位。
▶重启动运动指令
  • 无法重启本指令。
  • 重启后,将发生"无法重启运动指令(错误代码:543B Hex)"错误。
▶多重启运动指令
  • 多重启动运动指令的详情,请参阅"NJ/NX系列 CPU单元 用户手册 运动控制篇(SBCE-363)"或"NY系列 工业用平板电脑/工业用台式电脑 用户手册 运动控制篇(SBCE-379)"。

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

  • 不能对下一个指令执行中的轴使用MC_SetPosition(当前位置变更)指令。
  • 否则,会发生多重启动异常。
MC_MoveJog(微动移动)指令 MC_MoveLink(梯形模式凸轮)指令
MC_Home(原点复位)指令 MC_CombineAxes(加减运算定位)指令
MC_HomeWithParameter(参数指定原点复位)指令 MC_MoveZeroPosition(高速原点复位)指令
MC_CamIn(凸轮动作开始)指令 MC_TorqueControl(转矩控制)指令
MC_GearIn(齿轮动作开始)指令 MC_SyncMoveVelocity(周期同步速度控制)指令
MC_GearInPos(位置指定齿轮动作)指令
  • 使用注意事项
  • Ver.1.09以下版本的CPU单元时
  • 请勿对MC_GearIn(齿轮动作开始)指令等的同步用指令的Master(主轴)使用MC_SetPosition(当前位置变更)指令。
  • 如果对Master(主轴)使用了该指令,Master(主轴)的指令当前位置和反馈当前位置变化时,将判断为Master(主轴)发生了移动。
  • 此时,Slave(从轴)将根据Master(主轴)的移动量进行动作。
  • 因此,可能出现Slave(从轴)的动作急剧变化、或者凸轮结束动作等情况。
  • 要对Master(主轴)使用MC_SetPosition(当前位置变更)指令时,请解除Master(主轴)和Slave(从轴)的关系后执行该指令。
  • 要解除Master(主轴)与Slave(从轴)的关系时,请执行MC_GearOut(齿轮动作解除)指令等。
  • 有关对于主轴的注意事项,请参阅"同步控制的主轴及辅轴的注意事项(P.1-6)"。

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

  • 在MC_SetPosition(当前位置变更)指令执行中,执行其它的MC_SetPosition(当前位置变更)指令时,优先执行后一个MC_SetPosition(当前位置变更)指令。
  • 此时,已处于执行中的前一个MC_SetPosition(当前位置变更)指令的Done(完成)变为TRUE,但是无法变更为先前设定的位置。
  • 敬请注意。
▶异常
  • 在执行本指令中发生异常时,Error(错误)变为TRUE,轴停止动作。
  • 可查看ErrorID(错误代码)的输出值,了解发生异常的原因。
  • 参考
  • 在轴动作中执行本指令时,将会重启当前动作中轴的指令,重新计算定位用数据。
  • 此时,如果发生异常,则当前动作中轴的指令也发生异常,本指令不会异常。

► 发生异常时的时序图

► 错误代码

  • 关于指令发生的异常,请参阅"A-1 错误代码一览(P.A-2)"。
相关推荐
Echo_HR9102 小时前
[WPF] 在RichTextBox中输出Microsoft.Extension.Logging库的日志消息
c#·wpf·#.net core
IT 古月方源3 小时前
Linux 删除 /boot 后 恢复 (多种方法)
linux·运维·服务器
程序漫游人3 小时前
Nginx参数调优脚本
运维·网络·nginx
@jerry_tu4 小时前
DeepSeek Chat 自动化交互技术分析
运维·python·自动化
loong_XL4 小时前
browser_use 自动化浏览器agent使用案例
运维·自动化
Arbori_262154 小时前
linux 命令 mkdir
linux·运维·服务器
秃小弟4 小时前
在windows中编写的脚本,在linux上运行时报错linux $‘\r‘: command not found
linux·运维·服务器
不会写代码的ys4 小时前
ubuntu安装指南
运维·ubuntu
JosieBook5 小时前
【C#语言】C#同步与异步编程深度解析:让程序学会“一心多用“
开发语言·c#·同步异步