机器自动化控制器——第二章 变量和指令 1
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(虚拟编码器轴) |