123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- using MECF.Framework.Common.Device.Galil;
- using MECF.Framework.Common.TwinCat;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection;
- using System.Text;
- using System.Threading.Tasks;
- namespace PunkHPX8_RT.Devices.AXIS
- {
- public class GalilCommonAxis
- {
- #region 常量
- private const string IS_SWITCH_ON = "IsSwitchOn";
- private const string STOP_CODE = "StopCode";
- private const string MOTOR_POSITION = "MotorPosition";
- private const string POSITION_ERROR = "PositionError";
- private const string ACTUAL_TORQUE = "ActualTorque";
- private const string ACTUAL_VELOCITY = "Velocity";
- private const string FORWARD_LIMIT = "ForwardLimit";
- private const string TARGET_POSITION = "ReferencePosition";
- #endregion
- #region 内部变量
- private string _module;
- private string _name;
- private JetAxisBase _axis;
- #endregion
- /// <summary>
- /// 构造函数
- /// </summary>
- /// <param name="_module"></param>
- /// <param name="name"></param>
- public GalilCommonAxis(string module,string name,JetAxisBase jetAxisBase)
- {
- _module = module;
- _name = name;
- _axis = jetAxisBase;
- }
- /// <summary>
- /// 订阅变量
- /// </summary>
- public void SubscriptionVariable()
- {
- _axis.AxisSubscribeUpdateVariable(IS_SWITCH_ON);
- _axis.AxisSubscribeUpdateVariable(STOP_CODE);
- _axis.AxisSubscribeUpdateVariable(MOTOR_POSITION);
- _axis.AxisSubscribeUpdateVariable(POSITION_ERROR);
- _axis.AxisSubscribeUpdateVariable(ACTUAL_TORQUE);
- _axis.AxisSubscribeUpdateVariable(ACTUAL_VELOCITY);
- _axis.AxisSubscribeUpdateVariable(FORWARD_LIMIT);
- _axis.AxisSubscribeUpdateVariable(TARGET_POSITION);
- }
- /// <summary>
- /// 上电
- /// </summary>
- /// <returns></returns>
- public bool WriteSwitchOn()
- {
- return GalilControllerCfgManager.Instance.SetAxisCommand(_module, _name, "SH", null);
- }
- /// <summary>
- /// 下电
- /// </summary>
- /// <returns></returns>
- public bool WriteSwitchOff()
- {
- return GalilControllerCfgManager.Instance.SetAxisCommand(_module, _name, "MO", null);
- }
- /// <summary>
- /// 写入相对位置
- /// </summary>
- /// <param name="referencePosition"></param>
- /// <returns></returns>
- public bool WriteReferencePosition(int referencePosition)
- {
- return GalilControllerCfgManager.Instance.SetAxisCommand(_module, _name, "PR", referencePosition);
- }
- /// <summary>
- /// 写入绝对位置
- /// </summary>
- /// <param name="referencePosition"></param>
- /// <returns></returns>
- public bool WriteAbsolutePosition(int absolutePosition)
- {
- return GalilControllerCfgManager.Instance.SetAxisCommand(_module, _name, "PA", absolutePosition);
- }
- /// <summary>
- /// 写入速度
- /// </summary>
- /// <param name="referencePosition"></param>
- /// <returns></returns>
- public bool WriteSpeed(int speed)
- {
- return GalilControllerCfgManager.Instance.SetAxisCommand(_module, _name, "SP", speed);
- }
- /// <summary>
- /// 写入加速度
- /// </summary>
- /// <param name="referencePosition"></param>
- /// <returns></returns>
- public bool WriteAcceleration(int acceleration)
- {
- return GalilControllerCfgManager.Instance.SetAxisCommand(_module, _name, "AC", acceleration);
- }
- /// <summary>
- /// 写入减速度
- /// </summary>
- /// <param name="referencePosition"></param>
- /// <returns></returns>
- public bool WriteDeceleration(int deceleration)
- {
- return GalilControllerCfgManager.Instance.SetAxisCommand(_module, _name, "DC", deceleration);
- }
- /// <summary>
- /// 停止
- /// </summary>
- /// <returns></returns>
- public bool WriteStop()
- {
- return GalilControllerCfgManager.Instance.SetAxisCommand(_module, _name, "ST", null);
- }
- /// <summary>
- /// 开始运动
- /// </summary>
- /// <returns></returns>
- public bool WriteStartMotion()
- {
- return GalilControllerCfgManager.Instance.SetAxisCommand(_module, _name, "BG", null);
- }
- /// <summary>
- /// Home 电机
- /// </summary>
- /// <returns></returns>
- public bool WriteHomeAxisCommand()
- {
- return GalilControllerCfgManager.Instance.SetAxisCommand(_module, _name, "HM", null);
- }
- /// <summary>
- /// Home 电机
- /// </summary>
- /// <returns></returns>
- public bool WriteFIAxisCommand()
- {
- return GalilControllerCfgManager.Instance.SetAxisCommand(_module, _name, "FI", null);
- }
- /// <summary>
- /// Home 电机
- /// </summary>
- /// <returns></returns>
- public bool WriteCNCommand(string cn)
- {
- return GalilControllerCfgManager.Instance.SetSystemCommand(_module, _name, "CN", cn);
- }
- /// <summary>
- /// 手动置零
- /// </summary>
- /// <returns></returns>
- public bool WriteDP(int dp)
- {
- bool result = GalilControllerCfgManager.Instance.SetAxisCommand(_module, _name, "DP", dp);
- if (result)
- {
- return GalilControllerCfgManager.Instance.SetAxisCommand(_module, _name, "DE", dp);
- }
- return false;
- }
- }
- }
|