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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 36

Thema: S7-200 2xRS232 Waagen anschließen

  1. #11
    Syntaxfehler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.09.2006
    Beiträge
    117
    Danke
    72
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vladi,
    ich habe es nochmal probiert. Mit dem Baustein STR hatte ich es auch schonmal vergeblich probiert. Wie kann ich denn "erstmal" den aktuellen Waagenwert auslesen?
    Ich hatte (siehe 2 Beiträge drüber) eine Bedienungsanleitung hochgeladen.
    Dort steht der Befehl, den ich der Waage zusenden muss, um dann z.b. meinen Waagenwert zu erhalten.

    Wie geht denn das erstmal? Und wie füge ich aus einer Zeichenkette, diese einzelnen Werte wieder zusammen (spich meinen aktuellen Waagenwert)?

    Mit einer Zeichenkette hatte ich noch nie zu tun und ich bräuchte mal hier von einen Programmier-Genie ein Beispiel wie so ein komplettes Programmbeispiel aussehen würde!

    Im voraus Danke !

    Gruß
    Syny

  2. #12
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Hallo Kollege, :
    1) Aktl. Waagenwert auslesen:
    in der o.g. Bed.Anleitung steht nichts von aktl. Waagenwert, es gibt ein Wert "schon dosierte Menge"; das kann man abfragen mit dem Telegramm:
    "IN_PV_AM <SP><CR><SP><LF>" (das ist ein STRING, oder deutsch: Zeichenkette)
    Die Zeichen "<SP><CR><SP><LF>" sind immer der Abschluss des Telegramms.

    Der o.g. String muss an die Waage gesendet werden, die antwortet dann mit:
    "001234<SP><CR><SP><LF>", wobei 001234 ist das Gewicht in mg.
    Diese Antwort: "001234<SP><CR><SP><LF>" (STRING) kann mit der schon erw. Funktion STR in eine Realzahl umgewandelt werden, da müsste rauskommen 1234.0.
    Wie macht man ein STRING?:
    Z.B. ab Adresse VB200:
    MOVB 12, VB200 // Anzahl zu versend. Bytes
    MOVD 'IN_P', VD201
    MOVD 'V_AM', VD205
    MOVB 32, VB209
    MOVB 13, VB210
    MOVB 32, VB211
    MOVB 10, VB212

    D.h., das kannst jetzt senden:
    XMT VB200, 0 // String senden. Sendepuffer ist ab VB200
    Empfangen geht mit(wird normal im Interrupt aufgerufen):
    RCV VB300, 0 // String empfangen, Daten stehen ab VB300
    Jetzt würde dein Gewicht ab VB301 drin stehen, dann:
    STR VB301, 0, VD10 // in VD steht jetzt der Wert als REAL

    Die Programmstruktur sieht so aus:
    - einmalig beim Start die Schnittstelle parametrieren
    - Empfangs-Interrupt freigeben und definieren
    - Anfrage an Waage senden..
    - Empfangsinterrupt kommt: Daten von der Waage auswerten
    - wieder abfragen...

    Ich habe keine Zeit, um das Ganze dir zu programmieren; die Beispiele von Siemens sind aber gut, da muss man durch .

    V.
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Waage  

  3. Folgender Benutzer sagt Danke zu vladi für den nützlichen Beitrag:

    Syntaxfehler (26.09.2008)

  4. #13
    Registriert seit
    01.08.2005
    Beiträge
    247
    Danke
    3
    Erhielt 41 Danke für 32 Beiträge

    Standard

    Hallo,

    wenn du das hast, dann ein Tip von mir:

    Wenn du an beiden Onboard Schnittstellen deine Waagen mittels ASCII (Freeport) verbunden hast, dann kannst du für das Panel auch ein EM277 verwenden. An einem EM277 funktionieren auch die Panels und ein PC gleichzeitig.

    Gruss

    Helmut

  5. Folgender Benutzer sagt Danke zu Helmut für den nützlichen Beitrag:

    Syntaxfehler (26.09.2008)

  6. #14
    Syntaxfehler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.09.2006
    Beiträge
    117
    Danke
    72
    Erhielt 3 Danke für 3 Beiträge

    Standard

    @Vladi

    Ich kann über den "Mettler-Modus" den aktuellen Wert der Waage erhalten. Dazu sendet die Waage mir ständig ihren Wert zu.

    Die Variante das ich die Waage ansteuer und nur den dosierten Wert erhalten kann, ist für die weiteren Programmablauf nicht so günstig. Ich bin daher von dem steuern der Waage abgekommen und will im "Mettler-Modus" diese betreiben.

    Ich habe das Beispiel von Siemens benutzt (siehe *.pdf).

    Jetzt versuche ich die Zeichenkette zu wandeln, erhalte aber keine plausiblien Werte. Ich habe mal Online ein Screenshot gemacht. Ich wundere mich über so viele Zeichen die dort ankommen?

    Liegt das am Programm?

    Danke
    Gruß
    Syny
    Angehängte Grafiken Angehängte Grafiken
    Angehängte Dateien Angehängte Dateien

  7. #15
    Registriert seit
    01.08.2005
    Beiträge
    247
    Danke
    3
    Erhielt 41 Danke für 32 Beiträge

    Standard

    Hallo,

    häng dochmal anstelle der CPU dein PC mit Hyperterminal an und vergleiche ob das dann stimmt. Dann kannst du auch die Info die du brauchst finden.

    Gruss

    Helmut

  8. Folgender Benutzer sagt Danke zu Helmut für den nützlichen Beitrag:

    Syntaxfehler (17.10.2008)

  9. #16
    Syntaxfehler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.09.2006
    Beiträge
    117
    Danke
    72
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Zitat Zitat von vladi Beitrag anzeigen

    Z.B. ab Adresse VB200:
    MOVB 12, VB200 // Anzahl zu versend. Bytes
    MOVD 'IN_P', VD201
    MOVD 'V_AM', VD205
    MOVB 32, VB209
    MOVB 13, VB210
    MOVB 32, VB211
    MOVB 10, VB212
    Hallo,

    Ich habe mich mal wieder mit meiner Waage beschäftigt. Also Vladi nach deiner Lösung klappt das wohl nur bei S7 300/400er Serie. Bei der 200er Serie zeigt S7 mir fehler an, wenn ich als Doppelword MOVD "IN_P" schreibe.

    Mit dem Hyperterminal klappt das einwandfrei, das ich ein Befehl sende und meinen Waagenwert empfange.

    Also am 1.Pic stelle ich meine Schnittstelle ein, 9600baud. usw. wie im Siemens-Beispiel.
    Ich habe folgende Variante mal ausprobiert. Nur glaube ich scheitere ich an der Request-Zeit?! Ich glaube so etwas muss doch da noch dazwischen?!

    Das komische an meiner Variante ist, das ich 2x die Zeichen ab VB201 lade. Deswegen hatte ich im NW2 nach dem Zeichen ins VB201, nur die ersten 14 Zeichen des VB201 weitergesendet.

    Kann mir da jemand weiterhelfen, wie ich meinen String mal endlich senden und empfangen kann?

    Gruß
    Syny
    Angehängte Grafiken Angehängte Grafiken

  10. #17
    Registriert seit
    05.10.2005
    Beiträge
    2.373
    Danke
    321
    Erhielt 296 Danke für 266 Beiträge

    Standard

    da gibts doch von Siemens so ein Beispielprojekt in welchem über die schnellen digitalen eingänge werte der seriellen Schnittstelle eines Conrad Temperaturmoduls gelesen werden.
    vielleicht hilft das ja etwas weiter.
    Thomas

  11. #18
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Hi Kollege,
    war lange nicht online..
    So, du sendest mit XMT ab Adresse VB2001...muss da nicht zuerst die
    Anzahl der Bytes stehen, die versendet werden sollen? Also z.B. die Zahl der Bytes in VB2000
    schreiben, dann mit XMT ab VB2000 bearbeiten(dein Telegramm steht drin nachwievor ab VB2001).

    V.
    Geändert von vladi (21.11.2008 um 23:06 Uhr)
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Waage  

  12. #19
    Syntaxfehler ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    15.09.2006
    Beiträge
    117
    Danke
    72
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Hi Vladi,

    das dachte ich auch, nur wenn ich über Hyper Terminal die Waage anspreche, schreibt mir das Hyper Terminal automatisch die Anzahl der Zeichen davor, wenn ich diese darüber versende? Weil dort schreibe ich ja auch nur meinen Befehl (ohne Anzahl der Zeichen) zur Waage.

    Weil das dort ja funktionierte, dachte ich das meine Waage keine Anzahl Zeichen benötigt. Ich probier das montag gleich mal aus... aber ich glaube das hatte ich schon ausprobiert.

    Ich möchte ständig kontinuierliche Waagenwerte haben. Könnte es daher eher sein, das die SPS 1x Befehl schreibt --> dann z.b. 5ms warten ---> auf Waagenwert empfangen, danach wieder den Befehl senden. Wie bekomme ich denn diese schleife hin?


    Gruß
    Syny

  13. #20
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,
    HyperTerminal ist was anderes, aber die Sende/Empfang Funktionen der SPSen brauchen u.u. ihre eigene Einstellungen(steht auch in der Beschreibung der Befehle un in den Beispielen).
    Kontinuierlich lesen: da gibt es zwei Methoden:
    -Waage abfragen-Wert empfangen-Waage abfragen-empfangen..zyklisch
    oder
    -Waage konfigurieren auf "dauernd senden", und dann nur auf
    Empfang warten(da wird ein Interrupt ausgelöst) und die Telegramme
    auswerten.

    Normalerweise ist RS232 nicht so kompliziert, man muss aber einmal verstehen wie das ganze geht. wird schon klappen..
    Ab Montag bin ich weg, erst am WE dann wieder..

    Vladi
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Rs232  

Ähnliche Themen

  1. S0 an SPS anschließen
    Von roberthaidi im Forum Simatic
    Antworten: 25
    Letzter Beitrag: 07.06.2013, 07:34
  2. Vss+ Vss- Gnd anschließen
    Von Anaconda55 im Forum Elektronik
    Antworten: 49
    Letzter Beitrag: 28.10.2008, 12:39
  3. ABB Veritron anschließen
    Von Atlantik im Forum Antriebstechnik
    Antworten: 1
    Letzter Beitrag: 30.04.2006, 15:11
  4. Wo Motorleitungen anschließen?
    Von Anonymous im Forum Schaltschrankbau
    Antworten: 12
    Letzter Beitrag: 28.01.2006, 11:50
  5. TP anschließen
    Von Anonymous im Forum HMI
    Antworten: 2
    Letzter Beitrag: 07.06.2005, 06:24

Lesezeichen

Berechtigungen

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