TIA MODBUS Siemens 1512SP-1 PN und CM PtP RS485 Kommunikation zu Schrittmotortreiber

Zuviel Werbung?
-> Hier kostenlos registrieren
Es handelt sich um eine 18-Achsige Transportmaschine, Modbus RTU habe ich gewählt, da ich eben diese Menge an Antrieben habe und gerne die Siemens SPS nutzen würde.
Zu 35. Bitte nimm den Statusausgang oben am Baustein weg! Sonst beschreibst Du das Statuswort ja doch permanent.
Dann einmal den REQ aus und wieder ein. Dann siehst Du erst, was passiert.
Leider passiert wenn ich das mache nichts.
 
Aber der Code würde auch mit einer 1512-1PN funktionieren?
Ja, MB_CLIENT funktioniert mit ET200SP-CPU und S7-1500 und S7-1200.

Später habe ich 18 Treiber welche ich "zeitgleich" ansteuern möchte.
Achtung, wenn alle RS485-Geräte am selben RS485-Bus hängen, dann können die nur einzeln reihum/nacheinander kommunizieren. Inklusive Timeout-Erkennung. Bei 18 Geräten kann das einige Sekunden bis Minuten dauern (je nach Baudrate), bis einmal mit jedem Teilnehmer kommuniziert wurde.
Wenn das zu lange ist: mit TCP/RTU-Gateways könntest du kostengünstig mehrere RS485-Busse mit weniger Teilnehmern aufbauen oder im Extremfall jedem RS485-Gerät ein eigenes Gateway spendieren und dann viel schneller mit allen Teilnehmern gleichzeitig kommunizieren. Mit mehreren CM PtP wäre sowas unbezahlbar ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zu 35. Bitte nimm den Statusausgang oben am Baustein weg! Sonst beschreibst Du das Statuswort ja doch permanent.
Dann einmal den REQ aus und wieder ein. Dann siehst Du erst, was passiert.
Ich versuche es jetzt erstmal weiter mit der Siemens Karte. Trotz dessen der Anpassungen bleibt der Status bei 7000.
1723445868843.png
An der folgenden Stelle im Modbus_Comm_Load_Db wird jedoch der richtige Status angezeigt.
1723446628292.png1723446702569.png1723447515449.png
1 und 9 sowie 2 und 10 dürften intern miteinander verbunden sein. Sind ja zwei getrennte RJ Ports (ich habe das öfter bei Geräten wo dann einfach mit Ethernetkabeln weitergepatcht wird)
das stimmt vermutlich schon. Ich denke da ist ist am ModComLoad noch nicht alles nach der Handbuchdefinition belegt bzw im entsprechenden Instanzbaustein eingetragen.
@MoritzNawrot überprüfe die Parameter des ModComLoad nochmal ob die mit dem Handbuch übereinstimmen. Zeig uns die Parameter mal in der Beobachtungstabelle online.
dasselbe mit dem Master auch in der Beobachtungstabelle online.
PS: Und natürlich die Parameter der Seriellen Schnittstelle die du eingestellt hast (standard scheint ja 38400.8.n.1 zu sein)
Das sollte ja heißen, dass mein Anschluss korrekt ist, oder?
 

Anhänge

  • 1723446504440.png
    1723446504440.png
    71 KB · Aufrufe: 12
Zuletzt bearbeitet:
Der Baustein Modbud_Com_load wird jetzt offenbar korrekt initialisiert.
Idealerweise fragst bzw. schreibst Du jetzt als nächstes mit dem Master nur ein einzelnes Register (also ein Word oder ein Bit) ab, bis da die Kommunikation steht.

Dies dehalb, weil auch die Adressierung nicht immer eindeutig ist (offset 0 oder 1) und Wörter gedreht sein können (Big- und Little-Endian).
 
An dieser Stelle steht weiterhin die 7000, ist das egal?

1723456317439.png

Wenn ich jetzt Versuche dem Motor das Startsignal zu geben muss ich meiner Meinung nach das folgende Register auf 1 setzen:
1723456161434.png
1723456769721.png

Das habe ich wie folgt versucht (40015 und 40017 habe ich auch schon ausprobiert):
1723456430254.png
Ich habe Data len = 1 gesetzt und das folgende in REGISTERS stehen:
1723456546155.png
Trotzdem bleibt auch weiterhin der Modbus Master bei Status 7002, also durchgehend BUSY. Noch eine Idee woran es liegen könnte?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich nutze die Tools von hier.
Modbustools
ModbusPoll um den Zugriff auf Geräte zu testen.
ModbusSlave um meine SPS zu testen die oft ja als Client funktioniert.
Dazu brauchst du für Serielle Geräte natürlich einen Seriellen Anschluss oder einen SerialServer wie Nport.
Mein Adapter, welchen ich bestellt habe, ist nun angekommen und ich habe mit Modbus-Slave erfolgreich meine SPS getestet und noch etwas im Programm bereinigt.

Jedoch versuche ich nun über Modbus-Poll den Treiber anzusteuern bzw. auszulesen. Ich habe erst ein paar Daten bekommen und danach den folgenden Fehler:

04 Server Device Failure

Gibt es hier noch etwas, was ich übersehen habe?

Vielen Dank schonmal!
 
Zuletzt bearbeitet:
Vielleicht fragst du zu schnell und das Gerät will eine Weile Erholzeit? Oder fragst du zu viele oder nicht vorhandene Register ab?
Was genau fragst du, wenn der Fehler kommt? Werden von da an alle Abfragen mit Failure beantwortet?
 
Zurück
Oben