public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
 {
     if (eingaengeRangieren)
     {
         //
     }
 }
Beispiel #2
0
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B1, _viewModel.Getriebemotor.B1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B2, _viewModel.Getriebemotor.B2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _viewModel.Getriebemotor.S1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S2, _viewModel.Getriebemotor.S2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S3, _viewModel.Getriebemotor.S3);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S4, _viewModel.Getriebemotor.S4);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S5, _viewModel.Getriebemotor.S5);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S6, _viewModel.Getriebemotor.S6);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S7, _viewModel.Getriebemotor.S7);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S8, _viewModel.Getriebemotor.S8);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S91, _viewModel.Getriebemotor.S91);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S92, _viewModel.Getriebemotor.S92);
            }

            _viewModel.Getriebemotor.P1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1);
            _viewModel.Getriebemotor.P2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P2);
            _viewModel.Getriebemotor.P3 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P3);
            _viewModel.Getriebemotor.Q1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q1);
            _viewModel.Getriebemotor.Q2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q2);
            _viewModel.Getriebemotor.Q3 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q3);
        }
        public MainWindow()
        {
            const string versionText   = "Stiegenhausbeleuchtung";
            const string versionNummer = "V2.0";

            const int anzByteDigInput     = 1;
            const int anzByteDigOutput    = 1;
            const int anzByteAnalogInput  = 0;
            const int anzByteAnalogOutput = 0;

            VersionInfoLokal = versionText + " " + versionNummer;

            Datenstruktur     = new Datenstruktur(anzByteDigInput, anzByteDigOutput, anzByteAnalogInput, anzByteAnalogOutput);
            ConfigPlc         = new ConfigPlc.Plc("./ConfigPlc");
            BeschriftungenPlc = new BeschriftungenPlc();

            var viewModel = new ViewModel.ViewModel(this);

            InitializeComponent();
            DataContext = viewModel;

            DatenRangieren = new DatenRangieren(viewModel);
            PlcDaemon      = new PlcDaemon(Datenstruktur, DatenRangieren.Rangieren);
            DatenRangieren.ReferenzUebergeben(PlcDaemon.Plc);

            DisplayPlc = new DisplayPlc.DisplayPlc(Datenstruktur, ConfigPlc, BeschriftungenPlc);
        }
 public static void ReferenzenUebergeben(AutoTesterWindow autoTesterWindow, Datenstruktur datenstruktur, Stopwatch silkStopwatch, IPlc plc)
 {
     AutoTesterWindow = autoTesterWindow;
     Datenstruktur    = datenstruktur;
     SilkStopwatch    = silkStopwatch;
     Plc = plc;
 }
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B1, _viewModel.Hydraulikaggregat.B1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B2, _viewModel.Hydraulikaggregat.B2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B3, _viewModel.Hydraulikaggregat.B3);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B4, _viewModel.Hydraulikaggregat.B4);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B5, _viewModel.Hydraulikaggregat.B5);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.F1, _viewModel.Hydraulikaggregat.F1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _viewModel.Hydraulikaggregat.S1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S2, _viewModel.Hydraulikaggregat.S2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S3, _viewModel.Hydraulikaggregat.S3);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S4, _viewModel.Hydraulikaggregat.S4);
            }

            _viewModel.Hydraulikaggregat.K1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.K1);    // Byte 0
            _viewModel.Hydraulikaggregat.K2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.K2);
            _viewModel.Hydraulikaggregat.P1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1);
            _viewModel.Hydraulikaggregat.P2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P2);
            _viewModel.Hydraulikaggregat.P3 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P3);
            _viewModel.Hydraulikaggregat.P4 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P4);
            _viewModel.Hydraulikaggregat.P5 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P5);
            _viewModel.Hydraulikaggregat.P6 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P6);

            _viewModel.Hydraulikaggregat.P7 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P7);    // Byte 1
            _viewModel.Hydraulikaggregat.P8 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P8);
            _viewModel.Hydraulikaggregat.Q1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q1);
            _viewModel.Hydraulikaggregat.Q2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q2);
            _viewModel.Hydraulikaggregat.Q3 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q3);
            _viewModel.Hydraulikaggregat.Q4 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q4);
        }
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B1, _foerderanlageViewModel.Foerderanlage.B1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B2, _foerderanlageViewModel.Foerderanlage.B2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.F1, _foerderanlageViewModel.Foerderanlage.F1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S0, _foerderanlageViewModel.Foerderanlage.S0);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _foerderanlageViewModel.Foerderanlage.S1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S2, _foerderanlageViewModel.Foerderanlage.S2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S3, _foerderanlageViewModel.Foerderanlage.S3);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S4, _foerderanlageViewModel.Foerderanlage.S4);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S5, _foerderanlageViewModel.Foerderanlage.S5);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S6, _foerderanlageViewModel.Foerderanlage.S6);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S7, _foerderanlageViewModel.Foerderanlage.S7);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S8, _foerderanlageViewModel.Foerderanlage.S8);

                _plc.SetIntAt(datenstruktur.AnalogInput, 0, Simatic.Analog_2_Int16(_foerderanlageViewModel.Foerderanlage.Silo.GetFuellstand(), 1));
            }

            if (_mainWindow.DebugWindowAktiv)
            {
                return;
            }

            _foerderanlageViewModel.Foerderanlage.K1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.K1);
            _foerderanlageViewModel.Foerderanlage.P1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1);
            _foerderanlageViewModel.Foerderanlage.P2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P2);
            _foerderanlageViewModel.Foerderanlage.Q1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q1);
            _foerderanlageViewModel.Foerderanlage.Q2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q2);
            _foerderanlageViewModel.Foerderanlage.T1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.T1);
        }
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B1, _viewModel.Linearachse.B1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B2, _viewModel.Linearachse.B2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _viewModel.Linearachse.S1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S2, _viewModel.Linearachse.S2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S3, _viewModel.Linearachse.S3);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S4, _viewModel.Linearachse.S4);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S5, _viewModel.Linearachse.S5);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S6, _viewModel.Linearachse.S6);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S7, _viewModel.Linearachse.S7);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S8, _viewModel.Linearachse.S8);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S9, _viewModel.Linearachse.S9);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S10, _viewModel.Linearachse.S10);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S11, _viewModel.Linearachse.S11);
            }

            _viewModel.Linearachse.P1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1);
            _viewModel.Linearachse.P2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P2);
            _viewModel.Linearachse.P3 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P3);
            _viewModel.Linearachse.P4 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P4);
            _viewModel.Linearachse.Q1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q1);
            _viewModel.Linearachse.Q2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q2);
        }
        public MainWindow()
        {
            const string versionText   = "Heizungsregler";
            const string versionNummer = "V2.0";

            const int anzByteDigInput     = 1;
            const int anzByteDigOutput    = 1;
            const int anzByteAnalogInput  = 0;
            const int anzByteAnalogOutput = 0;

            VersionInfoLokal = versionText + " " + versionNummer;

            Datenstruktur     = new Datenstruktur(anzByteDigInput, anzByteDigOutput, anzByteAnalogInput, anzByteAnalogOutput);
            ConfigPlc         = new ConfigPlc.Plc("./ConfigPlc");
            BeschriftungenPlc = new BeschriftungenPlc();

            var viewModel = new ViewModel.ViewModel(this);

            InitializeComponent();
            DataContext = viewModel;

            DatenRangieren = new DatenRangieren(this);
            PlcDaemon      = new PlcDaemon(Datenstruktur, DatenRangieren.Rangieren);
            DatenRangieren.ReferenzUebergeben(PlcDaemon.Plc);

            /*
             * DisplayPlc = new DisplayPlc.DisplayPlc(Datenstruktur, ConfigPlc, BeschriftungenPlc);
             *
             * TestAutomat = new TestAutomat.TestAutomat(Datenstruktur, DisplayPlc.EventBeschriftungAktualisieren, BeschriftungenPlc, PlcDaemon.Plc);
             * TestAutomat.SetTestConfig("./ConfigTests/");
             * TestAutomat.TabItemFuellen(TabItemAutomatischerSoftwareTest, DisplayPlc);
             */

            WohnHaus = new WohnHaus();
        }
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B1, _viewModel.AlleLastKraftWagen.B1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B2, _viewModel.AlleLastKraftWagen.B2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B3, _viewModel.AlleLastKraftWagen.B3);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B4, _viewModel.AlleLastKraftWagen.B4);
            }

            var p1LinksRot    = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1);
            var p2LinksGelb   = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P2);
            var p3LinksGruen  = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P3);
            var p4RechtsRot   = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P4);
            var p5RechtsGelb  = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P5);
            var p6RechtsGruen = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P6);

            _viewModel.AlleLastKraftWagen.P7 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P7);
            _viewModel.AlleLastKraftWagen.P8 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P8);

            var linkeAmpel  = GetAmpelZustand(p1LinksRot, p2LinksGelb, p3LinksGruen);
            var rechteAmpel = GetAmpelZustand(p4RechtsRot, p5RechtsGelb, p6RechtsGruen);

            if (linkeAmpel == _ampelLinks && rechteAmpel == _ampelRechts)
            {
                return;
            }
            OnAmpelChanged(new AmpelZustandEventArgs(linkeAmpel, rechteAmpel));

            _ampelRechts = rechteAmpel;
            _ampelLinks  = linkeAmpel;
        }
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _viewModel.Kraftwerk.KraftwerkStarten);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S2, _viewModel.Kraftwerk.KraftwerkStoppen);

                _plc.SetIntAt(datenstruktur.AnalogInput, 0, Simatic.Analog_2_Int16(_viewModel.Kraftwerk.GeneratorN, 10000));
                _plc.SetIntAt(datenstruktur.AnalogInput, 2, Simatic.Analog_2_Int16(_viewModel.Kraftwerk.GeneratorU, 1000));
                _plc.SetIntAt(datenstruktur.AnalogInput, 4, Simatic.Analog_2_Int16(_viewModel.Kraftwerk.GeneratorF, 100));
                _plc.SetIntAt(datenstruktur.AnalogInput, 6, Simatic.Analog_2_Int16(_viewModel.Kraftwerk.GeneratorP, 10000));
                _plc.SetIntAt(datenstruktur.AnalogInput, 8, Simatic.Analog_2_Int16(_viewModel.Kraftwerk.GeneratorCosPhi, 1));

                _plc.SetIntAt(datenstruktur.AnalogInput, 10, Simatic.Analog_2_Int16(_viewModel.Kraftwerk.NetzU, 1000));
                _plc.SetIntAt(datenstruktur.AnalogInput, 12, Simatic.Analog_2_Int16(_viewModel.Kraftwerk.NetzF, 100));
                _plc.SetIntAt(datenstruktur.AnalogInput, 14, Simatic.Analog_2_Int16(_viewModel.Kraftwerk.NetzP, 10000));
                _plc.SetIntAt(datenstruktur.AnalogInput, 16, Simatic.Analog_2_Int16(_viewModel.Kraftwerk.NetzCosPhi, 1));

                _plc.SetIntAt(datenstruktur.AnalogInput, 18, Simatic.Analog_2_Int16(_viewModel.Kraftwerk.SpannungsdifferenzGeneratorNetz, 1000));
            }

            if (_mainWindow.DebugWindowAktiv)
            {
                return;
            }

            _viewModel.Kraftwerk.Q1          = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q1);
            _viewModel.Kraftwerk.VentilY     = _viewModel.Kraftwerk.Generator.VentilRampe.GetWert(Simatic.Analog_2_Double(_plc.GetIntAt(datenstruktur.AnalogOutput, 0), 100));
            _viewModel.Kraftwerk.GeneratorIe = _viewModel.Kraftwerk.Generator.ErregerstromRampe.GetWert(Simatic.Analog_2_Double(_plc.GetIntAt(datenstruktur.AnalogOutput, 2), 10));
        }
