# MODBUS TCP Funktionbausteine Step 7



## kürbis85 (27 Juni 2007)

Moin, moin,

ich will mit einer s7 300 und einen Lean CP mit Modbus TCP Teilnehmern kommunizieren!  Der Lean Cp ist ja meiner Meinung nach in der Lage TCP Telegramme (SEND/RECEIVE) zu senden und zu empfangen. Wodurch es auch möglich sein muss die übergeordenten Modbus/TCP Telgramme zu verschicken! 

Ich suche jetzt schon seit längerem vorgefertigte Funktionbausteine die das Modbus Protokoll implementieren! 

Andere SPS Hersteller (Phönix) stellen sowas kostenlos zu Verfügung! 
(Bei Siemens ist das immer so eine Sache!!!)

GRUß!

kuerbis


----------



## JesperMP (27 Juni 2007)

Funktionsbausteine für Modbus TCP: 2XV9450-1MB00
Leider nicht kostenlos.

Siehe auch
http://www.industry.siemens.de/IT4Industry/EN/solution_services/SIMATIC_ADDONS/PROTO_MOD.HTM


----------



## kürbis85 (28 Juni 2007)

Die hab ich auch schon gefunden! Ich seh es aber nicht ein dafür Geld zu bezahlen! 

Außerdem erzählen die in ihrem Handbuch was von einem IT CP! Ob man den wirklich brauch weiß ich nicht!

Oder ob Siemens nur wieder verkaufen will!

Aber Danke für die schnelle Antwort!

Gruß

Kürbis


----------



## JesperMP (28 Juni 2007)

kürbis85 schrieb:
			
		

> Außerdem erzählen die in ihrem Handbuch was von einem IT CP! Ob man den wirklich brauch weiß ich nicht!


Laut Prospekt is schon ein CP343-1 LEAN möglich.

Was kostet diese spezielle Bibliotek eigentlich ?


----------



## kürbis85 (4 Juli 2007)

Hallo,

ich mittlerweile mal ein Angebot von Siemens erhalten die wollen dafür 1600Euro haben!:twisted:  Von Phönix Contact habe ich die bausteine umsonst bekommen.:-D  

naja so ist siemens halt!:twisted:


----------



## Oberchefe (4 Juli 2007)

> Ich seh es aber nicht ein dafür Geld zu bezahlen!


 
dann würde ich mal zu www.modbus.org gehen, die Spezifikationen laden und selber schreiben


----------



## Virgill (21 November 2007)

*Modbus*

Selber schreiben ist gar kein problem. Ich habs mal implementiert um mit der APEX PAD800e zu kommunizieren. Wer es braucht, bitte melden.
Nett wär aber auch ein Link zu den Phoenix Contact bausteinen...


----------



## Lars Weiß (21 November 2007)

Der Lean reicht aus ... die Modbus-Kommunikation baut ja auf Send und Recieve auf.


----------



## jirschi (9 Februar 2009)

*Modbus / TCP*



Virgill schrieb:


> Selber schreiben ist gar kein problem. Ich habs mal implementiert um mit der APEX PAD800e zu kommunizieren. Wer es braucht, bitte melden.
> Nett wär aber auch ein Link zu den Phoenix Contact bausteinen...



ich könnte dein progrogrammierbeispiel gut gebrauchen, möchte mir die die daten aus einen sentron über modbus / tcp auslesen. würd mich über eine nachricht freuen! danke!


----------



## Kieler (9 Februar 2009)

*ModBUS on TCP*

...braucht man doch immer wieder.

Im letzten Jahr, haben wir von VIPA die abgesetzten Magazine auf "Modbus on TCP" Ebene eingesetzt. Hierzu gibt es auch Bausteine von VIPA. Die funktionieren natürlich auch bei einer S7-300 mit einem Lean CP. Es werden aber nur Coils abgefragt. 

# .. sentron auslesen
Dieses Thema hatten wir auch schon. Wenn sich da bei Siemens nichts wesentliches getan hat, kann man es einfach vergessen. Wir sind auf zwei wesentliche Probleme gestossen :
- Wir haben erwartet das KW/h im DINT Format zur Verfügung gestellt 
   werden. Es werden aber W/h im 64Bit Real Format zur Verfügung gestellt.
- Die Daten im Sentron verlangen eigentlich danach mit mehreren 
  Telegramen abgefragt zu werden. Einfach weil die Adressaufteilung so ist. 
  Das Sentron lässt aber nur eine Verbindung zu.
