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

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

Thema: Timer in FB deklarieren ?

  1. #11
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von SoftMachine Beitrag anzeigen
    Du musst die Timernummer als Hex-Zahl übergeben


    Nö, man muß die Timernummer als Timernummer übergeben
    Code:
    CALL #Gebl1
     TOel:=T123
    Oder in AWL-/SCL-Quelle:
    Code:
    CALL #Gebl1(TOel:=T123);
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. #12
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    .
    Zitat Zitat von SoftMachine Beitrag anzeigen
    .

    Allerdings musst du an jedem Bausteinaufruf stets eine andere Timer-Nummer angeben.

    .
    Zitat Zitat von MSB Beitrag anzeigen
    ...
    musst du dich mit TON/TOF schlicht nicht um irgendwelcheTimer-Nummern kümmern
    ...
    ... zustimm ...


    kind regards
    SoftMachine

  3. #13
    Registriert seit
    23.04.2008
    Beiträge
    75
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von MSB Beitrag anzeigen
    Wenn es um die Erweiterung eines Programms geht (zur löblichen Wahrung des Stils), dann versteh ich die Frage nicht,
    weil dann hättest du ja nachschauen können, wie es in den bestehenden FBs realisiert wurde.

    Bei der Realisierung von wie auch immer gearteten FBs, welche mehrfach aufgerufen werden sollen,
    musst du dich mit TON/TOF schlicht nicht um irgendwelche Timer-Nummern kümmern,
    und hast auch nicht das Problem bezüglich Timeranzahl an irgendwelche CPU-Eigenschaften gebunden zu sein.
    Selbst der mehrfache Aufruf von FBs in denen deinen neuen FBs mehrfach aufgerufen werden ist dann kein Problem mehr.

    Mfg
    Manuel
    Das Programm ist von mir. Bisher hab ich Timer nur in FBs eingesetzt, die nur einmal aufgerufen werden. Für komplexere Zeitfunktionen benutze ich eigene FBs oder FCs auf der Basis von Sekunden- oder Minutenimpulsen, die haben dieselben Vorteile wie TON und TOF. Es sind also nicht viele Timer, die ich benutze und die Nummern werden in der Symboltabelle festgelegt, so hab ich kein Problem damit.
    Nieder mit der Schwerkraft. Freien Fall für freie Bürger !

  4. #14
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    .

    Zitat Zitat von PN/DP Beitrag anzeigen


    Nö, man muß die Timernummer als Timernummer übergeben
    Hallo Harald,

    eure Flitterwochen hast ihr sicher schön verlebt ?


    Aber zur Sache:

    Ich bin jetzt nicht an meinem PG und kann nicht konkret nachschauen,
    aber ich habe im Hinterkopf, dass man nur eine Nummer als WORD (Ohne T)
    an einen Baustein übergibt und ein Timer im Baustein mit dieser Nummer
    indiziert aufgerufen werden kann.
    Geändert von SoftMachine (15.10.2014 um 23:37 Uhr) Grund: Glückwunsch nachgefügt
    kind regards
    SoftMachine

  5. #15
    Registriert seit
    23.04.2008
    Beiträge
    75
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wenn man als TIMER deklariert (und in VAR_INPUT geht das ja) geht der Aufruf so wie DN/DP beschrieben hat. Nur bevorzuge ich Symbole statt T123.

    Benutzt wird der Timer dann nicht indiziert, sondern einfach mit dem Namen :

    ... SE TOel;
    ...
    U TOel; = ...
    Nieder mit der Schwerkraft. Freien Fall für freie Bürger !

  6. #16
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    .
    @ Harald

    Habe (leider immer noch ohne PG) einfach mal gesucht und bei
    Siemens gefunden, wobei die Variable natürlich gefüllt werden muss:


    TIMER indiziert aufrufen, starten und auswerten
    Sie können einen Timer über eine Variable mit dem Datentyp WORD indiziert aufrufen. Diese Variable kann
    • eine globale Variable [MW] sein,
    • eine lokale Variable in einem DB [DBW] sein,
    • oder eine temporäre Variable innerhalb eines Bausteins sein.




    Den Zugriff realisieren Sie folgendermaßen (Beispiel):
    SI T[MW2] //Die Timernummer befindet sich im Merkerwort 2, hex-codiert
    SI T[DBW2] //Die Timernummer befindet sich im Datenbausteinwort 2, hex-codiert
    SI T[#zeit] //Die Variable "#zeit" ist eine temporäre Variable mit dem Datentyp Word
    kind regards
    SoftMachine

  7. #17
    Registriert seit
    17.09.2014
    Ort
    BW
    Beiträge
    217
    Danke
    18
    Erhielt 28 Danke für 26 Beiträge

    Standard

    Und an die Stelle, des z.b. [MW] kann nun eine Word aus den VAR_INPUT angelegt werden.
    Oder aber der Komplette teil z.b. T[MW] kann durch ein Timer bei drn VAR_INPUT ersetzt werden.

    Und so schließt sich der Kreis, den ich glaube das wurde schon relativ am Anfang vom Ersteller selbst so gepostet.

    P.s. ne ich glaube ein Word aus dem VAR_INPUT musste dann in TEMP geschrieben werden ....

  8. #18
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Zitat Zitat von SoftMachine Beitrag anzeigen
    wobei die Variable natürlich gefüllt werden muss:


    TIMER indiziert aufrufen, starten und auswerten
    Es geht hier im Thema garnicht um indizierten Timeraufruf. Es wird die "absolute" Timernummer als Datentyp TIMER übergeben.

    Doch auch bei indiziertem Timeraufruf "muß" man den Timer-Index nicht als Hexzahl übergeben, eine normal lesbare Dezimalzahl geht auch. Man braucht den Index-Übergabeparameter einfach nur als INT deklarieren. Auch die Index-Variable für "T[#index]" kann vom Datentyp INT sein.

    Schlußendlich ist es dem AWL bekanntlich auch egal, ob man beim nötigen MOVE oder L+T vom Eingangsparameter in die TEMP-Variable von INT nach INT oder von INT nach WORD transferiert. Oder wenn man eine Dezimalzahl in den AKKU lädt und dann in eine Word-Variable transferiert. Ein "muss als Hex-Zahl übergeben" existiert nicht.


    Zitat Zitat von Machtnix Beitrag anzeigen
    Nur bevorzuge ich Symbole statt T123.
    Das T123 war einfach nur ein Beispiel um deutlich zu zeigen, daß nicht eine Zahl sondern eine Timernummer an den Übergabeparameter geschrieben werden muß. Gib dem T123 ein Symbol und schon ändert sich der Aufruf zu z.B.
    Code:
    CALL #Gebl1
     TOel:="Mein_S7_Timer"
    Da sieht man aber nicht, daß "Mein_S7_Timer" eine Timernummer ist.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. #19
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.725
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    Zitat Zitat von SoftMachine Beitrag anzeigen
    .TIMER indiziert aufrufen, starten und auswerten
    Da wechselt man dann aber von was nicht ganz so schönen (wie vom TE angefragt), zu was richtig bescheidenen.
    Die TE-Variante findet man dann wenigstens noch relativ leicht in den Querverweisen wieder ...

    Mfg
    Manuel
    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).

  10. #20
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Will das noch beantworten.

    Zitat Zitat von Machtnix Beitrag anzeigen
    Es geht in diesem Fall um eine Erweiterung eines Programms. Da darin auch sonst Timer verwendet werden, werde ich aus Gründen der Konsistenz
    bei diesem Programm dabei bleiben. Außerdem tun sie genau das, was sie sollen, warum ist das dann hingepfuscht ?

    Was ist an TON und TOF besser ?
    Die Vorteile sind:
    1. Die Schnittstelle wird kleiner
    2. Der Baustein ist in sich gekapselt, du kannst ihn also in jedes Programm reinkopieren wie du lustig bist, ob dieses nun im S5 Style geschrieben ist oder ansich schon Objektorientiert und gekapselt ist.
    3. Du bist nicht an freie Hardwaretimer gebunden musst dich also auch weniger mit den Hardwaregegebenheiten herumschlagen
    4. Wenn der Baustein funktioniert wird der in einer S7-300 recht einfach auch in einer 400 1500 1200 funktionieren.

    Hab ich schon erwähnt?
    Die Schnittstelle wird kleiner. Alles was man nicht anhängen muss, kann nicht falsch angehängt werden.
    Pulstimer sind schön und gut, aber es braucht wieder einen zusätzlichen Schnittstellenanschluss. Die SPS muss einen entsprechenden Pulsmerker projektiert haben etc. etc. Und wozu? Um ein bisschen Speicher und CPU Zeit zu sparen?

    mfG Re^derAndere^né

Ähnliche Themen

  1. Timer in SCL als Eingangsvariable deklarieren
    Von Snoopy123123 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 18.05.2012, 16:40
  2. Timer in FC deklarieren...
    Von anne im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 11.04.2012, 08:14
  3. TIMER deklarieren
    Von chipset im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 28.03.2012, 17:41
  4. Suche Ersatz für IFM TIMER LG ( Logik Timer)
    Von GrafLaugenkotz im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 16.01.2007, 17:02
  5. SCL Timer aufrufen/deklarieren
    Von plc_tippser im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 12.07.2005, 14:04

Lesezeichen

Berechtigungen

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