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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 27

Thema: indirekt auf Eingänge eines FC´s zugreifen

  1. #11
    Registriert seit
    01.05.2008
    Beiträge
    93
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke.....
    mfg
    Helmi

  2. #12
    Registriert seit
    17.06.2003
    Beiträge
    1.275
    Danke
    482
    Erhielt 66 Danke für 58 Beiträge

    Standard

    Ich vermute mal der Zweck der Übung ist das "geniale Programm" schwer lesbar zu machen. Damit macht man sich allerdings keine Freunde.

  3. #13
    Registriert seit
    01.05.2008
    Beiträge
    93
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    wie gesagt, wer Zynismus an den Tag legt, sollte ihn auch belegen!
    Und falls man des Lesens mächtig ist: In meinem zweiten Post steht: "einfaches Beispiel" und mag mit der reelen Aufgabenstellung
    wenig bis nichts zu tun haben!

    Und manchmal ist es einfacher mit wenigen Zeilen Code ein Problem zu lösen, als sich mit vielen Zeilen Code Freunde zu machen!
    mfg
    Helmi

  4. #14
    Registriert seit
    01.05.2008
    Beiträge
    93
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    es scheint trotz FC zu gehen:

    Code:
    VAR_INPUT
      Eingang_1 : BOOL ; 
      Eingang_2 : BOOL ; 
      Eingang_3 : BOOL ; 
      Eingang_4 : BOOL ; 
      Eingang_5 : BOOL ; 
      Eingang_6 : BOOL ; 
      Eingang_7 : BOOL ; 
      Eingang_8 : BOOL ; 
    END_VAR
    VAR_TEMP
      LoopCount : INT ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =
          L     P##Eingang_1; 
          LAR1  ; 
          L     B [AR1,P#0.0]; 
          T     MB   520; 
    END_FUNCTION
    jedenfalls kommen meine Eingänge richtig im MB520 an
    Wie sicher das ganze ist, muss ich noch rausfinden
    mfg
    Helmi

  5. #15
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.752
    Danke
    323
    Erhielt 1.527 Danke für 1.286 Beiträge

    Standard

    Warum du dann nicht
    L EB irgendwas
    T MB irgendwas
    schreibst, weißt wahrscheinlich auch nur du ...
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  6. #16
    Registriert seit
    19.06.2015
    Beiträge
    459
    Danke
    26
    Erhielt 40 Danke für 35 Beiträge

    Standard

    Also das verstehe ich auch nicht.Mit einer Kanone auf einen Spatz geschossen.

  7. #17
    Registriert seit
    01.05.2008
    Beiträge
    93
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    wer sagt, dass die Eingänge, die aussen am FC angegeben werden, auch bit-aufsteigend sind?
    und wer sagt, dass das nur Eingänge sind und nicht auch Merker-Bit oder DB-Bits sind?

    Aber um das Thema abzuschließen:
    Es geht doch Eingänge eines FC´s indirekt anzusprechen
    (was ja meine eigentliche Frage war)
    Geändert von HelmiMUC (01.08.2015 um 18:35 Uhr)
    mfg
    Helmi

  8. #18
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.752
    Danke
    323
    Erhielt 1.527 Danke für 1.286 Beiträge

    Standard

    Zitat Zitat von HelmiMUC Beitrag anzeigen
    wer sagt, dass die Eingänge, die aussen am FC angegeben werden, auch bit-aufsteigend sind?
    und wer sagt, dass das nur Eingänge sind und nicht auch Merker-Bit oder DB-Bits sind?
    Auß einem relativ simplen Grund, weil du letzten Endes die Adresse des Außen angelegten Operanden ins AR1 lädst,
    womit dein Code bereichsübergreifend schon mal gar nicht funktionieren kann, und falls an Ein1 etwas anderes als "Bit0" steht, geht die Kiste auf Stop.

    Was wiederum heißt, das dein Code einem normalen L / T entspricht, Ein2-8 sind absolut bedeutungslos, die könntest du genau so gut auch löschen, ohne die geringste Auswirkung auf deinen Schnipsel.

    Also wer sagt, das dein Code das was du da von dir gibst überhaupt gewährleisten kann ...
    Geändert von MSB (01.08.2015 um 19:03 Uhr)
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

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

    PN/DP (01.08.2015)

  10. #19
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.341
    Danke
    932
    Erhielt 3.333 Danke für 2.691 Beiträge

    Standard

    Zitat Zitat von HelmiMUC Beitrag anzeigen
    es scheint trotz FC zu gehen:

    Code:
    VAR_INPUT
      Eingang_1 : BOOL ; 
      Eingang_2 : BOOL ; 
      Eingang_3 : BOOL ; 
      Eingang_4 : BOOL ; 
      Eingang_5 : BOOL ; 
      Eingang_6 : BOOL ; 
      Eingang_7 : BOOL ; 
      Eingang_8 : BOOL ; 
    END_VAR
    VAR_TEMP
      LoopCount : INT ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =
          L     P##Eingang_1; 
          LAR1  ; 
          L     B [AR1,P#0.0]; 
          T     MB   520; 
    END_FUNCTION
    jedenfalls kommen meine Eingänge richtig im MB520 an
    Wie sicher das ganze ist, muss ich noch rausfinden

    Soll ich mich nochmal "zynisch" selber zitieren, bzgl. man sollte verstehen was man tut und daß nur einmal testen nicht reicht?

    Zitat Zitat von HelmiMUC Beitrag anzeigen
    wer sagt, dass die Eingänge, die aussen am FC angegeben werden, auch bit-aufsteigend sind?
    und wer sagt, dass das nur Eingänge sind und nicht auch Merker-Bit oder DB-Bits sind?

    Aber um das Thema abzuschließen:
    Es geht doch Eingänge eines FC´s indirekt anzusprechen
    (was ja meine eigentliche Frage war)
    Vielleicht solltest Du hier nicht nur trotzig geheimnisvoll 'rumtönen sondern auch mal wirklich testen, was Du da behauptest. Also mal mit verschiedenen nicht aufsteigenden Eingangsbelegungen und gemischt aus den Bereichen E, A, M, L, DBX und evtl. Konstante testen. Vielleicht beobachtest Du auch mal Deinen Code und besonders was das "L P##Eingang_1" ergibt?

    Wie schon mehrmals gesagt: es geht nicht. Höchstens als zufällig funktionierende Schweinerei.

    Von mir aus können wir das Thema nun abschließen.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  11. Folgende 2 Benutzer sagen Danke zu PN/DP für den nützlichen Beitrag:

    Mr.Teddy (01.08.2015),MSB (01.08.2015)

  12. #20
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.367
    Danke
    457
    Erhielt 696 Danke für 521 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von PN/DP Beitrag anzeigen
    Also mal mit verschiedenen nicht aufsteigenden Eingangsbelegungen und gemischt aus den Bereichen E, A, M, L, DBX und evtl. Konstante testen. Vielleicht beobachtest Du auch mal Deinen Code und besonders was das "L P##Eingang_1" ergibt?
    Das hatten wir doch schon x-mal.
    Hier in dem Beitrag (#9) hatte ich sogar Screenshots gepostet was man wirklich bekommt wenn man versucht indirekt auf FC-IN/OUT zuzugreifen...
    http://www.sps-forum.de/simatic/7404...ines-fc-s.html
    @HelmiMUC: Sieh dir die Screenshots mal an, dann weißt du worauf PN/DP und MSB so pochen...

    Nachdem du das gelesen hast sehen wir uns nochmal deinen Vorschlag an....
    Zitat Zitat von HelmiMUC Beitrag anzeigen
    es scheint trotz FC zu gehen:
    Code:
    VAR_INPUT
      Eingang_1 : BOOL ; 
      Eingang_2 : BOOL ; 
      Eingang_3 : BOOL ; 
      Eingang_4 : BOOL ; 
      Eingang_5 : BOOL ; 
      Eingang_6 : BOOL ; 
      Eingang_7 : BOOL ; 
      Eingang_8 : BOOL ; 
    END_VAR
    VAR_TEMP
      LoopCount : INT ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =
          L     P##Eingang_1; 
          LAR1  ; 
          L     B [AR1,P#0.0]; 
          T     MB   520; 
    END_FUNCTION
    1. Wenn an Eingang_1 was anderes als X.0 steht, hast du ein Problem - MSB schrieb's ja schon

    Zitat Zitat von HelmiMUC Beitrag anzeigen
    wer sagt, dass die Eingänge, die aussen am FC angegeben werden, auch bit-aufsteigend sind?
    und wer sagt, dass das nur Eingänge sind und nicht auch Merker-Bit oder DB-Bits sind?
    2. Beide Vorgaben werden leider nicht erfüllt... Immer aufsteigend.... E/A/M/DB mischen ist auch nicht (siehe Punk 3 und 4)....

    3. Wenn an Eingang_1 (Baustein in AWL aufgerufen) ein E0.0 steht und an Eingang_2 ein M0.0 dann bekommst
    du mit dem Lade-Befehl das EB0. M0.0 verlierst du. Du würdest dabei auch wirklich auf EB0 zugreifen
    4. Der selbe Fall wie 2. (Funktion in FUP aufgerufen) heißt dass du den Inhalt von E0.0 und M0.0 als erste 2 Bits bekommen würdest....
    Du würdest auch nicht direkt auf EB0 oder MB0 zugreifen, sondern auf Lokaldaten der Aufrufumgebung...

    Wie du siehst ist das brandgefährlich, ein FC der seine "Funktion" ändert nur weil man ihn in FUP oder AWL aufruft, sowas darf's nicht geben!

    Die einzige, wirklich einzige, Lösung ist der einzelne, bitweise Zugriff...
    Wenn du die 8 IN-Bits z.B. als gesammeltes Byte weitergeben willst, kann man schon FC-intern über Temps in ein wenig "indirekt" arbeiten.


    Zitat Zitat von silverfreaky Beitrag anzeigen
    Also das verstehe ich auch nicht.Mit einer Kanone auf einen Spatz geschossen.
    Wobei der Schuss in dem Fall wohl meist nach hinten los gehen wird..
    Geändert von RONIN (01.08.2015 um 21:45 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  13. Folgender Benutzer sagt Danke zu RONIN für den nützlichen Beitrag:

    PN/DP (28.08.2015)

Ähnliche Themen

  1. TIA Auf Array-Variable indirekt zugreifen
    Von zloyduh im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 22.01.2015, 21:28
  2. Step 7 Indirekt auf WORD in einem DB zugreifen
    Von mega_ohm im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 09.03.2014, 22:06
  3. TIA Indirekt auf DB-WORD zugreifen
    Von M15K im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 23.02.2014, 23:37
  4. Indirekt auf DB zugreifen (IN SCL)
    Von Bensen83 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 09.07.2010, 08:52
  5. Indirekt (Any-Pointer) auf PEW zugreifen?
    Von thorsten im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 11.05.2009, 12:44

Lesezeichen

Berechtigungen

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