TIA CM 1241 Pegelprobleme?

SKg

Level-1
Beiträge
357
Reaktionspunkte
40
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
kurz zum Aufbau:
Eine CPU1212 mit CM1241 (RS232)
Hadelsüblicher PC mit Software die einen Modbus RTU Slave bereit stellt.

Ich möchte diverse Register mit der CPU1212 auslesen.
Der PC empfängt die Leseanforderung korrekt (zu sehen in einem Logfenster).
Jetzt zum Problem der Baustein MB_Master wird mit nem Slave Timeout beendet und die Daten in Empfangsfach werden auch nicht aktualisiert.

Hat jemand ne Ahnung woran das liegen könnte.
Es sieht fast so aus als würde der PC nicht antworten oder das das CM nichts empfangen, der Datentransfer, mit dem PC, arbeitet mit einen anderen Modbus Master einwandfrei.

Es gab früher mal Pegelprobleme bei günstigen seriellen Schnittstellen weiß jemand ob das immer noch vorkommen kann?

PS: Flusskontrollen sind nicht aktiviert bzw erforderlich.

MFG
 
Hast du evtl eine zu kurze Antwortzeit eingestellt (Eingang RESP_TO am Modbus_Comm_Load-Baustein)?
 
Ich bin mitlerweile etwas weiter.

Ich hab meinen LapTop drangehängt und mal den 1. Rx auf den Master gelegt und den 2. Rx auf die Slaveleitung und mal mitgeschnüffelt mit "RealTerm" im hex Anzeigeformat.

Der Hilscher Master liest 3 Blöcke in verschiedener länge und schreibt 1 Register und der Slave Antwortet ganz brav.

Dann hab ich mal meine 1200ter dran gehängt und der Einfachheit halber nur 1 Register angesprochen.
Siehe da der Slave Antwortet wirklich nicht.

Jetzt bin ich ganz ratlos.

MFG
 
Das kann jetzt erstmal alles mögliche sein.

Ist das dein erster Versuch mit der 1200er und dem CM1241 eine Modbus-RTU-Verbindung hinzubekommen?
Wenn ja, hast du dir das Beispiel von Siemens und deren Doku dazu angesehen? Damit geht das eigentlich sehr gut.

Sprichst du auch den richtigen Slave an (Addresse)? Wenn du mit deinem Tool mitliest und siehst, dass der Slave nicht antwortet, scheint er garnicht oder falsch angesprochen worden sein.

Nutzt du die richtigen Bausteine? (Anleitung von Siemens dazu anschauen)

Nutzt du den richtigen Funktionscode um das richtige Register anzusprechen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das kann jetzt erstmal alles mögliche sein.

Ist das dein erster Versuch mit der 1200er und dem CM1241 eine Modbus-RTU-Verbindung hinzubekommen?
Wenn ja, hast du dir das Beispiel von Siemens und deren Doku dazu angesehen? Damit geht das eigentlich sehr gut.

Sprichst du auch den richtigen Slave an (Addresse)? Wenn du mit deinem Tool mitliest und siehst, dass der Slave nicht antwortet, scheint er garnicht oder falsch angesprochen worden sein.

Nutzt du die richtigen Bausteine? (Anleitung von Siemens dazu anschauen)

Nutzt du den richtigen Funktionscode um das richtige Register anzusprechen?


@A3Q: Das ist das erste mal das ich versuche Daten via Modbus RTU und dem CM1241 abzurufen.
Ich habe schon Modbus TCP Daten abgerufen auch schon mit ner S7-300 via CP Modbusdaten abgerufen.


Ich verwende zum konfigurieren des Ports den "MODBUS_ COMM_LOAD" und für den Datenabruf verwende ich den "MODBUS_MASTER".
Ich habe die Slave Adresse 1 angegeben.

Ich habe mir das Beispiel in der Hilfe vom TIA angeschaut.

Ich habe ja die Datenbüschel vom Hilscher Master angeschaut der sendet im 2 Sek. unterschiedliche Anforderungen so wie es im Konfigfile des Hilschers steht und aus dem Konfigfile weiß ich auch welsche Register ich mit der 1200ter ansprechen muss und wie viele Wörter eingelesen werden.

