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 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);
        }
Esempio n. 3
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;
        }
Esempio n. 4
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 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);
             */
        }
Esempio n. 6
0
        public MainWindow()
        {
            const string versionText   = "Parkhaus";
            const string versionNummer = "V2.0";

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



            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);

            Closing += (_, e) =>
            {
                e.Cancel = true;
                Schliessen();
            };
        }
        public VisuAnzeigen(Datenstruktur datenstruktur, ConfigPlc.Plc configPlc, BeschriftungPlc.BeschriftungenPlc beschriftungenPlc, DisplayPlc displayPlc)
        {
            _datenstruktur     = datenstruktur;
            _configPlc         = configPlc;
            _beschriftungenPlc = beschriftungenPlc;
            _displayPlc        = displayPlc;

            for (var i = 0; i < 100; i++)
            {
                FarbeDa.Add(Brushes.LawnGreen);
                FarbeDi.Add(Brushes.LawnGreen);
                VisibilityDa.Add(Visibility.Visible);
                VisibilityDi.Add(Visibility.Visible);
                LabelDa.Add("-");
                LabelDi.Add("-");
                KommentarDa.Add("-");
                KommentarDi.Add("-");
                BezeichnungDa.Add("-");
                BezeichnungDi.Add("-");
            }

            System.Threading.Tasks.Task.Run(VisuAnzeigenTask);
        }
Esempio n. 8
0
        public DisplayPlc(Datenstruktur datenstruktur, ConfigPlc.Plc configPlc, BeschriftungPlc.BeschriftungenPlc beschriftungenPlc)
        {
            PlcAusgaenge = new Uint("16#FFFF");
            PlcEingaenge = new Uint("16#FFFF");

            ViewModel = new ViewModel.ViewModel(datenstruktur, configPlc, beschriftungenPlc, this);

            var plcGrid = new Grid {
                Name = "PlcGrid", MaxWidth = 700, MaxHeight = 1200, HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top
            };

            Content = plcGrid;

            PlcZeichnen(plcGrid, configPlc, BackgroundProperty);

            DataContext = ViewModel;

            Closing += (_, e) =>
            {
                e.Cancel = true;
                Schliessen();
            };
        }
