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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 39

Thema: Eingangswort über Pointer einlesen (Anfängerfrage)

  1. #11
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Eigentlich wollte ich schreiben "... IN und nicht schon VOR ..."
    Natürlich ist es im Baustein sinnvoller, da kann es nicht vergessen gehen.
    Gruß
    Michael

  2. #12
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Macht es überhaupt Sinn AR2 immer zu "retten"?
    Wenn man in einem FB das AR2 verwendet wird, dann sollte dieses Register in dem Baustein, in dem damit gearbeitet wird, gesichert und später wieder hergestellt werden.
    Sollte vor dem Call schon gespeichert werden, kann es geschehen, dass wenn zwischen Sichern und Aufruf eingefügt wird, der Inhalt nicht mehr so ist wie er sein soll.

    Man sollte doch modular programmieren.
    Macht es dann echt Sinn im Programm Daten zu sichern, die in einer Funktion erst geändert werden?


    bike

    btw: Da Alex noch nie ein echtes Programm schreiben durfte, sollte man auf dessen "Erklärung" nicht wirklich viel geben
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

  3. #13
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.480
    Danke
    1.141
    Erhielt 1.241 Danke für 973 Beiträge

    Standard

    Zitat Zitat von bike Beitrag anzeigen
    Macht es überhaupt Sinn AR2 immer zu "retten"?
    Wenn man in einem FB das AR2 verwendet wird, dann sollte dieses Register in dem Baustein, in dem damit gearbeitet wird, gesichert und später wieder hergestellt werden.
    Sollte vor dem Call schon gespeichert werden, kann es geschehen, dass wenn zwischen Sichern und Aufruf eingefügt wird, der Inhalt nicht mehr so ist wie er sein soll.

    Man sollte doch modular programmieren.
    Macht es dann echt Sinn im Programm Daten zu sichern, die in einer Funktion erst geändert werden?
    Das seh ich auch so.
    AR1 ist für mich ein reines Register für Adressierungszwecke.
    Die Daten werden in statischen Daten verarbeitet.

    AR2 meide ich. Für mich ist das nur bei Multiinstanzen interessant. Für andere Zwecke habe ich noch nie AR2 benutzt.

    Sobald Alarm-OBs mit entsprechenden FB-Aufrufen ins Spiel kommen, ist eben Vorsicht geboten.
    Deshalb hat sich bei mir jeder FB selber um seine Daten zu kümmern.
    So "schöne" Dinge wie Parameter-Übergabe durch AR1 oder AR2 sind zwar vielleicht nett fürs Ego, bringen aber einen anderen zum Wahnsinn.

    Gruß
    Dieter
    Geändert von Blockmove (18.12.2013 um 08:13 Uhr)

  4. #14
    Registriert seit
    05.12.2013
    Ort
    Graz / Austria
    Beiträge
    149
    Danke
    9
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Code:
    L #Eingang//SLD 3
    T LD 0
    L #Ausgang
    //SLD 3
    T LD 4
    L EW [LD 0]
    
    (Bitmanipulation)
    
    //L EW [LD 0] 
    T AW [LD 4]
    
    Anstatt wie oben meint ihr , so wie unten aufrufen könnte in STEP 7 funktionieren ? Oder meint ihr einen Symbolischen Namen in der Symboltabelle (... geht das überhaupt für DIX ,DIB , DIW , DID ....Temporäre Daten?)

    Code:
    L #Eingang
    //SLD 3
    T #EingangTEMP
    L #Ausgang
    //SLD 3
    T #AusgangTEMP
    L EW [#EingangTEMP]
    
    (Bitmanipulation)
    
    //L EW [#EingangTEMP] 
    T AW [#AusgangTEMP]
    
    Selbstverständlich AR1 , AR2 nur dann retten/initialisieren wenn sie wirklich gebraucht werden : "man soll immer wissen was drinnen ist "

  5. #15
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von Sioan Beitrag anzeigen
    Anstatt wie oben meint ihr , so wie unten aufrufen könnte in STEP 7 funktionieren ? Oder meint ihr einen Symbolischen Namen in der Symboltabelle (... geht das überhaupt für DIX ,DIB , DIW , DID ....Temporäre Daten?)
    [Ironie]
    Nein kann man nicht.
    Denn die Angaben für In und OUT sowie Temp und STAT im Header des FB sind nur Zierde.

    Die werden beim generieren des InstanzDB auch nicht übernommen.
    Daher ist immer besser Lokaldaten absolut zu adressieren.
    Man kann dann auch keinen Fehler machen beim Zugriff[/Ironie]

    Man kann bzw sollte immer die Variablen symbolisch im Header anlegen, bevor man diese verwendet.
    Hat zwei Vorteile:
    Man kann lesen was wie verwendet wird und es kommt zu keinem Problem beim Ändern des Bausteines.
    Es genügt FB speichern und IDB neu generieren und alles funktioniert.



    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

  6. #16
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.480
    Danke
    1.141
    Erhielt 1.241 Danke für 973 Beiträge

    Standard

    Zitat Zitat von Sioan Beitrag anzeigen
    2-Vor Gebrauch zusammengesetzten Datentypen in FC oder FB(In-Out) AR1 retten (oder hinterher re-initialisieren).
    3-Vor CALL FB und vor CALL FC/SFC ohne Parameter AR2 retten (oder hinterher re-initialisieren).
    AR2 reinitialisieren ... Eine sehr schlaue Regel
    Was steht noch mal im AR2 bei Verwendung einer Multinstanz?

  7. #17
    Registriert seit
    05.12.2013
    Ort
    Graz / Austria
    Beiträge
    149
    Danke
    9
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von M-Ott Beitrag anzeigen
    Wie kommst Du darauf? Ich darf und kann die an dieser Stelle auch symbolisch verwenden.
    ... man ist/wird verwirrt !

  8. #18
    Registriert seit
    05.12.2013
    Ort
    Graz / Austria
    Beiträge
    149
    Danke
    9
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Blockmove Beitrag anzeigen
    AR2 reinitialisieren ... Eine sehr schlaue Regel
    Was steht noch mal im AR2 bei Verwendung einer Multinstanz?
    Der Abstand zu Null Instanz
    Initialisieren muss nicht unbedingt abnullen bedeuten

    ... was passiert aber wenn man aus zB. 3-te Instanz bedingt einen FB aufruft ?

  9. #19
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von Sioan Beitrag anzeigen
    Der Abstand zu Null Instanz
    Initialisieren muss nicht unbedingt abnullen bedeuten

    ... was passiert aber wenn man aus zB. 3-te Instanz bedingt einen FB aufruft ?
    Was ist Abstand zu Null Instanz?

    Es gibt Dokumentationen zu dem Programm Step7 und auch was die Adressregister bedeuten.
    Warum in Gottesnamen liest du nicht endlich BEVOR du hier Mist ablässt.


    bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

  10. #20
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.480
    Danke
    1.141
    Erhielt 1.241 Danke für 973 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Sioan Beitrag anzeigen
    Der Abstand zu Null Instanz
    Initialisieren muss nicht unbedingt abnullen bedeuten

    ... was passiert aber wenn man aus zB. 3-te Instanz bedingt einen FB aufruft ?
    Üblicherweise unterscheidet man in der IT schon zwischen Init und Restore / Wiederherstellen von Registern.

    Was soll bei einem bedingten Aufruf passieren? Solange ich AR2 in Ruhe lasse nix

    Gruß
    Dieter

Ähnliche Themen

  1. Antworten: 11
    Letzter Beitrag: 01.11.2013, 19:26
  2. Antworten: 9
    Letzter Beitrag: 12.12.2009, 00:27
  3. Anfängerfrage über Textmeldungen.... Hilfe
    Von Pusher im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 16.01.2009, 09:39
  4. Antworten: 9
    Letzter Beitrag: 14.12.2007, 18:07
  5. Anfängerfrage über array
    Von noeppkes im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 19.09.2007, 16:22

Lesezeichen

Berechtigungen

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