一、引言
本文主要介绍的是正运动ZMotion系列的运动控制卡,运动控制卡核心在于框架的搭建,具体实现方法其实基本一致。雷赛:DMC2410。正运动:ZMC304。
首先创建轴基类,具体如下所示:
二、轴参数基类
1.轴参数
//控制卡卡号
public ushort Axis_CardNo { get; set; }
//轴号
public ushort Axis_Num { get; set; }
//轴名
public string Axis_Name { get; set; }
//脉冲当量:每走一个物理单位需要发送的脉冲数量(pluse/mm 或者 pluse/°)
public double Axis_PulseEquivalent { get; set; }
2.Jog点动参数
//初始速度,单位为 mm/s 或者°/s
public double Speed_Jog_Start{get;set;}
//停止速度
public double Speed_Jog_Stop{get;set;}
//Jog高速
public double Speed_Jog_High{get;set;}
//Jog低速
public double Speed_Jog_Low{get;set;}
//Jog加速时间(s)
public double Time_Jog_Acc{get;set;}
//Jog减速时间(s)
public double Time_Jog_Dec{get;set;}
3.Axis自动模式参数
//自动开始速度
public double Speed_Auto_Start{get;set;}
//自动停止速度
public double Speed_Auto_Stop{get;set;}
//自动最小速度
public double Speed_Auto_Min{get;set;}
//自动最大速度
public double Speed_Auto_Max{get;set;}
//自动加速时间
public double Time_Auto_Acc{get;set;}
//自动减速时间
public double Time_Auto_Dec{get;set;}
4.Axis回原参数
//回原开始速度
public double Speed_Home_Start{get;set;}
//回原停止速度
public double Speed_Home_Stop{get;set;}
//回原最小速度
public double Speed_Home_Min{get;set;}
//回原最大速度
public double Speed_Home_Max{get;set;}
//回原加速时间
public double Time_Home_Acc{get;set;}
//回原减速时间
public double Time_Home_Dec{get;set;}
//回原方向 雷赛:1:正方向回原 2:负方向回原
public ushort Home_Dir {get;set;}
//回原模式 雷赛:0:只计home 一般设为2
public ushort Home_Mode{get;set;}
//回原完成标志 true:回到原点 false:未回到原点
public bool Home_FinishMark{get;set;}
5.Axis标志位
//异常停止
public bool Flag_ExceptionStop{get;set;}
//轴运行状态 AxiStates为枚举,见三
public AxiStates AxiState { get; set; }
//伺服报警标志
public Flag_ServoAlarm{get;set;}
//正限位触发标志
public bool Flag_PositiveLimit{get;set;}
//负限位触发标志
public bool Flag_NegativeLimit{get;set;}
//原点标志
public bool Flag_Origion{get;set;}
//急停标志
public bool Flag_Emo{get;set;}
//伺服使能标志
public bool Flag_ServoOn{get;set;}
//运动中标志
public bool Flag_Run{get;set;}
//轴当前位置
public double Position_Current{get;set;}
6.剩余参数(如软限位和设定速度、位置等等)
//正向软限位 单位: mm
public double Position_PosSoftLimit{get;set;}
//负向软限位 单位: mm
public double Position_NegSoftLimit{get;set;}
//轴安全位置
public double Position_Safe{get;set;}
//多段的设定速度、位置etc........
三:轴状态
轴状态为枚举类型:
public enum AxiStates
{
急停,
报警,
停止,
回原点中,
自动运行中,
未回原点,
准备就绪
}
四:整体的AxisModel
接下来就可以建立轴模型类了,需要注意的是:实际的位置或者是速度需要乘以脉冲当量。
296

被折叠的 条评论
为什么被折叠?



