1. 运动控制指令概要(omron 机器自动化控制器)

机器自动化控制器——第一章 运动控制指令概要

    • 1-1 运动控制指令
      • PLCopen®运动控制用功能块
      • 运动控制指令概要
        • ▶ 运动控制指令的种类
        • ▶ 状态变化
        • ▶ 运动控制指令的启动和状态
        • ▶ 异常处理
        • ▶ 执行运动控制指令时输入变量的变更(指令重启)
        • ▶ 通过选择缓存模式执行指令多重启动
        • ▶ 通过运动控制使用的结构体
        • ▶ 速度急剧变化时
        • ▶ 发生异常的条件
    • 1-2 运动控制指令的基本知识
      • 运动控制指令的名称
        • ▶ 梯形图(LD)
        • ▶ 结构文本(ST)
      • 运动控制指令的配置
        • ▶ 任务种类
        • ▶ 功能块定义内
        • ▶ 主站控制区域
        • ▶ ST语法指令中
        • ▶ 实数(REAL型、LREAL型)的使用
      • 运动控制指令的同时启动
      • 运动控制指令的在线编辑
      • CPU单元的动作模式切换
        • ▶ 从运行模式切换到程序模式
        • ▶ 从程序模式切换到运行模式

1-1 运动控制指令

要从NJ/NX系列的用户程序执行运动控制功能,需要使用作为功能块定义的运动控制指令。

MC功能模块的运动控制指令以PLCopen®的运动控制用功能块的技术规格为基础。

运动控制指令有PLCopen®定义的指令和MC功能模块独有的指令两种。

下面对PLCopen®运动控制用功能块和运动控制指令的概要进行说明。

运动控制指令的详情请参阅 “NJ/NX系列 CPU单元 用户手册 运动控制篇(SBCE-363)”。

Ver.1.05以上的CPU单元和Ver.1.06以上的Sysmac Studio组合时,可使用NX系列位置接口单元。

使用NX系列位置接口单元时,请参阅 “NX系列 位置接口单元 用户手册(SBCE-374)”

PLCopen®运动控制用功能块

  • PLCopen®对运动控制用功能块进行了标准化,制定了IEC 61131-3(JIS B 3503)规格语言程序接口的定义。
  • 除了单轴定位、电子凸轮功能、多轴插补控制等功能,还对启动指令的基本步骤进行了定义。
  • 利用PLCopen®运动控制用功能块,可以减小对硬件的依赖,提高用户程序的再利用率。 还能降低培训、支持等的成本。

参考

何谓PLCopen®

PLCopen®是总部在欧洲的IEC 61131-3推广团体,是一个全球性的会员组织。

IEC 61131-3是PLC编程的国际标准规格。

PLCopen®Japan是日本市场的推广委员会,由关注日本市场的会员构成。

• PLCopen®Japan的网址:http://www.plcopen-japan.jp/

• PLCopen®欧洲总部网址:http://www.plcopen.org/

运动控制指令概要

  • 下面对PLCopen®运动控制用功能块技术规格所定义的项目和MC功能模块中的概要进行说明。
▶ 运动控制指令的种类
    • 下表所示为运动控制指令的种类和概要。
种类种类功能项目概要
通用指令通用的管理类指令凸轮表控制MC功能模块的通用状态、操作或监视各种数
参数
轴指令单轴的动作类指令单轴位置控制使轴执行单轴动作的指令。
单轴速度控制
单轴转矩控制
单轴同步控制
单轴手动操作
单轴的管理类指令单轴控制辅助 控制、监视轴状态的指令。
轴组指令多轴的动作类指令多轴协调控制使轴组执行协调动作的指令。
多轴的管理类指令多轴协调控制辅助控制、监视轴组状态的指令。
▶ 状态变化
    • 对轴的状态、轴组的状态及指令启动引发的状态变化进行定义。
    • 关于MC功能模块的状态和状态变化,请参阅 “NJ/NX系列 CPU单元 用户手册 运动控制篇 (SBCE-363)”。
