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

Ergebnis 1 bis 5 von 5

Thema: Serielle Kommunikation, ReceivedString als Transition?

  1. #1
    Registriert seit
    22.10.2012
    Beiträge
    23
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich habe wiedermal ein Problem mit meiner RS232 Kommunikation

    In einem dauerhaft aufgerufenem Programm (namens Datenuebertragung)benutze ich die FBs SendString und ReceiveString.
    Dieses Programm wird dann von einer Ablaufsteuerung bedient:
    Zuerst sende ich in einem Schritt einen Befehl. Bevor der nächste Schritt abgearbeitet werden kann muss ich nun erst eine Antwort des RS232 Gerätes abwarten. Dazu wollte ich die boolsche Ausgangsvariable ReceivedString des FBs ReceiveString als Transition verwenden. Also nur wenn Datenuebertragung.ReceivedString TRUE ist solls weiter gehen. Das will aber nicht finkionieren. Die Schrittkette hängt vor dieser Transition fest.

    Dabei wird ReceivedString aber TRUE. Sonst würde der ReceiveCounter im Programm Datenuebertragung ja nicht funktionieren:
    IF ReceivedString THEN
    ReceiveCounter := ReceiveCounter + 1;
    END_IF

    Das versteh ich nicht ganz...
    Wieso kann ich diese Variable nicht als Transition in der Ablaufsteuerung verwenden?

    mfg
    Zitieren Zitieren Serielle Kommunikation, ReceivedString als Transition?  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.697 Danke für 1.949 Beiträge

    Standard

    Vielleicht ist die nur einen Zyklus lang da und das reicht u.U. nicht für eine Transition.
    Setze doch mal eine extra Variable

    IF ReceivedString THEN
    ReceiveCounter := ReceiveCounter + 1;
    Receive_ok := True;
    END_IF

    Diese Variable nimmst du als Transitionsbedingung und setzt sie im Schritt nach der Transition wieder auf False.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #3
    Monty87 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.10.2012
    Beiträge
    23
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi
    guter Tipp werde ich morgen mal versuchen.

    Aber kurz ne Frage zu nem ganz anderen Thema:
    Kann ich in der Visu durch das Klicken einer Schaltfläche einer IntegerVariable einen festen Wert zu weisen?

    Der Sinn ist, in dieser Variable sollen nur bestimmte Werte möglich sein.
    Durch Klicken auf die Schaltfläche A soll der Wert zb 1 werden und durch klicken der Schaltfläche B 2 usw. Im Prinzip wie eine Checkbox.

    Habe mal ganz frech versucht einfach bei Variable toogeln einen Befehl reinzuschreiben (i_Typ:= 1). Das klappt wohl nicht^^
    aber vielleicht gibt es einen anderen Trick oder muss ich einen aufwendigen Block schreiben der das mit boolschen Variablen steuert... das wäre ganz schön Aufwand...

  4. #4
    Monty87 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.10.2012
    Beiträge
    23
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,

    tatsächlich, mit einer Variable die länger TRUE ist funktioniert es jetzt. Vielen Dank.

    zu dem anderen Problem hat scheinbar keiner eine Idee? Dann werde ich wohl nicht drum herrumkommen irgendetwas selber zu basteln..

    mfg

  5. #5
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    749
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn Du mit den Schaltflächen die einzelnen Bits einer Integervariablen tastest, ist der Aufwand überschaubar.
    Code:
    VAR
       varButtons:WORD;  (* Schaltfläche 1 tastet varButtons.0, Schaltfläche 2 varButtons.1, Schaltfläche 3 varButtons.2 usw *)
       varIntValue:INT;
    END_VAR
    
    CASE varButtons OF
       2#00000001: varIntValue:=1;
       2#00000010: varIntValue:=2;
       2#00000100: varIntValue:=3;
    (* usw. *)
    END_CASE

Ähnliche Themen

  1. B&R | Serielle Kommunikation mittels IF1020 | RS232-Schnittstelle
    Von Deichkind im Forum Sonstige Steuerungen
    Antworten: 4
    Letzter Beitrag: 12.04.2016, 08:40
  2. Serielle Kommunikation
    Von Thomate im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 24.10.2012, 16:30
  3. IM151 ASCII 1SI serielle Kommunikation mit FB2 FB3
    Von saarlaender im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 17.01.2012, 12:02
  4. ET 200 - S7 300 - Serielle Kommunikation (Modbus?!)
    Von saarlaender im Forum Feldbusse
    Antworten: 2
    Letzter Beitrag: 06.11.2011, 09:06
  5. Antworten: 2
    Letzter Beitrag: 27.09.2005, 09:06

Lesezeichen

Berechtigungen

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