TIA S7-1500 Modbus-Server für mehrere Blackbox-Clients

Januar

Level-2
Beiträge
421
Reaktionspunkte
119
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin, Gemeinde,

ich habe mir schonmal die TIA Hilfe zur Gemüte geführt, was aber auch mehr Fragen hinterlassen hat, daher suche ich hier nochmal nach Bestätigung.

Ich habe eine S7-1515 (TIA V18), die mit einigen Black-Box-Systemen (~5), die nicht in meiner Verantwortung liegen, Daten austauschen soll. Aktueller Konsens ist, dass dafür Modbus verwendet werden sollte. Da die Black-Box-Systeme jeweils nur mit meiner CPU Daten austauschen sollen, untereinander aber keine Kommunikation brauchen, halte ich es für das einfachste, meine S7 zum Server zu machen und den Herstellern der anderen Komponenten nur mitzuteilen, in welchen Registern die für sie relevanten Daten liegen. Der Datenaustausch erfolgt aber schon in beide Richtungen, das heißt die Clients müssten sowohl lesen als auch schreiben.

Jetzt die Frage: Reicht es da, wenn ich eine Instanz des MB_SERVER aufrufe und einen DB mit einem ausreichend großen Array definiere? In der TIA-Hilfe stand einiges zum Thema "Mehrere Verbindungen gleichzeitig", was jeweils eine eigene Instanz benötigen würde, wenn ich das richtig sehe.
Die Teilnehmer sind alle im gleichen Netz, Kommunikation nach/von außen wird extern kontrolliert und überwacht, also sehe ich keine Sicherheitsbedenken dabei, dem Server per Konfig mitzuteilen, dass Client-Anfragen von allen IP-Adressen OK sind.

Die Anlage dient der verteilten Wärmeerzeugung, weswegen jetzt auch keine Reaktionszeiten im ms-Bereich erforderlich sind, aber einmal pro Sekunde sollten hier schon die Daten ausgetauscht werden. Pro Einheit handelt es sich aber nur um etwa 10-20 Register.

Reicht eine Server-Instanz oder brauche ich eine Server-Instanz pro Black-Box-System?

Gruß, Januar
 
Eine Instanz pro Verbindung. Die Clients sprechen sich ja nicht ab, wenn sie mit Dir reden.
In neueren Versionen von MB-Server kannst Du übrigens den Zugriff auf I und Os auf einen DB umbiegen, so dass Dir niemend da reinschreiben kann. Habe ich persönlich aber noch nicht umgesetzt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde eine Instanz pro Verbindung machen, und auch einen DB pro Verbindung.
Hat den Charme, dass Du einmal die Datenstruktur definierst und dann deine 5 Teilnehmer immer die gleichen Register nutzen können,
und es bei dir einfach aus einem anderen DB kommt. Das skaliert dann auch für Erweiterungen sehr gut.

Grüße

Marcel
 
Dann gebe ich auch für jede einzelne Verbindung eine eigene ID an. Benötigt dann auch jede Verbindung ihren eigenen Port?
 
Doch ich hätte gesagt schon. Die Server müssten ja unterscheidbar sein, und das geht bei gleicher IP nur durch den Port.
Dann müsste jede Verbindung auf einem anderen Port kommen, dann könnte es keinen Standard Port und keine unvorhergesehene Verbindungsaufnahme geben. In der Praxis: alle Clients fragen auf z.B. Port 502, und beim Verbindungsaufbau merkt sich der "Vermittler" die Client-IP und selektiert mit der Client-IP die MB_Server-Instanz.
 
Im Code wird das in die Struktur der Verbindungsbeschreibung TCON_IP_v4 übersetzt/eingetragen für den MB_SERVER-Parameter CONNECT, und jede MB_SERVER-Instanz erhält eine andere Verbindungsbeschreibung. Und da ist auch der Zusammenhang zur Verbindungs-ID.
 
Zurück
Oben