TIA Modbus Frage

March_Mellow

Level-2
Beiträge
49
Reaktionspunkte
8
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich wende mich mit einer Frage an euch zwecks dem Thema Modbus. Ich habe wirklich 0% Erfahrung auf diesem Gebiet, daher entschuldigt bitte falls ich wie der "Ochs vor dem Berg" wirke.

Was haben wir verbaut:
Siemens 1214C DC/DC/DC Generation 2 als CPU.
241-1EA50-0XB0 als Kommunikationsmodus für diese Modbus Geschichte.
TIA V21 als Software
Kommunikation ist über RS485

Was soll nun geschehen?
Wir wollen die Platine eines Motors/Pumpe/DMU ansteuern und das soll per MODBUS geschehen. Die Adresse auf die geschrieben werden muss ist die "10000".
- als erstes ohne anliegenden Druck den Nullpunkt setzen indem man eine "1" in die Adresse schreibt.....
- dann Druck in das System geben um Spannweite festzulegen, anschließend "2" in die Adresse schreiben.....
- dann folgen weitere Schritte und die Zahl, welche in die Adresse geschrieben werden muss erhöht sich......

Ich habe nun mal das Programm QModbus geladen, und damit versucht die Platine anzusteueren, was auch geklappt hat. Aber in TIA habe ich irgendwie keine Ahnung wie ich das umsetzten soll. (Siehe Bild unten).

Bild (1).png

Wenn ich das dann in TIA versuche geht es einfach nicht, egal wie ich es drehe und wende... (Siehe Bild unten)

Bild.png

Hat jemand ein Beispiel für mich? Ich habe schon mit den Werten bei "DATA_LEN" und "DATA_PTR" gespielt, aber ich habe wirklich überhaupt keine Ahnung was ich hier mache.... Siemens Support ist auch schon informiert, aber ich habe noch keine Antwort. Die Hilfedatei ist mir bisher keine Hilfe, ich denke ich brauche ein Schubser in die richtige Richtung.


Falls ich was vergessen habe entschuldige ich mich schonmal.


Grüße
und Dankeschön
 
Abhängig davon was du auslesen möchtest (bei dir hier Halteregister), musst du eine andere Adresse angeben.

Hier eine Doku:
https://docs.tia.siemens.cloud/r/de...s-modbus-master-kommunizieren-s7-1200-s7-1500

Dort gibt es eine Tabelle mit den Adressen. Hier ein Auszug:

1778649247389.png


Möchtest du nun Halteregister 10000 auslesen, müsstest du am Baustein 410001angeben


EDIT:
Das gleiche hier natürlich auch fürs Schreiben. Der Übersichtshalber hier nochmal ein anderer Auszug:

1778649535297.png

-cb
 
Zuletzt bearbeitet:
Danke erstmal,

Also was ich bisher möchte ist das ich in das Register 10000 eine 1 rein schreibe, was ich immernoch nicht in TIA umsetzen kann.

Ich verstehe im Moment wirklich überhaupt nicht was ich dafür tun muss. Über dieses QMod programm geht es ja, also schließe ich Verdrahtungsfehler aus.

Dank deiner Erklärung verstehe ich nun wenigstens das ich bei DATA_ADDR eine 410001 rein schreiben muss.

Ich habe den Mode in Modbus_Comm_Load eingetragen, der hatte gefehlt.
 
Immer in 2 Schritten vorgehen:
Zuerst nur Comm_Load starten und und Status ausweten, dazu unbedingt Flanke von Done und Error nutzen und damit den Status wegschreiben. Erst wenn Comm_load sauber funzt, weiter machen mit dem Modbus_Client (früher "Master").
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Erst wenn Comm_load sauber funzt, weiter machen mit dem Modbus_Client (früher "Master").
Muss bei der S7-1200 G2 und TIA V21 jetzt auch bei Modbus RTU/RS485 "Modbus_Client" verwendet werden??? :unsure:
Der Fragesteller hat "Modbus_Master" verwendet (so wie ich es mit TIA V16 gewöhnt bin).
 
Client = Master
Server= Slave

Bei manchen Slaves ist je nach Registerwertigkeit auch entscheidend, ob ein oder zwei Worte in einem Rutsch bearbeitet werden. Ich hatte schon Slaves, die rotzfrech mit ner Exception geantwortet haben, weil ich nur ein Single Register lesen wollte, der Slave aber einen 32bit Wert versenden wollte.
 
Ärgerlich ist das vor allem, wenn man Server und Client verwechselt und auf seinem Programmiersystem dafür separat pro Verwendung Lizenzen erwerben muss für teuer Geld und ne falsche Lizenz nicht zurückgeben kann 🤑🤑🤑🤑
 
Zurück
Oben