Beispiel #11
0
        public TestAutomat(Datenstruktur datenstruktur, Action <Datenstruktur> cbPlcWindow, BeschriftungPlc.BeschriftungenPlc beschriftungenPlc, IPlc plc)
        {
            BeschriftungenPlc  = beschriftungenPlc;
            _datenstruktur     = datenstruktur;
            _callbackPlcWindow = cbPlcWindow;
            _plc = plc;

            PlotInitialisieren();
        }
Beispiel #12
0
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _viewModel.BlinklichtFibonacci.S1);
            }


            _viewModel.BlinklichtFibonacci.P1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1);
        }
Beispiel #13
0
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B1, _viewModel.AlleFahrzeugePersonen.B1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B2, _viewModel.AlleFahrzeugePersonen.B2);
            }

            _viewModel.AlleFahrzeugePersonen.AnzahlAutos    = _plc.GetUsIntAt(datenstruktur.DigOutput, 0);
            _viewModel.AlleFahrzeugePersonen.AnzahlPersonen = _plc.GetUsIntAt(datenstruktur.DigOutput, 1);
        }
Beispiel #14
0
        public void SetBetriebsartProjekt(Datenstruktur datenstruktur)
        {
            if (datenstruktur.BetriebsartProjekt == BetriebsartProjekt.AutomatischerSoftwareTest && GetPlcConfig != null)
            {
                PlcAusgaenge = GetPlcConfig.PlcBelegung.Ausgaenge;
                PlcEingaenge = GetPlcConfig.PlcBelegung.Eingaenge;
                return;
            }

            PlcAusgaenge = new Uint("16#FFFF");
            PlcEingaenge = new Uint("16#FFFF");
        }
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetUsIntAt(datenstruktur.AnalogInput, 0, (byte)_viewModel.Zahlenschloss.Zeichen);
            }

            _viewModel.Zahlenschloss.P1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1);
            _viewModel.Zahlenschloss.P2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P2);

            _viewModel.Zahlenschloss.CodeAnzeige = _plc.GetUIntAt(datenstruktur.AnalogOutput, 0);
        }
