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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Gewichtswert einer Waage mit der CP-340 auslesen.

  1. #1
    Registriert seit
    01.05.2006
    Beiträge
    245
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,
    ich hatte die Frage schon vor ca. 2 Monaten mal gestellt, es haben auch ein paar Leute geantwortet, doch ich komme leider bisher nicht zurecht.

    Ich rüste eine Anlage auf S7 um, dort befindet sich eine kleine Waage, die den am Display angezeigten Gewichtswert an die SPS schickt. Leider kann ich in diese SPS nicht reingucken. Ich habe zum Glück durch den Hersteller Unterlagen zu fast dieser Waage gefunden. Es ist zwar ein anderer Typ, aber das Übertragungsprotokoll soll identisch sein. Man findet es auf den Seiten 25 und 26 im folgenden PDF-File.

    http://www.sps-forum.de/attachment.p...4&d=1150109959

    Für jemanden, der damit schon zu tun hatte, ist die Sache bestimmt sofort klar, aber ich blicke da leider nicht richtig durch.
    Meine erste Frage wäre, falls man es aus den Unterlagen erkennen kann, ob die Waage die ganze Zeit sendet und ich demnach nur den FB_2 benötige um die Daten zu empfangen oder ob ich durch eine Sendesequenz die Waage erst dazu animieren muss, etwas zu senden?

    Dann weiß ich nicht genau, wie ich was anlegen und ansprechen muss.
    Z.B., wenn ich nun "nur" die Daten empfangen müsste, würde ich den FB2 und seinen Instanzbaustein anlegen. Wo werden dann die Werte hingeschrieben? Muss ich mir noch einen Baustein anlegen?

    Ich habe mich wirklich schon einige Stunden mit den Unterlagen auseinandergesetzt, aber ich könnte wirklich ein paar Tipps in die richtige Richtung gebrauchen.

    Vielen Dank,
    Tigerkroete
    Zitieren Zitieren Gewichtswert einer Waage mit der CP-340 auslesen.  

  2. #2
    Registriert seit
    28.10.2005
    Ort
    Ottweiler, Saar
    Beiträge
    940
    Danke
    259
    Erhielt 124 Danke für 109 Beiträge

    Standard

    Vielleicht so:

    CP sendet Kommando P0, Waage antwortet einmalig mit dem aktuellen Wert.

    Oder:

    CP sendet Kommando P2, Waage sendet ab sofort selbstständig, wenn sich der Messwert ändert.

    Such Dir was aus, es gibt da ja noch mehr Kommandos; ich würde die erste Variante wählen. Wie man allerdings den CP programmiert wissen andere sicherlich besser als ich...

  3. #3
    Avatar von Tigerkroete
    Tigerkroete ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    01.05.2006
    Beiträge
    245
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Frage

    Ich verstehe nicht ganz, wie ich "P0" senden soll. Hatte ja mit sowas nie zu tun.
    Kann mir keiner da ein kleines Beispiel erläutern?
    Ich wäre 1000fach dankbar.

  4. #4
    Registriert seit
    14.06.2005
    Beiträge
    76
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Wie ich das so sehe, brauchst Du einen Wandlerbaustin der die Werte welche gesendet und empfangen werden in/von ASCII von/in die S7 Werte wandelt. Dabei ist beim Empfang CR (war das nicht 12hex?) eine wichtige Information. CR schliesst den Empfang ab.

  5. #5
    Avatar von Tigerkroete
    Tigerkroete ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    01.05.2006
    Beiträge
    245
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also, was ich bis jetzt verstehe ist, dass ich den FB2 (empfangen der Daten) und den FB3 (senden der Daten) brauche. Zu beiden lege ich die Instanz-DBs an und auch noch jeweils einen extra DB wo die empfangen und gesendeten Daten reingeschrieben werden.
    Nur wie stelle ich mir dass nun vor? Muss ich z.B. im DB-Senden einen String von 2 anlegen und dort P0 reinschreiben?
    Und wie ist es mit dem Rest?

  6. #6
    Registriert seit
    14.06.2005
    Beiträge
    76
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Falls die SPS vorgibt wann die Daten gesendet werden sollen dann schickt sie einen String "PO[CR]". Empfangen wird dann ein String [ASCII Zeichen wie beschrieben [CR]. Wie das aussieht hat der String der empfangen wird auch eine Konstante Länge.
    Halt da fällt mir doch noh ein CR = 0Dh = 13 dezimal.
    Geändert von Hubbl-e (04.08.2006 um 11:09 Uhr)

  7. #7
    Avatar von Tigerkroete
    Tigerkroete ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    01.05.2006
    Beiträge
    245
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also es werden ja 20 Zeichen a 7-Bit-ASCII empfangen. Wie muss ich da denn meinen Empfangsspeicher anlegen?

    Und auch zum senden, ich verstehe das immer noch nicht, wie ich nun "genau" das P0 anlegen und senden soll.

    Sorry, aber ich kriegs nicht in meinen Schädel.

  8. #8
    Registriert seit
    14.06.2005
    Beiträge
    76
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ein 7-Bit ASCII Zeichen belegt ein Wort. Weil Du das so an der CP so eingestellt hast.
    Beim Senden würde ich das so machen:
    L W#16#4F //O
    T DBW 0
    L W#16#44 //D
    T DBW 2
    L W#16#D //CR
    T DBW 4
    und das wegschicken.
    Meinst Du das geht nicht?

  9. #9
    Registriert seit
    27.08.2003
    Ort
    Schweitenkirchen
    Beiträge
    472
    Danke
    101
    Erhielt 73 Danke für 59 Beiträge

    Standard

    Ich würde einen Sende/Empfangs DB machen in dem die aktuelle Anfrage an die Waage und die Antwort steht.Jeweils 30 Byte lang als Char deklariert.
    Da du ja an die Waage verschiedene "Anfragen" senden kannst würde ich die auch in einem DB als Array of Char ablegen.
    Je nach Aktion was du von der Waage wissen willst schiebst du per Blockmove dein Array in den Sende DB oder das Sende-Array.

    Wenn das mal klappt kannst dir gedanken machen wie du den Empfang weiter verarbeitest.

    Gruss Zefix

    bin erst ab Montag wieder Online....

  10. #10
    Avatar von Tigerkroete
    Tigerkroete ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    01.05.2006
    Beiträge
    245
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen Leute.
    Sorry, dass ich jetzt erst antworte. Ich hatte Freitagmittag Feierabend und war weg über´s WE.
    Jedenfalls habe ich am Freitag noch mit Hyperterminal was wichtiges rausfinden können:
    Die Waage ist offensichtlich so eingestellt, dass ich alle paar Sekunden den aktuellen Wert gesendet bekomme, ohne dass ich anfragen muss. Ich kannte Hyperterminal vorher garnicht *schäm*, bin aber begeistert. Ich habe bei den Einstellungen von wegen Parität und Baudrate usw. so lange rumgespielt, bis mein Gewichtswert erschien. Ich habe also gerade Parität, Baudrate 4800, 7 Datenbits und das Stopbit.
    Jetzt muss ich mir also "nur" überlegen, wie ich die ganze Sache einlese.
    Ich hatte erst gedacht, dass ich für jedes übertragene Zeichen ein "Char" nehme, aber die sind ja 2 MB groß. Das Problem ist ja, dass ich beim Aufruf von FB_2 (Daten empfangen) einen Datenanfangspunkt und die Datenlänge angebe, wohin geschrieben werden soll. Dann wäre doch meine Befürchtung richtig, dass ich die einzelnen, übertragenen Zeichen garnicht in jeweils einem "char" speichern kann?
    Ich denke ich muss es irgendwie mit nem String machen und mir anschließend manuell meine Werte rausprokeln. Das dumme ist auch, dass der Dezimalpunkt immer an einer anderen Stelle stehen könnte.
    Es gibt ja die Funktion "String nach Int" oder so ähnlich. Stört sich diese Funktion an dem Dezimalpunkt oder interpretiert sie ihn richtig mit?

    Ich melde mich wieder, sobald ich mehr weiß und bin auch weiterhin für gute Tipps sehr dankbar!

Ähnliche Themen

  1. Waage von Sartorius über Profibus auslesen
    Von jensel im Forum Feldbusse
    Antworten: 5
    Letzter Beitrag: 03.05.2011, 15:50
  2. Antworten: 2
    Letzter Beitrag: 12.03.2008, 15:54
  3. Aus einer FB Struktur ein Wort auslesen
    Von ottopaul im Forum Simatic
    Antworten: 18
    Letzter Beitrag: 11.07.2007, 00:39
  4. Daten aus einer S5 auslesen !!!
    Von ZeroCool im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 19.09.2005, 09:46
  5. Die Kalenderwoche aus einer CPU318 auslesen
    Von uwemiess im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 19.04.2005, 16:01

Lesezeichen

Berechtigungen

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