| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- using System;
- using SHJX.Service.Model.Control;
- using SHJX.Service.Control.Modules;
- using SHJX.Service.Control.Interface;
- using System.Threading.Tasks;
- using SHJX.Service.Common.ReadXML;
- using System.Collections.Generic;
- namespace SHJX.Service.Control.Route.RouteController
- {
- /// <summary>
- /// 消解位移动
- /// </summary>
- public class DissolveMoveOperate : FlowControlOperateImp
- {
- private const string Name = "DissolvePosition";
- private const string OpName = "Dissolve";
- public virtual bool Operate(ReadConfigUtil config, DataEventArgs data)
- {
- var clearPos = Name.GetEquipmentState();
- var portArgs = new PortArgs
- {
- ManualOrAuto = "Auto",
- TypeName = OpName,
- Distance = -DataCentre.GetConfig.GetPositionDistance("Dissolve")
- };
- switch (data.Task.RouteStep)
- {
- case "Clear_In":
- MotorSpeed itemSpeed = config.GetSpeed[0];
- itemSpeed.Speed = 6;
- SetSpeed(itemSpeed);
- itemSpeed = config.GetSpeed[1];
- itemSpeed.Speed = 6;
- SetSpeed(itemSpeed);
- List<string> names = new() { "MotorZ", "MotorX", "MotorY" };
- names.ForEach(async item =>
- {
- var res = await XYZGoBack(item);
-
- });
- itemSpeed = config.GetSpeed[0];
- SetSpeed(itemSpeed);
- itemSpeed = config.GetSpeed[1];
- SetSpeed(itemSpeed);
- portArgs.WriteWay = WriteWay.Normotopia;
- if (clearPos.EquipmentState.Equals(EquipmentEnum.Normotopia))
- {
- clearPos.EquipmentState = EquipmentEnum.Antiposition;
- }
- break;
- case "Clear_Out":
- MotorSpeed itemSpeed1 = config.GetSpeed[0];
- itemSpeed1.Speed = 6;
- SetSpeed(itemSpeed1);
- itemSpeed1 = config.GetSpeed[1];
- itemSpeed1.Speed = 6;
- SetSpeed(itemSpeed1);
- List<string> names1 = new() { "MotorZ", "MotorX", "MotorY" };
- names1.ForEach(async item =>
- {
- var res = await XYZGoBack(item);
- });
- itemSpeed1 = config.GetSpeed[0];
- SetSpeed(itemSpeed1);
- itemSpeed1 = config.GetSpeed[1];
- SetSpeed(itemSpeed1);
- portArgs.WriteWay = WriteWay.Antiposition;
- if (clearPos.EquipmentState.Equals(EquipmentEnum.Antiposition))
- {
- clearPos.EquipmentState = EquipmentEnum.Normotopia;
- }
- break;
- default:
- throw new ArgumentNullException(data.Task.RouteStep);
- }
- var res = data.Client.Factory(OpName).Write(portArgs);
- data.DataManager.Update(clearPos);
- return res;
- }
- private async Task<bool> XYZGoBack(string name)
- {
- var portArgs = new PortArgs()
- {
- ReadWay = "OriginalPosition",
- TypeName = name,
- WriteWay = WriteWay.GoBack
- };
-
- var res= (bool)DataCentre.GetClient.Factory(name).Read(portArgs) || DataCentre.GetClient.Factory(name).Write(portArgs);
- name.UpdateMotorPoint();
- return res;
-
- }
- public bool SetSpeed(MotorSpeed speed)
- {
- #region 速度
- PortArgs speedArgs = new PortArgs()
- {
- TypeName = speed.NodeName,
- Distance = speed.Speed,
- WriteWay = WriteWay.Speed
- };
- var res = DataCentre.GetClient.Factory(speed.NodeName).Write(speedArgs);
- #endregion
- return res;
- }
- }
- }
|