Beispiel #16
0
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _viewModel.Blinker.S1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S2, _viewModel.Blinker.S2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S3, _viewModel.Blinker.S3);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S4, _viewModel.Blinker.S4);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S5, _viewModel.Blinker.S5);
            }

            _viewModel.Blinker.P1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1);
        }
        public AutoTester(AutoTesterWindow autoTesterWindow, FileSystemInfo aktuellesProjekt, Datenstruktur datenstruktur, IPlc plc)
        {
            Compiler compiler;

            SilkStopwatch = new Stopwatch();

            AutoTesterWindow = autoTesterWindow;
            Datenstruktur    = datenstruktur;

            Silk.Silk.ReferenzenUebergeben(autoTesterWindow, datenstruktur, SilkStopwatch, plc);

            autoTesterWindow.UpdateDataGrid(new TestAusgabe(
                                                autoTesterWindow.DataGridId++,
                                                "0",
                                                TestErgebnis.CompilerStart,
                                                " ", // DigInput
                                                " ", // DigOutput Soll
                                                " ", // DigOutput Ist
                                                " "));

            SilkStopwatch.Start();
            (_compilerlaufErfolgreich, compiler, _compiledProgram) = Silk.Silk.Compile(@$ "{aktuellesProjekt}\testSource.ssc");

            if (_compilerlaufErfolgreich)
            {
                autoTesterWindow.UpdateDataGrid(new TestAusgabe(
                                                    autoTesterWindow.DataGridId++,
                                                    $"{SilkStopwatch.ElapsedMilliseconds}ms",
                                                    TestErgebnis.CompilerErfolgreich,
                                                    " ", // DigInput
                                                    " ", // DigOutput Soll
                                                    " ", // DigOutput Ist
                                                    " "));

                System.Threading.Tasks.Task.Run(TestRunnerTask);
            }
            else
            {
                foreach (var error in compiler.Errors)
                {
                    autoTesterWindow.UpdateDataGrid(new TestAusgabe(
                                                        autoTesterWindow.DataGridId++,
                                                        $"{SilkStopwatch.ElapsedMilliseconds}ms",
                                                        TestErgebnis.CompilerError,
                                                        error.ToString(), // DigInpt
                                                        " ",              // DigOutput Soll
                                                        " ",              // DigOutput Ist
                                                        " "));
                }
            }
        }
