TIA S7-1500 ModBus Slave

M_Schoen

Level-1
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Ich soll ein Projekt von einer S7-1200 auf eine S7-1500 konvertieren.
( Ist meine erste Arbeit auf einer S7-1500 - habe bisher fast nur s7-400H programmiert )

Dabei soll auch eine Kommunikation über ModBus RTU erfolgen

Die richtige serielle Karte verwenden wir.

Ich verwende die Bausteine Modbus_Comm_Load und Modbus_Slave aus der Bibliothek vom TIA-Portal.

Der Baustein Modbus_Slave liefert mir aber einen Fehler zurück.
Fehlercode 8082 und im DB im RDREC.STATUS den Fehlercode C0809300

Für den Fehlercode C0809300 finde ich keine Fehlerbeschreibung.

Kann mir da jemand helfen.

Danke Euch

Mandi
 
Hallo mandi,

Zum Fehlercode 8082 finde ich auch nichts.

Wichtig und zu kontrollieren sind die Einstellungen/Eigenschaften Gegenstelle.
Diese auch zu parametrieren im Hardware und Software des 1500er

z.b.

Code:
  S7-1500 is Modbus Slave
Protocol ist Modbus RTU
Halbduplex (2 Draht betrieb)
Keine Paritätsprüfung
8 Datenbits
Ungerade Parität
1 Stoppbit
Übertragungsrate 9600 bit/s

Es muss unbedingt zu einander passen.

Hier ein Beispiel zur Umsetzung in das SPS programm

Code:
 REGION Initialisieren Modbus Anbindung mit Modbus Comm LOAD
    
    #Modbus_Comm_Load_Instance.MODE := 4;
    #"Initialisieren Modbus Load"(IN:="FirstScan",
                                         PT:=t#5s);
           
    IF #"Initialisieren Modbus Load".Q THEN
        #Modbus_Comm_Load_Instance(REQ := true,
                                   "PORT" := "Local~Modbus_RTU_Slave",
                                   BAUD := 9600,
                                   PARITY := 0,
                                   RESP_TO := 2000,
                                   STATUS => #Status_Com_Load,
                                   MB_DB := #Modbus_Slave_Instance.MB_DB);
     END_IF;
END_REGION

REGION Kommunizieren mit Modbus Slave
  
     #Modbus_Slave_Instance.HR_Start_Offset := 16#12D;    // Startoffset Modbusregister auf Register 40301 (HEX vorgabe)
   
     #Modbus_Slave_Instance(MB_ADDR := 49,
                            STATUS => #Status_Slave,
                            MB_HOLD_REG := "Modbus_ABB_Symphony");
 END_REGION

Viel Erfolg
Bram

xxxxxxxxxxxxx

Genau so wichtig ist die Hardverdrahtung zu kontrollieren...
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Danke.

Schnittstellenparameter und Verkabelung sollte passen. Wir verwenden ModBus bei S7/400 seit Jahren.

Hier mein Code :

"Modbus_Comm_Load_DB"(MB_DB:="Modbus_Slave_DB".MB_DB,
"PORT":=260,
REQ:="FirstScan" OR "HMI".ModBus_settings.Set_Baud_parity,
BAUD:="HMI".ModBus_settings.BAUD_Rate,
PARITY:="HMI".ModBus_settings.PARITY,
RESP_TO:=200,
STATUS=>"HMI".ModBus_settings.Modbus_comm_status
);

"Modbus_Slave_DB"(MB_HOLD_REG:= "DB_Modbus_Slave_Data".MB_HOLD_REG,
MB_ADDR:= "HMI".ModBus_settings.Modbus_slave_adress,
STATUS=> "HMI".ModBus_settings.Modbus_slave_status);

So weit ich es finden konnte bedeutet der Fehlercode C0809300 das der Datenaustausch zwischen Datenbaustein und Steckkarte nicht passen.
Aber was wohl ?



beste Grüße
Mandi
 
Das würde bedeuten das der Comm load nicht gut funktioniert.
Ich sehe auch nicht das du der "MODE" beschreibt.

Ich hab beim prüfen irgendwann den REQ vom Com Load immer auf true gesetzt und mir ein verlängerte Impuls gebaut zum initialisieren.


Bram
 
Zurück
Oben