Modbus TCP Kommunikation von SENTRON PAC3200

Jep, da schließe ich mich noch mal an.
Durch das Beispiel von Lars hab ich den Modbus-Header für die Janitza UMG endlich richtig hinbekommen.

Danke nochmal.

Da ich bei den 5 Danke schon drin bin kann ich leider kein zweites geben... ;)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Kein Danke zu bekommen ist normal. Das ist ok für mich, das juckt mich nicht. Nervig finde ich allerdings jene die keinerlei Eigeninitiative zeigen und fertige Lösungen für Ihre Modbus Probleme von mir haben wollen. Der dreisteste User an den ich mich erinnere hat mir Sonntags sein Programm (komplettes S7-Projekt) geschickt und wollte es bis Montag Morgen zurück weil er auf Inbetriebnahme müsse und natürlich keine Zeit habe sich noch um Modbus-Kommunikation zu kümmern.
Ach, die wo Fehler finden und mir natürlich nicht sagen wo der Fehler ist sind natürlich auch ganz klasse.
 
Nervig finde ich allerdings jene die keinerlei Eigeninitiative zeigen und fertige Lösungen für Ihre Modbus Probleme von mir haben wollen. Der dreisteste User an den ich mich erinnere hat mir Sonntags sein Programm (komplettes S7-Projekt) geschickt und wollte es bis Montag Morgen zurück weil er auf Inbetriebnahme müsse und natürlich keine Zeit habe sich noch um Modbus-Kommunikation zu kümmern.

Oder : kannst du mal per Teamviewer bei mir das und das nachschauen.

Hab gerade es ZIP mir auch geholt. :s12:
Vielen Dank.

Bram
 
Ich hatte da mal noch was geändert, dann verzettelt sich die CPU auch nicht wenn man den PAC im Milisekundentakt anspricht:

Code:
(*********************************************************)    
(* Recieve Registers                                     *)
(*********************************************************) 


          TRCV2(EN_R := FG_TRCV,
                ID   := TCON_PAR.ID,
                LEN  := 0,
                DATA := REGS);
                             
IF TRCV2.NDR THEN
    
      CASE (BYTE_TO_INT(HEADER[1])) OF 
            1: ret :=  SFC20(SRCBLK  := REGS,DSTBLK  := PAC_3200.block1); 
            2: ret :=  SFC20(SRCBLK  := REGS,DSTBLK  := PAC_3200.block2); 
            3: ret :=  SFC20(SRCBLK  := REGS,DSTBLK  := PAC_3200.block3);                                      
      END_CASE;
                                  
      FG_TRCV := FALSE;
      
      Count := Count + 1;
      
      IF Count > 3 THEN
        Count := 1;
      END_IF; 
   END_IF;         
           
END_IF;
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Lars
wie überwachst du eigentlich die Verbindung?
Ich hätte da jetzt noch einen Watchdog reingebastelt mit dem ich Positive Flanken vom Empfangsbaustein überwache.
Oder habe ich das Prinzip nicht verstanden?
 
Theoretisch müsste da eine ordentliche Auswertung des Response vom Slave rein, sprich Transaction Identifier, Slave Adresse, Funktionscode, Anzahl der gelesenen Werte, Auswertung der Modbus-Fehlercodes. Mir reicht es eigentlich aus das ich erkenne wenn einer der T-Bausteine einen Fehler erkennt. Wenn du es die positive Flanke des TRCV2.NDR auswertest bist du auf der Sicheren Seite. Ob du zusätzlich überprüfst das die empfangenen Werte plausibel sind liegt bei dir.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Für die 1200 gibt es einen kostenlosen Baustein von SIEMENS inkl. Beispielproejkt für einen PAC.
Den habe ich schon problemlos mit UMGs eingesetzt.
 
Diesen habe ich mir auch heruntergeladen. Bekomme aber leider keine Werte aus dem UMG gelesen. Lt. Siemens wird ja keine zusätzliche Hardware benötigt. Ist denn trotzdem eine GSD für das UMG notwendig? Muss eine Verbindung zum UMG angelegt werden,oder genügen die Bausteine aus dem Beispielprojekt?
 
Du benötigst keine GSD - du willst doch Mobus TCP?
SPS und UMG brauchen eine IP im gleichen Netz und dann war es das.
Hast du das Beispiel gefunden, bin grad unterwegs und müsste es auch suchen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Modbus-Slave-Adresse wirst du wahrscheinlich auch noch irgendwo eintragen müssen (kenn das angesprochene Beispiel nicht)
Bei UMG ist die standardmäßig 101.
 
Das Beispielprojekt haben wir gefunden. Habe hier mal ein Bild des relevanten Bausteines. Habe lediglich die IP-Adressen angepasst (auch in der HW)Read_HoldingRegister.jpg
Ich versuche die ModBus-Adressen ab 19000 auszulesen. Da wir diese Werte für unser BHKW benötigen.
 
Hmm... Bekommst du beim Verbindungsaufbau am Status-Ausgang was angezeigt?

Du könntest auch mal versuchen die "MB_Unit_ID" im den STAT-Daten (siehe F1-Hilfe zu MB_Client) auf 101 zu setzen, oder am UMG selbst die MB-Adresse auf 255 zu parametrieren.
Ich kann mich noch düster dran erinnern dass es bei mir (S7-300) ohne korrekte MB-Adresse nicht funktioniert hat.
 
Zuletzt bearbeitet:
Zurück
Oben