▶ 运动控制指令的启动和状态
    • 将启动指令的变量及表示指令执行状态的变量作为指令的通用规则进行定义。
    • 启动指令的输入变量有Execute和Enable两类。
    • 表示指令执行状态的输出变量有Busy、Done、CommandAborted、Error等。
    • 关于MC功能模块的详细规格,请参阅 “NJ/NX系列 CPU单元 用户手册 运动控制篇(SBCE-363)”。

使用注意事项

手册中记载的时序图可能与Sysmac Studio的数据跟踪中显示的时序不同。

关于数据跟踪的详情,请参阅 “NJ/NX系列 CPU单元 用户手册 软件篇(SBCA-359)”。

▶ 异常处理
    • MC功能模块的运动控制通过运动控制指令执行。执行运动控制指令时,检查输入参数的错误及指令处理 导致的异常。
    • 指令有异常时,指令的输出变量Error(错误)变为TRUE,并将异常代码输出到ErrorID(错误代码)。
    • 运动控制指令可通过2种方法编写异常处理程序。

​ ► 按指令进行异常处理

可利用指令的输出变量Error(错误)或ErrorID(错误代码),对每个发生异常的指令进行异常处理。

以下是判定实例名称为 “PWR1”的指令发生 “轴指定错误”的例子。程序编制为 “NoAxisErr”变为 TRUE时执行异常处理。
在这里插入图片描述

		**► 按种类进行异常处理**

种类进行异常处理 可利用运动控制系统变量的异常状态,对每一类异常进行异常处理。

以下是判定 “MC_Axis000”的轴发生 “从站通信异常”的例子。程序编制为 “ConnectErr”变为TRUE时 执行异常处理
在这里插入图片描述

▶ 执行运动控制指令时输入变量的变更(指令重启)
    • 在执行运动控制指令时变更相同指令实例的输入变量值,再次将Execute变为TRUE,即以变更后的值进行 动作。
    • 关于MC功能模块的指令重启,请参阅 “NJ/NX系列 CPU单元 用户手册 运动控制篇(SBCE-363)”
▶ 通过选择缓存模式执行指令多重启动
    • 可以在动作中执行其他指令实例。
    • 可通过设定名为缓存模式选择(BufferMode)的输入来指定动作开始的时间。
    • 缓存模式选择(BufferMode)中有以下模式可选。
      • • 中断 :中断(Aborting)
      • • 等待 :等待(Buffered)
      • • 以低速合并 :低速合并(BlendingLow)
      • • 以前一个速度合并 :以前一个速度合并(BlendingPrevious)
      • • 以后一个速度合并 :以后一个速度合并(BlendingNext)
      • • 以高速合并 :以高速合并(BlendingHigh)
    • 若选择中断模式,则中断其他动作立即执行新指令。
    • 选择其他缓存模式时,会一直等待,直到执行中的指令的输出变量Done及InVelocity变为TRUE。
    • 在等待模式下,执行中的指令动作正常结束(Done = TRUE)后再执行下一个指令。
    • 在合并模式下,不停止且连续执行两个指令的动作。连续执行动作的速度可从四种缓存模式中选择。
    • MC功能模块中通过缓存模式选择(BufferMode)执行的指令多重启动只表述为指令多重启动进行说明。
    • 关于MC功能模块的指令多重启动,请参阅 “NJ/NX系列 CPU单元 用户手册 运动控制篇(SBCE-363)”。
    • MC功能模块的指令多重启动是否可以执行,取决于当前的轴状态或当前的轴组状态以及所执行的指令的 种类。相关详情请参阅 “A-3 多重启动可否(P.A-83)”
▶ 通过运动控制使用的结构体
    • PLCopen技术资料对运动控制所需的信息作为结构体进行定义。对数据类型的名称及概要作出了定义, 但没有对结构体的内容作出定义。
    • PLCopen中的主要数据类型和MC功能模块使用的数据类型如下所示。
    数据类型定义
    PLCopen®MC功能模块
    AXIS_REF_sAXIS_REF包含对应轴信息的结构体。
    AXES_GROUP_REF _sGROUP_REF包含对应轴组信息的结构体。
    TRIGGER_REF_sTRIGGER_REF 包含触发输入相关信息的结构体。
    • 触发指定
    • 检测模式信息(正、负、两者、边缘、电平、模式识别等)
    INPUT_REF-包含输入规格相关信息的结构体。有时为虚拟数据。
    MC功能模块中未使用。
    OUTPUT_REF_sOUTPUT_REF与物理性输出相关的结构体。
    MC功能模块中,Ver.1.06以上的CPU单元和Ver.1.07以上的
    Sysmac Studio组合时使用。
    • 如上表所示,MC功能模块使用一部分PLCopen定义的数据类型和MC功能模块独自定义的数据类型。
    • 关于MC功能模块使用的数据类型和结构体的定义,请参阅 “NJ/NX系列 CPU单元 用户手册 运动控制 篇(SBCE-363)”。