So richtig gut ist das nicht und wird schnell zum Stundengrab.

# Virgill
Stell doch bitte mal Deine Lösung rein. Vielleicht können wir ja gemeinsam eine offene Lösung bauen.


----------



## Lars Weiß (9 Februar 2009)

Kieler schrieb:


> Im letzten Jahr, haben wir von VIPA die abgesetzten Magazine auf "Modbus on TCP" Ebene eingesetzt. Hierzu gibt es auch Bausteine von VIPA. Die funktionieren natürlich auch bei einer S7-300 mit einem Lean CP. Es werden aber nur Coils abgefragt.



Meinst du die 200er IM253Net ?


----------



## Kieler (9 Februar 2009)

Lars Weiß schrieb:


> Meinst du die 200er IM253Net ?



Ja, so nannten die sich wohl. Das ging auch ganz prima. Man darf natürlich nicht extrem viele haben, da man ja für jede eine TCP Verbindung einrichten muss. Hinsichtlich der Coils (Bits) habe ich mich viellecht auch etwas unglücklich ausgedrückt. Natürlich kann man auch AI Karten aus dem IM253 auslesen. Diese werden aber halt Bitweise und nicht Wordweise übertragen.


----------



## Virgill (10 Februar 2009)

Hier der Link:
http://www.virgill.scene.org/modbus/

Bisher ist nur das empfangen von daten implementiert.
Mehr kommunikation brauchte ich bisher nicht.

MfG,

Jochen Feldkötter


----------



## Keryx (27 November 2009)

*Adressierung MODBUS TCP Register*

Hallo zusammen,

bin MODBUS-Neuling und habe die Aufgabe unsere Maschine über MODBUS TCP an die Auftragsverwaltung des Kunden anzubinden. Die SPS soll als MODBUS Server arbeiten und von der Auftragsverwaltung alle erforderlichen Daten zur Abarbeitung erhalten.

Die Konfiguration besteht aus:
VIPA 315-2 AG12 (projektiert als SIEMENS 318-2 Firmware 3.0)
SIEMENS CP 343-1 LEAN

Jetzt habe ich nach dem Beispiel von Jochen Feldkötter (herzlichen Dank an dieser Stelle) die Kommunikation in mein Projekt implementiert. Jetzt kommt von der Auftragsverwaltung die MODBUS-Anfrage, der Header wird empfangen, und wenn dann die Nutzdaten abgefragt werden sollen, gibt mir der AG_RECV die Meldung 8180H (Es liegen noch keine Daten vor) raus.

Mit der Meldung kann ich nicht viel anfangen, selbst wenn keine Daten vorhanden sind, müsste mir doch entsprechend der Anforderung die Registeranzahl beginnend ab dem Startregister ausgelesen werden, selbst wenn in jedem Register Null-Werte stehen würden.

Ich vermute hier eine fehlende Zuordnung MODBUS-Register zu SPS-Datenbaustein (Stichwort Pre-Mapping), finde aber weder in Hardwareconfig noch NetPro eine Möglichkeit diesbezüglich etwas einstellen zu können.

Ist das der richtige Ansatz oder kann es noch woanders dran liegen, dass die Kommunikation nicht funktioniert.

Das Projekt hänge ich mal mit an (Ist noch nicht fertig, deshalb mag es noch unvollständige Teile geben), die MODBUS-Kommunikation findet in den FCs 56-59 statt, die zugehörigen DBs sind 400-402. Der Sendeteil ist gesperrt, weil die SPS die Anfragen von der Auftragsverwaltung bekommt.

Hoffe ich habe mich verständlich ausgedrückt und das mir jemand helfen kann.

Gruß Patrick


----------



## kürbis85 (27 November 2009)

Moin moin,

ich glaube eine VIPA und ein original Lean-CP sind nicht unbedingt kompatibel! Die Vipa_Steuerung unterstützt die CP-funktionen einfach nicht! Zumindest ist das bei der Speed 7 sb315 mit der kleinen Progrmmier-Ethernet-Schnittstelle so! Wie das bei deiner Steuerung aussieht weiß ich nicht! Ein Anruf bei Vipa hat mich damals weiter gebracht!

Gruß
Kürbis


----------



## uncle_tom (27 November 2009)

Servus,

Also ich hab mir mal dein Projekt angeschaut.

1. In NetPro solltest du bei deiner TCP Verbindung anstelle von Fetch/Write Send/Receive einstellen.

