Example #1
0
        public void WertebereicheUmrechnen()
        {
            // Sollwerte --> SPS
            Netz_U      = S7Analog.S7_Analog_2_Short(Spannung, 1000);
            Netz_f      = S7Analog.S7_Analog_2_Short(Frequenz, 100);
            Netz_P      = S7Analog.S7_Analog_2_Short(Leistung, 1000);
            Netz_cosPhi = S7Analog.S7_Analog_2_Short(Leistungsfaktor, 1);

            // Modell --> SPS
            Gen_n = S7Analog.S7_Analog_2_Short(Generator_n, 5000);
            Gen_U = S7Analog.S7_Analog_2_Short(Generator_U, 1000);
            Gen_f = S7Analog.S7_Analog_2_Short(Generator_f, 100);
            Gen_P = S7Analog.S7_Analog_2_Short(Generator_P, 1000);
            UDiff = S7Analog.S7_Analog_2_Short(SpannungsUnterschiedSynchronisieren, 1000);
            ph    = S7Analog.S7_Analog_2_Short(Phasenlage, 1);
        }
Example #2
0
        public void Logikfunktionen_Task()
        {
            while (mainWindow.FensterAktiv)
            {
                switch (mainWindow.WagenRichtung)
                {
                case MainWindow.Richtung.nachLinks:
                    if (mainWindow.WagenPosition_X > WagenPositionLinks)
                    {
                        mainWindow.WagenPosition_X -= WagenGeschwindigkeit;
                    }
                    if (mainWindow.WagenPosition_X <= WagenPositionLinks)
                    {
                        mainWindow.WagenPosition_X = WagenPositionLinks;
                        mainWindow.WagenRichtung   = MainWindow.Richtung.stehen;
                    }
                    break;

                case MainWindow.Richtung.nachRechts:
                    if (mainWindow.WagenPosition_X < WagenPositionRechts)
                    {
                        mainWindow.WagenPosition_X += WagenGeschwindigkeit;
                    }
                    if (mainWindow.WagenPosition_X >= WagenPositionRechts)
                    {
                        mainWindow.WagenPosition_X = WagenPositionRechts;
                        mainWindow.WagenRichtung   = MainWindow.Richtung.stehen;
                    }
                    break;

                case MainWindow.Richtung.stehen:
                default:
                    break;
                }

                // Wagen bewegen
                if (mainWindow.WagenPosition_X == WagenPositionRechts)
                {
                    mainWindow.S7 = true;
                }
                else
                {
                    mainWindow.S7 = false;
                }
                if (mainWindow.WagenFuellstand == WagenFuellstandVoll)
                {
                    mainWindow.S8 = true;
                }
                else
                {
                    mainWindow.S8 = false;
                }

                if (mainWindow.WagenPosition_X == WagenPositionLinks)
                {
                    if (mainWindow.WagenFuellstand > 0)
                    {
                        mainWindow.WagenFuellstand -= WagenFuellstandLeeren;
                    }
                }

                // Materialsilo fuellen/leeren
                if (mainWindow.XFU)
                {
                    mainWindow.MaterialSiloFuellstand += MaterialSiloFuellen;
                }

                if (mainWindow.MaterialSiloFuellstand > 0 & mainWindow.Q4_LL & mainWindow.Y1)
                {
                    mainWindow.WagenFuellstand        += WagenFuellstandFuellen;
                    mainWindow.MaterialSiloFuellstand -= MaterialSiloLeeren;
                }
                if (mainWindow.WagenFuellstand > WagenFuellstandVoll)
                {
                    mainWindow.WagenFuellstand = WagenFuellstandVoll;
                }
                if (mainWindow.WagenFuellstand < 0)
                {
                    mainWindow.WagenFuellstand = 0;
                }

                if (mainWindow.MaterialSiloFuellstand > 1)
                {
                    mainWindow.MaterialSiloFuellstand = 1;
                }
                if (mainWindow.MaterialSiloFuellstand < 0)
                {
                    mainWindow.MaterialSiloFuellstand = 0;
                }


                mainWindow.MaterialsiloPegel = S7Analog.S7_Analog_2_Short(mainWindow.MaterialSiloFuellstand, 1);

                Thread.Sleep(100);
            }
        }