MODBUS TCP Funktionbausteine Step 7

Zuviel Werbung?
-> Hier kostenlos registrieren
Sag mal, hast Du nicht alle Latten an der Tanne ?

Jetzt mach mal ganz langsam. So kannst du mit deiner Familie oder mit deinen Freunden reden, aber nicht mit mir.

Nur weil der Quellcode klar lesbar auf einem Server öffentlich ausliegt, bedeutet das nicht das Siemens damit einverstanden ist - die wollen nämlich Geld dafür.
Und wenn ich diese Quelle dann übersetze, was habe ich dann ? Richtig, eine illegal erworbene Kopie, umgangssprachlich auch "Raubkopie" genannt.

Und du trägst zu deren verbreitung bei, indem du den Link hier postest.
 
Jetzt mach mal ganz langsam. So kannst du mit deiner Familie oder mit deinen Freunden reden, aber nicht mit mir.

Nur weil der Quellcode klar lesbar auf einem Server öffentlich ausliegt, bedeutet das nicht das Siemens damit einverstanden ist - die wollen nämlich Geld dafür.
Und wenn ich diese Quelle dann übersetze, was habe ich dann ? Richtig, eine illegal erworbene Kopie, umgangssprachlich auch "Raubkopie" genannt.

Und du trägst zu deren verbreitung bei, indem du den Link hier postest.

Wenn noch einer hier behaupten sollte, ich würde irgendwo irgendwelche "Raubkopien posten" oder "gepostet haben", werde ich meinen RA mit einer kostenpflichtigen Abmahnung beauftragen.
Dazu gibt es eine eindeutige Rechtssprechung.
 
Es gibt dazu eine eindeutige Rechtssprechung:

https://rechtstreff.de/viewtopic.php?t=281
http://www.zeit.de/digital/internet/2016-04/eugh-gutachter-urheberrecht-verlinkung

Es ist einerseits so, daß ein Link ungleich "Raubkopien posten" ist. Zweitens, ist zweifelhaft, ob die betreffende Seite überhaupt irgendwelche "Raubkopien" anbietet. Drittens, bin ich für den Inhalt externer Links nur in einem sehr begrenzten Rahmen überhaupt haftbar.

Der verehrte Kollege, der mir hier strafbare Handlungen unterstellt, macht sich hingegen jedoch ggf. des Tatbestandes von §186 (üble Nachrede) schuldig.
 
Hallo,

erstmal danke an @Lars Weiß für Deinen Baustein. Hat mir sehr geholfen. War für mich als Modbus Neuling auch eine ziemliche Herausforderung das ganze funktionsfähig zu bekommen.

Obwohl das ganze läuft, habe ich trotz alledem ein Problem.

Nach Implementierung Deines Bausteines bekomme ich nun regelmäßig 4 Bereichslängenfehler im Diagnosepuffer meiner SPS (Vipa 315-2AG12) rein (siehe Bilder). Der FB188 ist der Modbus FB. Aus der Meldung würde ich nun vermuten das der Baustein versucht die Bytes 812-815 zu lesen. Da mein DB aber nur 670 Bytes groß ist kommt es zu dem Fehler.

fehler1.png

Über "Gehe zu" komme ich zu dem im Bild markierten Teil Deines Programms. Gibt es da ein Problem oder ist mein DB einfach zu klein? Mich wundert das weil ich die 800er Bereiche gar nicht nutze.

fehler2.png

Grüße,
Martin
 
Zuviel Werbung?
-> Hier kostenlos registrieren
erstmal danke an @Lars Weiß für Deinen Baustein. Hat mir sehr geholfen.
Auf welchen Baustein beziehst Du Dich? Den aus Beitrag #19?

Nach Implementierung Deines Bausteines bekomme ich nun regelmäßig 4 Bereichslängenfehler im Diagnosepuffer meiner SPS (Vipa 315-2AG12) rein (siehe Bilder). Der FB188 ist der Modbus FB. Aus der Meldung würde ich nun vermuten das der Baustein versucht die Bytes 812-815 zu lesen. Da mein DB aber nur 670 Bytes groß ist kommt es zu dem Fehler.
Auslöser Deines Problems ist Dein Kommunikationspartner (der Modbus TCP Client), der Register lesen will, die Du nicht zur Verfügung stellst. Der Modbus FB von Lars implementiert keine Fehlerbehandlung, d.h. der Client darf keine Fehler machen ;)
Du müsstet den Fehler abfangen, wenn ein Client auf Registernummern > 334 zugreifen will, oder Du sorgst dafür daß der Client auf keine Register > 334 zugreift, oder Du machst den REGISTER_DB einfach größer und hoffst, daß kein Client auf zu große Registernummern zugreift.

Harald
 
Hiho,

Auf welchen Baustein beziehst Du Dich? Den aus Beitrag #19?
Ja genau.
Auslöser Deines Problems ist Dein Kommunikationspartner (der Modbus TCP Client), der Register lesen will, die Du nicht zur Verfügung stellst. Der Modbus FB von Lars implementiert keine Fehlerbehandlung, d.h. der Client darf keine Fehler machen ;)
Du müsstet den Fehler abfangen, wenn ein Client auf Registernummern > 334 zugreifen will, oder Du sorgst dafür daß der Client auf keine Register > 334 zugreift, oder Du machst den REGISTER_DB einfach größer und hoffst, daß kein Client auf zu große Registernummern zugreift.
Ah ok. Dann werde ich dem bösen Client mal auf den Zahn fühlen. Habe aber übergangsweise den DB tatsächlich erstmal vergrößert gehabt und damit die Bereichslängenfehler weg bekommen. Ist ja immer der selbe Bereich.

Danke für die schnelle Antwort.

Grüße,
Martin
 
Und als Nachtrag. Habe nun auch den Fehler auf der Client Seite gefunden. Hier wollte ich fälschlicherweise an eine Variable an ein Register 406 schreiben. Eintrag korrigiert. Alles bestens.

Vielen Dank!
 
Zurück
Oben