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); }
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; }
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); */ }
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); }
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(); }; }
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); }
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)); }
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; }