同步控制的主轴及辅轴的注意事项

  • 以下是同步控制的主轴及辅轴在速度发生急剧变化时的注意事项和发生异常的条件。
▶ 速度急剧变化时
    • 同步动作开始或动作过程中主轴及辅轴的速度发生急剧变化时,从轴的动作会急剧变化,可能对装置施 加过度的力。
    • 在以下条件下,主轴及辅轴的速度有可能发生急剧变化,请予注意。
    • • 主轴及辅轴执行以下4种指令时
      • MC_ImmediateStop(立即停止)指令
      • MC_SetPosition(变更当前位置)指令
      • MC_ResetFollowingError(偏差计数器复位)指令
      • MC_SyncMoveVelocity(周期同步速度控制)指令
      • 请正确设置上述指令的输入参数及启动时间,或者在解除同步控制后再启动上述指令,以防止从轴急 剧动作。
    • • 主轴及辅轴的立即停止输入信号、极限停止输入信号变为TRUE时
    • • 主轴及辅轴从伺服ON状态变为伺服OFF状态时 主轴及辅轴为垂直轴等时,在变为伺服OFF的状态时速度可能会发生急剧变化。 请采取对主轴或辅轴设置制动器、或者在同步控制结束后再变为伺服OFF状态等对策,防止从轴急剧 动作
    • • 切换伺服驱动器的控制模式时 请注意指令启动时的速度变化。 请恰当设置指令的输入参数

版本相关信息

Ver.1.10以上的CPU单元中,即使使用MC_SetPosition(当前位置变更)指令变更同步控制指令的主 轴或辅轴的指令当前位置,从轴的动作也不会急剧变化。

▶ 发生异常的条件
    • 有NJ/NX系列CPU单元通用的条件和NX701CPU单元独有的条件。

► NJ/NX系列CPU单元通用的条件

开始同步动作时或同步动作过程中,主轴及辅轴发生以下四个条件时,从轴会发生“主轴位置读取异常” 或 “辅轴位置读取异常”。

同时,同步控制指令的输出变量 “CommandAborted(执行中断)”变为TRUE。 • EtherCAT的过程数据通信未建立时 • 在 “EtherCAT的通信未建立”的状态下发生 “从站通信异常”时

​ • 发生 “不能计算绝对值编码器当前位置”的异常时

​ • 从站脱离时 对从轴执行了同步控制指令多重启动时,如下所示。

​ • 多重启动时,即使主轴及辅轴发生上述4个条件中的任意一个,也将正常受理多重启动,进入缓冲 状态。

​ • 执行多重启动、缓冲状态的指令开始动作时,只要不发生上述4个条件中的任意一个,便可开始动作。

参考

对主轴及辅轴启动MC_Home或MC_HomeWithParameter、或者使用绝对值编码器的轴执行 MC_Power时,从轴会忽视主轴及辅轴的位置变化。

因此,由于原点确定时的处理,从轴不会急剧动作。

► NX701CPU单元的条件

将主轴及辅轴的任务和从轴的任务分配至不同任务时,从轴将会发生 “主轴指定错误(错误代码: 5462 Hex)”,同步控制指令的输出变量 “Error(错误)”变为TRUE。

1-2 运动控制指令的基本知识

下面对使用CPU单元内置的MC功能模块的运动控制指令编写程序的基本规格及限制事项进行说明。

关于运动控制指令的详情,请参阅 “第 3 章 轴指令”、 “第 4 章 轴组指令”、 “第 5 章 通用指 令”。

