直接跳到内容
本页目录

轴的组态

在组态运动控制逻辑前,需要先进行轴组态。本章节将对轴组态进行详细介绍。

新建轴配置

1、设备节点右键选择‘轴配置’。

img

2、点击确定后将在设备树上生成'Axis Pool'轴组节点。

img

Axis Pool配置页面

基本配置

img

关联任务:Axis Pool轴算法关联任务。由于运动控制对实时性要求很高,因此关联的任务优先级必须为0,且需要和被控制设备的总线任务相同,这样运动控制算法和被控设备的数据可实现同步。

轴选择

img

参与比较:勾选的轴会在'轴参数对比'页面生成对应轴的数据。

轴参数选择

img

参与比较:勾选的轴参数会在'轴参数对比'页面生成对应轴参数数据。

轴参数对比

在线时可观察参与比较轴的实时数据。

img

IEC对象

img

Axis Pool内部数据,用户可不用关心。

新建轴

1、右键'Axis Pool'轴组节点,选择'新建轴'。

img

2、点击确定后会弹出'添加设备'对话框,可以选择要添加的轴类型。

img

3、如下是选择'PositionControl_Axis'位置轴生成的轴节点。

img

轴配置页面

基本属性

img

轴名称:轴的名字。例如Axis_X、Axis_Y等。

单元ID:轴在运动控制算法中的ID号。范围0~65535。一般会自动分配,用户可不关心。但不允许重复。

虚拟轴:内部软轴,实现运动轨迹规划计算,但不对外输出或采集(即不控制实际的执行机构)。

旋转轴:轴的行程是循环模式,例如0~360度,轴在360度时继续向前转动就会回到0度继续累加。

线性轴:轴的行程是有范围的,例如-10000~10000,超出这个范围轴将超限报警停止运动。

位置单位:将轴位置单位转换为用户需要的单位所需的系数。例如电机转动一圈需要1048576个指令位置,用户单位希望是度,那么位置单位=1048576/360,这样轴位移1就表示1度。

模数起始:只对旋转轴有效。循环行程左限值。

模数长度:只对旋转轴有效。循环行程长度。例如模数起始= -10000,模数长度= 20000,那么轴的循环区间就是[-10000,10000)。

动态参数

编码器轴无此页面。

img

梯形:轴加减速阶段的速度曲线为梯形。

img

S型:轴加减速阶段的速度曲线为S形。

img SIN二次方:轴加减速阶段的速度曲线为SIN二次方曲线。

img

以设定减速度停止:轴减速停止时按照设定减速度停止。

立即停止:轴减速停止时立即停止。

急停减速度:轴遇到限位、FE超限等错误时,按照此减速度停止。

驱动设备

编码器轴无此页面。

img

设备名称:选择轴要控制的伺服设备名称。例如:EtherCAT总线下的MADHT1505BA1_0。

设备类型:选择要控制伺服的类型。例如:直连型、EtherCAT总线型。

驱动方向反向:控制驱动方向反向。例如控制轴正向位移时,电机实际方向不对,可以勾选此项实现反向。

驱动使能关联信号:轴伺服使能关联的变量。轴使能状态将反馈到这个变量上。

驱动使能有效电平:轴使能信号有效电平,轴使能时关联信号的电平状态。

输出映射:轴与伺服电机输出变量映射关系,只有映射了变量才能使轴正确控制该伺服电机。

以下步骤可实现轴的输出映射

1、在伺服设备的I/O映射表中映射必要的变量,该变量可以是用户工程中已经存在的变量,也可以直接输入变量名,系统将自动创建该变量。

img

2、关联轴与被控伺服电机的输出映射。

img

必要输出参数说明:

轴对象成员伺服电机变量说明
out.outputVelocityVpspeed目标速度,一般在伺服电机16#60FF:00索引下。(位置轴可不映射此参数)
out.outputPositionDpos1目标位置,一般在伺服电机16#607A:00索引下。(速度轴可不映射此参数)
out.ControlWordControlWord1控制字,一般在伺服电机16#6040:00索引下。(必须映射)
out.ModesOfOperationModeOP1控制模式, 一般在伺服电机16#6060:00索引下。(必须映射)

