Variablen für ADS OCX sperren / Zugriff durch Labview verhindern

timau

Level-2
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPS-Forum,

im Rahmen eines Studienprojektes habe ich eine Beckhoff CX8090 SPS zur Verfügung. Mit einer Labview Oberfläche werden Variablen der SPS (als globale Variablen deklariert) über das Protokoll ADS OCX gelesen und geschrieben.
Diese Kommunikation funktioniert einwandfrei, das Problem ist jedoch, dass auf diese Weise auf jede globale Variable, also auch alle Ausgänge, direkt von der Oberfläche geschrieben werden kann. So könnten beispielsweise Motoren geschaltet werden ohne dass das im SPS Programm gewünscht ist.
Gibt es in Twincat oder im Systemmanager eine Möglichkeit den Lese/Schreibzugriff über ADS-OCX zu beschränken? Also z.B. den Schreibzugriff für alle Ausgänge zu blockieren?

Sollte das nicht möglich sein, ist im Gespräch eine MODBUS-TCP Erweiterung für die SPS freizuschalten um darüber festzulegen welche Variablen beschrieben werden dürfen. Wäre es in diesem Fall Möglich die ADS-OCX Funktionalität abzuschalten? Da sonst ja weiterhin auf die Variablen zugegriffen werden könnte.

Eine weitere Möglichkeit wäre denke ich ein OPC-Server, für diesen ist im Rahmen des Projekts allerdings kein Geld da.

Trotz langer Suche habe ich bisher z.B. im Beckhoff Infosys und eben auch im Programm keine Möglichkeiten gefunden eine solche Beschränkung einzurichten.

PS: Eingesetzt wird Twincat 2.11 R3 (auf Windows 7 32 Bit) und Labview 2012

Über Hinweise würde ich mich sehr freuen!
Beste Grüße,
timau
 
Hallo timau,

kruz und knapp, zu allen drei Möglichkeiten: NEIN.
Die ADS-Kommunikation findet in deinen beiden Möglichkeiten Modbus und OPC ja auch statt, nur vielleicht nicht direkt offensichtlich.
Am Ende ist jede Art des Verbindungsaufbaus mit einer TwinCAT PLC ein Stück ADS-Kommunikation, die man nicht "verbieten" kann.
Dem OPC-Server könntest du noch als einzigen Tags übergeben, über diese Variablen gefiltert und somit nicht angezeigt werden, was aber keinem Schreibschutz gleich käme.

Gruß,
mac203
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für deine Antwort. Angenommen der PC auf dem die Labview Visualisierung läuft und die Beckhoff SPS wären nicht direkt miteinander verbunden sondern ein OPC Server wäre als eigenständiger PC dazwischengeschaltet. Dann würde doch die SPS per ADS mit dem OPC-Server kommunizieren, der Client in Form von Labview käme aber nur noch mit den direkt vom OPC-Server bereitgestellten Daten in Kontakt.
Oder liege ich mit der Annahme falsch? Vielen Dank für die Antwort :)
 
Wie schon geschrieben, läuft bei Beckhoff nichts ohne ADS....egal wie du es anstellst, hast du (fast immer) ein Stück ADS dabei.
Der Link hier zeigt die Möglichkeiten mit OPC UA.

Bei der von dir vorgeschlagenen Variante: 3 PCs müsstest du aktiv per FB über OPC zum Server kommunizieren. Das würde erheblich mehr Programmieraufwand nach sich ziehen.

Ich würde in deinem Fall den OPC-Server auf der PLC-Seite laufen lassen und den Labview Client per OPC anbinden. Damit hättest du also zwei PCs im Rennen. Macht eigentlich weniger Arbeit.
 
Also wenn dein Labview nicht auf der SPS läuft und der PC mit Labview keine ADSRoute zur SPS hat(die ADS-Kommunikation ist ja geschützt über passwort),
dann hast du alle möglichkeiten.
Ob nun Modbus oder OPC ist dabei egal. es werden bei allen systemen nur die variablen benutzt, die du freigibst.
ein weiterer PC ist nicht notwendig.

Eine idee mit ads hab ich noch, die müsste man aber mal testen.
Du erstellst 2 laufzeiten.
in der einen läuft dein projekt auf port 801 und auf der anderen, port 802 ein interfaceproject welches die daten immer hin und her schaufelt.
wenn du nun 801 via firewall dicht machst kommt keiner mehr von aussen drauf.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo soma, vielen Dank für deine Antwort.
Das Stichwort Firewall war super. Ich habe deine Idee mal ausprobiert (2 Laufzeitsysteme). Die Konfiguration ist jetzt wie folgt:


  • Laufzeitsystem 1 (ADS Port 801) - Das eigentliche Programm
  • Laufzeitsystem 2 (ADS Port 811) - Interfaceprojekt

Es gibt nur ein Problem. Wenn ich die Firewall auf dem Embedded Windows CE 6.0 (auf der SPS) aktiviere muss ich ja Ports freigeben. Um Kommunikation über ADS zu ermöglichen muss der Port 48898 TCP freigegeben werden. (http://infosys.beckhoff.de/index.ph...eaccess/html/tcremoteaccess_firewall.html&id=)
Wenn ich das tue kann von außen (Labview-Rechner) auf jedes der 4 Laufzeitsysteme zugegriffen werden. Ich kann ADS nur ganz (über diesen Port) blockieren oder freigeben.
Gibt es irgendeine Möglichkeit die ADS Ports einzeln freizugeben bzw. zu sperren? Also die Ports 801 bzw. 811?
Im AMS-Router kann man leider nur die IP einstellen aber keine Porteinstellungen vornehmen?
 
Zurück
Oben