| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 | 
							- using Aitex.Core.Common.DeviceData;
 
- using Aitex.Core.RT.DataCenter;
 
- using Aitex.Core.RT.Device;
 
- using Aitex.Core.RT.Device.Unit;
 
- using Aitex.Core.RT.Fsm;
 
- using Aitex.Core.RT.Log;
 
- using Aitex.Core.Util;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading;
 
- using System.Threading.Tasks;
 
- namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.WalkingAixs
 
- {
 
-     public class IOWalkingAxisHH :WalkingAxisBaseDevice
 
-     {
 
-         private R_TRIG _trigMonitorError = new R_TRIG();
 
-         public IOWalkingAxisHH(string module,string name,IoSensor[] dis,IoTrigger[] dos):base(module,name)
 
-         {
 
-             _diPosFeedback0 = dis[0];
 
-             _diPosFeedback1 = dis[1];
 
-             _diPosFeedback2 = dis[2];
 
-             _diReady = dis[3];
 
-             _diOnTarget = dis[4];
 
-             _diOnError = dis[5];
 
-             _diOnLeftLimit = dis[6];
 
-             _diOnRightLimit = dis[7];
 
-             _diHomeSensor = dis[8];
 
-             _doStartMoving = dos[0];
 
-             _doPosSet0 = dos[1];
 
-             _doPosSet1 = dos[2];
 
-             _doPosSet2 = dos[3];
 
-             _doHome = dos[4];
 
-             _doSetFree = dos[5];
 
-             _doStop = dos[6];
 
-             _doResetAlarm = dos[7];
 
-             _doJogFwd = dos[8];
 
-             _doJogRev = dos[9];
 
-             DATA.Subscribe($"{Module}.{Name}.DeviceData", () => DeviceData);
 
-         }
 
-         private readonly IoSensor _diPosFeedback0;
 
-         private readonly IoSensor _diPosFeedback1;
 
-         private readonly IoSensor _diPosFeedback2;
 
-         private readonly IoSensor _diReady;
 
-         private readonly IoSensor _diOnTarget;
 
-         private readonly IoSensor _diOnError;
 
-         private readonly IoSensor _diOnLeftLimit;
 
-         private readonly IoSensor _diOnRightLimit;
 
-         private readonly IoSensor _diHomeSensor;
 
-         private readonly IoTrigger _doStartMoving;
 
-         private readonly IoTrigger _doPosSet0;
 
-         private readonly IoTrigger _doPosSet1;
 
-         private readonly IoTrigger _doPosSet2;
 
-         private readonly IoTrigger _doHome;
 
-         private readonly IoTrigger _doSetFree;        
 
-         private readonly IoTrigger _doStop;
 
-         private readonly IoTrigger _doResetAlarm;
 
-         private readonly IoTrigger _doJogFwd;
 
-         private readonly IoTrigger _doJogRev;
 
-         public override void Monitor()
 
-         {
 
-             _trigMonitorError.CLK = _diOnError.Value;
 
-             if (_trigMonitorError.Q) 
 
-                 OnError(null);
 
-         }
 
-         protected override bool fStop(object[] param)
 
-         {
 
-             
 
-             _doStartMoving.SetTrigger(false, out _);
 
-             _doPosSet0.SetTrigger(false, out _);
 
-             _doPosSet1.SetTrigger(false, out _);
 
-             _doPosSet2.SetTrigger(false, out _);
 
-             _doHome.SetTrigger(false, out _);
 
-             _doSetFree.SetTrigger(false, out _);
 
-             _doStop.SetTrigger(true, out _);
 
-             _doResetAlarm.SetTrigger(false, out _);
 
-             _doJogFwd.SetTrigger(false, out _);
 
-             _doJogRev.SetTrigger(false, out _);
 
-             return base.fStop(param);
 
-         }
 
-         protected override bool fMonitorInit(object[] param)
 
-         {
 
-             if(_diHomeSensor.Value && _diOnTarget.Value && _diHomeSensor.Value && _diReady.Value)
 
-                 OnActionDone(param);
 
-             return true;
 
-         }
 
-         protected override bool fMonitorMove(object[] param)
 
-         {
 
-             if (_diOnTarget.Value && _diReady.Value && GetCurrentStation() == TargetStation)          
 
-                 OnActionDone(param);
 
-            
 
-             return true; ;
 
-         }
 
-         protected override bool fStartInit(object[] param)
 
-         {
 
-             _doStop.SetTrigger(false, out _);
 
-             _doJogRev.SetTrigger(false, out _);
 
-             _doJogFwd.SetTrigger(false, out _);
 
-             _doSetFree.SetTrigger(false, out _);
 
-             _doResetAlarm.SetTrigger(false, out _);
 
-             _doStartMoving.SetTrigger(false, out _);
 
-             _doHome.SetTrigger(true,out _);
 
-             return true;
 
-         }
 
-         protected override bool fInitComplete(object[] param)
 
-         {
 
-             _doHome.SetTrigger(false, out _);
 
-             return true;
 
-         }
 
-         protected override bool fStartMove(object[] param)
 
-         {
 
-             int stationIndex = (int)param[0];
 
-             if (stationIndex > 7 || stationIndex <0) return false;
 
-             _doPosSet0.SetTrigger((stationIndex & 0x1) == 0x1, out _);
 
-             _doPosSet1.SetTrigger((stationIndex & 0x2) == 0x2, out _);
 
-             _doPosSet2.SetTrigger((stationIndex & 0x4) == 0x4, out _);
 
-             Thread.Sleep(200);
 
-             _doStartMoving.SetTrigger(true, out _);
 
-             Thread.Sleep(500);
 
-             return true;
 
-         }
 
-         protected override bool fMoveComplete(object[] param)
 
-         {
 
-             _doStartMoving.SetTrigger(false, out _);
 
-             _doPosSet0.SetTrigger(false, out _);
 
-             _doPosSet1.SetTrigger(false, out _);
 
-             _doPosSet2.SetTrigger(false, out _);            
 
-             return true;
 
-         }
 
-         protected override bool fStartReset(object[] param)
 
-         {
 
-             _doStartMoving.SetTrigger(false, out _);
 
-             _doPosSet0.SetTrigger(false, out _);
 
-             _doPosSet1.SetTrigger(false, out _);
 
-             _doPosSet2.SetTrigger(false, out _);
 
-             _doHome.SetTrigger(false, out _);
 
-             _doSetFree.SetTrigger(false, out _);
 
-             _doStop.SetTrigger(false, out _);
 
-             //_doResetAlarm.SetTrigger(false, out _);
 
-             _doJogFwd.SetTrigger(false, out _);
 
-             _doJogRev.SetTrigger(false, out _);
 
-             _doResetAlarm.SetTrigger(true, out _);
 
-             Thread.Sleep(1000);
 
-             _doResetAlarm.SetTrigger(false, out _);
 
-             return true;
 
-         }
 
-         public override bool IsReady()
 
-         {
 
-             if (_diOnError.Value) return false;
 
-             if (_diOnLeftLimit.Value) return false;
 
-             if (_diOnRightLimit.Value) return false;
 
-             return base.IsReady();
 
-         }
 
-         public override int GetCurrentStation()
 
-         {
 
-             return (_diPosFeedback0.Value ? 1 : 0) + (_diPosFeedback1.Value ? 2 : 0) +
 
-                 (_diPosFeedback2.Value ? 4 : 0);
 
-         }
 
-         private AITServoMotorData DeviceData
 
-         {
 
-             get
 
-             {
 
-                 return new AITServoMotorData()
 
-                 {
 
-                     DiPosFeedBack1 = _diPosFeedback0.Value,
 
-                     DiPosFeedBack2 = _diPosFeedback1.Value,
 
-                     DiPosFeedBack3 = _diPosFeedback2.Value,
 
-                     DiReady = _diReady.Value,
 
-                     DiOnTarget = _diOnTarget.Value,
 
-                     DiOnError = _diOnError.Value,
 
-                     DiOnLeftLimit = _diOnLeftLimit.Value,
 
-                     DiOnRightLimit = _diOnRightLimit.Value,
 
-                     DiOnHomeSensor = _diHomeSensor.Value,
 
-                     DoStart = _doStartMoving.Value,
 
-                     DoPos1 = _doPosSet0.Value,
 
-                     DoPos2 = _doPosSet1.Value,
 
-                     DoPos3 = _doPosSet2.Value,
 
-                     DoHomeOn = _doHome.Value,
 
-                     DoFreeOn = _doSetFree.Value,
 
-                     DoStop = _doStop.Value,
 
-                     DoReset = _doResetAlarm.Value,
 
-                     DoJogFwd = _doJogFwd.Value,
 
-                     DoJogRev = _doJogRev.Value,
 
-                     CurrentStatus = DeviceState.ToString(),
 
-                     //State = _state,
 
-                 };
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |