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

Ergebnis 1 bis 4 von 4

Thema: selbsterstellte Datenformate in DB

  1. #1
    Registriert seit
    10.07.2014
    Beiträge
    366
    Danke
    137
    Erhielt 11 Danke für 11 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    ich habe mal wieder eine Verständnisfrage. Grundlage: ich habe 2 benutzerdefinierte Datenformate.
    Format 1 der Form: xy : int , xyz : struct mit 16 bool
    Format 2 der Form: xy : int , xyz : word

    Dem xyz als struct sind jedem bool quasi Ausgänge zugeordnet, ala bit0 Motor 0, bit1 Motor 1 usw.
    Dem xyz als als WORD sind Hexzahlen zugeordnet.
    Dem xy sind dabei die Zustandsnummern zugeordnet.
    In einem Zustands-DB sind für jeden Zustand den die Maschine einzelne Zustände angelegt, die über Sprungmarken angesprungen werden mit xy als Zustandsnummer.
    Der DB sieht ungefähr so aus:
    static
    abc | Format 1 (aktueller Zustand)
    xy | int
    xyz | struct (darunter dann die 16 Bits)
    def | Format 2 (jeweiliger angeforderter Zustand)
    xy | int
    xyz | WORD
    Die einzelnen Bits aus dem Struct werden in einem Ausgabe-FB abgerufen und steuern beispielsweise die Freigabe eines FU.
    Das das WORD dem Struct entspricht ist mir klar. Im Zustand 2 wird beispielsweise festgelegt xyz := 16#0301.
    Wie kommt dieses WORD nun in das Struct damit die einzelnen Bits die Motoren ansteuern können? Liegt das vielleicht nur dem gleichen Namen xyz?
    Zitieren Zitieren selbsterstellte Datenformate in DB  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    ich mußte deinen Beitrag 3 mal lesen um ihn so zu verstehen, wie ich ihn nun verstanden habe.
    Verstanden habe ich :
    Das Format 1 und das Format 2 zeigen beide den gleichen Inhalt nur in unterschiedlichen Sichtweisen - sie werden aber parallel aktualisiert.
    Wenn ja, dann wird das wahrscheinlich so realisiert, dass die Perepherie-Info's vom dem FU sowohl in den einen Bereich (Format 1) wie in den anderen Bereich (Format 2) geschrieben werden - also hintereinander weg.

    Gruß
    Larry

  3. #3
    Credofire ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    10.07.2014
    Beiträge
    366
    Danke
    137
    Erhielt 11 Danke für 11 Beiträge

    Standard

    Wenn die Maschine arbeitet, durchläuft sie verschiedene Zustände der Reihe nach, bzw. per Sprungmarke. In jedem dieser zustände sind Beschaltungen die "Motorenausgänge" als 16#xxxx hinterlegt. Dass heist, in dem aktuellen Zustand steht die 16#0001 drin, was bedeuten würde, dass beispielsweise FU1 jetzt Freigabe haben soll. Dieses Bit x.0 wird in einem FB nun zum ansteuern benutzt.
    Die Frage ist nun, wenn ich nun diesen Zustand mit anspringe wo die 16#0001 für das xyz hinterlegt ist, wird dies ja abgefragt. Bedeutet das, dass gleichzeitig das Bit x.0 auch 1 wird ohne das ich irgendetwas dazu tun muss? Weil es ist ja eigentlich ein anderer Speicherbereich im DB. Der Variablen-Name an sich ist gleich. Das Bit hat im DB das Offset 2.0. Das entsprechende Bit im WORD hat aber beispielsweise das Offset 82.0.
    Wie komme ich von der 82.0 zu 2.0 ohne irgendein zutun? Einen schreibenden Zugriff auf die einzelnen Bits in dem STRUCT konnte ich nicht finden.

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Diese Frage kann ich dir ohne genaue Kenntnis deines Programms nicht zuverlässig beantworten. In meinen Programmen wäre es vermutlich so - es ist aber eine Frage, wie es gemacht ist ...
    Du solltest in diesem Zusammenhang klären, wie die Daten hin und her übertragen werden. Dafür vielleicht mal nach SFC13,14 oder SFC20 suchen. Es kann aber auch irgendwo (da wir ja von 2 Worten sprechen) irgendwo ein "L PED ..." und ein "T PAD ..." stehen oder das Gleiche mit "L PEW ..." bzw. "T PAW ...".
    Schau doch einfach mal nach der Perepherie-Adresse des fraglichen Umrichters - die mußt du bei allen diesen Aufrufen irgendwie wiederfinden - dann weißt du vielleicht schon mehr ...

    Gruß
    Larry

Ähnliche Themen

  1. Datenformate S5: DF, KC, KF... nach S7
    Von screwdriver im Forum HMI
    Antworten: 1
    Letzter Beitrag: 25.05.2012, 19:54
  2. Datenformate ULONG32/FLOAT32 in S7-REAL
    Von danielplp im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 04.03.2011, 19:03

Stichworte

Lesezeichen

Berechtigungen

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