编码器设备

img

启用编码器:勾选时轴实际位置来自编码器采集值。不勾选时轴实际位置等于轴解算位置。

编码器位宽:设定编码器位宽值。例如编码器是20位的,那么此处须填20。

编码器类型:增量:编码器采集值是以增量形式变化;绝对值:编码器位置是以绝对值形式变化。

反向编码器:当采集编码器的运动方向和轴显示方向不同时,可勾选此项。

比例缩放分子:编码器采集值缩放系数分子。

比例缩放分母:编码器采集值缩放系数分母。例如:分子=1,分母=2,编码器变化量为100,那么轴上显示的位置变化量=100*(1/2)=50。

以下步骤可实现轴的输入映射

1、在伺服设备的I/O映射表中映射必要的变量,该变量可以是用户工程中已经存在的变量,也可以直接输入变量名,系统将自动创建该变量。

img

2、关联轴与被控伺服电机的输入映射。

img

必要输入参数说明:

轴对象成员伺服电机变量说明
in.inputMpos1实际位置,一般在伺服电机16#6064:00索引下。(不启用编码器可不映射此参数)
in.StatusWordStatusword1状态字,一般在伺服电机16#6041:00索引下。( 编码器轴可不映射。 )
in.ModesOfOperationDisplayModeOpDis1控制模式显示, 一般在伺服电机16#6061:00索引下。(编码器轴可不映射。)

位置控制

编码器轴无此页面。

img

输出比例分子:位置轴有效。输出位置比例系数分子。

输出比例分母:位置轴有效。输出位置比例系数分母。例如:电机每1048576个指令位置转一圈360度,如果设置输出比例分子=1048576,输出比例分母=360,那么轴位移1就表示1度。

比例P增益:速度轴有效。位置闭环PID的比例P增益。

积分I增益:速度轴有效。位置闭环PID的积分I增益。

微分D增益:速度轴有效。位置闭环PID的微分D增益。

速度反馈增益:速度轴有效。位置闭环PID的速度反馈增益。

位置反馈增益:速度轴有效。位置闭环PID的位置反馈增益。

速度前馈增益:速度轴有效。位置闭环PID的速度前馈增益。

加速度前馈增益:速度轴有效。位置闭环PID的加速度前馈增益。

启用死区控制:速度轴有效。下限:死区下限。上限:死区上限。例如:有一个执行机构在PID输出-0.2~0.3之间执行机构无动作。为了使执行机构避开死区快速响应动作,那么此处死区下限设置为-0.2,死区上限设置为0.3。此时当PID计算值<0时,PID实际输出值=PID计算值+(-0.2),此时当PID计算值>0时,PID实际输出值=PID计算值+(0.3)。

回路输出系数:速度轴有效。PID输出系数。例如设置为1.1,实际PID输出值=PID计算值*1.1。

回路输出最大值:速度轴有效。PID输出最大限制值。例如设置为65535,当PID计算值<-65535时,实际输出为-65535;当PID计算值>65535时,实际输出为65535。

位置限制

编码器轴无此页面。

img

启用硬限位:启用硬限位后,轴将在遇到正负硬限位有效时快速减速停止。不启用时,将不受硬限位信号影响。

负向硬限位信号:负向硬限位关联的变量,当轴负向运动,遇到负向限位信号有效时,轴将快速减速停止。

负向硬限位有效电平:负向硬限位关联变量的有效电平。

正向硬限位信号:正向硬限位关联的变量,当轴正向运动,遇到正向限位信号有效时,轴将快速减速停止。

正向硬限位有效电平:正向硬限位关联变量的有效电平。

启用软限位:启用软限位后,轴在超出正负软限位位置时快速减速停止。不启用时,将不受软限位位置影响。

负向软限位位置:轴负向运动,超出此位置时快速减速停止。

正向软限位位置:轴正向运动,超出此位置时快速减速停止。

使用举例:

线性轴都有一个有限的运动范围。为了防止轴运动超出范围外造成设备损坏,就需要设置硬限位和软限位实现双重保护,使得轴在运动到范围外时能够快速停止避免损坏。例如:X轴极限范围为-120CM~120CM,有效范围为-100CM~100CM。那么负向硬限位开关就需要安装在-110的位置(要留一定的减速位置),正向硬限位开关就需要安装在110的位置(要留一定的减速位置)。负向软限位设定为-100,正向软限位设定为100。

位置监测

编码器轴无此页面。

img

跟随误差最大限值:轴目标位置(TargetValue.TargetPosition)与实际位置(ActualValue.ActualPosition)偏差(FollowErrorSetting.FollowError)绝对值的最大允许超出值。

容许超限连续周期数:跟随误差连续超限的最大允许次数。

位置超限处理方式:忽略:忽略该错误,轴运动不受任何影响。报警:轴状态(AxisStatus.FollowErrorExceed_Warning)被置TRUE,但轴运动不受任何影响。失能:轴伺服使能断开,电机动力线断电。轴进入PLCopen_STATE_Disabled状态,运动指令被终止(可通过重新触发MC_Power使能轴即可恢复)。停止:轴进入PLCopen_ErrorStop状态,运动指令被终止(可通过触发MC_Reset清除此错误)。

目标位置到位:只要轴目标位置到达,就认为轴运动结束,运动动指令结束标志Done将被置TRUE。

停止位置窗口:轴目标位置到达时,轴实际位置与目标位置偏差的绝对值还需小于此设定值,才认为轴运动结束,运动动指令结束标志Done才被置TRUE。

停止窗口区间最小滞留时间:当轴实际位置与目标位置偏差的绝对值在该设定时间内仍不小于停止窗口设定值,仍然认为轴运动结束,运动指令结束标志Done仍被置TRUE。

回零

编码器轴无此页面。

img

回零模式:轴回零的几种方式,具体要根据实际设备回零方式选择匹配的模式。

正向、负向、当前方向:轴回零的第一阶段运动方向。

逼近速度:轴在后期回零时使用的速度。一般此值设定较小,因为此时离零点已经很近,需要低速找到准确的零点位置。

回零输入标志信号:回零输入标志信号关联的变量。

回零标志信号有效电平:回零输入标志信号关联的变量有效电平。

辅助回零输入标志信号:辅助回零输入标志信号关联的变量。

辅助回零标志信号有效电平:辅助回零输入标志信号关联的变量有效电平。

回零的几种模式:

1、仅使用回零信号:轴按照设定速度(SetValue.SetVelocity)设定方向(正向、负向、当前方向)运动(阶段1),遇到回零输入标志信号有效时减速停止(阶段2),然后按照逼近速度(HomeSetting.CreepVelocity)反向运动(阶段3),遇到回零输入标志信号下降沿时,设定此处为原点位置并减速停止(阶段4),最后再反向回到原点位置(阶段5)。

特殊情况:一开始回零输入标志信号有效,则直接进入阶段3。

img

2、仅使用辅助回零信号:轴按照逼近速度(HomeSetting.CreepVelocity)设定方向(正向、负向、当前方向)运动(阶段1),遇到辅助回零输入标志信号有效时,设定此处为原点位置并减速停止(阶段2),最后再反向回到原点位置(阶段3)。

特殊情况:一开始辅助回零输入标志信号有效,则直接进入阶段2。

img

3、回零信号和辅助回零信号都使用:轴按照设定速度(SetValue.SetVelocity)设定方向(正向、负向、当前方向)运动(阶段1),遇到回零输入标志信号有效时减速停止(阶段2),然后按照逼近速度(HomeSetting.CreepVelocity)反向运动(阶段3),遇到回零输入标志信号下降沿后且遇到辅助回零信号上升沿时,设定此处为原点位置并减速停止(阶段4),最后再反向回到原点位置(阶段5)。

