Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Lösungsansatz DB mit BOOL Array auf DB mit Word Array Aufs richtigte BOOL

  1. #1
    Registriert seit
    14.02.2006
    Beiträge
    61
    Danke
    21
    Erhielt 4 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, ich bräuchte einen Lösungsansatz für folgende Aufgabenstellung:

    Es gibt mehrere SFC51 die das PN System auf ausfall, vorhanden usw... abfragen, jeder Aufruf hat einen eigenen DB indem die Daten abgelegt werden.
    Beispiel:
    SFC51 ausfall schreibt in eine Bool Array die Teilnehmer von 0-255, wenn der Teilnehmer 1 ausfällt dann ist das Bit im Array[1] high usw...

    Jetzt muss ich folgendes machen:
    Das Bit[1] muss jetzt in einem StörmeldungsDB mit folgender Struktur übertragen werden -> auf das BIT 2 und für alle andern Teilnehmer und Bit's derselbe Ablauf.
    Teilnehmer[1].sfc_12 := FALSE;
    Teilnehmer[1].ausfall := FALSE;
    Teilnehmer[1].stoerung_wartung := FALSE;
    Teilnehmer[1].fehler_soll_istausbau := FALSE;
    Teilnehmer[1].fehler_baugruppenparamte := FALSE;
    Teilnehmer[1].i_device_ausfall_modul := FALSE;
    Teilnehmer[1].i_device_fehler_konfig := FALSE;
    Teilnehmer[1].reserve0 := FALSE;
    Teilnehmer[1].reserve1 := FALSE;
    Teilnehmer[1].reserve2 := FALSE;
    Teilnehmer[1].reserve3 := FALSE;
    Teilnehmer[1].reserve4 := FALSE;
    Teilnehmer[1].reserve5 := FALSE;
    Teilnehmer[1].reserve6 := FALSE;
    Teilnehmer[1].reserve7 := FALSE;
    Teilnehmer[1].reserve8 := FALSE;

    Der StörmeldungsDB hat auch eine Struktur für 255 Teilnehmer.

    Meine Frage ist ob das mit Pointer machbar ist, da ich im Ziel einen Offset für das BIT brauche und dann noch einen Offset für die Teilnehmer.
    Die Abarbeitung würde ich mit einer Schleife machen.

    Bitte um Anregungen
    Zitieren Zitieren Lösungsansatz DB mit BOOL Array auf DB mit Word Array Aufs richtigte BOOL  

  2. #2
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Deine Frage kann man relativ einfach mit "Ja, Pointer ist das Mittel der Wahl" beantworten.
    Warum hat das noch keiner getan? Oo
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #3
    Registriert seit
    14.02.2006
    Beiträge
    61
    Danke
    21
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Habe es so ausgeführt, aber ein kleines Problem der Anypointer. beim BLKMOV habe ich die Meldung: 8123 Bereichlängenfehler beim lesen. Was ich mir nicht erklären kann.

    Fc115.JPG
    Angehängte Grafiken Angehängte Grafiken

  4. #4
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    ich hab noch nicht so ganz verstanden, was Du eigentlich kopieren möchtest.
    Jeweils das Bit "Teilnehmer[n].Ausfall" in eine Fortlaufende Struktur Teilnehmer[0].Ausfall; Teilnehmer[1].Ausfall; ... Teilnehmer[n].Ausfall?
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. #5
    Registriert seit
    14.02.2006
    Beiträge
    61
    Danke
    21
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Ja das stimmt, der Programmteil mit dem umkopiren der Bits funktioniert schon. Es geht jetzt um den Anypointer damit ich die Daten von Quell-DB in den temp Bereich bekommen. Die Structur im Temp. Bereich ist die die gleiche wie im Quell-DB. Nur der Annypointer funktiert nicht. Wenn ich beim BLKMOV DB100.daten (DB100.DBX4.0) angebe dann wird der BLKMOV ohne Fehler ausgeführt. Allso muss es am zusammenbau des Anypointer liegen.

  6. #6
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    welcher der beiden dargestellten Aufrufe funktioniert nicht?
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #7
    Registriert seit
    14.02.2006
    Beiträge
    61
    Danke
    21
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Der BKLMOV hat den Fehler, da der Anypointer der im Netzwerk 3 zusammgebaut wird einen Fehler hat und ich komme nicht drauf. Kann ich den FC Online stellen?

  8. #8
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von taucherd Beitrag anzeigen
    Der BKLMOV hat den Fehler, da der Anypointer der im Netzwerk 3 zusammgebaut wird einen Fehler hat und ich komme nicht drauf. Kann ich den FC Online stellen?
    Der Speicherbereich der Quelle ist nicht 86 - Lokaldaten.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  9. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    taucherd (31.07.2014)

  10. #9
    Registriert seit
    14.02.2006
    Beiträge
    61
    Danke
    21
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Das soll dann 84 für DB sein

  11. #10
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.204
    Danke
    926
    Erhielt 3.293 Danke für 2.662 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Statt umständlich
    Code:
          L     6
          SLD   3
          T     LD     6
          L     B#16#86     //Bereichskennung Lokaldaten
          T     LB     6
    kann man besser schreiben:
    Code:
          L     P#L 6.0     //16#86000030: enthält die Bereichskennung 16#86 
          T     LD     6
    Da muß man sich nicht um die korrekte Kodierung der Bereichskennung kümmern. Die wird automatisch richtig erzeugt.

    Wenn ein Pointer auf einen DB-Speicherbereich DB*.DBX4.0 gewünscht ist, kann man einfach schreiben:
    Code:
          L     P#DBX 4.0   //16#84000020
          T     LD     6
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  12. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    vierlagig (01.08.2014)

Ähnliche Themen

  1. TIA Array of Bool in der Visu
    Von SanjaDO im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 08.04.2014, 12:44
  2. Antworten: 7
    Letzter Beitrag: 30.10.2012, 16:53
  3. Allen Bradley Word in Bool-Array kopieren
    Von mazoellner im Forum Sonstige Steuerungen
    Antworten: 14
    Letzter Beitrag: 11.07.2011, 09:50
  4. Array of Bool auf 0 vergleichen
    Von Nordischerjung im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 02.07.2010, 09:25
  5. Bool-Array in Byte-Array
    Von Techniker im Forum Sonstige Steuerungen
    Antworten: 10
    Letzter Beitrag: 13.01.2006, 19:12

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •