漂亮的网站建设中静态页,wordpress existing_mimes,wordpress搭建视频站,深圳东门网红打卡地机器自动化控制器——第一章 运动控制指令概要 1-1 运动控制指令PLCopen运动控制用功能块运动控制指令概要▶ 运动控制指令的种类▶ 状态变化▶ 运动控制指令的启动和状态▶ 异常处理▶ 执行运动控制指令时输入变量的变更(指令重启)▶ 通过选择缓存模式执行指令多重启动▶ 通过… 机器自动化控制器——第一章 运动控制指令概要 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.402823e38-1.175495e-3801.175495e-383.402823e38∞LREAL-∞-1.79769313486231e308 -2.22507385850721e-30802.22507385850721e-308 1.79769313486231e308∞ ► 特殊值
“∞”、“-∞”、“0”、“-0”、非数被称为特殊值。
非数是指不视为浮点数的数据不作为数值处理。
“0”和 “-0”虽然在数学上的含义都为 “0”但运算处理的内容却不同。
详情将于下文阐述。
特殊值的符号s、指数e、尾数f的值请见下表。
数据类型特殊值符号s指数e尾数fREAL∞02550-∞125500000-0100非数-255 0以外LREAL∞020470-∞1204700000-0100非数-2047 0以外
► 非标准化数
浮点形式无法表示接近于 “0”的数值(绝对值非常小的值)。
因此为扩大接近于 “0”的数值的有效范围而设置了非标准化数值。
比起以通常数据格式表示的数值非标准化数可以表示绝对值很小的值。 参考 以通常数据格式表示的值叫做标准化数。 指数e0、尾数f≠0的数值被看作非标准化数其值如下表示。 REAL型 LREAL型
(例) REAL型实数表示为 “0.75×2-127”时
1符号的设定
由于是正数因此s0。
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的状态仍会保持不变。