Es wird 1 Register auf Adr. 40001 geschrieben
64 Register aus Adr. 40001 gelesen
und
4 Register aus Adr. 40200 gelesen

ich habe mal die 4 Register ab Adr. 40200 in die 1200ter eingegeben und das CM sendet exakt die selben Daten wie der Hilscher, so sieht es im Terminal Programm aus, ich weiß nicht ob da noch "nicht darstellbare Zeichen" dabei sind aber eigentlich wenn man auf Hex Darstellung schaltet wird alles angezeigt.

Es ist im Logfenster des Modbus Slave auch zu sehen das er eine Anfrage mit Modbus-Funktion 03 mit entsprechender Adresse und Länge erhalten hat.

Also ist die Baudrate Slave Adresse etc. doch korrekt oder?

Ich bin jetzt gerade nicht Fit im Modbus Protokoll aber Antwortet der Slave jedem Master bzw. jeder Anfrage oder gibt es auch Master Adressen ich meine klar hat der Master eine Adresse aber der Slave Antwortet doch dem der ihm die Anfrage geschickt hat oder.

MFG
 
Das ist schon merkwürdig gerade.

Parität stimmt auch? Welche Versionen der beiden Bausteine nutzt du? Welche FW hat deine CPU und das CM?

Die Slave-Adresse 1 muss natürlich auch der Adresse des PCs entsprechen.

Im Prinzip liest der (jeder) Slave alles mit. Er wartet nur darauf, bis er seine Adresse im Telegramm erkennt, dann führt er die Funktion aus dem Telegramm aus (Daten schreiben, Daten aufbereiten und senden etc.) und sendet eine Antwort an den Master zurück. Ansonsten verwirft er das Telegramm, sollte es nicht für seine Adresse sein. Es darf auch nur ein Master im System sein.
 
Das ist schon merkwürdig gerade.

Parität stimmt auch? Welche Versionen der beiden Bausteine nutzt du? Welche FW hat deine CPU und das CM?

Ja die Parität stimmt, sonst würden die Daten ja nicht überkommen bzw. unterschiedlich aussehen oder?

Die CPU ist V4.1
Der CM V1.0
Der "Modbus_comm_load" V3.0
Der "Modbus_Master" V2.3

Das sind die Bausteine die mir vom TIA V13 SP2 angeboten werden Ordner "Modbus (RTU)".

Ich sehe gerade das da noch weite MODBUS Bausteine in der Bibliothek sind, ich werde heute mal die anderen ausprobieren.
MFG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Laut Siemens-Beschreibung:

Modbus_RTU_Bausteine_2.JPG

Nehme mal die Bausteine aus dem anderen Ordner:

Modbus_RTU_Bausteine.JPG

Berichte dann mal


EDIT:

https://support.industry.siemens.co...41-rs232-und-cm-1241-rs422-485?dti=0&lc=de-WW

Update V2.1.0

Das Firmware-Update V2.1.0 für S7-1200 CM 1241 ist erforderlich, damit die Kommunikationsmodule CM 1241 die neuen Punkt-zu-Punkt-, Modbus RTU- und USS-Bibliotheksanweisungen, die im Systemhandbuch S7-
1200 Automatisierungssystem V4.1 beschrieben werden, unterstützen.
Ohne das Firmware-Update V2.1 unterstützen die Kommunikationsmodule CM 1241 nur die Vorgängerversionen dieser Kommunikationsanweisungen.

Wobei es auch das Update V2.2.0 gibt.


Ich sehe gerade das da noch weite MODBUS Bausteine in der Bibliothek sind, ich werde heute mal die anderen ausprobieren.

Darauf wollte ich hinaus. Ich hatte nämlich die gleichen Probleme bei einem Projekt, als ich die Bausteine aus dem MODBUS (RTU) - Ordner genommen hatte. Hab das mit den unterschiedlichen Versionen auch erst nachträglich gelesen.
 
Zuletzt bearbeitet:
@A3Q

ich konnte dummerweise gerade eben erst deine Antwort lesen.

Das mit den Firmwareständen verunsichert mich jetzt ein wenig, ich kann jetzt nicht mehr aus dem Kopf sagen wie meine Zusammenstellung aussieht.

