[ Modbus ] S7-200

caret

Level-1
Beiträge
82
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich versuche eine S7-200 mit 224XP CPU als Modbus-Slave zu betreiben und kommen nicht weiter. Vielleicht hat ja jemand eine Idee.

Softwareseitig sieht es o.k. aus, d.h. im MicroWin sehe ich, dass MBUS_INIT und MBUS_SLAVE ohne Fehler durchlaufen. Verkabelung habe ich das ganze wie folgt:

PC -> USB auf RS485 Adapter -> gebasteltes PIN-verdrehtes Kabel -> S7-200

Für den USB auf RS485 Konverter steht im Handbuch:

PIN 1: (1)TX/RX- Definition DM
PIN 2: (1)TX/RX+ Definition DP

PIN 1 des Adapters hab mittels des gebastelten Kabels auf PIN 8 (RS-485 Signal A) und PIN 2 auf PIN 3 (RS-485 Signal B) der S7-200 gelegt. Des Weiteren Masse von PIN 5 auf PIN 5.

Dann QModBus als Master auf dem PC laufen lassen und die diesem Posting angehängte Bildschirmausgabe (Fehlermeldung) erhalten. Ich sehe wohl, dass die S7-200 auf die Anforderung "diskrete Eingänge lesen" antwortet, aber mit eine Exception -3. Allein anfangen kann ich nichts damit.

Hab ich ein Problem mit der Vekkabelung? Bei Siemes heisst es, man solle eine terminiertes Profibus-DP Kabel verwenden. Das habe ich so nicht benutzt. Mein gebasteltes ist ein einfacher ungeschirmter und unterminierter Klingeldraht. Bei 5cm Kabellänge sollte das aber auch kein Problem sein, oder?

EDIT: Kommunikationseinstellungen, d.h. Baudrate, Parität, Adresse, usw. sind korrekt eingestellt.
 

Anhänge

  • Bildschirmfoto.png
    Bildschirmfoto.png
    10,7 KB · Aufrufe: 25
Hallo,
die Meldung würde ich als Softwarefehler interpretieren. Der Funktionscode 3, welcher Dir angezeigt wird ist das Lesen von Registern (sprich Reals). Auf der SPS-Seite bedarf es dann eines entsprechenden Funktionsbausteins, der mit diesem Funktionscode vom Master etwas anfangen kann.

Gruß Frank
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
die Meldung würde ich als Softwarefehler interpretieren. Der Funktionscode 3, welcher Dir angezeigt wird ist das Lesen von Registern (sprich Reals). Auf der SPS-Seite bedarf es dann eines entsprechenden Funktionsbausteins, der mit diesem Funktionscode vom Master etwas anfangen kann.

Gruß Frank

Hm, das hät ich jetzt nicht erwartet. Zumal ich auf SPS-Seite keine Fehlermeldung bekomme. Mein Coding sieht wie folgt aus (POE wird jeden Zyklus aufgerufen):

Code:
LDW=   #state, 20
JMP    20
LDW=   #state, 30
JMP    30
LDW=   #state, 40
JMP    40
LD     SM0.0
JMP    10

LBL    10
CALL   MBUS_INIT, 0, #address, #baud, #parity, 0, 128, 32, #size, #holdstart, #initDone, #initError
MOVW   20, #state
JMP    99

LBL    20
CALL   MBUS_INIT, 1, #address, #baud, #parity, 0, 128, 32, #size, #holdstart, #initDone, #initError
MOVW   30, #state
JMP    99

LBL    30
LDB=   #initError, 0
U      #initDone
MOVW   40, #state
JMP    99
LD     SM0.0
MOVW   10, #state
JMP    99

LBL    40
LD     SM0.0
CALL   MBUS_SLAVE, #slaveDone, #slaveError
LDN    #slaveDone
JMP    99
LDB<>  #slaveError, 0
MOVW   10, #state
JMP    99

LBL    99
LBL    99
 
Hallo,
mit einer S7-200 habe ich noch keine Modbus-Verbindung gemacht. Bei einer S7-300 allerdings schon. Dazu bedurfte es eines speziellen CP in der S7 und entsprechender Modbus-FB´s die man bei Siemens kostenpflichtig erwerben mußte.

Gruß Frank
 
Hallo,
mit einer S7-200 habe ich noch keine Modbus-Verbindung gemacht. Bei einer S7-300 allerdings schon. Dazu bedurfte es eines speziellen CP in der S7 und entsprechender Modbus-FB´s die man bei Siemens kostenpflichtig erwerben mußte.

Gruß Frank

Also laut Systemhandbuch kann dis S7-200 auf Port 0 Modbus-Slave. Die entsprechende Modbus Lib habe ich kostenpflichtig erworben. Ansonsten hätte ich die POEs MBUS_INIT und MBUS_SLAVE ja auch gar nicht verwenden können.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jep, es ist ein Hardware, d.h Verkabelungsproblem gewesen. Habe die Info erhalten, dass das original serielle Siemens PPI-Kabel einen RS232-RS485 Umsetzer beinhaltet. Wenn ich also das original Kabel nochmals an einem USB-RS232 Umsetzer anschliesse funktioniert die S7-200 als Modbus Slave wunderbar.

Was mich nur brennend interessieren würde ist warum der USB->RS485 Umsetzer vom Fremdanbieter nicht funktioniert.
 
Zurück
Oben