特殊情况:一开始回零输入标志信号有效,则直接进入阶段3。

img

IEC对象

img

此页面为轴所有运算数据,在线时可查看实时值,需要修改某个参数值时,除了组态逻辑中对其赋值外,还可添加到监视列表进行修改。

关键IEC对象数据表:

Basic类型名称含义
Axis.AxisIDWORD轴ID系统为轴分配的号码,用户不用关心。
Axis.DriveControlModeMC_DRIVE_CONTROL_MODE轴类型mcStepper:位置轴,mcServo:速度轴。
Axis.UserUnitLREAL位置单位将轴单位转换为用户期望单位的转换系数
Status类型名称含义
Axis.AxisStateMC_PLCopen_STATE轴状态轴PLCopen状态,包含未使能、空闲、错误停止等
Axis.MotionCmdCurrentMC_CMD_TYPE当前指令轴缓存的第一条指令,例如:MoveRelative
Axis.MotionCmdNextMC_CMD_TYPE下一个指令轴缓存的第二条指令,例如:MoveAbsolute
Axis.AxisStatus.FollowErrorExceedBOOLFE偏差报警当轴目标位置和实际位置偏差超设定值时置TRUE
Axis.AxisStatus.HardwareLimit_PositionBOOL正向硬限位报警当轴遇到正向硬限位时置TRUE
Axis.AxisStatus.HardwareLimit_NegativeBOOL负向硬限位报警当轴遇到负向硬限位时置TRUE
Axis.AxisStatus.SoftwareLimit_PositionBOOL正向软限位报警当轴遇到正向软限位时置TRUE
Axis.AxisStatus.SoftwareLimit_NegativeBOOL负向软限位报警当轴遇到负向软限位时置TRUE
Axis.AxisStatus.FollowErrorExceed_WarningBOOLFE偏差警告当轴目标位置和实际位置偏差超设定值时置TRUE
SystemMarkBOOL轴解算标志轴解算时置TRUE
struct1~6BOOL备用备用
Positions类型名称含义
Axis.TargetValue.TargetPositionLREAL目标位置轴目标位置(用户单位)
Axis.ActualValue.ActualPositionLREAL实际位置轴实际位置(用户单位)
Axis.FollowErrorSetting.FollowErrorLREAL位置偏差轴位置偏差(用户单位)
Axis.FollowErrorSetting.FEMaxLimitLREAL位置偏差最大允许值轴位置偏差最大允许值(用户单位)
Axis.AxisRotaryOrLinearMC_ROTARY_OR_LINEAR位置行程模式线性轴:有限行程;旋转轴:循环行程。
Axis.Modulo.StartingValueLREAL循环行程起始值循环行程左限值(用户单位)
Axis.Modulo.LengthLREAL循环行程长度循环行程长度(用户单位)
Axis.MotionCmdCurrentValue.EndPositionLREAL结束位置指令结束位置(用户单位)
Axis.MotionCmdCurrentValue.RemainPositionLREAL剩余位置指令剩余位置(用户单位)
Velocity类型名称含义
Axis.SetValue.SetVelocityLREAL设定速度轴设定速度(用户单位)
Axis.SetValue.SetAccelerationLREAL设定加速度轴设定加速度(用户单位)
Axis.SetValue.SetDecelerationLREAL设定减速度轴设定减速度(用户单位)
Axis.TargetValue.TargetVelocityLREAL目标速度轴目标速度(用户单位)
Axis.ActualValue.ActualVelocityLREAL实际速度轴实际速度(用户单位)
Axis.TargetValue.TargetDirectionMC_DIRECTION目标方向轴目标方向(正向、负向)
Axis.HomeSetting.CreepVelocityLREAL回零逼近速度轴回零逼近速度(用户单位)
Axis.EmergentStopDecelreationLREAL急停减速度轴急停减速度(用户单位)
Axis.SetValue.SetJerkLREAL设定加加速度轴设定加加速度(用户单位)
Axis.RampTypeMC_RAMP_TYPE速度斜坡类型轴加减速类型(梯形、S形、SIN二次方)
Axis.MotionEndSetting.MotionEndModeMC_MOTION_END_MODE运动停止标志TargetPosOnly:仅目标位置到位 TargetPosAndFollowError:目标位置到位且位置偏差满足要求
Axis.MotionStopModeMC_MOTION_STOP_MODE命令停止模式MC_STOP_MODE_DECEL:减速停止
Gains类型名称含义
Axis.PosClosedLoopGain.PLREAL比例P增益位置闭环PID比例P增益
Axis.PosClosedLoopGain.ILREAL积分I增益位置闭环积分I增益
Axis.PosClosedLoopGain.DLREAL微分D增益位置闭环微分D增益
Axis.PosClosedLoopGain.FeedForward_VelocityLREAL速度前馈增益位置闭环速度前馈增益
Axis.PosClosedLoopGain.FeedForward_AccelerationLREAL加速度前馈增益位置闭环加速度前馈增益
Axis.PosClosedLoopGain.FeedBack_VelocityLREAL速度反馈增益位置闭环速度反馈增益
Axis.PosClosedLoopGain.FeedBack_PositionLREAL位置反馈增益位置闭环位置反馈增益
Axis.PosClosedLoopGain.PIDOutputValueLREALPID计算值位置闭环PID计算值
Axis.PosClosedLoopGain.OutputRatioLREAL回路输出系数位置闭环PID回路输出系数
Axis.PosClosedLoopGain.DirectionReverseINT输出反向1:不反向;-1:反向
Axis.PosClosedLoopGain.OutputMaxLimitLREAL回路输出最大值位置闭环PID回路输出最大值
Axis.PosClosedLoopGain.DeadBandControl.EnableBOOL启用死区控制启用后PID输出值会加上死区上下限值
Axis.PosClosedLoopGain.DeadBandControl.UpperBoundLREAL死区上限死区上限:PID计算值>0时加此值
Axis.PosClosedLoopGain.DeadBandControl.LowerBoundLREAL死区下限死区下限:PID计算值<0时加此值
Axis.PosClosedLoopGain.OutputValueLREALPID输出值PID输出值:PID最终输出值
Axis.PosLoopTypeMC_LOOP_TYPE开闭环模式开闭:PID输出值=开环输出值 闭环:PID输出值=PID最终输出值
Axis.OpenLoopOutputLREAL开环输出值开环输出值:开环下PID输出值
Limits类型名称含义
Axis.FollowErrorSetting.FollowErrorLREAL位置偏差位置偏差实际值
Axis.FollowErrorSetting.TimesOfExceedWORD容许超限连续周期数位置偏差连续次数超此设定值时报错
Axis.FollowErrorSetting.FEMaxLimitLREAL跟随误差最大限值最大允许位置偏差设定值
Axis.FollowErrorSetting.FEExceedHandleMC_FE_EXCEES_HANDLE位置超限处理方式忽略、报警、失能、停止。
Axis.FollowErrorSetting.StopFEValueLREAL停止位置窗口位置偏差小于此设定值认为运动结束
Axis.FollowErrorSetting.StopFELastTimeTIME停止窗口最小滞留时间位置偏差在此时间内仍未满足要求仍认为指令结束
Axis.SoftwareLimit.EnableBOOL启用软限位启动:软限位有效。
Axis.SoftwareLimit.PositivePositionLREAL正向软限位位置轴正向运动超过此设定位置将减速停止
Axis.SoftwareLimit.NegativePositionLREAL负向软限位位置轴负向运动超过此设定位置将减速停止
Axis.HardwareLimit.EnableBOOL启用硬限位启动:硬限位有效。
Axis.HardwareLimit.PositiveSignalBOOL正向硬限位信号轴正向运动遇到正向硬限位将减速停止
Axis.HardwareLimit.PositiveEffectiveLevelBOOL正向硬限位有效电平正向硬限位信号有效电平
Axis.HardwareLimit.NegativeSignalBOOL负向硬限位信号轴负向运动遇到负向硬限位将减速停止
Axis.HardwareLimit.NegativeEffectiveLevelBOOL负向硬限位有效电平负向硬限位信号有效电平
Home & Hold类型名称含义
Axis.HomeSetting.HomeModeWORD回零模式仅使用回零信号; 仅使用辅助回零信号; 回零信号和辅助回零信号都使用。
Axis.HomeSetting.DirectionMC_DIRECTION回零方向第一阶段回零运动方向
Axis.HomeSetting.HomeSignalBOOL回零输入标志信号回零标志信号值
Axis.HomeSetting.HomeSignalEffectiveLevelBOOL回零标志信号有效电平回零标志信号有效电平
Axis.HomeSetting.HomeSubSignalBOOL辅助回零输入标志信号辅助回零标志信号值
Axis.HomeSetting.HomeSubSignalEffectiveLevelBOOL辅助回零标志信号有效电平辅助回零标志信号有效电平
Axis.HomeSetting.ReverselfHardwareLimitBOOL遇到限位反向回零遇到限位反向运动
Axis.HomeSetting.CreepVelocityLREAL逼近速度回零逼近速度
Axis.HoldSetting.EnableBOOL启用速度保持启动:速度保持功能有效
Axis.HoldSetting.SignalBOOL速度保持信号速度保持信号值
Axis.HoldSetting.EffectiveLevelBOOL速度保持信号有效电平速度保持信号有效电平
Axis.HoldSetting.HoldVelocityLREAL保持速度值保持速度值,一般设定为0,实现轴暂停功能。
Input & Output类型名称含义
Axis.in.NumeratorDINT编码器比例缩放分子编码器采集值缩放系数分子
Axis.in.DenominatorDINT编码器比例缩放分母编码器采集值缩放系数分母
Axis.in.DirectitionReverseINT反向编码器1:不反向;-1:反向
Axis.in.inputDINT编码器位置编码器采集值(关联编辑器原始值)
Axis.in.preInputDINT上周期编码器位置上周期编码器采集值
Axis.in.StatusWordUINT状态字状态字(关联伺服驱动器输入数据)
Axis.in.ModesOfOperationDisplaySINT控制模式显示控制模式显示(关联伺服驱动器输入数据)
Axis.in.DigitalInputsDWORD数字量输入信号数字量输入信号(关联伺服驱动器输入数据)
Axis.in.reservedARRAY[0..7] OF BYTE备用备用
Axis.out.NumeratorDINT输出比例分子输出位置指令缩放系数分子
Axis.out.DenominatorDINT输出比例分母输出位置指令缩放系数分母
Axis.out.DirectitionReverseINT驱动方向反向1:不反向;-1:反向
Axis.out.outputPositionDINT目标位置输出目标位置输出(关联伺服驱动器输出数据)
Axis.out.outputVelocityDINT目标速度输出目标速度输出(关联伺服驱动器输出数据)
Axis.out.outputTorqueDINT目标力矩输出目标力矩输出(关联伺服驱动器输出数据)
Axis.out.DeltaOutputIncrementLREAL未输出位置量未发送位置值(小于1个指令位置)
Axis.out.ControlWordUINT控制字控制字(关联伺服驱动器输出数据)
Axis.out.ModesOfOperationSINT控制模式控制模式(关联伺服驱动器输出数据)
Axis.out.DigitalOutputsDWORD数字量输出信号数字量输出信号(关联伺服驱动器输出数据)
Axis.out.reservedARRAY[0..7] OF BYTE备用备用
轴的组态已经加载完毕