Esempio n. 9
0
        internal static void PlcZeichnen(Grid grid, ConfigPlc.Plc configPlc, DependencyProperty backgroundProperty)
        {
            const int spaltenBreite    = 30;
            const int reiheHoehe       = 35;
            const int reiheObererRand  = 10;
            const int reiheKommentar   = 200;
            const int reiheBezeichnung = 50;
            const int reiheLabel       = 25;

            const int schriftGanzGross = 35;
            const int schriftGross     = 14;
            const int schriftKlein     = 12;


            grid.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(10)
            });
            for (var i = 0; i < 25; i++)
            {
                grid.ColumnDefinitions.Add(new ColumnDefinition {
                    Width = new GridLength(spaltenBreite)
                });
            }

            foreach (var row in new[] { reiheObererRand, reiheKommentar, reiheBezeichnung, reiheHoehe, reiheLabel, reiheLabel, reiheHoehe, reiheHoehe, reiheHoehe, reiheLabel, reiheLabel, reiheHoehe, reiheBezeichnung, reiheKommentar })
            {
                grid.RowDefinitions.Add(new RowDefinition {
                    Height = new GridLength(row)
                });
            }

            Formen.PlcRechteckZeichnen(1, 22, 3, 9, Brushes.LightGray, grid);

            Formen.PlcBorderZeichnen(3, 8, 3, 3, 3, 0, 3, 3, Brushes.White, grid);

            ///////////////////////////////////////////////////////////////////
            //  obere Hälfte zeichnen
            ///////////////////////////////////////////////////////////////////

            Formen.LabelZeichnen(3, 1, 5, 1, Brushes.White, schriftGross, "DI", 0, "-", VisibilityProperty, grid);
            Formen.LabelZeichnen(4, 1, 5, 1, Brushes.White, schriftKlein, "a", 0, "-", VisibilityProperty, grid);
            for (var i = 0; i < 8; i++)
            {
                Formen.LabelZeichnen(3 + i, 1, 4, 1, Brushes.White, schriftKlein, $".{i}", i, "Di", VisibilityProperty, grid);
                Formen.PlcButtonZeichnen(3 + i, 3, i, "FarbeDi", backgroundProperty, grid);

                var(anzeigen, bezeichnung, kommentar) = DiGetBezeichnung(configPlc, i);
                if (!anzeigen)
                {
                    continue;
                }
                Formen.BezeichnungZeichnen(3 + i, 2, schriftGross, VerticalAlignment.Bottom, bezeichnung, i, "Di", VisibilityProperty, grid);
                Formen.KommentarZeichnen(3 + i, 1, schriftKlein, VerticalAlignment.Bottom, kommentar, i, "Di", VisibilityProperty, grid);
            }

            Formen.PlcBorderZeichnen(13, 8, 3, 3, 3, 0, 3, 3, Brushes.White, grid);
            Formen.LabelZeichnen(13, 1, 5, 1, Brushes.White, schriftGross, "DI", 0, "-", VisibilityProperty, grid);
            Formen.LabelZeichnen(14, 1, 5, 1, Brushes.White, schriftKlein, "b", 0, "-", VisibilityProperty, grid);
            for (var i = 0; i < 8; i++)
            {
                Formen.LabelZeichnen(13 + i, 1, 4, 1, Brushes.White, schriftKlein, $".{i}", 8 + i, "Di", VisibilityProperty, grid);
                Formen.PlcButtonZeichnen(13 + i, 3, 8 + i, "FarbeDi", backgroundProperty, grid);

                var(anzeigen, bezeichnung, kommentar) = DiGetBezeichnung(configPlc, 8 + i);
                if (!anzeigen)
                {
                    continue;
                }
                Formen.BezeichnungZeichnen(13 + i, 2, schriftGross, VerticalAlignment.Bottom, bezeichnung, 8 + i, "Di", VisibilityProperty, grid);
                Formen.KommentarZeichnen(13 + i, 1, schriftKlein, VerticalAlignment.Bottom, kommentar, 8 + i, "Di", VisibilityProperty, grid);
            }

            ///////////////////////////////////////////////////////////////////
            //  untere Hälfte zeichnen
            ///////////////////////////////////////////////////////////////////

            Formen.PlcBorderZeichnen(3, 8, 9, 3, 3, 3, 3, 0, Brushes.White, grid);
            Formen.LabelZeichnen(3, 1, 9, 1, Brushes.White, schriftGross, "DQ", 0, "-", VisibilityProperty, grid);
            Formen.LabelZeichnen(4, 1, 9, 1, Brushes.White, schriftKlein, "a", 0, "-", VisibilityProperty, grid);
            for (var i = 0; i < 8; i++)
            {
                Formen.LabelZeichnen(3 + i, 1, 10, 1, Brushes.White, schriftGross, $".{i}", i, "Da", VisibilityProperty, grid);
                Formen.PlcButtonZeichnen(3 + i, 11, i, "FarbeDa", backgroundProperty, grid);

                var(anzeigen, bezeichnung, kommentar) = DaGetBezeichnung(configPlc, i);
                if (!anzeigen)
                {
                    continue;
                }
                Formen.BezeichnungZeichnen(3 + i, 12, schriftGross, VerticalAlignment.Top, bezeichnung, i, "Da", VisibilityProperty, grid);
                Formen.KommentarZeichnen(3 + i, 13, schriftKlein, VerticalAlignment.Top, kommentar, i, "Da", VisibilityProperty, grid);
            }

            Formen.PlcBorderZeichnen(13, 8, 9, 3, 3, 3, 3, 0, Brushes.White, grid);
            Formen.LabelZeichnen(13, 1, 9, 1, Brushes.White, schriftGross, "DQ", 0, "-", VisibilityProperty, grid);
            Formen.LabelZeichnen(14, 1, 9, 1, Brushes.White, schriftKlein, "b", 0, "-", VisibilityProperty, grid);
            for (var i = 0; i < 8; i++)
            {
                Formen.LabelZeichnen(13 + i, 1, 10, 1, Brushes.White, schriftKlein, $".{i}", 8 + i, "Da", VisibilityProperty, grid);
                Formen.PlcButtonZeichnen(13 + i, 11, 8 + i, "FarbeDa", backgroundProperty, grid);

                var(anzeigen, bezeichnung, kommentar) = DaGetBezeichnung(configPlc, 8 + i);
                if (!anzeigen)
                {
                    continue;
                }
                Formen.BezeichnungZeichnen(13 + i, 12, schriftGross, VerticalAlignment.Top, bezeichnung, 8 + i, "Da", VisibilityProperty, grid);
                Formen.KommentarZeichnen(13 + i, 13, schriftKlein, VerticalAlignment.Top, kommentar, 8 + i, "Da", VisibilityProperty, grid);
            }

            Formen.LabelZeichnen(3, 20, 6, 3, Brushes.White, schriftGanzGross, "S7-1214 DC/DC/DC", 0, "-", VisibilityProperty, grid);
        }
Esempio n. 10
0
 private static (bool anzeigen, string bezeichnung, string kommentar) DaGetBezeichnung(ConfigPlc.Plc configPlc, int i)
 {
     return(i + 1 > configPlc.GetConfigPlc.DaConfig.DigitaleAusgaenge.Count ? (false, "", "") : (true, configPlc.GetConfigPlc.DaConfig.DigitaleAusgaenge[i].Bezeichnung, configPlc.GetConfigPlc.DaConfig.DigitaleAusgaenge[i].Kommentar));
 }
Esempio n. 11
0
        public MainWindow()
        {
            const string versionText   = "Blinklicht Fibonacci";
            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);

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

            Closing += (_, e) =>
            {
                e.Cancel = true;
                Schliessen();
            };

            var zeitachse = DataGen.Consecutive(5000);

            WpfPlot.Plot.XAxis.Label("Zeit [ms]");
            WpfPlot.Plot.YLabel("Leuchtmelder");
            WpfPlot.Plot.AddScatter(zeitachse, WertLeuchtMelder, Color.Magenta, 1, 1, MarkerShape.none, LineStyle.Solid, "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;
        }