Beispiel #18
0
        public MainWindow()
        {
            const string versionNummer = "V2.0";
            const string versionText   = "Blinker";

            const int anzByteDigInput     = 1;
            const int anzByteDigOutput    = 1;
            const int anzByteAnalogInput  = 0;
            const int anzByteAnalogOutput = 0;

            VersionInfoLokal = versionText + " " + versionNummer;

            Datenstruktur     = new Datenstruktur(anzByteDigInput, anzByteDigOutput, anzByteAnalogInput, anzByteAnalogOutput);
            ConfigPlc         = new ConfigPlc.Plc("./ConfigPlc");
            BeschriftungenPlc = new BeschriftungenPlc();

            var viewModel = new ViewModel.ViewModel(this);

            InitializeComponent();
            DataContext = viewModel;

            DatenRangieren = new DatenRangieren(viewModel);
            PlcDaemon      = new PlcDaemon(Datenstruktur, DatenRangieren.Rangieren);
            DatenRangieren.ReferenzUebergeben(PlcDaemon.Plc);


            var zeitachse = DataGen.Consecutive(5000);

            WpfPlot.Plot.YLabel("Leuchtmelder");
            WpfPlot.Plot.XLabel("Zeit [ms]");

            WpfPlot.Plot.AddScatter(zeitachse, WertLeuchtMelder, Color.Magenta, label: "LED");

            // create a timer to modify the data
            var updateDataTimer = new DispatcherTimer {
                Interval = TimeSpan.FromMilliseconds(10)
            };

            updateDataTimer.Tick += UpdateData;
            updateDataTimer.Start();

            // create a timer to update the GUI
            var renderTimer = new DispatcherTimer {
                Interval = TimeSpan.FromMilliseconds(10)
            };

            renderTimer.Tick += Render;
            renderTimer.Start();

            Datenstruktur.BetriebsartProjekt = BetriebsartProjekt.Simulation;
        }
