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

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 45

Thema: CP340 ASCII Zeichen senden und empfangen

  1. #11
    Technikfreak ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.08.2011
    Beiträge
    19
    Danke
    19
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Sehr gute Beschreibung vielen Dank an alle!
    Funktioniert jetzt alles so wie ich wollte. Die ASCII Zeichen werden in ein ARRAY OF CHAR eingelesen und jetzt von dort weiterverarbeitet.

  2. #12
    Technikfreak ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.08.2011
    Beiträge
    19
    Danke
    19
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich würde meine Steuerung jetzt noch gerne modifizieren.

    Momentan wird mein FB3 noch zyklisch aufgerufen. Der FB3 muss allerdings nur einmal aufgerufen werden am Anfang um ASCII Befehle zu senden, dann werden die Daten gesendet und mit dem FB2 in einen DB geschrieben.

    Ich suche also eine Möglichkeit den FB3 nur dann aufzurufen wenn keine Daten ankommen.

    Den FB3 mit OB100 nur einmal aufzurufen nutzt mir nichts weil ich nach Möglichkeit gerne alle 5 Sekunden überprüfen würde ob noch Daten ankommen im FB2 und falls nicht soll der FB3 wieder aufgerufen werden.

    Ich hoffe ihr könnt mir weiterhelfen.

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

    Standard

    Wenn du nur in Zeitscheibe aufrufen willst, dann programmiere doch einen Timer.

    Oder wie kannst du erkennen, dass keine (neuen) daten kommen?


    bike

  4. #14
    Technikfreak ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.08.2011
    Beiträge
    19
    Danke
    19
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Mein Problem ist dass ich nicht weiß wie ich abfragen kann dass keine Daten ankommen. Wenn Daten ankommen werden diese alle 500ms in ein ARRAY OF CHAR in einen DB geschrieben. Kommen keine Daten mehr an, bleibt der letzte Datensatz stehen.

    Ich bräuchte daher eine Abfrage ob regelmäßig Daten an meine CP 340 gesendet werden.

  5. #15
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Hallo

    Kommen keine Daten mehr an, bleibt der letzte Datensatz stehen.
    den Datensatz könntest auf Veränderung vergleichen.

    Oder den Empfangsbaustein auf "DONE" abfragen.(Eventuell Zeitabhängig).

  6. Folgender Benutzer sagt Danke zu Verpolt für den nützlichen Beitrag:

    Technikfreak (24.08.2011)

  7. #16
    Technikfreak ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.08.2011
    Beiträge
    19
    Danke
    19
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Auf Veränderungen vergleichen ist zu riskant weil die Möglichkeit besteht dass mehrmals der selbe Wert gesendet wird.
    Im FB P_RCV gibts kein Done aber ein NDR wenn die Daten übernommen wurden, allerdings ändert sich NDR nicht wenn keine Daten mehr ankommen
    Geändert von Technikfreak (24.08.2011 um 14:23 Uhr)

  8. #17
    Registriert seit
    23.10.2009
    Beiträge
    391
    Danke
    58
    Erhielt 113 Danke für 87 Beiträge

    Standard

    Zitat Zitat von Technikfreak Beitrag anzeigen
    allerdings ändert sich NDR nicht wenn keine Daten mehr ankommen
    Genau das kannst Du ausnutzen. NDR ausschaltverzögert 500ms über einen Timer, Wenn keine Daten mehr kommen geht der Ausgang des Timers nach 0 und Du sendest erneut Deinen String.
    Gruß
    Erich

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

    Technikfreak (24.08.2011)

  10. #18
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Z.B. Eine Nachlaufzeit auf den Empfang, wenn diese abgelaufen ist damit senden, damit die Zeit direkt wieder anläuft das "wurde gesendet" mit verknüpfen.

    Code:
    UN #Datengesendet
    Un #Datenempfangen
    L S5t#5s
    SA T1
    
    
    UN T1
    = #Datensenden
    „Wenn du ein Problem hast, versuche es zu lösen. Kannst du es nicht lösen, dann mache kein Problem daraus.“
    Siddhartha Gautama

  11. Folgender Benutzer sagt Danke zu jabba für den nützlichen Beitrag:

    Technikfreak (24.08.2011)

  12. #19
    Technikfreak ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.08.2011
    Beiträge
    19
    Danke
    19
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich habe es jetzt genauso gemacht wie Jabba und LargoD vorgeschlagen haben. Funktioniert wunderbar vielen Dank an dieser Stelle!

    Jetzt habe ich nur noch ein kleines Problem.
    Meine Daten (6 stellige Zahl z.B."123000"+\c\n) werden als ARRAY OF CHAR [1..8] in einem DB abgelegt. Die ersten 6 Bytes habe ich in einen String umgewandelt z.B. Name[8]. Diesen String möchte ich in DINT umwandeln mit dem FC37.
    Leider sind die ersten Zeichen im String "Name[8]" keine Zahlen sondern Angaben wie lang der String ist und noch was. Der FC37 verarbeitet aber leider nur Zeichenfolgen wenn alle ausser das erste Zeichen Zahlen sind.

    Gibt es eine Möglichkeit in String umzuwandeln ohne die Zusatzangaben bzw gibt es die Möglichkeit den String trotzdem in DINT umzuwandeln?

  13. #20
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Da steht nicht irgendetwas drin, sondern die deklarierte Länge und die belegte Länge.

    Wenn Name[8] in einem DB ab DW0 anfängt , so ist
    DB.DBB0 die deklarierte Länge
    DB.DBB1 die belegte Länge
    DB.DBB2... der Inhalt.

    Wenn Du die 6 Stellen kopieren willst müßen die nach DBB2 und folgend. Zusätzlich muß aber noch einer 6 in DBB1 für die belegte Länge.
    „Wenn du ein Problem hast, versuche es zu lösen. Kannst du es nicht lösen, dann mache kein Problem daraus.“
    Siddhartha Gautama

Ähnliche Themen

  1. CP340 ASCII Code empfangen, verarbeiten
    Von Pinmaster im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 03.09.2008, 18:45
  2. Antworten: 8
    Letzter Beitrag: 06.02.2008, 18:19
  3. Ein ASCII-Zeichen im DB nach Integer
    Von noeppkes im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 09.11.2007, 11:42
  4. CP340 - Daten über RS232 senden und Empfangen
    Von smartie im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 24.08.2007, 10:15
  5. Einzelne Zeichen über CP341 empfangen
    Von Malte im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 18.11.2003, 23:35

Stichworte

Lesezeichen

Berechtigungen

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