TIA Waage über CB1241 RS485 an CPU1215C

Matthias B.

Level-2
Beiträge
38
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe eine AllScales Europe ISC Waage über einen CB1241 an meiner CPU1215C angeschlossen.
Über RCV_PTP bekomme ich aktuelle Werte in meinen DB geschrieben.
Die Waage muss ab und zu tariert werden. Leider kommt dieser Befehl über SEND_PTP nicht an.
Über HTerm funktioniert es mit HEX+0D und DEZ+13 und beides mit Send on Enter "None" sowie als ASCII mit Send on Enter "CR".
format.JPGMeine Befehle schreibe ich in eine String Variable und diese über Strg_TO_chars in ein Array of Char.
Laut HTerm wird dieser Befehl auch gesendet aber ich bekomme keine Antwort, ich denke das es am <CR> liegt.
Kann mir einer sagen ob das $R im Array of Char richtig ist oder wie ich die HEX und DEZ Werte senden muss?
Danke schon mal für eure Hilfe
 
<CR> = 13 dez = 16#0D = '$R'
<LF> = 10 dez = 16#0A = '$L'

Wird das <CR> mitgesendet?
Wird womöglich der STRING-Header mitgesendet? An SEND_PTP: Welchen Wert hat LENGTH, auf welchen Datentyp zeigt BUFFER?
Kommt DONE oder gibt es einen Fehler-STATUS vom SEND_PTP?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Laut HTerm wird \r gesendet. Ob der Header mitgesendet wird weiß ich nicht, zumindest sehe ich ihn nicht.
Length ist 0, Buffer ist Array of Char, Done habe ich über einen SR abgefangen weil er am SEND_PTP immer nur false anzeigt

So schaut es jetzt bei mir aus
1DB.png2OB.png3H.png
 

Anhänge

  • 2OB.png
    2OB.png
    26,6 KB · Aufrufe: 14
  • 3H.png
    3H.png
    32,1 KB · Aufrufe: 15
Habe ich jetzt auch nohmal probiert, ohne Erfolg.
Über HTerm reicht ja auch ein einfaches &R bzw 13 damit ich eine Antwort bekomme.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde auf jeden Fall $R + $L am Ende anhängen, weil es so dokumentiert ist. Auch wenn es vielleicht auch ohne das $L geht.
Warum rufst Du Strg_to_Chars auf, sendest aber den String "status".Send und nicht das Char-Array "status".DATA_Send ?
Dann würde ich mir ansehen, ob das Versenden des Char-Arrays auch korrekt funktioniert, wenn bei SEND_PTP LENGTH = 0 angegeben ist. Dann müsste nämlich das Char-Array genau 6 Zeichen lang sein: 'READ$R$L'

Harald
 
Habe $R$L im Array of Char angefügt. Ich sende jetzt auch das Array und nicht mehr den String. Trotzdem keine Antwort.
Wenn ich über HTERM aber READ$R$L an die Waage sende bekomme ich in meinen DB aber eine Antwort zurück.
Somit ist PORT_CFG richtig konfiguriert und die Verdrahtung sollte auch passen, da ich ja etwas empfange.
 
Mich irritiert, daß die Kommunikation HTERM-Waage funktioniert... In Deinen Bildern vom HTERM sehe ich keine Antwort der Waage - hast Du die extra rausgelöscht?

Wie hast Du das CB1241 und die Waage und den PC mit HTERM elektrisch verbunden? Immer alle 3 Teilnehmer am RS485 oder steckst Du da immer um?
Hat die Waage Tx/Rx-LEDs? Flackern die, wenn die SPS sendet und wenn die Waage antwortet? Sind vielleicht irgendwo die RS485-Adern A und B vertauscht angeschlossen? Testweise einfach mal die A- und B-Adern an der Waage vertauschen.

Wenn das RS485 ist, muß da nicht im Protokollrahmen auch die RS485-Busadresse (Device-ID) der Waage mitgesendet werden?
Hast Du mal einen Download-Link zum Handbuch mit der Kommunikations-Beschreibung der Waage?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe das nicht extra rausgelöscht, erschien mir nur nicht so wichtig da das ja funktioniert.
LEDs gibt es an der Waage leider nicht.
Verbindung ist folgende:
CB1241<->ISC Waage
M<->GND
T/RA+TA<->TXPC
T/RB+TB<->RXPC
Parallel habe ich einen SUBD9Pol Stecker an USB zum Computer angeschlossen.
Da ich ja über HTERM senden und empfangen kann und in der CPU Meldungen ankommen gehe ich davon aus das Ader A und B richtig angeschlossen sind.
Manchmal habe ich alle 3 Teilnehmer angeschlossen und manchmal ziehe ich entweder das CB Modul oder USB ab.
Die Device ID, in dem Fall "01" sende ich am Anfang meines Befehls mit.
Habe mal die Doku zur Waage angefügt.
 