Beispiel #19
0
 public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
 {
     if (eingaengeRangieren)
     {
         _plc.SetUIntAt(datenstruktur.DigInput, (int)BytePosition.Byte0, _viewModel.Zeiten.DatumJahr);
         _plc.SetUsIntAt(datenstruktur.DigInput, (int)BytePosition.Byte2, _viewModel.Zeiten.DatumMonat);
         _plc.SetUsIntAt(datenstruktur.DigInput, (int)BytePosition.Byte3, _viewModel.Zeiten.DatumTag);
         _plc.SetUsIntAt(datenstruktur.DigInput, (int)BytePosition.Byte4, _viewModel.Zeiten.DatumWochentag);
         _plc.SetUsIntAt(datenstruktur.DigInput, (int)BytePosition.Byte5, _viewModel.Zeiten.Stunde);
         _plc.SetUsIntAt(datenstruktur.DigInput, (int)BytePosition.Byte6, _viewModel.Zeiten.Minute);
         _plc.SetUsIntAt(datenstruktur.DigInput, (int)BytePosition.Byte7, _viewModel.Zeiten.Sekunde);
         _plc.SetUsIntAt(datenstruktur.DigInput, (int)BytePosition.Byte8, 0);
     }
 }
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                //
            }


            _viewModel.Voltmeter.AlleVoltmeter[0] = _plc.GetUsIntAt(datenstruktur.DigOutput, (int)BytePosition.Byte0);    // Farbe
            _viewModel.Voltmeter.AlleVoltmeter[1] = _plc.GetUsIntAt(datenstruktur.DigOutput, (int)BytePosition.Byte1);    // 7-Segment Anzeige ganz rechts
            _viewModel.Voltmeter.AlleVoltmeter[2] = _plc.GetUsIntAt(datenstruktur.DigOutput, (int)BytePosition.Byte2);
            _viewModel.Voltmeter.AlleVoltmeter[3] = _plc.GetUsIntAt(datenstruktur.DigOutput, (int)BytePosition.Byte3);
            _viewModel.Voltmeter.AlleVoltmeter[4] = _plc.GetUsIntAt(datenstruktur.DigOutput, (int)BytePosition.Byte4);
            _viewModel.Voltmeter.AlleVoltmeter[5] = _plc.GetUsIntAt(datenstruktur.DigOutput, (int)BytePosition.Byte5);    // 7-Segment Anzeige ganz rechts
        }
Beispiel #21
0
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B1, _abfuellanlageViewModel.AbfuellAnlage.B1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B2, _abfuellanlageViewModel.AbfuellAnlage.B2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _abfuellanlageViewModel.AbfuellAnlage.S1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S2, _abfuellanlageViewModel.AbfuellAnlage.S2);
            }

            _abfuellanlageViewModel.AbfuellAnlage.K1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.K1);
            _abfuellanlageViewModel.AbfuellAnlage.K2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.K2);
            _abfuellanlageViewModel.AbfuellAnlage.P1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1);
            _abfuellanlageViewModel.AbfuellAnlage.Q1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q1);
        }
