Entwickler-Ecke
Internet / Netzwerk - Im Netzwerk PC sperren
madstudent - Do 13.11.14 16:05
Titel: Im Netzwerk PC sperren
Hallo,
ich habe folgendes Problem. Ich habe zwei PCs die via LAN verbunden sind. Wenn an dem einen PC gearbeitet wird, soll der andere blockiert werden. Hat jemand eine Idee wie ich soetwas lösen kann?
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 13.11.2014 um 23:23
Narses - Do 13.11.14 21:47
Moin!
Schalte nur einen PC ein. :|
cu
Narses
madstudent - Do 13.11.14 22:03
Das ist leider keine Option. Es ist zwingend notwendig, dass beide PCs laufen. Aber danke für deinen Hilfeversuch.
Narses - Do 13.11.14 23:02
"Ich habe zwei Autos, wenn das eine unterwegs ist, soll man das andere nicht nutzen können." :gruebel: :nixweiss:
jaenicke - Fr 14.11.14 00:15
Was ist denn der Hintergrund? Geht es um ein bestimmtes Programm, das nicht parallel genutzt werden soll?
jfheins - Fr 14.11.14 00:19
Du könntest auf beiden PC eine Anwedung starten und jeweils GetLastInputInfo() abrufen.
Sobald sich der Wert verringert, wurde an dem PC etwas gemacht. Dann ein Signal zu dem anderen PC schicken und den sperren.
Ist der Wert wieder über einem bestimmten Schwellwert, ´kann der andere PC wieder aktiviert werden.
LuMa86 - Fr 14.11.14 00:22
Schau dir doch mal die UDP Komponenten von Delphi an, oder das schöne Netzwerk Tut von Narses. Dann erfasst du, ob an einem Rechner gearde gearbeitet wird und übermittelst dem anderen eine Nachricht, der meldet sich dann ab oder zeigt eine "Sperrform".
Nersgatt - Fr 14.11.14 08:38
Ich würde sowas wie einen Token machen. Nur wer das Token "in Besitz" hat, darf arbeiten.
Wenn jemand an PC A arbeiten möchte, guckt A nach, ob er das Token besitzt. Wenn ja, ist alles in Ordnung. Wenn nein, fragt er B nach dem Token. Wenn B grade arbeitet, rückt er das Token nicht raus. Wenn B grade nicht arbeitet, gibt er das Token frei und übergibt es an A. Nun darf A arbeiten. Wenn an A nicht mehr gearbeitet wird, wird das Token freigegeben, aber noch im eigenen Besitz gehalten. Wenn A nun weiter arbeiten möchte, sperrt er das Token wieder. Wenn B arbeiten möchte, übergibt A das Token an B.
Aber mich würde wirklich der Hintergrund der Frage interessieren. Mich dünkt, man kann das auch ganz anders (besser) lösen.
jasocul - Fr 14.11.14 09:02
madstudent hat folgendes geschrieben : |
Wenn an dem einen PC gearbeitet wird, soll der andere blockiert werden. |
Narses hat folgendes geschrieben : |
Schalte nur einen PC ein. |
madstudent hat folgendes geschrieben : |
Das ist leider keine Option. Es ist zwingend notwendig, dass beide PCs laufen. |
Ich denke, dass hier ein paar mehr Infos notwendig sind.
Was heißt "an einem PC wird gearbeitet"? Geht es um bestimmte Anwendungen oder grundsätzliches Arbeiten an dem PC?
Soll das eine Einzellösung werden oder kann das in verschiedenen Installationen vorkommen?
Warum müssen beide PCs laufen, wenn sowieso nur an einem gearbeitet werden kann? Rennt da einer ständig hin und her, um mal hier und mal dort zu arbeiten?
Falls es nur um eine spezielle Anwendung geht:
Einer meiner Vorgänger bei meiner jetzigen Arbeitsstelle hat es sich einfach gemacht. Er lässt von der Anwendung eine Datei erzeugen (fester Speicherort im Netzwerk), die nach Beendigung wieder gelöscht wird. In der Datei steht der Anmeldename und die IP des Rechners drin, der die Anwendung gestartet hat. Solange diese Datei existiert, beendet sich die Anwendung bei einem weiteren Start-Versuch gleich wieder. Dadurch sind Doppel-Aufrufe und Aufrufe von anderen PCs nicht möglich.
madstudent - Fr 14.11.14 09:27
Okay ich sehe ein, ich habe zu wenig Daten geliefert. :) Also folgendes: Die PCs laufen auf einer Anlage und dienen der Visualisierung und Dateneingabe. Beide Rechner werden synchron gehalten. Der Kunde, anscheinend ein bisschen paranoid, möchte verhindern, dass zeitgleich Eingaben an den PCs gemacht werden. Deshalb möchte er vermutlich den PC sperren lassen. Die PCs sind über einen Hub miteinander und einer SPS verbunden. Es gibt also keinen Server den man als Zentrale nutzen könnte. Es kann durchaus sein, dass die PCs räumlich voneinander getrennt sind (ein PC an der Anlage und der zweite in einem Büro).
Vielen Dank für die Antworten bisher.
Nersgatt - Fr 14.11.14 09:35
Visualisierung auf 2 Geräte ist ja in der Regel unkritisch.
Bei der Dateneingabe wird es dann interessant. Darf/soll das Programm für die Dateneingabe gleichzeitig auf beiden PCs geöffnet sein und nur die Bedienung gesperrt? Oder darf das Programm nur 1x gestartet sein?
Hast Du Zugriff auf den Quellcode des Programms, oder muss das eine Lösung "von außen" sein?
madstudent - Fr 14.11.14 13:53
Also die HMI läuft die ganze Zeit auf beiden PCs. Das darf auch nicht geändert werden. Zugriff habe ich da schon. Ich hatte auch die Idee das über die Zugriffsrechte zu lösen. Leider geht das nicht so einfach. Eine Lösung "von außen" wäre mir lieber.
Lemmy - Fr 14.11.14 20:48
madstudent hat folgendes geschrieben : |
Die PCs sind über einen Hub miteinander und einer SPS verbunden. |
d.h. die können sich gegenseitig anpingen? dann schick doch per TCP einfache Textnachrichten wenn einer der Rechner in den Editmode geht / in verlässt...
icho2099 - So 16.11.14 12:29
Wenn du eh mit der SPS "sprichst", dann kannst du ja die SPS als Server betrachten und dort in einer Variablen vermerken wer gerade Daten ändern darf. Deine n Visualisierungen müssen sich dann nur diese Variable holen und danach richten. Vielleicht hilft das.
madstudent - Do 20.11.14 21:10
icho2099 hat folgendes geschrieben : |
Wenn du eh mit der SPS "sprichst", dann kannst du ja die SPS als Server betrachten und dort in einer Variablen vermerken wer gerade Daten ändern darf. Deine n Visualisierungen müssen sich dann nur diese Variable holen und danach richten. Vielleicht hilft das. |
Genauso werde ich das wohl machen. Ich hatte zwar gehofft eine Delphi-Lösung zu implemmentieren, aber letztlich zählt das Ergebnis und der Aufwand. :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!