机器自动化控制器——第二章 变量和指令 1
- 2-1 变量一览表
- MC通用变量
- 轴变量
- ▶ 轴组变量
- 运动控制指令的输入变量
- 输入变量的有效范围
- ▶ 枚举体一览表
- 运动控制指令的输出变量
- 运动控制指令的输入输出变量
2-1 变量一览表
MC功能模块使用的变量分为两类。
一类是监视轴等的状态及部分参数设定内容的系统定义变量。MC功能模块使用的系统定义变量被称作运 动控制系统变量。
还有一类是运动控制指令将指令的自变量作为输入接收、将指令的执行状态作为输出的变量。运动控制 指令的输入变量中,有几个是从选项中选择的枚举体变量。
本章节将刊登各种变量的一览表、运动控制指令的输入变量的有效范围、以及枚举体变量的一览表。
► 运动控制系统变量
第1层 | 第2层 | 第3层 | 内容 |
---|---|---|---|
系统定义变量 | 运动控制系统变量 | MC通用变量 | 可监控MC功能模块的通用状态。 |
轴变量 | 可监控各轴的状态和部分轴参数的设定内容。 | ||
轴组变量 | 可监控各轴组的状态和部分轴组参数的设定内容。 |
- 关于运动控制系统变量的详情,请参阅 “NJ/NX系列 CPU单元 用户手册 运动控制篇(SBCE-363)”。
参考
轴变量和轴组变量均为系统定义变量。
这些变量在用户程序中使用时,使用系统定义变量名称(_MC_AX[], _MC1_AX[], _MC2_AX[], _MC_GRP[], _MC1_GRP[], _MC2_GRP[])
_在用户程序中使用时,除了上述以外,还可使用通过Sysymac Studio创建的变量名称。 _
_通过Sysmac Studio创建的轴及轴组的变量名称可变更为任意名称。 _
_下图是关于系统定义变量的轴变量名称为 “_MC_AX[0]”的轴在通过Sysmac Studio添加时的轴 变量名称变更为 “MyAxis1”时的例子。
► 运动控制指令的变量
种类 | 概要 |
---|---|
输入变量 | 指令的自变量 |
输出变量 | 指令执行状态的监视 |
输入输出变量 | 指令执行对象的指定 |
参考
• 开头为 “_e”的数据类型表示枚举体。 _
_• 开头为 “_s”的数据类型表示结构体。
关于MC功能模块使用的数据类型,请参阅 “NJ/NX系列 CPU单元 用户手册 运动控制篇 (SBCE-363)”。
MC通用变量
- MC通用变量是变量名称为_MC_COM、数据类型为_sCOMMON_REF型的结构体变量。 下面对MC通用变量的构成及其要素进行详细说明。
变量名称 | 数据类型 | 名称 | 功能 | ||
---|---|---|---|---|---|
_MC_COM | _sCOMMON_REF | MC通用变量 | |||
Status | _sCOMMON_REF_STA | MC通用状态 | |||
RunMode | BOOL | MC运行中 | MC功能模块在运行中变为TRUE | ||
TestMode | BOOL | MC试运行中 | 通过Sysmac Studio试运行时变为TRUE | ||
CamTableBusy | BOOL | 凸轮表文件保存执行中/待机中 | 在执行或等待执行凸轮表文件保存时变为TRUE | ||
GenerateCam Busy *1 | BOOL | 凸轮表生成执行中 | 执行凸轮表生成时变为TRUE | ||
PFaultLvl | _sMC_REF_EVENT | MC通用 部分停止故障 | |||
Active | BOOL | MC通用 部分停止故障发生中 | MC通用 发生停止故障时变为TRUE | ||
Code | WORD | MC通用 部分停止故障代码 | MC通用 输出停止故障的代码。 与事件代码的前四位相同的值 | ||
MFaultLvl | _sMC_REF_EVENT | MC通用 轻度故障 | |||
Active | BOOL | MC通用 轻度故障发生中 | MC通用 发生轻度故障时变为TRUE | ||
Code | WORD | MC通用 轻度故障代码 | MC通用 输出轻度故障的代码。 与事件代码的前四位相同的值 | ||
Obsr | _sMC_REF_EVENT | MC通用 监视信息 | |||
Active | BOOL | MC通用 监视信息发生中 | MC通用 发生监视信息时变为TRUE | ||
Code | WORD | MC通用 监视信息代码 | MC通用 输出监视信息的代码。 与事件代码的前四位相同的值 |
轴变量
- 轴变量是系统定义变量的名称为 _MC_AX[0-255]或_MC1_AX[0-255]、_MC2_AX[0-255],数据类型为 _sAXIS_REF 型的结构体型变量。 _
- _下面以_MC_AX[0-255] 为例对轴变量的构成及其要素进行详细说明。_MC1_AX[0-255]、 _MC2_AX[0-255] 也是如此。
变量名称 | 数据类型 | 名称 | 功能 | ||
---|---|---|---|---|---|
_MC_AX[0-255] | _sAXIS_REF | 轴变量 | |||
Status | _sAXIS_REF_STA | 轴状态 | |||
Ready | BOOL | 轴启动准备完成 | 轴启动准备就绪并在停止中的状态下变为TRUE。 _MC_AX[*].Status.Standstill表示与 “TRUE:停止中”的状态相同。 | ||
Disabled | BOOL | 轴无效 | 在轴由于伺服OFF而停止的状态下变为TRUE。以下轴状态是排他性的,任意一个单独变为TRUE Disabled/ Standstill/ Discrete/ Continuous/ Synchronized/ Homing/ Stopping/ ErrorStop/Coordinated | ||
Standstill | BOOL | 停止中 | 在轴由于伺服ON而停止的状态下变为TRUE。 | ||
Discrete | BOOL | 定位动作中 | 在向目标位置执行定位控制时变为TRUE。 也包括定位动作中将超调值设定为 “0”而使速度为 “0”的状态。 | ||
Continuous | BOOL | 连续动作中 | 没有目标位置连续动作时变为TRUE。 速度控制和转矩控制时变为此状态。 也包括将目标速度设为 “0”而使速度为 “0” 的状态、以及连续动作中将超调值设定为 “0” 而使速度为 “0”的状态。 | ||
Synchronized | BOOL | 同步动作中 | 执行同步控制时变为TRUE。 也包括同步控制指令切换后的同步等待状态 | ||
Homing | BOOL | 原点复位中 | 通过MC_Home指令或MC_HomeWithParameter指 令执行原点复位时变为TRUE | ||
Stopping | BOOL | 减速停止中 | 在通过MC_Stop指令、MC_TouchProbe指令停止 轴动作之前的状态下变为TRUE。 也包括通过MC_Stop指令停止轴动作后Execute变为TRUE时。 在减速停止中的状态下不能启动轴动作指令 (CommandAborted = TRUE) | ||
ErrorStop | BOOL | 错误减速停止中 | 执行MC_ImmediateStop指令或正在发生轻度故障 (_MC_AX[*].MFaultLvl.Active为 “TRUE:正在发 生轴轻度故障”)时,轴停止前和停止后的状态。 在该状态下不能启动轴动作指令(CommandAborted = TRUE)。 | ||
Coordinated | BOOL | 多轴协调动作中 | 在通过多轴协调指令使轴组有效的状态下变为TRUE | ||
Details | _sAXIS_REF_DET | 轴控制状态 *1 | |||
Idle | BOOL | 停止中 | 除了到位等待,在未进行指令值运算时变为 TRUE。 *2 Idle与InPosWaiting相互排斥,不会同时变为 TRUE。 | ||
InPosWaiting | BOOL | 到位等待 | 到位等待时变为TRUE。 通过到位检查执行定位执行到位检查的状态 | ||
Homed | BOOL | 原点确定 | 在原点确定状态时变为TRUE *3 TRUE:原点确定 FALSE:原点未确定 | ||
InHome | BOOL | 原点停止 | 在原点位置的范围内时变为TRUE。 以下是AND条件 • 原点确定状态 • 反馈当前位置以原点为中心进入 “原点位置 范围”时 在指令状态下轴动作过程中通过原点位置时也会 变为TRUE。 | ||
VelLimit *4 | BOOL | 指令速度饱和 | 同步控制中,指 速度以最高速度进行限制时变 为TRUE。 | ||
Dir | sAXIS_REF_DIR | 指令方向状态 *5 | |||
Posi | BOOL | 正方向指令中 | 指令指定为正方向时变为TRUE。 | ||
Nega | BOOL | 负方向指令中 | 指令指定为负方向时变为TRUE。 | ||
DrvStatus | _sAXIS_REF_STA_DRV | 伺服驱动器状态 *6 | |||
ServoOn | BOOL | 伺服ON | 伺服电机通电时变为TRUE | ||
Ready | BOOL | 伺服待机 | 伺服待机状态时变为TRUE | ||
MainPower | BOOL | 主电路电源 | 伺服驱动器的主电路电源通电时变为TRUE | ||
P_OT | BOOL | 正方向极限输入 | 正方向极限输入有效时变为TRUE | ||
N_OT | BOOL | 负方向极限输入 | 负方向极限输入有效时变为TRUE | ||
HomeSw | BOOL | 近原点输入 | 近原点输入有效时变为TRUE | ||
Home | BOOL | 原点输入 | 启用原点输入时变为TRUE。 *7 | ||
ImdStop | BOOL | 即停输入 | 即停输入有效时变为TRUE | ||
Latch1 | BOOL | 外部锁定输入1 | 锁定输入1有效时变为TRUE | ||
Latch2 | BOOL | 外部锁定输入2 | 锁定输入2有效时变为TRUE | ||
DrvAlarm | BOOL | 驱动器错误输入 | 发生驱动器错误时变为TRUE | ||
DrvWarning | BOOL | 驱动器警告输入 | 发生驱动器警告时变为TRUE | ||
ILA | BOOL | 驱动器内部功能 限制中 | 通过伺服驱动器的限制功能进行实际限制时变为 TRUE。 *8 | ||
CSP | BOOL | 周期同步位置(CSP) 模式中 | 伺服驱动器的伺服ON,在CSP模式下变为 TRUE。 *9 | ||
CSV | BOOL | 周期同步速度(CSV) 模式中 | 伺服驱动器侧伺服ON、进入CSV模式时变为 TRUE *9 | ||
CST | BOOL | 周期同步转矩(CST) 模式中 | 伺服驱动器侧伺服ON、进入CST模式时变为 TRUE *9 | ||
Cmd | _sAXIS_REF_CMD_ DATA | 轴指令值 | |||
Pos | LREAL | 指令当前位置 | 输出指令位置的当前值。(单位:指令单位) 伺服OFF或非位置控制模式时,输出反馈当前位 置。*10 | ||
Vel | LREAL | 指令当前速度 | 输出指令速度的当前值。(单位:指令单位/s) 正方向移动时附带正号、负方向移动时附带负 号。 根据指令当前位置之差算出的速度。伺服OFF或 非位置控制模式时,根据反馈当前位置计算出的 速度。 | ||
AccDec | LREAL | 指令当前加减速度 | 输出指令加减速度的当前值。 (单位:指令单位/s2 ) 根据指令当前速度之差算出的加减速度。加速时 附带正号,减速时附带负号。 执行中的指令的加减速度为 “0”时变为 “0”。 | ||
Jerk | LREAL | 指令当前跃度 | 输出指令跃度的当前值。(指令单位/s3 ) 加减速度的绝对值增大时附带正号,减小时附带 负号。 执行中的指令的加减速度或指令跃度为 “0”时 变为 “0” | ||
Trq | LREAL | 指令当前转矩 | 输出指令转矩的当前值。(单位:%) 正方向移动时附带正号、负方向移动时附带负 号。 非转矩控制模式时,输出与反馈当前转矩相同的 值。 | ||
Act | _sAXIS_REF_ACT_ DATA | 轴当前值 | |||
Pos | LREAL | 反馈当前位置 | 输出反馈位置的当前值(单位:指令单位)*10 | ||
Vel | LREAL | 反馈当前速度 | 输出反馈速度的当前值。(单位:指令单位/s) 正方向移动时附带正号、负方向移动时附带负 号。 | ||
Trq | LREAL | 反馈当前转矩 | 输出反馈转矩的当前值。(单位:%) 正方向移动时附带正号、负方向移动时附带负 号。 | ||
TimeStamp*11 | ULINT | 时间戳 | 输出轴当前位置的更新时刻。运行变化时刻获取 功能的轴有效。 (单位:ns) | ||
MFaultLvl | _sMC_REF_EVENT | 轴 轻度故障 | |||
Active | WORD | 轴 轻度故障代码 | 输出轴轻度故障的代码。 与事件代码的前四位相同的值 | ||
Obsr | _sMC_REF_EVENT | 轴 监视信息 | |||
Active | BOOL | 轴 监视信息发生中 | 发生轴监视信息时变为TRUE | ||
WORD | BOOL | 轴 监视信息代码 | 输出轴监视信息的代码。 与事件代码的前四位相同的值 | ||
Cfg | _sAXIS_REF_CFG | 轴基本设定 *12 | |||
AxNo | UINT | 轴号 | 表示轴的逻辑编号。 参考_sAXIS_REF时是为识别轴号而进行参考 | ||
AxEnable | AxEnable | 轴使用 | 表示是否使用轴 0:_mcNoneAxis (未创建轴) 1:_mcUnusedAxis (未使用轴) 2:_mcUsedAxis(使用轴) | ||
AxType | _eMC_AXIS_TYPE | 轴种类 | 表示轴种类。 虚拟轴不需要输入输出接线 0:_mcServo(伺服轴) 1:_mcEncdr(编码器轴) 2:_mcVirServo(虚拟伺服轴) 3:_mcVirEncdr(虚拟编码器轴) | ||
NodeAddress | UINT | 节点地址 | 表示EtherCAT的从站地址。*13 16#FFFF表示无 | ||
ExecID *14 | UINT | 执行ID | 表示各任务的执行ID。 0:未分配任务(未创建轴) 1:分配至原始恒定周期任务 2:分配至固定周期任务(执行优先度5) | ||
Scale | _sAXIS_REF_SCALE | 单位转换 *15 | |||
Num | UDINT | 电机转1圈的脉冲数 | 表示指令位置电机转1圈的脉冲数。 根据电子齿轮比将指令值转换为脉冲量 | ||
Den | LREAL | 电机转1圈的移动量 | 表示指令位置电机转1圈的工件移动量。 *16 | ||
Units | BOOL | _eMC_UNITS | |||
Units | BOOL | 显示单位 | 表示指令位置的显示单位 0:_mcPls(pulse) 1:_mcMm(mm) 2:_mcUm(μm) 3:_mcNm(nm) 4:_mcDeg(degree) 5:_mcInch(inch) | ||
CountMode *14 | CountMode *14 | 计数模式 | 表示计数模式。 0:_mcCountModeLinear(线性模式) 1:_mcCountModeRotary(旋转模式) | ||
MaxPos *14 | LREAL | 当前位置上限值 | 表示当前位置显示的上限值。 *17 | ||
MinPos *14 | LREAL | 当前位置下限值 | 表示当前位置显示的下限值。 *18 |
-
- 表示指令的控制状态。
- 以速度 “0”动作、偏差计数器复位、同步控制中以及多轴协调动作中也属于正在运算的状态。
- 即使为TRUE,以下情况仍需重新确定原点。 变更位置计数设定或单位转换设定时。 在伺服驱动器侧发生异常或进行操作导致丢失绝对位置信息时。例如,编码器电缆断线或绝对值编码器数据清零等。
- VelLimit请仅用于同步控制中的从轴。
- 表示指令指定的移动方向。
- 表示驱动器等的状态。
- 通过Sysmac Studio的[轴基本设置]画面中的[高级设置]设定为[数字输入]的[编码器Z相检测]的信号的状态。使用其他公司 生产的驱动器可能无法将此信号映射至PDO。请确认所连接的驱动器的手册。
- 表示映射至PDO的 “状态字(6041Hex)”的位11(启用内部限制功能)的状态。变为TRUE的条件取决于伺服驱动器的规格。 请参阅所连接的伺服驱动器的使用手册。欧姆龙制伺服驱动器1S系列及G5系列为转矩限制/速度限制/驱动禁止输入/软件 限制的其中之一。
- 根据映射到PDO的 “操作模式显示(6061Hex)”的值进行显示。CSP、CSV、CST变为TRUE的条件取决于伺服驱动器的规 格。请参阅所连接的伺服驱动器的使用手册。 如 “操作模式显示(6061Hex)”未映射至PDO,不同版本CPU单元的显示如下所示。 对于Ver.1.09 以下版本的CPU 单元,始终为 FALSE。 对于Ver.1.10以上版本的CPU单元,如映射至PDO的 “状态字(6041Hex)”的状态为Operation Enabled,则为TRUE。
- 如分配给轴的EtherCAT从站或NX 单元与CPU单元之间尚未确立过程数据通信,不同版本CPU单元的显示如下所示。 对于Ver.1.09以下版本的CPU单元,轴变量的反馈当前位置及指令当前位置为 “0”或下限值。下限值的条件是计数模式 为旋转模式时位置范围中不含 “0”。 对于Ver.1.10以上版本的CPU单元,轴变量的反馈当前位置及指令当前位置为尚未确立过程数据通信前的反馈当前位置。
- Ver.1.06以上的CPU单元和Ver.1.07以上的Sysmac Studio组合时可使用。
- 表示轴基本设定内容。
- 对于NX系列位置接口单元,表示安装了位置接口单元的EtherCAT耦合器单元的节点地址。
- Ver.1.10以上的CPU单元和Ver.1.12以上的Sysmac Studio组合时可使用。
- 表示电子齿轮比的设定值。
- Ver.1.11以上版本的CPU单元新增的单位转换设定中,减速机使用设定为 “使用”时,该参数无效。确认反之有效的参 数 “工件侧1圈的移动量”、“工件侧齿轮比”、“电机侧齿轮比”的值时,请使用MC_ReadAxisParameter(轴参数读取) 指令。
- 计数模式为线性模式时,表示溢出前的位置。为旋转模式时,表示环计数器上限值。
- 计数模式为线性模式时,表示下溢前的位置。为旋转模式时,表示环计数器下限值。
▶ 轴组变量
- 轴组变量是系统定义变量的名称为_MC_GRP[0-63]或_MC1_GRP[0-63]、_MC2_GRP[0-63],数据类型为 _sGROUP_REF型的结构体变量。 _
- _下面以_MC_GRP[0-63]为例对轴组变量的构成及其要素进行详细说明。_MC1_GRP[0-63]、_MC2_GRP [0-63]也是如此。
- 功能说明中以_MC_AX[]为例对轴变量进行了说明,_MC1_AX[]、_MC2_AX[*]也是如此。
变量名称 | 数据类型 | 名称 | 功能 | ||
---|---|---|---|---|---|
_MC_GRP[0-63] | _sGROUP_REF | 轴组变量 | |||
Status | _sGROUP_REF_STA | 轴组变量 | |||
Ready | BOOL | 启动准备完成 | 轴组停止、启动准备已经完成时变为TRUE。 以下AND条件即启动准备完成的条件 • 构成轴未执行MC_Stop指令。 • _MC_GRP[*].Status.Standby(停止中)变为TRUE • 构成轴为伺服ON状态 • 构成轴的_MC_AX[*].Details.Homed(原点确定)为TRUE | ||
Disabled | BOOL | 不启用轴组 | 因禁用轴组而停止时变为TRUE。 以下轴组状态是排他性的,任意一个单独变为 TRUE。 Disable/ Standby/ Moving/ Stopping/ ErrorStop | ||
Standby | BOOL | 停止中 | 轴组动作指令停止时变为TRUE。 与构成轴组的轴的伺服ON/OFF状态无关 | ||
Moving | BOOL | 动作中 | 在向目标位置执行轴组动作指令时变为TRUE。 也包括到位等待的状态、以及因超调而使速度 为 “0”的状态。 | ||
Stopping | BOOL | 减速停止中 | 在通过MC_GroupStop指令停止轴组动作之前的 状态下变为TRUE。 也包括通过MC_GroupStop指令停止轴动作后 Execute变为TRUE时。 在该状态下不能启动轴组动作指令 (CommandAborted = TRUE) | ||
ErrorStop | BOOL | 错误减速停止中 | 通过MC_GroupImmediateStop指令、或者在发生 轴组轻度故障时 (_MC_GRP[*].MFaultLvl.Active=TRUE),轴组停 止之前、以及停止后变为TRUE。在此状态下 不能启动轴组动作指令(CommandAborted = TRUE)。 | ||
Details | _sGROUP_REF_DET | 轴组控制状态 *1 | |||
Idle | Idle | 停止中 | 除了到位等待,在未进行指令值运算时变为 TRUE。*2 Idle与InPosWaiting相互排斥,不会同时变为 TRUE。 | ||
InPosWaiting | BOOL | 到位等待 | 任意一个构成轴到位等待时变为TRUE。 通过到位检查执行定位执行到位检查的状态 | ||
Cmd | _sGROUP_REF_CMD_ DATA | 轴组指令值 | |||
Vel | LREAL | 指令插补速度 | 输出指令插补速度的当前值。 根据插补指令当前位置之差算出的插补速度。 正方向移动时附带正号、负方向移动时附带 负号。 轴组无效时变为 “0” | ||
AccDec | LREAL | 指令插补加减速度 | 输出指令插补加减速度的当前值。 根据指令插补速度之差算出的插补加减速度。 加速时附带正号,减速时附带负号。 禁用轴组或正在执行的轴组动作指令的指令加 减速度指定为 “0”时变为 “0”。 | ||
MFaultLvl | sMC_REF_EVENT | 轴组轻度故障 | |||
轴组轻度故障 | BOOL | 轴组轻度故障发生中 | 轴组发生轻度故障时变为TRUE | ||
Code | UINT | 轴组轻度故障代码 | 输出轴组轻度故障的代码。 与事件代码的前四位相同的值 | ||
Obsr | _sMC_REF_EVENT | 轴组监视信息 | |||
Active | BOOL | 轴组监视信息发生中 | 发生轴组监视信息时变为TRUE | ||
Code | WORD | 轴组监视信息代码 | 输出轴组监控信息的代码。 与事件代码的前四位相同的值 | ||
Cfg | sGROUP_REF_CFG | 轴组基本设定 | |||
GrpNo | UINT | 轴组编号 | 表示轴组的逻辑编号。 参考_sGROUP_REF时是为识别轴组编号而进 行参考 | ||
GrpEnable | _eMC_GROUP_USE | 轴组使用 | 表示是否使用轴组。 0:_mcNoneGroup (未创建轴组) 1:_mcUnusedGroup (未使用轴组) 2:_mcUsedGroup (使用轴组) | ||
ExecID *3 | UINT | 执行ID | 表示各分配任务的执行ID。 0:未分配任务(未创建组) 1:分配至原始恒定周期任务 2:分配至固定周期任务(执行优先度5) | ||
Kinematics | _sGROUP_REF_KIM | 运动学转换设定 *4 | |||
GrpType | _eMC_GROUP_TYPE | 轴构成 | 表示多轴协调控制中的轴构成。 0:_mcXY(2轴) 1:_mcXYZ(3轴) 2:_mcXYZU(4轴) | ||
Axis[0] | UINT | 构成轴选择(轴A0) | 表示向轴A0分配的轴号 | ||
Axis[2] | UINT | 构成轴选择(轴A1) | 表示向轴A1分配的轴号 | ||
Axis[0] | UINT | 构成轴选择(轴A2) | 表示向轴A2分配的轴号 | ||
Axis[3] | UINT | 构成轴选择(轴A3) | 表示向轴A3分配的轴号 |
- 1.表示指令的控制状态。
- 2.以速度“0”动作也属于正在运算的状态。
- 3.Ver.1.10以上的CPU单元和Ver.1.12以上的SysmacStudio组合时可使用。
- 4.表示轴组的运动学转换定义。
运动控制指令的输入变量
- 以下是运动控制指令的输入变量一览表、有效范围一览表以及枚举体的有效范围一览表。
输入变量 | 名称 | 数据类型 | 有效范围 | 初始值 | 内容 |
---|---|---|---|---|---|
Execute | 启动 | BOOL | TRUE, FALSE | FALSE | 在上升沿开始指令。 在Execute的上升沿时,导入其他输入 变量。 想要更新输入值时,先变更输入值,然后 再度启动Execute。 指令执行完成后也是Execute变为TRUE时 输出变量有效。 此后,在Execute的下降沿,Error和ErrorID 以外的输出变量无效。 指令执行完成前Execute变为FALSE时,输 出变量至少在1个周期内有效 |
Enable | 有效 | BOOL | TRUE, FALSE | FALSE | 变为TRUE时指令的功能生效,变为FALSE 时无效。 Enable为TRUE时,其他输入变量按周期 导入。 将Enable变为FALSE时,Error和ErrorID以 外的输出变量无效 |
Positive Enable | 正方向有效 | BOOL | TRUE, FALSE | FALSE | • MC_MoveJog指令 设为TRUE,则开始正方向移动。设为 FALSE,则结束移动。MC_MoveJog指令 的Velocity、Acceleration、Deceleration导 入PositiveEnable的上升沿时的值 • MC_SetTorqueLimit指令 变为TRUE时正方向的转矩限制有效。 变为FALSE时正方向的转矩限制无效。 |
Negative Enable | 负方向有效 | BOOL | TRUE, FALSE | FALSE | • MC_MoveJog指令 设为TRUE,则开始负方向移动。设为 FALSE,则结束移动。MC_MoveJog指令 的Velocity、Acceleration、Deceleration导 入NegativeEnable的上升沿时的值 • MC_SetTorqueLimit指令 变为TRUE时负方向的转矩限制有效。 变为FALSE时负方向的转矩限制无效。 |
BufferMode | 缓存模式选择 | _eMC_ BUFFER_MODE | 0: _mcAborting 1: _mcBuffered 2: _mcBlendingLow 3: _mcBlendingPrevious 4: _mcBlendingNext 5: _mcBlendingHigh | 0 *1 | 指定多重启动运动控制指令时的动作。 0:中断 1:缓存 2:以低速合并 3:以前一个速度合并 4:以后一个速度合并 5:以高速合并 |
Velocity | 目标速度 | LREAL | 正数 *2 | 0 | 指定目标速度。 *3 |
Acceleration | 加速度 | LREAL | 正数或“0” | 0 | 指定加速度。 *4 |
Deceleration | 减速度 | LREAL | 正数或“0” | 0 | 指定减速度 *4 |
Jerk | 跃度 | LREAL | 正数或“0” | 0 | 指定跃度。 *5 |
Distance | 移动距离 | LREAL | 负数、正数、“0” | 0 | 指定自指令当前位置起的移动距离。 |
ARRAY [0..3] OF LREAL | 负数、正数、“0” | 0 | 指定直线插补的目标位置。 *6 | ||
Position | 目标位置 | LREAL | 负数、正数、“0” | 0 | 指定绝对坐标的目标位置 *6 |
ARRAY [0..3] OF LREAL | 负数、正数、“0” | 0 | 指定直线插补的目标位置 *6 | ||
速度超调值 | LREAL | 0~500 | 100 | ||
AccFactor (Reserved) | 加减速度超调值 | LREAL | 0~500 | 100 | (Reserved) |
JerkFactor (Reserved) | 跃度超调值 | LREAL | 0~500 | 100 | (Reserved) |
Reference Type *7 | 位置类型选择 | _eMC_ REFERENCE_ TYPE | 0: _mcCommand 1: _mcFeedback 2: _mcLatestCommand | 0 *1 | 指定主轴的输入信息。 0:指令位置(最近任务周期*8下的计算值) 1:反馈位置(同一任务周期 *8下的取值) 2:指令位置(同一任务周期*8下的计算值) |
Feed Distance | 标准距离 | LREAL | 负数、正数、“0” | 0 | 指定中断输入后的移动距离 |
FeedVelocity | 标准速度 | LREAL | 正数 | 0 | 指定中断输入后的移动目标速度 |
ErrorDetect | 错误检测选择 | BOOL | TRUE, FALSE | FALSE | 无中断输入时,指定是否执行异常检测。 TRUE:执行异常检测 FALSE:不执行异常检测 |
Periodic | 重复模式 | BOOL | TRUE, FALSE | FALSE | 指定是反复执行指定的凸轮表,还是只执 行1次。 TRUE:重复 FALSE:不重复 |
StartMode | 起始位置方式 指定 | _eMC_ START_MODE | 0: _mcAbsolutePosition 1: _mcRelativePosition | 0 *1 | 指定MasterStartDistance(主轴跟踪距离)使用 的坐标系。 0:绝对位置 1:相对位置 |
StartPosition | 凸轮表起始位置 | LREAL | 负数、正数、“0” | 0 | 利用主轴的绝对位置指定凸轮表的起点 (相位=0)。 |
MasterStart Distance | 主轴跟踪距离 | LREAL | 负数、正数、“0” | 0 | 指定从轴开始凸轮动作时主轴的位置。 StartMode(起始位置方式指定)指定为[绝对 定位]时,指定主轴的绝对位置。指定为相 对定位时,指定自StartPosition(凸轮表起始 位置)起的相对量。 |
Master Scaling | 主轴系数 | LREAL | 正值(>0.0) | 1.0 | 以指定的比例放大/缩小主轴的相位 |
SlaveScaling | 从轴系数 | LREAL | 正值(>0.0) | 1.0 | 以指定的比例放大/缩小从轴的位移 |
MasterOffset | 主轴偏移 | LREAL | 负数、正数、“0” | 0 | 以指定的偏移值移动主轴的相位 |
SlaveOffset | 从轴偏移 | LREAL | 负数、正数、“0” | 0 | 以指定的偏移值移动从轴的位移 |
Cam Transition (Reserved) | 凸轮过渡指定 | _eMC_CAM_ TRANSITION | 0: _mcCTNone | 0 *1 | (Reserved) |
OutMode (Reserved) | 同步解除模式 选择 | _eMC_OUT_ MODE | 0: _mcStop | 0 *1 | (Reserved) |
Direction | 方向选择 | _eMC_ DIRECTION | 0: _mcPositiveDirection 1: _mcShortestWay 2: _mcNegativeDirection 3: _mcCurrentDirection 4: _mcNoDirection | 4/0 *1 | 指定动作的方向 0:指定为正方向 1:指定为附近 2:指定为负方向 3:指定为当前方向 4:无方向指定 |
Continuous (Reserved) | 持续方法选择 | BOOL | TRUE, FALSE | FALSE | (Reserved) |
Ratio Numerator | 齿轮比分子 | DINT*9 | 正数或负数 *9 | 10000 | 指定主轴和从轴间的电子齿轮的分子 |
Ratio Denominator | 齿轮比分母 | UDINT*10 | 正数 | 10000 | 指定主轴和从轴间的电子齿轮的分母 |
MasterSync Position | 主轴同步位置 | LREAL | 负数、正数、“0” | 0 | 指定绝对坐标的主轴同步位置。 |
SlaveSync Position | 从轴同步位置 | LREAL | 负数、正数、“0” | 0 | 指定绝对坐标的从轴同步位置。 |
Slave Distance | 从轴移动距离 | LREAL | 负数、正数、“0” | 0 | 指定从轴的移动距离 |
MasterDistance | 主轴移动距离 | LREAL | 正数或“0” | 0 | 指定主轴的移动距离 |
Master DistanceIn ACC | 主轴加速移动 距离 | LREAL | 正数或“0” | 0 | 指定从轴加速时主轴的移动距离 |
Master DistanceIn DEC | 主轴减速移动 距离 | LREAL | 正数或“0” | 0 | 指定从轴减速时主轴的移动距离 |
LinkOption | 同步开始条件 选择 | _eMC_ LINKOPTION | 0: _mcCommandExecution 1: _mcTriggerDetection 2: _mcMasterReach | 0 *1 | 指定从轴与主轴同步的条件 0:启动时 1:检测到触发时 2:主轴到达主轴跟踪距离时 |
Combine Mode | 加减法运算方法 选择 | _eMC_COMBINE_ MODE | 0: _mcAddAxes 1: _mcSubAxes | 0 *1 | 指定合成方法 0:加法 1:减法 |
Ratio Numerator Master (Reserved) | 主轴齿轮比分子 | DINT *9 | 正数或负数 *9 | 10000 | 指定主轴和从轴间的电子齿轮的分子 |
Ratio DenominatorMa ster (Reserved) | 主轴齿轮比分母 | UDINT *10 | 正数 | 10000 | 指定主轴和从轴间的电子齿轮的分母 |
Ratio Numerator Auxiliary (Reserved) | 辅轴齿轮比分子 | DINT *9 | 正数或负数 *9 | 10000 | 指定辅轴和从轴间的电子齿轮的分子 |
Ratio DenominatorAu xiliary (Reserved) | 辅轴齿轮比分母 | UDINT *10 | 正数 | 10000 | 指定辅轴和从轴间的电子齿轮的分母 |
Reference TypeMaster | 主轴位置类型 选择 | _eMC_ REFERENCE_ TYPE | 1: _mcFeedback 2: _mcLatestCommand | 2 *1 | 指定主轴的位置类型 1:反馈位置(同一任务周期 *8下的取值) 2:指令位置(同一任务周期 *8下的计算值) |
Reference Type Auxiliary | 辅轴位置类型 选择 | _eMC_ REFERENCE_ TYPE | 1: _mcFeedback 2: _mcLatestCommand | 2 *1 | 指定辅轴的位置类型 1:反馈位置(同一任务周期 *8下的取值) 2:指令位置(同一任务周期 *8下的计算值) |
PhaseShift | 相位补偿量 | LREAL | 负数、正数、“0” | 0 | 指定主轴的相位补偿量 *6 |
Torque | 目标转矩 | LREAL | 0~1000.0 | 300.0 | 以0.1%为单位指定向伺服驱动器输出的目 标转矩。 以额定转矩为100%时的比率进行指定。单 位为“%” |
TorqueRamp | 转矩斜度 | LREAL | 正数或“0” | 0 | 指定从当前转矩到输出目标转矩为止的转 矩变化率。 单位为“%/s” |
Positive Value | 正方向转矩 限制值 | LREAL | 0.1 ~ 1000.0、 或“0.0” | 300.0 | 以0.1%为单位指定正方向的转矩限制值。 输入值超过轴参数的[正方向转矩限制上限 值]时,使用[正方向转矩限制上限值]。 指定为“0”及“负数”时作为“0” 动作。 |
Negative Value | 负方向转矩 限制值 | LREAL | 0.1 ~ 1000.0、 或“0.0” | 300.0 | 以0.1%为单位指定负方向的转矩限制值。 输入值超过轴参数的[负方向转矩限制上限 值]时,使用[负方向转矩限制上限值]。 指定为“0”及“负数”时作为“0” 动作。 |
WindowOnly | 窗口有效 | BOOL | TRUE, FALSE | FALSE | 指定窗口掩码有效/无效 |
FirstPosition | 起始位置 | LREAL | 负数、正数、“0” | 0 | 指定起始位置。 |
LastPosition | 终止位置 | LREAL | 负数、正数、“0” | 0 | 指定终止位置。 |
StopMode | 停止方法选择 | _eMC_STOP_ MODE | 1: _mcImmediateStop 2: _mcImmediateStop FEReset 3: _mcFreeRunStop 4: _mcNonStop | 4 *1 | 指定停止方法 1:立即停止 2:立即停止,并进行偏差计数器复位 3:立即停止,并变为伺服OFF 4:不停止 |
Relative (Reserved) | 相对位置选择 | BOOL | TRUE, FALSE | FALSE | (Reserved) |
Execution Mode (Reserved) | 执行模式选择 | _eMC_ EXECUTION_ MODE | 0: _mcImmediately | 0 *1 | |
Permitted Deviation | 轴间偏差容许值 | LREAL | 正数或“0” | 0 | 指定可容许的主轴及从轴的位置偏差最大 值 |
CmdPos Mode | 指令当前位置 计数选择 | _eMC_CMDPOS_ MODE | 0: _mcCount | 0 *1 | 0:使用反馈当前位置更新指令当前位置。 原点确定状态保持不变 |
CoordSystem | 坐标系 | _eMC_COORD_ SYSTEM | 0: _mcACS | 0 *1 | 指定坐标系 0:轴坐标系(ACS) |
Transition Mode | 过渡模式 (切换模式) | _eMC_ TRANSITION_ MODE | 0: _mcTMNone 10: _mcTMCornerSuperimposed | 0 *1 | 指定动作的路径 0:过渡无效 10:附加角 |
MoveMode | 移动方法选择 | _eMC_MOVE_ MODE | 0: _mcAbsolute 1: _mcRelative | 0 *1 | 选择移动方法 0:绝对值定位 1:相对值定位 |
CircAxes | 圆弧轴指定 | ARRAY [0,1] OF UINT | 0~3 | 0 | 指定进行圆弧插补的轴 0:轴A0 1:轴A1 2:轴A2 3:轴A3 |
CircMode | 圆弧插补模式 | _eMC_CIRC_ MODE | 0: _mcBorder 1: _mcCenter 2: _mcRadius | 0 *1 | 指定圆弧插补的方法 0:通过点指定 1:中心点指定 2:半径指定 |
AuxPoint | 辅助点 | ARRAY [0,1] OF LREAL | 负数、正数、“0” | 0 | 指定通过点位置/中心位置/半径 |
EndPoint | 终点 | ARRAY [0,1] OF LREAL | 负数、正数、“0” | 0 | 指定目标位置。 |
PathChoice | 路径选择 | _eMC_CIRC_ PATHCHOICE | 0: _mcCW 1: _mcCCW | 0 *1 | 指定路径方向 0:CW 1:CCW |
Parameter Number | 参数编号 | _eMC_ PARAMETER_ NUMBER | 0: _mcChkVel 1: _mcChkAcc 2: _mcChkDec 3: _mcPosiChkTrq 4: _mcNegaChkTrq 5: _mcFELmt 6: _mcChkFELmt 7: _mcSwLmtMode 8: _mcPosiSwLmt 9: _mcNegaSwLmt 10:_mcInPosTime 11:_mcInPosRange*11 12:_mcStartVel*12 | 0 *1 | 指定写入目标位置的参数 0:速度警告值/插补速度警告值 1:加速度警告值/插补加速度警告值 2:减速度警告值/插补减速度警告值 3:正方向转矩警告值 4:负方向转矩警告值 5:位置偏差超过值 6:位置偏差警告值 7:软件限制功能 8:正方向软件限制 9:负方向软件限制 10:到位检查时间 11:到位宽度 12:启动速度 |
HomingMode *13 | 原点复位动作 | _eMC_HOMING_ MODE | 0:_mcHomeSwTurnHome SwOff 1:_mcHomeSwTurnHome SwOn 4:_mcHomeSwOff 5:_mcHomeSwOn 8:_mcLimitInputOff 9:_mcHomeSwTurnHome Mask 11:_mcLimitInputOnly 12:_mcHomeSwTurn HoldingTime 13:_mcNoHomeSwHolding HomeInput 14:_mcHomePreset | 0 *1 | 指定要改写的[原点复位动作]。 0:指定为附近避让、近原点输入OFF 1:指定为附近避让、近原点输入ON 4:指定为近原点输入OFF 5:指定为近原点输入ON 8:指定为极限输入OFF 9:指定为附近避让、原点输入屏蔽距离 11:仅极限输入 12:指定为附近避让、接触时间 13:指定为无近原点输入、接触原点输入 14:原点预设 |
AxisUse*14 | 轴使用 | _eMC_AXIS_USE | 1:_mcUnusedAxis 2:_mcUsedAxis | 1 *1 | 指定使用轴或未使用轴。 1:未使用轴 2:使用轴 |
EnableMask*15 | 轨段有效 | WORD | 16#0000~FFFF | 0 | 按轨段指定有效或无效。最多16个轨段 中,第0位的值指定轨段编号0的有效或无 效,第15位的值指定轨段编号15的有效或 无效。 0:无效、1:有效 |
ValueSource (Reserved) | 输入信息 | _sMC_SOURCE | - | - | (Reserved) |
TimeStamp *15 | 时间戳 | ULINT | 正数、“0” | 0 | 指定需计算位置的时间戳。 指定以时间戳方式对应的数字输入单元和 编码器输入单元内的时刻为基准的时间 戳。单位为[ns]。 |
ExecID *16 | 执行ID | UINT | 2 | 2 | 指定变量同步指定对象的ID。 2: 固定周期任务(执行优先度5) |
OffsetPosition | 位置偏置 | LREAL | 负数、正数、“0” | 0 | 指定在指令当前位置叠加的位置偏置 *6 |
- 1.有效范围为枚举体的变量,其实际初始值不是数值,而是枚举元素。
- 2.也有MC_MoveJog指令及MC_MoveVelocity指令等可以设定为“0”的指令。
- 3.以指令单位/s表示。指令单位有[mm]、[μm]、[nm]、[degree]、[inch]或[pulse]。
- 4.以指令单位/s表示。
- 5.以指令单位/s表示。
- 6.以指令单位表示。
- 7.使用_mcLatestCommand时,必须在满足以下关系的条件下使用主轴、从轴。Master(主轴)设定的运动控制系统变量的轴号<Slave(从轴)设定的运动控制系统变量的轴号
- 8.任务周期分为原始恒定周期任务的周期和固定周期任务(执行优先度5)的周期。
- 9.Ver.1.02以上的CPU单元和Ver.1.03以上的SysmacStudio组合时可使用。上述以下版本进行组合时,数据类型为“UINT”,有效范围为“正数”。
- 10.Ver.1.02以上的CPU单元和Ver.1.03以上的SysmacStudio组合时可使用。上述以下版本进行组合时,数据类型为“UINT”。
- 11.Ver.1.01以上的CPU单元和Ver.1.02以上的SysmacStudio组合时可使用。
- 12.Ver.1.10以上的CPU单元和Ver.1.12以上的SysmacStudio组合时可使用。
- 13.Ver.1.03以上的CPU单元和Ver.1.04以上的SysmacStudio组合时可使用。
- 14.Ver.1.04以上的CPU单元和Ver.1.05以上的SysmacStudio组合时可使用。
- 15.Ver.1.06以上的CPU单元和Ver.1.07以上的SysmacStudio组合时可使用。
- 16.NX1P2CPU单元及NJ系列CPU单元中没有。
输入变量的有效范围
- 下面对运动控制指令的输入变量的有效范围进行说明。各指令的有效范围请参阅各指令的说明。
►►►►BOOL型输入变量
-
- FALSE以外的均视为TRUE。因此,不会发生范围外异常。
►►►►枚举(ENUM)体输入变量
-
- 有效范围外作为异常处理。
►►►►有效范围记载为“全范围” “正数” “负数” 的输入变量
-
- 设定了各输入变量的有效范围和范围外数值时的动作如下表所示。
- 设定了各输入变量的有效范围和范围外数值时的动作如下表所示。
输入变量 | 名称 | 有效范围 | 最大值范围外 | 最小值范围外 (0除外) |
---|---|---|---|---|
Velocity | 速度 | 0或者 (-1≤且≤-“最高速度”)、 (1≤且≤-“最高速度”) *1 | 正数时:“最高速度” 负数时:-“最高速度” 为固定值 *2 | 正数时:1pulse/s 负数时:-1pulse/s 为固定值*2 |
Acceleration | 加速度 | 0或者 (0.004≤且≤“最大加速度”) *3 | 固定为最大加速度。 但,加速时间短于 *4125μs 时,固定为125μs。 | 正数时:固定为 0.004pulse/s2。 但,加速时间*4超过250s 时,固定为250s。 负数时会发生异常。 |
Deceleration | 减速度 | 0或者 (0.004≤且≤“最大减速度”) *5 | 固定为最大减速度。 但,减速时间 *4短于125μs 时,固定为125μs。 | 正数时:固定为 0.004pulse/s2。 但,减速时间*4超过250s 时,固定为250s。 负数时会发生异常。 |
Jerk | 跃度 | 0或者 (0.000016≤且 25,600,000,000,000,000 pulse/s3) | 固定为 25,600,000,000,000,000 pulse/s3。 但,加速跃度适用时间 *6 或减速跃度适用时间 *6短于 125μs时,均固定为125μs | 固定为0.000016 pulse/s3。 但,加速跃度适用时间*6或 减速跃度适用时间 *6超过 250s时,均固定为250s。 负数时会发生异常。 |
Distance | 移动距离 | (0xFFFFFF0000000001)≤且 ≤(0x000000FFFFFFFFFF) | 会发生异常。 | 无最小值范围外。 |
Position | 指令位置 | (0xFFFFFF8000000000)≤且 <(0x0000007FFFFFFFFF+1)*7 | 会发生异常。 | 无最小值范围外。 |
VelFactor | 超调值 | 0、或 0.01≤且≤500.00*8 | 超过500.00%时固定 为500.00 | 小于0.01%时固定为0.01% |
Velocity | 插补速度 | 0.000 000 000 1≤且≤“最高插补速 度” *9 | 固定为“最高插补速度”。 | 固定为0.000 000 000 1 pulse/s |
Acceleration | 插补 加速度 | 0或者 (0.000 000 000 000 4≤且≤“最大插 补加速度”) *10 | 固定为 “最大插补加速度”。 但,插补加速时间短于 *11125μs时,固定为125μs | 正数时:固定为0.000 000 000 000 4 pulse/s2。但,插补加 速时间*11超过250s时,固 定为250s。 负数时会发生异常。 |
Deceleration | 插补 减速度 | 0或者 (0.000 000 000 000 000 04≤且 ≤“最大插补减速度”) *12 | 固定为“最大插补减速 度”。 但,插补减速时间 *11短于 125μs时,固定为125μs。 | 正数时:固定为0.000 000 000 000 4 pulse/s2。但,插补减 速时间*11超过250s时,固 定为250s。 负数时会发生异常。 |
Jerk | 插补跃度 | 0或者 (0.000 000 000 000 001 6≤ 且 ≤ 51,200,000,000,000,000 pulse/s3) | 固定为 51,200,000,000,000,000 pulse/s3。 但,插补加速跃度适用时间 *13或插补减速跃度适用时 间 *13短于125μs时,均固 定为125μs。 | 固定为0.000 000 000 000 001 6 pulse/s3。 但,插补加速跃度适用时间 *13或插补减速跃度适用时间 *13超过250s时,均固定为 250s。 负数时会发生异常 |
- 1.Ver.1.01以上的CPU单元和Ver.1.02以上的SysmacStudio组合时可指定。
- 2.Ver.1.10以上的CPU单元和Ver.1.12以上的SysmacStudio组合时可指定。
- 3.使用_mcLatestCommand时,必须在满足以下关系的条件下使用主轴、从轴。Master(主轴)设定的运动控制系统变量的轴号<Slave(从轴)设定的运动控制系统变量的轴号
- 4.任务周期分为原始恒定周期任务的周期和固定周期任务(执行优先度5)的周期。
- 5.Ver.1.03以上的CPU单元和Ver.1.04以上的SysmacStudio组合时可指定。
- 6.Ver.1.08以上的CPU单元和Ver.1.09以上的SysmacStudio组合时可指定。
- 7.Ver.1.10以上的CPU单元,无法将合并切换为等待。详情请参阅“NJ/NX系列CPU单元用户手册运动控制篇(SBCE-363)”。
- 8.Ver.1.10以上的CPU单元,合并动作时不会异常停止。详情请参阅“NJ/NX系列CPU单元用户手册运动控制篇(SBCE-363)”。
▶ 枚举体一览表
-
以下是运动控制指令的输入变量使用的ENUM体变量一览表。
-
枚举体输入变量不是通过数值设定,而是通过枚举元素进行设定。
数据类型 | 有效范围 | 内容 | 适应指令的变量 (变量名称) |
---|---|---|---|
_eMC_BUFFER_ MODE | 0: _mcAborting 1: _mcBuffered 2: _mcBlendingLow 3: _mcBlendingPrevious 4: _mcBlendingNext 5: _mcBlendingHigh | 指定多重启动运动控制指令时的动作 0:中断 1:缓存 2:以低速合并 3:以前一个速度合并 4:以后一个速度合并 5:以高速合并 | BufferMode (缓存模式选择) |
_eMC_CIRC_ MODE | 0: _mcBorder 1: _mcCenter 2: _mcRadius | 指定圆弧插补的方法 0:通过点指定 1:中心点指定 2:半径指定 | CircMode (圆弧插补模式) |
_eMC_CAM_ TRANSITION | 0: _mcCTNone | 指定凸轮重启时从轴指令值的输出 方法 0:无限制/修正 | CamTransition (凸轮过渡指定) |
_eMC_CIRC_ PATHCHOICE | 0: _mcCW 1: _mcCCW | 指定路径方向 0:CW 1:CCW | PathChoice (路径选择) |
_eMC_COMBINE_ MODE | 0: _mcAddAxes 1: _mcSubAxes | 指定合成方法 0:加法 1:减法 | CombineMode (加减法运算方法选择) |
_eMC_COORD_ SYSTEM | 0: _mcACS | 指定坐标系 0:轴坐标系(ACS) | CoordSystem (坐标系) |
_eMC_ DIRECTION | 0: _mcPositiveDirection 1: _mcShortestWay 2: _mcNegativeDirection 3: _mcCurrentDirection 4: _mcNoDirection | 指定各种动作的方向 0:指定为正方向 1:指定为附近 2:指定为负方向 3:指定为当前方向 4:无方向指定 | Direction (方向选择) |
_eMC_ EXECUTION_ MODE | 0: _mcImmediately | (Reserved) | ExecutionMode (执行模式选择) |
_eMC_ LINKOPTION | 0: _mcCommandExecution 1: _mcTriggerDetection 2: _mcMasterReach | 指定从轴与主轴同步的条件 0:指令开始时 1:检测到触发时 2:主轴到达主轴跟踪距离时 | LinkOption (同步开始条件选择) |
_eMC_MOVE_ MODE | 0: _mcAbsolute 1: _mcRelative 2: _mcVelocity | 选择移动方法 0:绝对值定位 1:相对值定位 2:速度控制 | MoveMode (移动方法选择) |
_eMC _OUT_MODE | 0: _mcStop | 指定解除同步控制指令的模式 0:减速停止 | OutMode (同步解除模式选择) (Reserved) |
_eMC_ PARAMETER_ NUMBER | 0: _mcChkVel 1: _mcChkAcc 2: _mcChkDec 3: _mcPosiChkTrq 4: _mcNegaChkTrq 5: _mcFELmt 6: _mcChkFELmt 7: _mcSwLmtMode 8: _mcPosiSwLmt 9: _mcNegaSwLmt 10: _mcInPosTime 11: _mcInPosRange*1 12: _mcStartVel*2 | 指定写入目标位置的参数 0:速度警告值/插补速度警告值 1:加速度警告值/插补加速度警告值 2:减速度警告值/插补减速度警告值 3:正方向转矩警告值 4:负方向转矩警告值 5:位置偏差超过值 6:位置偏差警告值 7:软件限制功能 8:正方向软件限制 9:负方向软件限制 10:到位检查时间 11:到位宽度 12:启动速度 | ParameterNumber (参数编号) |
_eMC_ SWLMT_MODE | 0: _mcNonSwLmt 1: _mcCmdDecelerationStop 2: _mcCmdImmediateStop 3: _mcActDecelerationStop 4: _mcActImmediateStop | 指定软件限制功能有效/无效以及停止 方法 0:软件限制功能无效 1:有效,对指令位置执行减速停止 2:有效,对指令位置执行立即停止 3:有效,对反馈位置执行减速停止 4:有效,对反馈位置执行立即停止 | SettingValue (设定值) |
_eMC_ REFERENCE_ TYPE *3 | 0: _mcCommand 1: _mcFeedback 2: _mcLatestCommand | 指定位置类型 0:指令位置(最近任务周期*4下的计算 值) 1:反馈位置(同一任务周期 *4下的取 值) 2:指令位置(同一任务周期*4下的计算 值) | ReferenceType (位置类型选择) ReferenceTypeMaster (主轴位置类型选择) ReferenceTypeAuxiliary (辅轴位置类型选择) |
_eMC_ START_MODE | 0: _mcAbsolutePosition 1: _mcRelativePosition | 指定MasterStartDistance(主轴跟踪距离) 使用的坐标系。 0:绝对位置 1:相对位置 | StartMode (起始位置方式指定) |
_eMC_STOP_ MODE | 0: _mcDeccelerationStop 1: _mcImmediateStop 2: _mcImmediateStopFEReset 3: _mcFreeRunStop 4: _mcNonStop | 指定停止方法 0:减速停止指令值 1:立即停止 2:立即停止,并进行偏差计数器复位 3:伺服OFF 4:不停止 | StopMode (停止方法选择) |
_eMC_TRIGGER_ LATCH_ID | 0: _mcLatch1 1: _mcLatch2 | 指定使用2个锁定功能中的哪一个。 0:锁定功能1 1:锁定功能2 | LatchID (锁定ID) |
_eMC_ CMDPOS_MODE | 0: _mcCount | 0:使用反馈当前位置更新指令当前 位置 原点确定状态保持不变 | CmdPosMode (指令当前位置计数选择) |
_eMC_ TRANSITION_ MODE | 0: _mcTMNone 10: _mcTMCornerSuperimposed | 指定动作的路径 0:过渡无效 10:附加角 | TransitionMode (过渡模式(切换模式)) |
_eMC_TRIGGER_ MODE | 0: _mcDrive 1: _mcController | 指定触发模式 0:驱动器模式 1:控制器模式 | Mode(模式) |
_eMC_TRIGGER_ INPUT_DRIVE | 0: _mcEncoderMark 1: _mcEXT | 指定驱动器模式时的触发信号 0:Z相 1:外部输入 | InputDrive (驱动触发输入信号) |
_eMC_HOMING_ MODE *5 | 0:_mcHomeSwTurnHomeSwOff 1:_mcHomeSwTurnHomeSwOn 4:_mcHomeSwOff 5:_mcHomeSwOn 8:_mcLimitInputOff 9:_mcHomeSwTurnHomeMask 11:_mcLimitInputOnly 12:_mcHomeSwTurnHoldingTime 13:_mcNoHomeSwHoldingHomeInput 14:_mcHomePreset | 指定要改写的[原点复位动作] 0:指定为附近避让、近原点输入OFF 1:指定为附近避让、近原点输入ON 4:指定为近原点输入OFF 5:指定为近原点输入ON 8:指定为极限输入OFF 9:指定为附近避让、原点输入屏蔽距 离 11:仅极限输入 12:指定为附近避让、接触时间 13:指定为无近原点输入、接触原点 输入 14:原点预设 | - |
_eMC_HOME_ INPUT *5 | 0:_mcZPhase 1:_mcExternalSignal | 选择原点输入信号 0:使用Z相输入 1:使用外部原点输入 | - |
_eMC_LIMIT_ REVERSE_MODE *5 | 0:_mcErrorStop 1:_mcRevImmediateStop 2:_mcRevDecelerationStop | 设定原点复位中极限输入“ON”时的 停止方法 0:不反转/轴异常而停止(遵照极限输 入停止方法) 1:反转/立即停止 2:反转/减速停止 | - |
_eMC_CAM_ CURVE *6 | 0: _mcConstantLine 1: _mcStraightLine 2: _mcParabolic 3: _mcModifiedConstantVel 4: _mcModifiedTrapezoid 5: _mcModifiedSine 6: _mcCycloidal 7: _mcTrapecloid 8: _mcReverseTrapecloid 9: _mcSimpleHarmonic 10: _mcDoubleHarmonic 11: _mcReverseDoubleHarmonic 12: _mcNC2Curve 13: _mcPolynomic3 14: _mcPolynomic5 | 指定到节点为止的凸轮曲线的形状。 0:直线(位移保持) 1:直线 2:等加速度 3:变形等速度 4:变形梯形 5:变形正弦 6:摆线 7:Trapecloid 8:逆Trapecloid 9:单弦 10:复弦 11:逆复弦 12:NC2曲线 13:3次曲线 14:5次曲线 | Curve (曲线形状) |
_eMC_ ACCDECOVER *6 | 0: _mcAccDecOverBuffer 1: _mcAccDecOverRapid 2: _mcAccDecOverErrorStop | 在轴的加减速控制中,优先向目标位 置停止后,产生减速超限。指定超过 最大加减速度时的动作。 0:提高加减速度(将合并切换为等待)*7 1:提高加减速度 2:异常停止*8 | - |
_eMC_ REVERSE_MODE *6 | 0: _mcReverseModeDecelerationStop 1: _mcReverseModeImmediateStop | 指定多重启动指令时、重启指令时、 中断标准定位时的反转时动作。 0:减速停止 1:立即停止 | - |
_eMC_ COUNT_MODE *6 | 0: _mcCountModeLinear 1: _mcCountModeRotary | 设定位置的计数模式。 0:线性模式(有限长) 1:旋转模式(无限长) | - |
_eMC_UNITS *6 | 0: _mcPls 1: _mcMm 2: _mcUm 3: _mcNm 4: _mcDeg 5: _mcInch | 设定指令位置的单位。 0: pulse 1: mm 2: mm 3: nm 4: degree 5: inch | - |
- 1.Ver.1.01以上的CPU单元和Ver.1.02以上的SysmacStudio组合时可指定。
- 2.Ver.1.10以上的CPU单元和Ver.1.12以上的SysmacStudio组合时可指定。
- 3.使用_mcLatestCommand时,必须在满足以下关系的条件下使用主轴、从轴。Master(主轴)设定的运动控制系统变量的轴号<Slave(从轴)设定的运动控制系统变量的轴号
- 4.任务周期分为原始恒定周期任务的周期和固定周期任务(执行优先度5)的周期。
- 5.Ver.1.03以上的CPU单元和Ver.1.04以上的SysmacStudio组合时可指定。
- 6.Ver.1.08以上的CPU单元和Ver.1.09以上的SysmacStudio组合时可指定。
- 7.Ver.1.10以上的CPU单元,无法将合并切换为等待。详情请参阅“NJ/NX系列CPU单元用户手册运动控制篇(SBCE-363)”。
- 8.Ver.1.10以上的CPU单元,合并动作时不会异常停止。详情请参阅“NJ/NX系列CPU单元用户手册运动控制篇(SBCE-363)”。
运动控制指令的输出变量
- 以下是运动控制指令的输出变量一览表。
输出变量 | 名称 | 数据类型 | 有效范围 | 内容 |
---|---|---|---|---|
Done | 完成 | BOOL | TRUE, FALSE | 指令执行完毕时变为TRUE。 此时,输出变量Active、Error、CommandAborted为 FALSE。 指令完成时,输入变量Execute为FALSE时,Done至少 在一个周期内为TRUE。 Execute为TRUE时,Done则在Execute变为FALSE之前保 持TRUE状态。 |
Busy | 执行中 | BOOL | TRUE, FALSE | 接收指令后变为TRUE |
Active | 控制中 | BOOL | TRUE, FALSE | 控制中变为TRUE。 所谓控制中,是指该指令对轴及轴组进行实际控制的 时候。此时,输出变量Done、Error、CommandAborted 变为FALSE。 |
Enabled | 有效 | BOOL | TRUE, FALSE | 控制中变为TRUE。 |
CommandAborted | 执行中断 | BOOL | TRUE, FALSE | 无法启动指令、或执行中发生中断时变为TRUE。 对象轴或轴组发生异常时无法启动指令。同样,减速 停止中也无法启动指令。 启动了其他指令、或发生本指令以外的异常时,指令 中断。 此时,输出变量Done、Active、Error变为FALSE。输入 变量Execute为FALSE时发生中断时,CommandAborted 至少在一个周期内为TRUE。 Execute或Enable为TRUE时,CommandAborted则在 Execute或Enable变为FALSE之前保持TRUE状态 |
Error | 错误 | BOOL | TRUE, FALSE | 因输入变量错误或指令处理而发生异常时变为TRUE *1 |
ErrorID | 错误代码 | WORD | *2 | 发生异常时,输出错误代码。 16#0000表示正常 |
Failure | 非法结束 | BOOL | TRUE, FALSE | 指令未正常执行时变为TRUE |
Status | 可运行 | BOOL | TRUE, FALSE | 进入可运行状态时变为TRUE |
EndOfProfile | 凸轮周期完成 | BOOL | TRUE, FALSE | 执行凸轮表终点后变为TRUE |
Index | 索引 | UINT | 正数或 “0” | 输出凸轮数据的索引编号 |
StartSync | 跟踪中 | BOOL | TRUE, FALSE | 开始为同步进行加减速动作时变为TRUE |
RecordedPosition | 锁定位置 | LREAL | 负数、正 数、“0” | 输出锁定的位置 *3 |
Invalid | 轴间偏差超调 | BOOL | TRUE, FALSE | 超过轴间偏差容许值时变为TRUE |
DeviatedValue | 轴间偏差值 | LREAL | 负数、正 数、“0” | 输出指定的主轴和从轴的差异量 *3 |
EndPointIndex | 终点索引 | UINT | 正数或 “0” | 输出凸轮表的终点索引 |
MaxDataNumber | 最大凸轮 数据数 | UINT | 正数 | 输出最大凸轮数据数 |
InVelocity | 达到目标速度 | BOOL | TRUE, FALSE | 达到目标速度后变为TRUE |
InSync | 同步中 | BOOL | TRUE, FALSE | 与主轴同步时、或者从轴到达从轴同步位置时变为 TRUE |
InGear | 齿轮比到达 | BOOL | TRUE, FALSE | 从轴达到目标速度时变为TRUE |
InCombination | 加减运算中 | BOOL | TRUE, FALSE | 加减运算时变为TRUE |
InCam | 凸轮动作中 | BOOL | TRUE, FALSE | 执行凸轮表起点后变为TRUE |
InTorque | 目标转矩到达 | BOOL | TRUE, FALSE | 达到目标转矩时变为TRUE |
InFeed | 标准传送中 | BOOL | TRUE, FALSE | 接受锁定输入后进行标准传送时变为TRUE |
InZone | 区域内 | BOOL | TRUE, FALSE | 轴位置在区域范围内时变为TRUE |
Valid*4 | 有效 | BOOL | TRUE, FALSE | 控制中变为TRUE |
Command Position*4 | 指令当前位置 | ARRAY [0..3] OF LREAL | 负数、正 数、“0” | 输出指令位置的当前值*3 |
ActualPosition*4 | 反馈当前位置 | ARRAY [0..3] OF LREAL | 负数、正 数、“0” | 输出反馈位置的当前值*3 |
InPosition*4 | 到位 | BOOL | TRUE, FALSE | 所有构成轴的反馈当前位置进入目标位置的到位宽度 内时变为TRUE |
InOperation*5 | 动作中 | BOOL | TRUE, FALSE | 指令动作中变为TRUE。 |
CalcPosition*5 | 计算位置 | LREAL | 负数、正 数、“0” | 输出指定的时间戳的位置。*3 |
ErrorParameterCode*6 | 参数详情代码 | WORD | *7 | 有些错误代码存在附属信息。如果存在该信息,则输 出异常参数的详情代码。 |
ErrorNodePointIndex* | 节点元素编号 | UINT | *7 | 有些错误代码存在附属信息。如果存在该信息,则输 出异常节点的元素编号。 |
OutputtedOffset Position*8 | 位置偏置输出 值 | LREAL | 负数、正 数、“0” | 输出在指令当前位置叠加的位置偏置。 Active为TRUE时更新值。 CommandAborted或Error为TRUE时,停止更新并保持 值。 |
- 1.Error(错误)在执行MC_Reset(轴错误复位)指令、MC_GroupReset(轴组错误复位)指令、ResetMCError(所有错误复位)指令之前不会被清零。此规格与PLCopen不同。PLCopen中,在Execute(启动)的下降沿变为FALSE。此外,在Error为TRUE时,不启动运动控制指令。解除异常后,即使Execute为TRUE,由于不是上升沿,因此也不启动指令。Enable型运动控制指令在Enable(有效)为TRUE时启动。
- 2.与事件代码的前四位数字相同。详情请参阅“A-1错误代码一览(P.A-2)”。
- 3.以指令单位表示。指令单位有[mm]、[μm]、[nm]、[degree]、[inch]或[pulse]。
- 4.Ver.1.01以上的CPU单元和Ver.1.02以上的SysmacStudio组合时可使用。
- 5.Ver.1.06以上的CPU单元和Ver.1.07以上的SysmacStudio组合时可使用。
- 6.Ver.1.08以上的CPU单元和Ver.1.09以上的SysmacStudio组合时可指定。
- 7.详情请参阅“A-1错误代码一览(P.A-2)”。
- 8.Ver.1.10以上的CPU单元和Ver.1.12以上的SysmacStudio组合时可使用。
- 参考
- 运行模式变更后想要浏览运动控制指令的输出变量时,请分配输出参数属性为保持属性的变量。
- 浏览分配的输出参数,便可以查看变更运行模式前的输出变量。
运动控制指令的输入输出变量
- 以下是运动控制指令的输入输出变量一览表。
输入输出变量 | 名称 | 数据类型 | 有效范围 | 内容 |
---|---|---|---|---|
Axis | 轴 | _sAXIS_REF | - | 指定轴 |
AxesGroup | 轴组 | _sGROUP_REF | - | 指定轴组 |
Auxiliary | 辅轴 | _sAXIS_REF | - | 指定辅轴 |
Master | 主轴 | _sAXIS_REF | - | 指定主轴 |
Slave | 从轴 | _sAXIS_REF | - | 指定从轴 |
CamTable | 凸轮表 | ARRAY[0..N] OF _sMC_CAM_REF | - | 将凸轮数据结构体_sMC_CAM_REF型的数组变量 作为凸轮表指定。 *1 |
TriggerInput | 触发输入条件 | _sTRIGGER_REF | - | 设定触发条件 |
TriggerVariable | 触发变量 | BOOL | TRUE, FALSE | 在触发条件下指定控制器模式时,指定触发的输 入变量 |
Target | 写入对象 | _sAXIS_REF 或 _sGROUP_REF | - | 指定作为写入对象的轴或者轴组 |
SettingValue | 设定值 | 视指定的变量类型 而定 | - | 指定写入的值。 有效范围根据通过ParameterNumber(参数编号)指 定的运动控制参数而定。 *2 初始值为“0” |
Axes*3 | 轴组构成轴 | ARRAY[0.0.3] OF UINT | - | 指定改写后的构成轴的轴号 |
Homing Parameter *4 | 原点复位参数 | _sHOMING_REF | - | 设定原点复位参数。 |
Switches*5 | 开关 | ARRAY[0..255] OF _sCAMSWITCH_ REF | - | 将开关结构体_sCAMSWITCH_REF型的数组变量 指定为开关的ON/OFF模式数据。 数组元素编号表示开关编号。 |
Outputs*5 | 输出信号 | ARRAY[0..15] OF _sOUTPUT_REF | - | 将输出信号_sOUTPUT_REF型的数组变量指定为 基于开关的ON/OFF模式数据计算出的数字输出 的ON/OFF时刻的输出对象。数组元素编号表示 轨段编号。 通过将该数组变量指定为NX_AryDOutTimeStamp 指令的输入输出变量,将实际的数字输出设为 ON/OFF。 |
TrackOptions*5 | 轨段选项 | ARRAY[0..15] OF _sTRACK_REF | - | 将轨段选项结构体_sTRACK_REF型的数组变量 指定为开关的动作条件。数组元素编号表示轨段 编号。 |
CamProperty*6 | 凸轮属性 | _sMC_CAM_PROP ERTY | - | 指定凸轮属性结构体_sMC_CAM_PROPERTY型 的变量。 请指定通过_sMC_CAM_PROPERTY型的用户定 义变量或Sysmac Studio的凸轮编辑器创建的凸轮 属性变量。 |
CamNodes*6 | 凸轮节点 | ARRAY[0..N] OF _sMC_CAM_NODE | - | 指定凸轮节点结构体_sMC_CAM_NODE型的数组 变量。 请指定通过_sMC_CAM_NODE型的用户定义变量 或*7Sysmac studio的凸轮编辑器创建的凸轮节点 变量。 |
AxisParameter*6 | 轴参数 | _sAXIS_PARAM | - | 改写时指定轴参数。 读取时,将_sAXIS_PARAM型的变量指定为已读 取的轴参数的保存位置。 |
- 1.数组元素[N]通过SysmacStudio自动设定。请指定通过SysmacStudio的凸轮编辑器创建的凸轮数据变量。
- 2.关于变量的数据类型,请参阅“参数的数据类型和有效范围(P.5-14)”。
- 3.Ver.1.01以上的CPU单元和Ver.1.02以上的SysmacStudio组合时可指定。
- 4.Ver.1.03以上的CPU单元和Ver.1.04以上的SysmacStudio组合时可指定。
- 5.Ver.1.06以上的CPU单元和Ver.1.07以上的SysmacStudio组合时可指定。
- 6.Ver.1.08以上的CPU单元和Ver.1.09以上的SysmacStudio组合时可指定。
- 7.创建用户定义变量时,请确保数组变量的元素开始编号为0,数组元素[N]为358以下。