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

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

Thema: Strukturierter Text _Temp need ya help

  1. #11
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Dann müssten es statische Variablen sein. Das ändert an der Funtion nix, nur der Speicherbereich und Speicherbedarf sind dann anders. Die Daten stehen in einem Statischen Speicherbereich und haben immer den gleichen Platz der nur von ihnen verwendet wird. Also nix mit Tafel und löschen.
    Ergo ist das Temp im Variablennamen irreführend.

    Bitte die TwinCat-Programmierer mich zu korrigieren wenn ich Käse schreibe.
    mfG Aventinus

  2. Folgender Benutzer sagt Danke zu Aventinus für den nützlichen Beitrag:

    skillrun (12.09.2012)

  3. #12
    skillrun ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    also du meinst gerade, dass es keinen unterschied macht ob _temp dortsteht oder nicht ? und nur zur Info des Programmierers, bzw. des Lesers dient?

  4. #13
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Genau, und ich denke dass es da sogar fälschlicherweise steht. Es ist ja nur ein Name. Die Variable könnte genausogu Otto heißen. Absolut egal. die Eigenschaften ergeben sich aus der Deklaration. Mann wird aber versuchen, sich das Leben leichter zu machen und in den Namen gewisse Infos packen damit es lesbarer wird
    mfG Aventinus

  5. #14
    skillrun ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    12
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    dass kann ich mir eig. überhaubt nicht vorstellen, daher das in 20 - 30 verschiedenen programmen immerwider vorkommt und deshalb glaub ich nicht dass hier ein fehler vorliegt... aber bald werd ich von einem Mitarbeiter darüber aufgeklärt.-. bin scho gespannt

  6. #15
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Schreib das Ergebnis bitte hier rein, da bin ich auch gespannt.
    mfG Aventinus

  7. #16
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    757
    Danke
    27
    Erhielt 166 Danke für 144 Beiträge

    Standard

    Bei TwinCat sind nur die Variablen von Funktionen temporär, alles andere ist statisch. Ich habe allerdings gerade mal etwas ausprobiert: Der Compiler schluckt das Schlüsselwort "VAR_TEMP", aber soweit ich nach meinem kurzen Versuch beurteilen kann, sind so deklarierte Variablen trotzdem statisch.

  8. #17
    Registriert seit
    11.07.2004
    Beiträge
    1.597
    Danke
    10
    Erhielt 213 Danke für 183 Beiträge

    Standard

    Code:
    Schaltspiele := SChaltspiele + (BOOL_TO_DWORD(NOT Befehl AND Befehl_temp);
    Befehl_temp := Befehl;
    Die Variable mit dem "temp" am Ende des Namens dient hier zur Flankenbildung (negative Flanke von "Befehl"). Das funktioniert nur wenn es eben keine temporäre sondern eine statische Variable ist. Ein anderer Programmierer würde ggf. "Hilfsmerker" oder dergleichen in den Namen der Variable einbauen.

  9. #18
    Registriert seit
    04.09.2012
    Beiträge
    54
    Danke
    4
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Der Zusatz _temp dient dem Programmierer hier offenbar nur zur besseren Lesbarkeit des Programms. Das, was Du bisher hier an Programmschnipseln veröffentlich hast ist auch ohne Kommentar sofort verständlich. Stell Dir vor, wenn da nur Merker0 bis Merker0815 deklariert wäre! Da könnte man das Programm kaum verstehen -geschweige denn- Fehler suchen!
    Beispiel: Ich möchte wissen, ob ein Taster gedrückt wurde oder nicht. Taster1 ist als Öffner verdrahtet, Taster2 als Schließer. Ich möchte aber TRUE haben, wenn der Taster gedrückt wird. Also könnte ich Variablen anlegen, die mir diesen Zustand anzeigen. Um beim späteren lesen des Programms den Bezug zum Taster1 und Taster2 herzustellen ist es gut, wenn der Name Taster1 und Taster2 auch im Variablennnamen auftacht. Was liegt also näher, die Variablen Taster1_temp und Taster2_temp zu nennen?
    Deklaration
    VAR_GLOBAL
    Taster1 AT %I*:BOOL;(*hier ist Taster1 angeschlossen*)
    Taster2 AT %I*:BOOL;(*hier ist Taster2 angeschlossen*)
    END_VAR

    VAR
    Taster1_temp:BOOL;(*ist TRUE, wenn Taster1 gedrückt*)
    Taster2_temp:BOOL;(*ist TRUE, wenn Taster2 gedrückt*)
    END_VAR

    Programm
    Taster1_temp:=NOT Taster1;
    Taster2_temp:=Taster2;

  10. #19
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    757
    Danke
    27
    Erhielt 166 Danke für 144 Beiträge

    Standard

    Zitat Zitat von Caroli Beitrag anzeigen
    Taster1 ist als Öffner verdrahtet, Taster2 als Schließer. Ich möchte aber TRUE haben, wenn der Taster gedrückt wird. Also könnte ich Variablen anlegen, die mir diesen Zustand anzeigen. Um beim späteren lesen des Programms den Bezug zum Taster1 und Taster2 herzustellen ist es gut, wenn der Name Taster1 und Taster2 auch im Variablennnamen auftacht. Was liegt also näher, die Variablen Taster1_temp und Taster2_temp zu nennen?
    "_betaetigt" oder "_gedrueckt" würde ich als näherliegend empfinden. Der Zusatz "_temp" ist dagegen irreführend und sagt nichts über Sinn und Zweck der Variablen aus.

  11. #20
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    995
    Danke
    115
    Erhielt 129 Danke für 102 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,
    diese Zeile macht für mich keinen Sinn, vieleicht übersehe ich auch was und stehe auf dem Schlauch:


    Code:
    Schaltspiele := SChaltspiele + (BOOL_TO_DWORD(NOT Befehl AND Befehl_temp); Befehl_temp := Befehl;
    Das heisst anders geschrieben doch eigentlich:

    Code:
    Schaltspiele := Schaltspiele + (BOOL_TO_DWORD(Not Befehl AND Befehl);
    also kann die Logik Not Befehl AND Befehl niemals true werden.


    Haut mir verbal eine auf die Schnauze, wenn ich falsch liege :/

    Grüße

Ähnliche Themen

  1. Aufgaben Strukturierter Text
    Von Jumpinjack im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 27.01.2011, 23:27
  2. Strukturierter Text ????HÄ?????
    Von Pinky im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 22.04.2010, 14:26
  3. Mitsubishi FX3U und Strukturierter Text
    Von Jorge im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 10.02.2010, 20:38
  4. For Schleif Strukturierter Text
    Von bluebird277 im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 28.01.2010, 20:45
  5. Strukturierter Text
    Von bluebird277 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 21.01.2010, 15:54

Stichworte

Lesezeichen

Berechtigungen

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