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;
        }
Beispiel #2
0
        public void RangierenOutput(byte[] digOutput, byte[] anOutput)
        {
            var p1_links_rot    = S7.GetBitAt(digOutput, (int)BitPosAusgang.P1);
            var p2_links_gelb   = S7.GetBitAt(digOutput, (int)BitPosAusgang.P2);
            var p3_links_gruen  = S7.GetBitAt(digOutput, (int)BitPosAusgang.P3);
            var p4_rechts_rot   = S7.GetBitAt(digOutput, (int)BitPosAusgang.P4);
            var p5_rechts_gelb  = S7.GetBitAt(digOutput, (int)BitPosAusgang.P5);
            var p6_rechts_gruen = S7.GetBitAt(digOutput, (int)BitPosAusgang.P6);

            var ampelLinks  = GetAmpelZustand(p1_links_rot, p2_links_gelb, p3_links_gruen);
            var ampelRechts = GetAmpelZustand(p4_rechts_rot, p5_rechts_gelb, p6_rechts_gruen);

            if (ampelLinks != AmpelLinks || ampelRechts != AmpelRechts)
            {
                OnAmpelChanged(new AmpelZustandEventArgs(ampelLinks, ampelRechts));

                AmpelRechts = ampelRechts;
                AmpelLinks  = ampelLinks;
            }
        }
 public AmpelZustandEventArgs(AmpelZustand ampelZustandLinks, AmpelZustand ampelZustandRechts)
 {
     AmpelZustandLinks  = ampelZustandLinks;
     AmpelZustandRechts = ampelZustandRechts;
 }