| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- using SHJX.Service.Model.Dao;
- using SHJX.Service.Model.Control;
- using SHJX.Service.Common.Extend;
- using SHJX.Service.Control.Modules;
- using SHJX.Service.Control.Interface;
- using SHJX.Service.Common.ReadXML;
- namespace SHJX.Service.Control.Route.RouteController
- {
- public class MotorZOperate : FlowControlOperateImp
- {
- private const string OpName = "MotorZ";
- public static bool AxisZdownOrUp = false;//z轴上下状态
- public virtual bool Operate(ReadConfigUtil config, DataEventArgs data)
- {
- var res = data.Task.RouteStep switch
- {
- "Z_Move_Down_From" => SetSerialPortData(data, data.Task.From), //Z轴下降
- "Z_Move_Down_To" => SetSerialPortData(data, data.Task.To, isdeduct: true),
- "Z_Move_GoBack_From" or "Z_Move_GoBack_To" => MotorZGoBack(data), //Z轴上升
- _ => false
- };
- return res;
- }
- /// <summary>
- /// Z轴下降
- /// </summary>
- /// <param name="data"></param>
- /// <param name="local">地址</param>
- /// <param name="isdeduct">是否扣减</param>
- /// <returns></returns>
- protected virtual bool SetSerialPortData(DataEventArgs data, string local, bool isdeduct = false)
- {
- //这里要做判断其实
- //判断X、Y是否已经到达了该点,并且是否Z轴在原点的位置上
- var movelenght = local.CalculateAreaPoint(OpName);
- if (isdeduct)
- {
- AxisZdownOrUp = true;
- movelenght += 10000;
- }
- else
- AxisZdownOrUp = false;
- var portArgs = new PortArgs()
- {
- WriteWay = WriteWay.Move,
- TypeName = OpName,
- Distance = movelenght
- };
-
- return data.Client.Factory(OpName).Write(portArgs);
- }
- /// <summary>
- /// Z轴返回原点
- /// </summary>
- /// <returns></returns>
- public bool MotorZGoBack(DataEventArgs data)
- {
- PortArgs portArgs = new()
- {
- WriteWay = WriteWay.GoBack,
- TypeName = OpName,
- Distance = OpName.MotorFinal()
- };
- var res = data.Client.Factory(OpName).Write(portArgs);
- AxisZdownOrUp = true;
- if (CancelCache.Contains(data.Task.OriginLocalName)&&data.Task.RouteType!="SP")
- {
- if (CancelCache.Get(data.Task.OriginLocalName).Equals("Cancel"))
- {
- var task = data.Task;
- task.Status = TaskState.Cancel;
- data.DataManager.Update(task);
- CancelCache.Remove(data.Task.OriginLocalName);
- }
- }
- return res;
- }
- }
- }
|