示例#1
0
 public Scenario(IDeviceManager deviceManager, IDictionary<string, int> inputs, IDictionary<string, int> relays, Timings timings)
     : this()
 {
     _deviceManager = deviceManager;
     _inputs = inputs;
     _relays = relays;
     _timings = timings;
     _blockingModel = new BlockingModel(_deviceManager, inputs, relays);
     _state = new StateModel(_deviceManager, inputs, relays);
     _state.StataTrackChanged += OnStataTrackChanged;
     _state.StateInDoorChanged += OnStateInDoorChanged;
     _state.StateLiftChanged += OnStateLiftChanged;
     _state.StateOutDoorChanged += OnStateOutDoorChanged;
     _state.StateSawChanged += OnStateSawChanged;
     _state.LampOnOffPeriodChanged += _state_LampOnOffPeriodChanged;
     _state.CorrectStart += _state_CorrectStart;
     _state.CloseDoorToLastRoomChanged += _state_CloseDoorToLastRoomChanged;
     _state.IsLock += _state_IsLock;
     _state.IsAlarmStopChange += _state_IsAlarmStopChange;
 }
示例#2
0
        public static MainSettings GetDefault()
        {
            var numPort = QuestDolls.Properties.Settings.Default.ComPort;
            var namePort = string.Format("COM{0}", numPort);
            var numPortVem150 = QuestDolls.Properties.Settings.Default.ComPortVem150;
            var namePortVem150 = string.Format("COM{0}", numPortVem150);
            var ports = new Dictionary<string, PortSettings>()
                {
                    {StrConst.Relay2, new PortSettings(){Name = namePort, Rate = 19200, Parity = Parity.Even, DataBits = 8, StopBits = StopBits.One, ReadTimeout = 1000, WriteTimeout = 1000, IsModbus = true}},
                    {StrConst.DiscretInput4, new PortSettings(){Name = namePort, Rate = 19200, Parity = Parity.Even, DataBits = 8, StopBits = StopBits.One, ReadTimeout = 1000, WriteTimeout = 1000, IsModbus = true}},
                    {StrConst.DiscretInput6, new PortSettings(){Name = namePort, Rate = 19200, Parity = Parity.Even, DataBits = 8, StopBits = StopBits.One, ReadTimeout = 1000, WriteTimeout = 1000, IsModbus = true}},
                    {StrConst.QuestPanel8, new PortSettings(){Name = namePort, Rate = 19200, Parity = Parity.Even, DataBits = 8, StopBits = StopBits.One, ReadTimeout = 1000, WriteTimeout = 1000, IsModbus = true}},
                    {StrConst.Vem150, new PortSettings(){Name = namePortVem150, Rate = 4800, Parity = Parity.Even, DataBits = 8, StopBits = StopBits.One, ReadTimeout = 1000, WriteTimeout = 1000, IsModbus = false}},
                };
            var inputs = new Dictionary<string, int>
            {
                {StrConst.InputInDoorUp, 0},
                {StrConst.InputInDoorDown, 1},
                {StrConst.InputOutDoorDown, 2},
                {StrConst.InputOutDoorUp, 3},
                {StrConst.InputLiftUp1, 4},
                {StrConst.InputLiftUp2, 5},
                {StrConst.InputLiftDown1, 6},
                {StrConst.InputLiftDown2, 7},
                {"вход 9", 8},
                {"вход 10", 9},
                {StrConst.InputTightenRope, 10},
                {StrConst.InputTruckStopInLift, 11},
                {StrConst.InputBodyInTrack2, 12},
                {StrConst.InputBodyInTrack1, 13},
                {StrConst.InputTruckStartMiddle, 14},
                {StrConst.InputTruckEndMiddle, 15},
                {StrConst.InputTruckEndStop, 16},
                {StrConst.InputTruckStartStop, 17},
                {StrConst.InputLabyrinth, 18},
                {"вход 20", 19},
                {StrConst.InputButtonStartSawmill, 20},
                {StrConst.InputButtonWeigh, 21},
                {StrConst.InputLockTrack, 22},
                {StrConst.InputCloseDoorToLastRoot, 23},
                {"вход 25", 24},
                {"вход 26", 25},
                {"вход 27", 26},
                {"вход 28", 27},
                {StrConst.InputButtonEmergencyStop, 28},
                {StrConst.InputPowerSawmill, 29},
                {"вход 31", 30},
                {"вход 32", 31}
            };

            var relays = new Dictionary<string, int>()
            {
                {StrConst.TumblerInDoorOpen, 0},
                {StrConst.TumblerInDoorClose, 1},
                {StrConst.TumblerOutDoorClose, 2},
                {StrConst.TumblerOutDoorOpen, 3},
                //{StrConst.TumblerTrackT1Forward, 4},
                {StrConst.TumblerTrackT2Forward, 4},
                {StrConst.TumblerLiftDown, 5},
                {StrConst.TumblerLiftUp, 6},
                //{StrConst.TumblerTrackT2Back, 7},
                {StrConst.TumblerTrackT1Back, 7},
                {StrConst.TumblerStartLamp, 8},
                {StrConst.TumblerLock, 9},
                {StrConst.TumblerSaw, 10},
                //{StrConst.TumblerTrackT1Back, 17},
                //{StrConst.TumblerTrackT2Forward, 18},
                {StrConst.TumblerTrackT2Back, 17},
                {StrConst.TumblerTrackT1Forward, 18},
                {StrConst.TumblerRolettaUp, 19},
                {StrConst.TumblerRolettaDown, 20},
            };

            var timings = new Timings()
            {
                // StartToLift
                TimeStartToLiftT2Start = TimeSpan.FromMilliseconds(0),
                TimeStartToLiftT2Stop = TimeSpan.FromMilliseconds(0),

                // LiftToEnd
                TimeLiftToEndT2Start = TimeSpan.FromMilliseconds(0),
                TimeLiftToEndT2Stop = TimeSpan.FromMilliseconds(0),

                // LiftUpDownOnEnd
                TimeLiftUpDown = TimeSpan.FromMilliseconds(1000),

                // EndToLift
                TimeEndToLiftT2Start = TimeSpan.FromMilliseconds(0),
                TimeEndToLiftT2Stop = TimeSpan.FromMilliseconds(0),

                // TightenLeftT2Stop
                TimeTightenLeftT2Start = TimeSpan.FromMilliseconds(12000),
                TimeTightenLeftT2Stop = TimeSpan.FromMilliseconds(1700),

                // LiftToStart
                TimeLiftToStartT2Start = TimeSpan.FromMilliseconds(0),
                TimeLiftToStartT2Stop = TimeSpan.FromMilliseconds(0),

                // Move Roletta
                TimeCloseRolettaReley = TimeSpan.FromMilliseconds(500),
            };

            return new MainSettings()
            {
                DevicePorts = ports,
                DiscretInputKeys = inputs,
                RelayKeys = relays,
                TimingSettings = timings,
            };
        }