Anhänge

Hi,

da wirst Du wohl noch einen Schnittstellenwandler benötigen RS-485 <-> Rs-232

Das CB1241 ist eine RS-485 Schnittstelle. Du scheinst aber nur eine RS-232 an der Waage zu haben (S. 45, nur da finde ich RXPC, TXPC).

Was für einen USB Wandler hast Du?

Gruß
 
Hm, das scheine ich wohl übersehen zu haben.
Ich benutze einen Logilink USB 2.0 zu Seriell Adapter Typ: AU0002E
Da frage ich mich aber warum ich dann auf der CPU empfangen konnte, muss mir wahrscheinlich nochmal die unterschiede 232 485 anschauen.
Ich suche mal einen günstigen Konverter.
Danke schon mal für die Hilfe
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Welche Waage genau hast Du?
- Die Waage auf Seite 45 hat nur RS232-Schnittstellen - da gibt es die Anschlüsse TXPC und RXPC.
- Die Waagen auf Seite 44 haben eine RS485-Schnittstelle. Eventuell muß die Schnittstelle erst auf RS485 eingestellt/enabled werden (siehe Seite 12: Selection of the communication mode) und dann muß jeder Command-String mit der RS485-Busadresse der Waage beginnen.

Bei einer RS232-Schnittstelle bräuchtest Du noch einen RS485-RS232-Wandler. Oder anstatt dem CB 1241 ein CM 1241 RS232 6ES7241-1AH32-0XB0.
Oder hast Du auch noch eine ET200 an Deiner CPU 1215C angeschlossen? Da gibt es auch serielle RS232 Schnittstellen-Module.

PS: Wenn das Kommunikationskabel zwischen SPS und Waage länger als 15 m wird, dann kann/darf das nicht RS232 sein. Da kann man anstatt CB/CM RS485/RS232 + RS485-RS232-Wandler auch sogenannte Com Server (Port Server) einsetzen (z.B. Moxa NPort, W&T, ...). Die kosten allerdings etwas mehr, ersparen aber auch Platz im SPS-Schaltschrank.

Harald
 
Zuletzt bearbeitet:
Ich habe die Waage wie auf Seite 45. Die Einstellung auf Seite 12 habe ich auf 485 mit ID 01 eingestellt aber wenn das nur ein allgemeines Menü ist was in jeder Waage ist wäre die Einstellung hinfällig wenn die Hardware eine andere ist.
Ich habe lediglich die CPU mit dem CB1241. Werde wohl noch ein CM1241 Modul bestellen
 
ich habe eine AllScales Europe ISC Waage über einen CB1241 an meiner CPU1215C angeschlossen.
Über RCV_PTP bekomme ich aktuelle Werte in meinen DB geschrieben.
Wenn an der Waage eine RS232-Schnittstelle ist, dann dürfte das gar nicht funktionieren. Mysteriös.. :unsure: Oder ist da irgendwo ein RS485-RS232-Wandler versteckt?
Ist das an der Waage vielleicht doch eine RS485? Dann müssen vor dem Command-String noch zwei Bytes mit der RS485-Busadresse der Waage mitgesendet werden.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Einstellung auf Seite 12 habe ich auf 485 mit ID 01 eingestellt
Ich vermute, dann erwartet die Waage auch jeden Command-String mit den führenden 2 Bytes mit der ID. Vermutlich egal ob die Schnittstelle nun tatsächlich RS485 oder RS232 ist. Probiere das mal aus.

PS: siehe das angehängte Bild aus dem Protokoll-Handbuch Seite 4

Harald
 

Anhänge

  • 485_Comm.png
    485_Comm.png
    17,8 KB · Aufrufe: 10
Zuletzt bearbeitet:
Hallo zusammen,

habe jetzt das CM1241 Modul ausprobiert. Das ganze über PTP Bausteine abgeändert und es funktioniert.
Anscheinend lag es doch am nicht vorhandenen RS485 Modul seitens der Waage.
Ich danke euch für die Unterstützung.
 
Zurück
Oben