public static void resetAll() { mrState = ConveyorMRState.Stop; for (int t = 0; t < ChNum; t++) { ChStatus[t] = ConveyorChState.Down; } for (int t = 0; t < CrNum; t++) { CrStatus[t] = ConveyorCrState.Stop; } for (int t = 0; t < StNum; t++) { StStatus[t] = ConveyorStState.Down; } }
static void setOutput() { if (Output[(int)ConveyorOutputDevice.EmergencyStop]) { if (Input[(int)ConveyorInputDevice.EmergencyStopReset]) { Output[(int)ConveyorOutputDevice.EmergencyStop] = false; Console.WriteLine("{0} Emergency Reset: Button Reset was pressed", DateTime.Now); } return; } if (!(Input[(int)ConveyorInputDevice.EmergencyStop1] && Input[(int)ConveyorInputDevice.EmergencyStop2] && input[(int)ConveyorInputDevice.EmergencyStop3] && Input[(int)ConveyorInputDevice.EmergencyStop4])) { for (int t = 0; t < BitNum; t++) { Output[t] = false; } mrState = ConveyorMRState.Stop; for (int t = 0; t < ChStatus.Length; t++) { ChStatus[t] = ConveyorChState.Down; } for (int t = 0; t < CrStatus.Length; t++) { CrStatus[t] = ConveyorCrState.Stop; } for (int t = 0; t < StStatus.Length; t++) { StStatus[t] = ConveyorStState.Down; } Output[28] = true; Console.WriteLine("{0} Emergency Stop: Button ES{1} was pressed", DateTime.Now, !Input[(int)ConveyorInputDevice.EmergencyStop1] ? 1 : !Input[(int)ConveyorInputDevice.EmergencyStop2] ? 2 : !Input[(int)ConveyorInputDevice.EmergencyStop3] ? 3 : 4); return; } switch (mrState) { case ConveyorMRState.Stop: Output[(int)ConveyorOutputDevice.MainRollerClockwise] = false; Output[(int)ConveyorOutputDevice.MainRollerAnticlockwise] = false; break; case ConveyorMRState.Clockwise: Output[(int)ConveyorOutputDevice.MainRollerClockwise] = true; Output[(int)ConveyorOutputDevice.MainRollerAnticlockwise] = false; break; case ConveyorMRState.Anticlockwise: Output[(int)ConveyorOutputDevice.MainRollerClockwise] = false; Output[(int)ConveyorOutputDevice.MainRollerAnticlockwise] = true; break; } for (int t = 0; t < ChNum; t++) { switch (ChStatus[t] & (ConveyorChState)0x00000001) { case ConveyorChState.Down: Output[12 + t] = false; break; case ConveyorChState.Up: Output[12 + t] = true; break; } switch (ChStatus[t] & unchecked ((ConveyorChState)0xFFFFFFFE)) { case ConveyorChState.Down: Output[4 + t] = false; Output[8 + t] = false; break; case ConveyorChState.Forward: Output[4 + t] = t >= 2; Output[8 + t] = t <= 1; break; case ConveyorChState.Backward: Output[4 + t] = t <= 1; Output[8 + t] = t >= 2; break; } } for (int t = 0; t < CrNum; t++) { switch (CrStatus[t]) { case ConveyorCrState.Stop: Output[0 + t] = false; Output[2 + t] = false; break; case ConveyorCrState.Forward: Output[0 + t * 2 + t] = true; Output[2 - t * 2 + t] = false; break; case ConveyorCrState.Backward: Output[0 + t * 2 + t] = false; Output[2 - t * 2 + t] = true; break; } } for (int t = 0; t < StNum; t++) { switch (StStatus[t]) { case ConveyorStState.Down: Output[16 + t] = false; break; case ConveyorStState.Up: Output[16 + t] = true; break; } } }
/// <summary> /// mainRollerStop /// </summary> public static void mrS(int n) { mrState = ConveyorMRState.Stop; }
/// <summary> /// mainRollerClockwise /// </summary> public static void mrC(int n) { mrState = ConveyorMRState.Clockwise; }
/// <summary> /// mainRollerAnticlockwise /// </summary> public static void mrA(int n) { mrState = ConveyorMRState.Anticlockwise; }
public static void waitForMainRoller(ConveyorMRState state, int waitingTime) { WaitingAction.Add(new DelayAction(DelayActionWaitingDevice.MainRollerState, 0, state, waitingTime, Thread.CurrentThread)); wait(); }