2. Deine Steuerung muss als Modbus-Server arbeiten. D.h. wenn sie vom Modbus-Client (Master) nicht gefragt wird, dann hat sie die Klappe zu halten.
Bei deiner Konstellation schickst du jedoch ständig selber Modbus-Requests (Anfragen) - du versuchst also selber als Client (Master) zu arbeiten.

3. In deinem Empfangs-FC gehst du davon aus, dass du ein Modbus-Telegramm mit 19 Byte Nutzdaten erhälst - ist das wirklich so. Der CP343 schickt dir nur dann 19 Byte, wenn er auch wirklich 19 Byte in seinem Empfangspuffer zur Verfügung hat ! Wenn der Client (Master) jetzt ein Telegramm mit weniger als 19 Byte Nutzdaten schickt, dann sagt der AG_Receive freilich es sind keine Daten vorhanden.



> Ich vermute hier eine fehlende Zuordnung MODBUS-Register zu SPS-Datenbaustein (Stichwort Pre-Mapping), finde aber weder in Hardwareconfig noch NetPro eine Möglichkeit diesbezüglich etwas einstellen zu können.


Wer oder wo soll denn bitte hier was mappen. Das ganze wie von dir programmiert ist ja noch lange kein richtiger Modbus-Treiber - sondern lediglich ein Ansatz als Modbus Client (Master) und schon lange nicht als Modbus Server (Slave). Das mappen bzw. zuordnen der Modbus-Daten zu deinen Siemens-Datenbausteinen das müsstest du dann schon noch ausprogrammieren.

Ich glaub so wird das ganze nichts. Du solltest dir mal bei 

http://www.modbus.org

die Modbus-Spezifikationen besorgen und ein bissel einlesen. Und vor allem den Unterschied zwischen Client/Server bzw. Master/Slave verstanden zu haben. 

Was wird denn von der Auftragsverwaltung abgefragt bzw. geschrieben ?
Kann das ganze mit einem Modbus-Auftrag abgewickelt werden oder werden von der Auftragsverwaltung mehrere Aufträge der Reihe nach abgearbeitet.

Wenn du einen Modbus-Server erstellen willst, der mit mehreren Anfragen zurecht kommen soll, dann wird das schon ein bissel komplizierter.

Die Modbus-Anfragen von der Auftragsverwaltung haben sicherlich nicht die gleiche Nutzdatenlänge, du musst also jeweils im Header auswerten wieviele Nutzdaten noch folgen und dann einen variablen Any-Pointer zusammenbauen und diesem deinem Nutzdaten Receive übergeben.

Das was du dann zurückschicken musst (Send) hängt dann auch wieder davon ab, was die Auftragsverwaltung wissen will (Functioncode). Das ganze ist dann natürlich auch variabel in der Länge.

Weiters musst du den Transaction-Identifier (Byte 0 und 1 im Empfangstelegramm) auswerten und jeweils in deinem Sendetelegramm wieder zurückschicken.

Im übrigen wirst du dir bei der ganzen Sache mit FUP gewaltig die Finger brechen - wenn das was vernünftiges werden soll, dann musst du die Sache in AWL angehen.

usw. usw.

Vielleicht kommst du doch schneller und billiger zum Ziel, wenn du die fertigen Bausteine von Siemens verwendest. Bevor du hier einige Stunden in den Sand setzt, und das ganze dann doch nichts wird.

Mfg
uncle_tom


----------



## Keryx (27 November 2009)

Hallo Uncle Tom,
danke für die Hinweise.

Zu 1.: Das war einer der letzten Versuche in der Nacht, es stand vorher auf Send/Receive und wird es wieder werden.

Zu 2.: Die Modbus-Requests sind gesperrt, eben weil die SPS als Server arbeiten soll.

Zu 3.: Das könnte das Problem gewesen sein. Muss ich noch einmal prüfen, aber das kann ich erst ab Dienstag wieder. Die Anlage wurde heute in die Schweiz geschickt und ich werde am Dienstag folgen.

Wie immer war das Zeitfenster mehr als eng, es wurden Verfahren verkauft, die noch nicht entwickelt waren, es gab Probleme mit diversen Kaufteilen, so dass ich insgesamt zu spät die Modbus-Thematik beginnen konnte. Die Spezifikationen habe ich schon gelesen, werde das aber noch einmal konkret auf den Server-Betrieb wiederholen.