Beispiel #22
0
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B1, _viewModel.Pumpensteuerung.B1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B2, _viewModel.Pumpensteuerung.B2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.F1, _viewModel.Pumpensteuerung.F1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _viewModel.Pumpensteuerung.S1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S2, _viewModel.Pumpensteuerung.S2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S3, _viewModel.Pumpensteuerung.S3);
            }

            _viewModel.Pumpensteuerung.P1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1);
            _viewModel.Pumpensteuerung.P2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P2);
            _viewModel.Pumpensteuerung.Q1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q1);
        }
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B1, _transportwagenViewModel.Transportwagen.B1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B2, _transportwagenViewModel.Transportwagen.B2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.F1, _transportwagenViewModel.Transportwagen.F1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _transportwagenViewModel.Transportwagen.S1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S2, _transportwagenViewModel.Transportwagen.S2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S3, _transportwagenViewModel.Transportwagen.S3);
            }

            _transportwagenViewModel.Transportwagen.P1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1);
            _transportwagenViewModel.Transportwagen.Q1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q1);
            _transportwagenViewModel.Transportwagen.Q2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q2);
        }
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B1, _viewModel.Kompressoranlage.B1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B2, _viewModel.Kompressoranlage.B2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.F1, _viewModel.Kompressoranlage.F1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _viewModel.Kompressoranlage.S1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S2, _viewModel.Kompressoranlage.S2);
            }

            _viewModel.Kompressoranlage.P1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1);
            _viewModel.Kompressoranlage.P2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P2);
            _viewModel.Kompressoranlage.Q1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q1);
            _viewModel.Kompressoranlage.Q2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q2);
            _viewModel.Kompressoranlage.Q3 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q3);
        }
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B1, _viewModel.Paternosterlager.B1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B2, _viewModel.Paternosterlager.B2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _viewModel.Paternosterlager.S1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S2, _viewModel.Paternosterlager.S2);

                _plc.SetUsIntAt(datenstruktur.DigInput, 1, (byte)_viewModel.Paternosterlager.Zeichen);
            }

            _viewModel.Paternosterlager.Q1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q1);
            _viewModel.Paternosterlager.Q2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q2);

            _viewModel.Paternosterlager.IstPos  = _plc.GetUsIntAt(datenstruktur.DigOutput, 1);
            _viewModel.Paternosterlager.SollPos = _plc.GetUsIntAt(datenstruktur.DigOutput, 2);
        }
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _viewModel.Kata.S1);
            }

            _viewModel.Kata.P11 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P11);
            _viewModel.Kata.P12 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P12);
            _viewModel.Kata.P13 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P13);
            _viewModel.Kata.P21 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P21);
            _viewModel.Kata.P22 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P22);
            _viewModel.Kata.P23 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P23);
            _viewModel.Kata.P31 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P31);
            _viewModel.Kata.P32 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P32);
            _viewModel.Kata.P33 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P33);

            _viewModel.Kata.AmpelWert = _plc.GetUIntAt(datenstruktur.AnalogOutput, 0);
        }