运动控制指令的名称

    • MC功能模块的运动控制指令可以下述编程语言使用。
    • • 梯形图(LD)
    • • 结构文本(ST
▶ 梯形图(LD)
    • 将运动控制指令的指令实例配置在梯形图上。
    • 可以对每个指令实例设置实例名称。
    • 以下是MC_MoveAbsolute(绝对值定位)指令的记述范例。
      在这里插入图片描述
    • • 向输入输出变量Axis指定要控制的伺服驱动器等的轴变量名称。
    • • 向各输入变量指定目标位置及目标速度等的动作条件。
    • • 向各输出变量输出指令的状态及伺服驱动器的状态。
    • • 省略各输入参数时,变为各输入变量的初始值。
▶ 结构文本(ST)
    • 指定指令实例名称。
    • 指令变量按照从左上到左下、从右上到右下的顺序记述。
    • 以下是MC_MoveAbsolute(绝对值定位)指令的记述范例。
    MC_ABS_instance (
    Axis := MC_Axis001 ,
    Execute := PTP_Absolute ,
    Position := PTP_Position ,
    Velocity := PTP_Velocity ,
    Acceleration := PTP_Acc ,
    Deceleration := PTP_Dec ,
    Jerk := PTP_Jerk ,
    Direction := _mcNoDirection ,
    BufferMode := _mcAborting ,
    Axis => MC_Axis001 ,
    Done => PTP_Done
    ) 
    

运动控制指令的配置

  • 以下对运动控制指令可以配置在哪个任务中、以及配置在程序的哪个位置会出现什么样的动作进行 说明。
▶ 任务种类
    • 运动控制指令可以在原始恒定周期任务、固定周期任务(执行优先度5)及固定周期任务(执行优先度16)中使 用。若在上述以外的任务中使用运动控制指令,实施编连时会发生异常。
    任务种类可否使用备注
    原始恒定周期任务可以• 不指定轴/轴组的通用指令
    • 针对分配至原始恒定周期任务的轴/轴组的指令
    固定周期任务(执行优先度5)可以 *1• 不指定轴/轴组的通用指令
    • 针对分配至固定周期任务(执行优先度5)的轴/轴组的指令
    固定周期任务(执行优先度16)可以• 不指定轴/轴组的通用指令
    • 针对分配至原始恒定周期任务的轴/轴组的指令
    固定周期任务(执行优先度17)不可
    固定周期任务(执行优先度18)不可
    事件任务(执行优先度 8)不可
    事件任务(执行优先度 48)不可

    *1 仅NX701 CPU单元可使用。

    *2 无法在NX1P2 CPU单元中使用。

▶ 功能块定义内
    • 运动控制指令还可在用户创建的功能块定义内使用。

    • 参考

      将由多个动作组合而成的工序创建成一个功能块,可以通过程序结构化提高设计效率,改善程 序的识别性。

▶ 主站控制区域
    • 在梯形图程序中,从MC指令(主站控制开始指令)到MCR指令(主站控制结束指令)的区域就是主站控制 区域。
      在这里插入图片描述

​ 运动控制指令配置到主站控制区域时,当MC的输入条件为FALSE时,执行以下动作。

​ • 从左母线直接输入到运动控制指令的输入变量Enable或Execute的指令作为FALSE动作。

​ • 内联ST部分如常动作。

​ • 运动控制指令的输入变量Enable或Execute作为FALSE动作时,输出参数值也如常更新。

► Enable型运动控制指令时

​ • 配置到主站控制区域的指令与下图右侧的回路等价。

​ • G0为TRUE时,如常动作。

​ • G0为FALSE时,Enable输入与FALSE相同。
在这里插入图片描述

在这里插入图片描述

使用注意事项

Execute型的运动控制指令是在上升沿开始动作,因此不推荐在主站控制区域内使用。 使用时请充分注意动作情况。

参考

• ST程序中,MC指令(主站控制开始指令)的功能无效。所有指令如常动作。

有关MC指令/MCR指令的详情,请参阅 “NJ/NX系列 指令基准手册 基本篇(SBCA-360)”

▶ ST语法指令中
    • 下面对运动控制指令配置到IF指令、CASE指令、WHILE指令、REPEAT指令等的ST语法指令中时的情况 进行说明。
    • 若与各 ST 语法指令的条件表达式的评价结果不一致,则不执行运动控制指令。也不更新指令的输出变量 值。
    • 在 Execute 型指令开始执行之后,即使评价结果不一致,也会继续执行指令直到处理完成。这种情况下, 不更新指令的输出变量值。

    使用注意事项

    条件表达式的评价结果不一致时,由于执行中的Execute型指令的执行状态不明确,因此不建议在ST语法指令中使用。

    使用时请充分注意动作情况。

    参考

    • 要根据条件表达式切换执行的Execute型指令,只需将Execute的输入参数配置到ST语法指令 中。Execute型指令自身配置到ST语法指令外。

    关于ST语法指令的详请,请参阅 “NJ/NX系列 指令基准手册 基本篇(SBCA-360)”

▶ 实数(REAL型、LREAL型)的使用
    • 实数(REAL型、LREAL型)是浮点型数据格式的数据类型。
    • 下面对其表现方法和运算处理进行说明。

​ **►REAL型、LREAL型的数据大小 **

​ REAL型和LREAL型的数据大小不一样。

​ REAL型的数据大小为32位,LREAL型为64位。

► 浮点形式的数据格式

浮点形式是指通过符号、指数、尾数表示实数的形式。

某个实数以下式表示时,s的值为符号、e的值为指数、f的值为尾数。

  • REAL型
    在这里插入图片描述

  • LREAL型

在这里插入图片描述

浮点形式的数据格式以IEEE754标准为依据。详见下例。

在这里插入图片描述

  • (例) REAL型实数,表示为 “-86.625”时

1 符号的设定

​ 由于是负数,因此s = 1。

2 2进制表示

​ 将 “86.625”以2进制表示,为 “1010110.101”。

3 2进制数的标准化

​ 上述值的标准化表示为 “1.010110101×26 ”。

4 指数部的表示

​ 根据前式,e-127 = 6,因此e = 133。 “133”的2进制表示为 “10000101”,这就是指数部的表示。

5 尾数部的表示

​ “1.010110101”的小数点以后的数值为 “010110101”。 要将该小数点后的数值表示为23位,位数不足的部分需要附加0。以23位表示的数值为f部分。 因此,f = 01011010100000000000000。

  • 也就是说,“-86.625”可以以下图表示。

在这里插入图片描述

► 有效范围

​ REAL型、LREAL型的有效范围如下表所示。

数据类型-∞负数0正数+∞
REAL-∞-3.402823e+38~-1.175495e-380+1.175495e-38~+3.402823e+38+∞
LREAL-∞-1.79769313486231e+308~ -2.22507385850721e-3080+2.22507385850721e-308~ +1.79769313486231e+308+∞

在这里插入图片描述

► 特殊值

“+∞”、“-∞”、“+0”、“-0”、非数被称为特殊值。

非数是指不视为浮点数的数据,不作为数值处理。

“+0”和 “-0”虽然在数学上的含义都为 “0”,但运算处理的内容却不同。

详情将于下文阐述。

​ 特殊值的符号s、指数e、尾数f的值请见下表。

数据类型特殊值符号s指数e尾数f
REAL+∞02550
-∞12550
+0000
-0100
非数-255 0以外
LREAL+∞020470
-∞120470
+0000
-0100
非数-2047 0以外

► 非标准化数

浮点形式无法表示接近于 “0”的数值(绝对值非常小的值)。

因此,为扩大接近于 “0”的数值的有效范围而设置了非标准化数值。

比起以通常数据格式表示的数值,非标准化数可以表示绝对值很小的值。

参考

以通常数据格式表示的值叫做标准化数。

  • 指数e=0、尾数f≠0的数值被看作非标准化数,其值如下表示。

  • REAL型

在这里插入图片描述

  • LREAL型

(例) REAL型实数,表示为 “0.75×2-127”时

1符号的设定

​ 由于是正数,因此s=0。

2 2进制表示

​ 将 “0.75”以2进制表示,为 “0.11”。

3 尾数部的计算

​ 根据(0.11)2 ×2-127 = 2-126(f×2-23) ,得出f = (0.11)2 ×222。

4 尾数部的表示

​ 由上式可知:f = 01100000000000000000000。

  • 也就是说,“0.75×2-127”可以以下图表示。

在这里插入图片描述

  • 与标准化数相比,非标准化数的有效位数较少。因此,标准化数的运算结果转换为非标准化数、或者运 算途中的结果转换为非标准化数时,运算结果的有效位数可能达不到标准化数的有效位数。

​ **► 运算处理 **

​ 浮点形式表示的是近似值,与实际值之间存在误差。值的有效范围也有限制。因此,在运算时应执行以 下处理。

取整

实际值超过尾数的有效位数时,按照以下规则对值进行取整。

​ • 将浮点形式表现的数值中最接近实际值的值作为运算结果。

​ • 在浮点形式表现的值中有两个最接近实际值的值时,将尾数最低位位值为“0”的值作为运算结果。 有两个最接近实际值的值时,实际值相当于两个近似值的中间值。

溢出、下溢

实际值的绝对值大于以浮点形式表示的值,叫做溢出。相反,若小于以浮点形式表示的值,则叫做下溢。

​ • 溢出时,如果实际值的符号为正,则运算结果为 “+∞”。 如果实际值的符号为负,则运算结果为 “-∞”。

​ • 下溢时,如果实际值的符号为正,则运算结果为 “+0”。 如果实际值的符号为负,则运算结果为 “-0”。

特殊值的运算

特殊值的运算应遵守以下规则。

关于特殊值,请参阅 “特殊值(P.1-15)”。

​ • “+∞”和 “-∞”的相加结果为非数。

​ • 符号相同、无穷大之间的减法运算结果为非数。

​ • “+0”和无穷大、“-0”和无穷大的乘法运算结果为非数。

​ • “+0”之间的除法运算结果、“-0”之间的除法运算结果、无穷大之间的除法运算结果均为非数。

​ • “+0”和 “-0”的相加结果为 “+0”。

​ • “+0”之间的减法运算结果、“-0”之间的减法运算结果为 “+0”。

​ • 含有非数的四则运算结果为非数。

​ • 在CMP指令等比较指令中,将 “+0”和 “-0”判断为相等。

​ • 在比较指令中,如果比较对象包括非数,则始终判断为不相等。

使用注意事项

MC功能模块中,电子齿轮的设定值及运动控制指令的目标位置等使用浮点(LREAL)的变量。因 此,运算结果包含取整误差。

例如,重复执行MC_MoveRelative(相对值定位)指令时,误差会不断累积。

若误差累积造成问题,请将指令单位设置为[pulse],或者指定类似于MC_MoveAbsolute(绝对值 定位)指令的绝对位置。

运动控制指令的同时启动

  • 以下对在同一个任务周期内对同一个轴启动多个运动控制指令时的情况进行说明。

​ • 下图程序中,触点a “ON”时,指令实例[Move1]和[Move2]在同一个任务周期内同时启动。

​ • 程序中记述的指令实际上按从上往下的顺序启动,因此[Move1]先启动,[Move2]在[Move1]动作完成之 前启动。

​ • 这相当于运动控制指令的多重启动。在该程序中,[Move2]相对于[Move1]以Blending进行多重启动。

在这里插入图片描述

  • 关于各运动控制指令的多重启动的详情,请参阅 “NJ/NX系列 CPU单元 用户手册 运动控制篇 (SBCE-363)”。

参考

若如上所示,同时启动MC_SetOverride(超调值设定)指令,则下侧的超调值生效。通过 MC_SetOverride(超调值设定)指令区别使用多个超调值时,建议按以下方式编程。

在这里插入图片描述

运动控制指令的在线编辑

  • Sysmac Studio的在线编辑功能可以对于运动控制指令执行以下操作。
在线编辑操作
删除运动控制指令
添加运动控制指令
添加运动控制指令的输入、输出、输入输出变量
变更运动控制指令的输入、输出、输入输出变量
删除运动控制指令的输入、输出、输入输出变量

使用注意事项

如果在轴动作中删除MC_Stop(强制停止)指令、MC_GroupStop(轴组强制停止)指令等停止轴动作 的指令,在某些用户程序内容下,轴的动作可能无法停止。

对运动控制指令执行在线编辑时,请确认安全后再使用。

CPU单元的动作模式切换

  • NJ/NX系列的CPU单元的动作模式有程序模式和运行模式两种。
  • 下面对切换动作模式时的MC功能模块的动作进行说明。
▶ 从运行模式切换到程序模式
    • • 会中断执行中的运动控制指令。输出变量CommandAborted(执行中断)保持FALSE,但轴的动作与 CommandAborted(执行中断)为TRUE时相同。

    • • 轴在动作中时,以最大减速速度减速并停止。伺服ON/OFF状态保持不变。

    • • 如果正在通过凸轮表保存指令执行凸轮表保存,则继续进行保存处理。

    • • 如果正在通过凸轮表生成指令执行凸轮表生成,则会继续执行生成处理。

    • • 配置到执行优先度为16的固定周期任务中的运动控制指令,在执行此任务的最终指令后再执行上述 处理。

▶ 从程序模式切换到运行模式
    • • 运动控制指令的输出变量会被清除。
    • • 从运行模式变更为程序模式时,轴会减速停止。如果在减速停止过程中返回运行模式,由于运动控 制指令的输出变量会被清除,已执行过的运动控制指令的CommandAborted(执行中断)会保持FALSE 不变。

参考

• 动作模式切换后想要浏览运动控制指令的输出变量时,请分配输出参数属性为保持属性的 变量。 浏览分配的输出参数,便可以查看切换动作模式前的输出变量。

• 即使切换动作模式,伺服ON/OFF的状态仍会保持不变。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/53057.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python画图|中秋到了,尝试画个月亮(球体画法)

学习了一段时间的画图,已经掌握了一些3D图的画法,部分链接如下: python画图|极坐标下的3D surface-CSDN博客 python画图|3D参数化图形输出-CSDN博客 我们今天尝试一下月亮的画法。 【1】官网教程 首先还是到达官网教程学习: …

Mina protocol - 体验教程

Mina protocol - 体验教程 一、零知识证明( Zero Knowledge Proof )1、零知识证明(ZKP)的基本流程工作流程: 2、zkApp 的优势:3、zkApp 每个方法的编译过程: 二、搭建第一个zkapp先决条件1、下载或者更新 zkApp CLI​2…

黑神话悟空+云技术,游戏新体验!

近期,一款名为黑神话悟空的游戏因其独特的艺术风格和创新的技术实现在玩家中产生了不小的影响。 而云桌面技术作为一种新兴的解决方案,正在改变人们的游戏体验方式,使得高性能游戏可以在更多设备上流畅运行。 那么,黑神话悟空如…

Hazel 2024

不喜欢游戏的人也可以做引擎,比如 cherno 引擎的作用主要是有两点: 将数据可视化交互 当然有些引擎的功能也包含有制作数据文件,称之为资产 assets 不做窗口类的应用栈,可能要花一年才能做一个能实际使用的应用,只需…

VSCode扩展连接虚拟机MySQL数据库

在虚拟机安装MySQL vscode通过ssh远程登录Ubuntu 在vscode终端运行以下命令。 sudo apt-get install mysql-server-5.7 用以下命令确认MySQL是否安装完成。 sudo mysql MySQL安装成功。 在VSCode安装SQL扩展 扩展名:MySQL Shell for VS Code。 安装完成后&am…

JavaScript高级——闭包的作用

1、使用函数内部的变量在函数执行完后,仍然存活在内存中(延长了局部变量的生命周期) 2、让函数外部可以操作(读写)到函数内部的数据(变量/函数) 3、函数执行完后,函数内部声明的局…

使用原生HTML的drag实现元素的拖拽

HTML 拖放(Drag and Drop)接口使应用程序能够在浏览器中使用拖放功能。例如,用户可使用鼠标选择可拖拽(draggable)元素,将元素拖拽到可放置(droppable)元素,并释放鼠标按…

java进销存系统源码:管店云进销存解决方案

在当今数字化转型的大背景下,企业对高效、可靠的进销存管理系统的需求日益增长。Java作为一种广泛使用的编程语言,以其成熟的技术栈和强大的生态系统,成为了开发高性能进销存系统的首选语言之一。本文将介绍一款基于Java进销存系统源码的“管…

c++刷题

17.电话号码的组合 来源于题解思路&#xff1a; 继承 CC14 KiKi设计类继承 #include <iostream> #include <memory> using namespace std; class Shape{ private:int x;int y; };class Rectangle:public Shape { public:Rectangle(int length,int width):Shape…

Cartographer源码理解

一、前言 最近一个半月&#xff0c;利用空余时间对Cartographer源码进行了简单的阅读&#xff0c;在这里做了个简单梳理&#xff0c;和大家分享交流。 cartographer源码量其实是有点大的&#xff0c;逐行逐句去解释实在是有心无力了&#xff0c;而且已经有大佬做了类似的事情…

Java笔试面试题AI答之单元测试JUnit(5)

文章目录 25. 简述什么是Junit 忽略测试&#xff08;Ignore Test&#xff09;&#xff1f;一、基本概念二、使用方法三、注意事项四、示例 26. 简述什么是Junit 超时测试&#xff08;Timeout Test&#xff09;&#xff1f;Junit 超时测试的主要特点包括&#xff1a;实现方式&am…

buildroot移植qt报错Info: creating stash file (补充qt添加字库)

移植qt库&#xff0c;编译文件报错Info: creating stash file /home/rbing/QT/uart/.qmake.stash Project ERROR: Unknown module(s) in QT: serialport rbingouc:~/QT/uart$ /home/rbing/linux/tool/buildroot-2022.02.9/output/host/usr/bin/qmake Info: creating stash fil…

一些写leetcode的笔记

标准库中的string类没有实现像C#和Java中string类的split函数&#xff0c;所以想要分割字符串的时候需要我们自己手动实现。但是有了stringstream类就可以很容易的实现&#xff0c;stringstream默认遇到空格、tab、回车换行会停止字节流输出。 #include <sstream> #incl…

部分动态铜皮的孤岛无法删除。报错

(SPMHCI-1): Cannot break shape into fragments. 网上寻找了很多答案&#xff0c;都不太理想&#xff0c;不是我想要的方法。 终于功夫不负有心人&#xff0c;在Cadence官方论坛找到了蛛丝马迹。 Breaking Static shape into fragments - PCB Design - PCB Design & IC …

uniapp 做一个查看图片的组件,图片可缩放移动

因为是手机端&#xff0c;所以需要触摸可移动&#xff0c;双指放大缩小。 首先在components里建个组件 查看图片使用 uni-popup 弹窗 要注意 transform的translate和scale属性在同一标签上不会一起生效 移动就根据触摸效果进行偏移图片 缩放就根据双指距离的变大变小进行缩…

【 html+css 绚丽Loading 】 000052 璇玑转轮

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f…

[网络]http的简单认识

文章目录 一. 什么是http二. http协议工作过程三. http协议格式1. 抓包工具fiddler2. http请求报文3. http响应报文 一. 什么是http HTTP (全称为 “超⽂本传输协议”) 是⼀种应⽤⾮常⼴泛的 应⽤层协议 HTTP 诞⽣与1991年. ⽬前已经发展为最主流使⽤的⼀种应⽤层协议 HTTP 往…

MyBatis中多对一关系的三种处理方法

目录 MyBatis中多对一关系的三种处理方法 1.通过级联属性赋值 1&#xff09;mapper 2&#xff09;mapper.xml 3&#xff09;测试代码 4&#xff09;测试结果 2.通过标签 1&#xff09;mapper 2&#xff09;mapper.xml 3&#xff09;测试代码 4&#xff09;测试结果 3.分步查询 …

【C++二叉树】102.二叉树的层序遍历

107. 二叉树的层序遍历 II - 力扣&#xff08;LeetCode&#xff09; 思路分析&#xff1a; 层序遍历&#xff0c;但是要注意输出的结果是一个二维数组&#xff0c;不是一层一个值一个值的输出&#xff0c;而是要一层一层的输出。可以通过一个循环控制每一层的数据个数&#xff…

PyCharm 安装教程

传送门 PyCharm 是一款由 JetBrains 开发的强大的 Python 集成开发环境&#xff08;IDE&#xff09;。它支持多种功能&#xff0c;包括调试、代码补全、智能代码分析、版本控制集成等&#xff0c;特别适合开发 Python 项目。接下来&#xff0c;我们将详细介绍如何在不同操作系…