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

Ergebnis 1 bis 6 von 6

Thema: Var_OUT (FB) beschreibt nicht das DBD am aufrufenden Baustein

  1. #1
    Registriert seit
    07.08.2013
    Ort
    Kiel
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    ich habe folgendes Problem:

    im OB1 rufe ich einen FB mit Instanz DB auf. Den FB selber habe ich nur mit Variablen IN / OUT / INOUT programmiert. Somit gebe ich die EA´s im OB1 für diesen Baustein an.

    Im FB habe ich ein Variable (DWORD INOUT) deklariert, welches vom OB1 mit einem DB3.DBD40 versorgt wird.
    Nun setze ich über = L4.6 die einzelnen Bits im FB von der Variable. Leider wird kein Datenbausteinbit im OB1 gesetzt. Warum nicht? Was mache ich falsch?

    Kann mir einer dazu etwas schreiben... das wäre echt nett.
    Gruß
    Andi
    Zitieren Zitieren Var_OUT (FB) beschreibt nicht das DBD am aufrufenden Baustein  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    "= L4.6" schreibt in TEMP.

    Wenn Du ein Bit in einem Word setzen willst, dann solltest Du das Bit sauber mittels OR-Verknüpfung mit einer Bitmaske setzen:
    Code:
    L  #IO_Word
    OW W#16#40
    T  #IO_Word
    oder eine Struktur in TEMP nutzen, welche aus BOOLs besteht.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    Kapitaen31 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.08.2013
    Ort
    Kiel
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    "= L4.6" schreibt in TEMP.
    Das heisst mit INOUT bin ich ja falsch.... mhhh... ich dachte mit L4.6 komme ich auch darauf... weil in der Deklarationstabelle gibt er für diese Variable die Anfangsadresse 4.0 an.... (Für das gesamte DWORD)


    Zitat Zitat von PN/DP Beitrag anzeigen
    Wenn Du ein Bit in einem Word setzen willst, dann solltest Du das Bit sauber mittels OR-Verknüpfung mit einer Bitmaske setzen:
    Code:
    L  #IO_Word
    OW W#16#40
    T  #IO_Word
    oder eine Struktur in TEMP nutzen, welche aus BOOLs besteht.

    Harald

    Mhhh.... ich bin gerade am Überlegen....
    Aber die TEMPs kann ich ja nicht am aufrufenden Baustein beschalten. Dann muß ich ja wieder einen Umweg über andere Variablen machen.
    Andi
    Geändert von Kapitaen31 (05.03.2015 um 18:09 Uhr)

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Nachtrag zur TEMP-Struktur: etwa so, aber Vorsicht, bei Multiinstanzen muß man bei solchen Schweinereien auch noch das AR2 beachten. (Nachtrag: nicht bei Adressen in TEMP, sondern nur wenn man indirekt auf die Instanz zugreift)

    Harald
    Geändert von PN/DP (05.03.2015 um 18:11 Uhr)
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.197
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von Kapitaen31 Beitrag anzeigen
    ich dachte mit L4.6 komme ich auch darauf... weil in der Deklarationstabelle gibt er für diese Variable die Anfangsadresse 4.0 an.... (Für das gesamte DWORD)
    Mit "= DIX4.6" hättest Du das gewünschte Bit "getroffen"... so hat man sowas im vorigen Jahrhundert programmiert. Heutzutage versucht man das so weit wie möglich symbolisch zu programmieren. Eine AT-Sicht wäre perfekt dafür, doch die gibt es nicht in Step7-classic-AWL. Man kann aber in TEMP eine Struktur aus 16 BOOL anlegen (oder ein BOOL-Array) und das Word auf diese Struktur kopieren, auf die einzelnen Bits symbolisch zugreifen, und am Ende wieder als Word zurückkopieren (siehe den Link in Beitrag #4).


    Aber die TEMPs kann ich ja nicht am aufrufenden Baustein beschalten. Dann muß ich ja wieder einen Umweg über andere Variablen machen.
    Hmm, hier kann ich Dir nicht folgen wie Du das meinst...

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #6
    Kapitaen31 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.08.2013
    Ort
    Kiel
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von PN/DP Beitrag anzeigen
    Mit "= DIX4.6" hättest Du das gewünschte Bit "getroffen"... so hat man sowas im vorigen Jahrhundert programmiert. Heutzutage versucht man das so weit wie möglich symbolisch zu programmieren. Eine AT-Sicht wäre perfekt dafür, doch die gibt es nicht in Step7-classic-AWL. Man kann aber in TEMP eine Struktur aus 16 BOOL anlegen (oder ein BOOL-Array) und das Word auf diese Struktur kopieren, auf die einzelnen Bits symbolisch zugreifen, und am Ende wieder als Word zurückkopieren (siehe den Link in Beitrag #4).



    Hmm, hier kann ich Dir nicht folgen wie Du das meinst...

    Harald
    Ich meinte genau das, was du darüber geschrieben hast... Sorry, wenn ich es schlecht beschrieben habe...

    Andreas

Ähnliche Themen

  1. TIA CPU- und das Baustein-passwort zu knacken
    Von SanjaDO im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 11.12.2014, 09:47
  2. Step 7 Var_out eines FCs-Was zum schmunzeln- oder doch zu doof?
    Von mausi17 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 30.10.2013, 21:58
  3. Antworten: 37
    Letzter Beitrag: 06.02.2013, 09:52
  4. Antworten: 4
    Letzter Beitrag: 24.09.2012, 12:41
  5. Baustein Konsistenz. Was ist das?
    Von ottopaul im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 24.10.2007, 09:37

Lesezeichen

Berechtigungen

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