Beispiel #27
0
        public MainWindow()
        {
            const string versionText   = "WorkClock";
            const string versionNummer = "V2.0";


            const int anzByteDigInput     = 9;
            const int anzByteDigOutput    = 0;
            const int anzByteAnalogInput  = 0;
            const int anzByteAnalogOutput = 0;

            VersionInfoLokal = versionText + " " + versionNummer;

            Datenstruktur     = new Datenstruktur(anzByteDigInput, anzByteDigOutput, anzByteAnalogInput, anzByteAnalogOutput);
            ConfigPlc         = new ConfigPlc.Plc("./ConfigPlc");
            BeschriftungenPlc = new BeschriftungenPlc();

            var viewModel = new ViewModel.ViewModel(this);

            InitializeComponent();
            DataContext = viewModel;

            DatenRangieren = new DatenRangieren(viewModel);
            PlcDaemon      = new PlcDaemon(Datenstruktur, DatenRangieren.Rangieren);
            DatenRangieren.ReferenzUebergeben(PlcDaemon.Plc);

            /*
             * DisplayPlc = new DisplayPlc.DisplayPlc(Datenstruktur, ConfigPlc, BeschriftungenPlc);
             *
             * TestAutomat = new TestAutomat.TestAutomat(Datenstruktur, DisplayPlc.EventBeschriftungAktualisieren, BeschriftungenPlc, PlcDaemon.Plc);
             * TestAutomat.SetTestConfig("./ConfigTests/");
             * TestAutomat.TabItemFuellen(TabItemAutomatischerSoftwareTest, DisplayPlc);
             */

            for (double i = 0; i < 360; i += 30)
            {
                RotiertesRechteckHinzufuegen(8, 30, i);
            }
            for (double i = 0; i < 360; i += 6)
            {
                RotiertesRechteckHinzufuegen(2, 10, i);
            }
        }
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetUsIntAt(datenstruktur.DigInput, 0, (byte)_viewModel.Nadeltelegraph.Zeichen);
            }


            _viewModel.Nadeltelegraph.P1R = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1R);
            _viewModel.Nadeltelegraph.P1L = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1L);
            _viewModel.Nadeltelegraph.P2R = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P2R);
            _viewModel.Nadeltelegraph.P2L = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P2L);
            _viewModel.Nadeltelegraph.P3R = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P3R);
            _viewModel.Nadeltelegraph.P3L = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P3L);
            _viewModel.Nadeltelegraph.P4R = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P4R);
            _viewModel.Nadeltelegraph.P4L = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P4L);
            _viewModel.Nadeltelegraph.P5R = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P5R);
            _viewModel.Nadeltelegraph.P5L = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P5L);
        }
        public MainWindow()
        {
            Zeitachse              = new double[1000];
            PlotVentilOeffnung     = new double[1000];
            PlotErregerstrom       = new double[1000];
            PlotFrequenz           = new double[1000];
            PlotGeneratorSpannung  = new double[1000];
            PlotSpannungsdifferenz = new double[1000];
            PlotLeistung           = new double[1000];

            const string versionText   = "Synchronisiereinrichtung";
            const string versionNummer = "V2.0";

            const int anzByteDigInput     = 1;
            const int anzByteDigOutput    = 1;
            const int anzByteAnalogInput  = 20;
            const int anzByteAnalogOutput = 4;

            VersionInfoLokal = versionText + " " + versionNummer;

            Datenstruktur     = new Datenstruktur(anzByteDigInput, anzByteDigOutput, anzByteAnalogInput, anzByteAnalogOutput);
            ConfigPlc         = new ConfigPlc.Plc("./ConfigPlc");
            BeschriftungenPlc = new BeschriftungenPlc();

            var viewModel = new ViewModel.ViewModel(this);

            InitializeComponent();
            DataContext = viewModel;

            DatenRangieren = new DatenRangieren(this, viewModel);
            PlcDaemon      = new PlcDaemon(Datenstruktur, DatenRangieren.Rangieren);
            DatenRangieren.ReferenzUebergeben(PlcDaemon.Plc);



            /*
             * DisplayPlc = new DisplayPlc.DisplayPlc(Datenstruktur, ConfigPlc, BeschriftungenPlc);
             *
             * TestAutomat = new TestAutomat.TestAutomat(Datenstruktur, DisplayPlc.EventBeschriftungAktualisieren, BeschriftungenPlc, PlcDaemon.Plc);
             * TestAutomat.SetTestConfig("./ConfigTests/");
             * TestAutomat.TabItemFuellen(TabItemAutomatischerSoftwareTest, DisplayPlc);
             */
        }
        public void Rangieren(Datenstruktur datenstruktur, bool eingaengeRangieren)
        {
            if (eingaengeRangieren)
            {
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.B1, _viewModel.Abfuellanlage.B1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.F1, _viewModel.Abfuellanlage.F1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S1, _viewModel.Abfuellanlage.S1);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S2, _viewModel.Abfuellanlage.S2);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S3, _viewModel.Abfuellanlage.S3);
                _plc.SetBitAt(datenstruktur.DigInput, (int)BitPosEingang.S4, _viewModel.Abfuellanlage.S4);

                _plc.SetIntAt(datenstruktur.AnalogInput, 0, Simatic.Analog_2_Int16(_viewModel.Abfuellanlage.Pegel, 1));
            }


            _viewModel.Abfuellanlage.K1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.K1);
            _viewModel.Abfuellanlage.K2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.K2);
            _viewModel.Abfuellanlage.P1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P1);
            _viewModel.Abfuellanlage.P2 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.P2);
            _viewModel.Abfuellanlage.Q1 = _plc.GetBitAt(datenstruktur.DigOutput, (int)BitPosAusgang.Q1);
        }