Die Daten der Auftragsverwaltung sind konstant. Bei Auftragsbeginn sind es 48 Byte die ich bekomme, nach Abarbeitung des Auftrags gehen 64 Byte zurück. Von daher ist das Datenaustauschvolumen relativ gering und findet nur am Anfang bzw. Ende statt. Mehrere Aufträge müssen nicht verwaltet werden.

Dann werde ich mich mal auf die Suche begeben, wie eine Zuordnung zu den Registern zu programmieren ist. Falls es hierzu noch ein paar Tipps gibt, nehme ich diese gerne an .

Werde am Montag noch einmal mit VIPA telefonieren, grundsätzlich schien der CP aber schon zu funktionieren. Die onboard-Schnittstelle habe ich herausgenommen, da der Betrieb mit beiden immer mal wieder Probleme machte, aber ansonsten hoffe ich, das der Betrieb an der VIPA möglich ist.

Gruß Patrick


----------



## Keryx (30 November 2009)

*VIPA CPU und SIEMENS CP*

Hallo zusammen,

mein heutiges Telefonat mit dem VIPA Service hat ergeben, das seit Freitag (27.11.2009) ein Firmware Update für die VIPA315-2AG12 existiert, mit dem die erforderliche Funktionalität für die SIEMENS CP`s gegeben sein soll. 

Habe das Update jetzt im Gepäck und werde morgen beim Kunden in der Schweiz die Aktualisierung vornehmen.

Gruß Patrick


----------



## Lars Weiß (30 November 2009)

Hier, die AWL-Quelle für einem Modbus/TCP Server, also einen Modbus-Slave. Getestet mit 31X und CP343-1 LEAN. Du brauchst nur eine passive unspezifizierte TCP-Verbindung (Port 502) in NetPro anlegen, versorgst den Baustein mit den Verbindungsparametern und fertig. Um die Kommunikation zu testen eignet sich MODSCAN 32 ganz gut, das Simuliert einen Modbus/TCP Client.

Hab grad gesehen das in dem Baustein noch Z1-Z8 verwendet werden, hab damit beim testen die Anzahl der Funktionsaufrufe getestet...wenn die Stören schmeiss sie raus. Werden nicht benötigt.


----------



## Keryx (19 Dezember 2009)

Hallo zusammen,

nachdem ich in der Schweiz leider nur sehr eingeschränkte Möglichkeiten hatte das Internet zu nutzen, möchte ich jetzt die Gelegenheit nutzen um mitzuteilen, dass die Modbus TCP Anbindung mit dem Baustein von Lars Weiß nach dem Update der VIPA CPU auf Anhieb funktioniert hat.

Hoffe ich kann mich irgendwann einmal mit einem nützlichen Beitrag revangieren.

Gruß Patrick


----------



## hmi222 (30 Januar 2012)

> Hier, die AWL-Quelle für einem Modbus/TCP Server, also einen Modbus-Slave. Getestet mit 31X und CP343-1 LEAN. Du brauchst nur eine passive unspezifizierte TCP-Verbindung (Port 502) in NetPro anlegen, versorgst den Baustein mit den Verbindungsparametern und fertig. Um die Kommunikation zu testen eignet sich MODSCAN 32 ganz gut, das Simuliert einen Modbus/TCP Client.
> 
> Hab grad gesehen das in dem Baustein noch Z1-Z8 verwendet werden, hab damit beim testen die Anzahl der Funktionsaufrufe getestet...wenn die Stören schmeiss sie raus. Werden nicht benötigt.​
> 
> ...



Hi.
Was für ein DB wird hier gebraucht?   IN:REGISTER_DB (Datenbaustein Modbus Register).
Hat der ne bestimmte Struktur?
Vielen Dank im vorraus.


----------



## Lars Weiß (31 Januar 2012)

Nein, hat er nicht. DBW0 ist Register 0, DBW2 ist Register 1 und so weiter. Mit Coils ist es gleich, Coil 0 ist dbx0.0, Cool 1 dbx0.1 ...


----------



## holgermaik (14 Februar 2012)

Hallo Lars
Ich muss mal sagen, Super Arbeit dein Modbus Server.
Arbeitest du noch daran? Wird er eventuell noch um einen Client erweitert?
Grüsse Holger


----------



## Markus Rupp (15 Februar 2012)

Virgill schrieb:


> Selber schreiben ist gar kein problem. Ich habs mal implementiert um mit der APEX PAD800e zu kommunizieren. Wer es braucht, bitte melden.
> Nett wär aber auch ein Link zu den Phoenix Contact bausteinen...



Ich hätte Sie gerne, BITTE


----------



## Lars Weiß (15 Februar 2012)

holgermaik schrieb:


> Hallo Lars
> Ich muss mal sagen, Super Arbeit dein Modbus Server.
> Arbeitest du noch daran? Wird er eventuell noch um einen Client erweitert?
> Grüsse Holger



Gibt es, einen für Blemo FU´s (ATV 61/71...), einen für Sentron PAC3200/4200, einen universellen ein einfach nur eine Anzahl Jobs abarbeitet, ...


----------



## s.hocheder (5 März 2013)

Hat jemand eine fertige TCP-Modbus Configuration für einen Sentron PAC4200 die man in eine S7 300 inplementieren kann?


----------



## 4nD1 (6 März 2013)

Lars Weiß schrieb:


> Gibt es, einen für Blemo FU´s (ATV 61/71...), einen für Sentron PAC3200/4200, einen universellen ein einfach nur eine Anzahl Jobs abarbeitet, ...



Kannst du diese vielleicht auch mal on stellen =)


----------



## vollmi (6 März 2013)

Siemens hat ja da mal so ein Modbusbeispielprogramm zur verfügung gestellt. Eben für Pac 4200 3200. 

Das haben sie aber wieder off genommen.

Ich habs noch und hab schon zwei Anlagen mit jeweils ca 20 Pacs in Betrieb genommen und es funktioniert.

Allerdings den Quatsch würde ich mir nie wieder antun bei der Menge. Heute würde ich einfach die Profinetschnittstelle zu den PAC dazukaufen. Auch wenns ne frechheit ist das diese nichtmal stabil genug sind um die Siemens FC Profinetstecker zu verkraften.

Man sollte also normale Ethernetkabel nehmen.

mfg René


----------



## s.hocheder (6 März 2013)

vollmi schrieb:


> Siemens hat ja da mal so ein Modbusbeispielprogramm zur verfügung gestellt. Eben für Pac 4200 3200.
> 
> Das haben sie aber wieder off genommen.
> 
> ...



Könntest du das Beispielprogramm, dass du von Siemens hast bei Gelegenheit mal online stellen?


----------



## vollmi (6 März 2013)

Hier Bitte

Allerdings ist es manchmal etwas Tricky es richtig zum laufen zu kriegen.

Anhang anzeigen MbusSiemensPAC.zip


mfG René


----------



## pc1246 (30 August 2014)

Hallo Lars
Bin jetzt gerade dabei Deinen Server in Betrieb zu nehmen!  Du schriebst ja, dass Du auch einen Client hast, bzw. mehrere. Wuerdest  Du die, insbesondere den universellen, zur Verfuegung stellen?
Danke und Gruss
Christoph


----------



## pc1246 (6 September 2014)

vollmi schrieb:


> Hier Bitte
> 
> Allerdings ist es manchmal etwas Tricky es richtig zum laufen zu kriegen.
> 
> ...



Hallo Rene

Kannst Du noch mal das Projekt ohne Hardware einstellen? Mein Step7 meckert rum, wegen der Hardware!

Danke und Gruss
Christoph


----------



## pc1246 (9 Oktober 2014)

Hallo an Alle
Nachdem ich nun das Programm von Lars mehr oder minder im Einsatz habe, wollte ich Euch mitteilen, dass sich da zwei kleine Fehler bei der Bitbehandlung eingeschlichen haben. Dort werden Zaehler auf 0 initialisiert, dann aber auf <= (kleiner gleich) abgefragt. Das Gleichheitszeichen muss beidesmal entfernt werden, sonst wird immer ein Bit zuviel gezaehlt. Dies hat mir Probleme bereitet!
Gruss Christoph
P.S.: Der Tipp kam uebrigens nicht von mir, sondern von ChrisD aus dem fhem forum!


----------



## Lars Weiß (9 Oktober 2014)

Fehler? Sag mal wo bitte.


----------



## HartmutJ (12 Oktober 2016)

Keryx schrieb:


> Hallo zusammen,
> 
> nachdem ich in der Schweiz leider nur sehr eingeschränkte Möglichkeiten hatte das Internet zu nutzen, möchte ich jetzt die Gelegenheit nutzen um mitzuteilen, dass die Modbus TCP Anbindung mit dem Baustein von Lars Weiß nach dem Update der VIPA CPU auf Anhieb funktioniert hat.
> 
> ...


Hallo Patrick,

Ich soll einen S7-315-2 DP mit einer CP343-1 Lean Karte als Modbus TCP Slave, also Server einrichten und benutze die Mustervorlage, Modbus.txt von Lars. Leider stellt sich der Übersetzer/Kompilierer auf die Hinterbeine wegen "Syntax errors".
Dürfte ich vielleicht in deine Modbus.txt Quelle mit den Praktischen Werten hineinschauen? Es wäre mir sehr viel wert.

Danke im Voraus!
Hartmut


----------



## Henny (12 Oktober 2016)

Hallo Hartmut

Angehängt ist ein Project mit eine alter 315-2DP und CP343 mit der modbus server baustein von Lars.
Hofelich helft das ihr weiter?

Mit freundlichen Gruß
Henny


----------



## HartmutJ (13 Oktober 2016)

Hallo Henny,

Vielen dank für das Project. Das hat mir gut weiter geholfen. Nun hab ich endlich ein Beispiel mit Englischen "mnemonics" und das gefällt meiner Step7 Software besser. 

Herzlichen Gruß,
Hartmut


----------



## Draco Malfoy (15 Oktober 2016)

Hallo zusammen

Die Siemens- MODBUS-Bibliotheken liegen schon seit Längerem in Quellenform öffentlich aus:

http://www.sps-forum.de/misc.php?do=vsarules


 Wenn man auf der Seite sucht, finden sich dort alle drei relevanten Quellen - FB106 / FB107 / FB108.


----------



## Lars Weiß (15 Oktober 2016)

Echt jetzt? Du postest hier eine Raubkopie von einem Russenserver?


----------



## Draco Malfoy (15 Oktober 2016)

Lars Weiß schrieb:


> Echt jetzt? Du postest hier eine Raubkopie von einem Russenserver?



Sag mal, hast Du nicht alle Latten an der Tanne ?
Wann und wo soll ich hier irgendwelche Raubkopien gepostet haben ?

Ich gebe einfach nur den Hinweis auf eine Internetseite, die sich mit dem Thema MODBUS befasst. Ob es sich bei den Inhalten um "Raubkopien" handelt, oder legal erworbene Quellen, entzieht sich meiner Kenntnis (von wo sollen die denn "raubkopiert" worden sein - soweit ich weiß, werden diese Quellen so nirgends vertrieben).

Desweiteren habe ich hier keine "Kopien" gepostet, sondern nur eine externe Webseite verlinkt. 
Jeder soll selber wissen, wie er damit umgeht. Über google findet man den Weg dorthin auch ganz schnell.


----------



## Lars Weiß (17 Oktober 2016)

Draco Malfoy schrieb:


> 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.


----------



## Draco Malfoy (17 Oktober 2016)

Lars Weiß schrieb:


> 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.
> ...



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.


----------



## JesperMP (17 Oktober 2016)

Draco, es ist einfach. Es ist genau wie Lars Weiss es erklärt:


> Und du trägst zu deren [illegal erworbene Quellcode] verbreitung bei, indem du den Link hier postest.


----------



## DeltaMikeAir (17 Oktober 2016)

Gibt es hier auch irgendwo einen Daumen runter Button?


----------



## Draco Malfoy (17 Oktober 2016)

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.


----------



## Lars Weiß (17 Oktober 2016)

Draco Malfoy schrieb:


> Es ist einerseits so, daß ein Link ungleich "Raubkopien posten" ist.



Da hast du recht. Das nehme ich gerne zurück.


----------



## Draco Malfoy (17 Oktober 2016)

Lars Weiß schrieb:


> Da hast du recht. Das nehme ich gerne zurück.



OK. Dann schlage ich vor, diesen Streit an der Stelle zu beenden.

Im Prinzip kann die Moderation den OT-Gesprächsverlauf, ab der Stelle wo's ausgeartet ist, zusammen mit dem beanstandeten Beitrag, auch gerne löschen.


----------



## cornholio77 (31 Oktober 2022)

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.




Ü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.




Grüße,
Martin


----------



## PN/DP (31 Oktober 2022)

cornholio77 schrieb:


> erstmal danke an @Lars Weiß für Deinen Baustein. Hat mir sehr geholfen.


Auf welchen Baustein beziehst Du Dich? Den aus Beitrag #19?



cornholio77 schrieb:


> 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


----------



## cornholio77 (31 Oktober 2022)

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


----------



## cornholio77 (31 Oktober 2022)

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!


----------