Ich hatte mal die Bausteine aus dem "Modbus (RTU)" Ordner ausprobiert. Da hat mir das Logfenster des Slave gelegentlich CRC Fehler angezeigt.

Ich habe glaube ich auch promt den Fehler gemacht die Baustein Versionen durcheinander gewürfelt zu haben.

Ich habe heute mal das Gratis Tool "ModbusPoll" http://www.modbustools.com/modbus_poll.html ausprobiert.

Das Tool hat mir gleich nach dem ersten Sendeversuch den Fehler "parity error" um die Ohren gehauen:cry:

Ich bin leider noch nicht weiter dazu gekommen weiter zu testen "ich arbeite immer daran wie ich gerade Zeit habe weil es noch nicht eilt"

Also im Hilscher Konfigfile steht Baud 2400, Parity: even, Stop 1, no Flow

das heißt meiner Meinung nach:

2400 Baud
8 Datenbits
gerade Parität
1 Stoppbit
keine Fusssteuerung

Ich werde wohl nicht darum herum kommen bei SICK (Software heißt MEAC2000) nach den genauen Daten zu fragen.

In der Software des Slave steht nur die Baudrate, ich hangel mich einzig allein an den Daten des Hilscher Masters entlang.



MFG
 
Hi,

also ich würde als aller erstes schauen, dass ich die Modbus-Bausteine aus der gleichen Version benutze (Y.x = die Bausteine aus dem Ordner ohne RTU in Klammern).

Dann eben am MODBUS_COMM_LOAD:

BAUD = 2400
PARITY = 2
PORT = sollte natürlich auch stimmen

einstellen. Dieser Baustein sollte auch nur einmal über REQ angestoßen werden. Am besten bei CPU-Anlauf über den Anlaufmerker.
EDIT:
Solltest du die Parameter ändern, müsstest du die CPU dann halt immer neustarten nach dem Laden, sonst werden die neuen Parameter beim Laden nicht übernommen. Oder du triggerst den Eingang REQ mit einem Merker separat an.

Ich gehe jetzt einfach mal davon aus, dass der Rest von deinem Programm stimmt mit dem MB_MASTER (richtiger Funktionscode, richtiges Register, der Ablauf (Befehl senden) mit REQ etc.)

Sollte es dann immernoch nicht gehen, würde ich mal das CM auf die neue FW updaten. Dann der gleiche Test. Normal müsste es dann aber gehen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
@A3Q

Hi, ich hatte bei meinem 1. Versuch schon die richtigen Bausteine, ich habe es mit dem ModbusPollSlave simuliert, funktioniert einwandfrei. Der Slave von Sick arbeitet nich ganz konform. Wir haben im September einen Service Termin für unsere Anlage dann erledigen wir das mit.
 
Hi,

also hat sich das Thema mit den Bausteinversionen nun geklärt? Bin da grad etwas verwirrt, welche du nun endgültig benutzt hast.
Ich würde trotzdem mal das CM mit einem FW-Update versehen und mal testen. Allerdings mit den Bausteinen aus dem NICHT-RTU-Ordner.

Komisch finde ich halt, dass der Hilscher Master ohne Probleme mit dem Sick Slave kommunizieren kann. Die SPS allerdings hat Probleme mit dem Slave. Da spricht doch vieles für einen Konfigurationsfehler auf Seiten der SPS.

Kannst du von Hilscher und von Sick mal Daten/Doku/Typen etc. rausrücken? Vll hast du auch was übersehen?
Solltest du jetzt aber eh nichts mehr machen und bis September warten, hat sich das hier ja sowieso erledigt. Dann könntest du nur mal berichten woran es gelegen hat.



-chris
 
Also, ich habe die Bausteine aus dem Ordner "Modbus" in der V2.1 verwendet.

Der Wandler von Hilscher ist der PKV 30 DPS der wird nicht mehr hergestellt daher sieht es mit Unterlagen mau aus und die Software von Sick heist "MEAC2000" und in den Unterlagen steht nur das Modbus unterstützt wird, nähere Unterlagen rücken die auch nicht herraus. Die wollen gleich nen Service Termin vereinbaren.

Wenn ich im September mehr weiß dann schreib ich nocheinmal.

MFG
 
Zurück
Oben