# Sleep on Lan



## Matze001 (19 Februar 2011)

Der Titel gibt mein Anliegen eigentlich schon wieder.
Ich möchte ein Sleep on Lan realisieren.

Gibt es dort schon fertige Lösungen oder muss ich mir selbst Gedanken machen.

Müsste ich mir selbst Gedanken machen würde ich ein Wake on Lan Signal missbrauchen und modifizieren.

bei WoL sendet man ja an einen IP-Broadcast z.B. 192.168.1.255
6 mal FF und 10 mal die Mac-Adresse des Ziel-PCs.

Mein Ansatz wäre jetzt nur 5 mal die Mac zu senden, und 5 mal einen "code" um die PCs zu unterscheiden.

Oder hat jmd. eine andere schlaue Idee?

Die Pakete zu senden ist kein Problem, das passiert von einer SPS aus, Wake on Lan geht schon ohne zu Murren.

Für Sleep on Lan brauche ich aber eine Gegenstelle am PC, und da hört mein Latein leider schon auf 

Ich freue mich auf Ideen und Anregungen!

Grüße

Marcel


----------



## thomass5 (19 Februar 2011)

Welches BS läuft denn auf dem Zielrechner?

Thomas


----------



## thomass5 (19 Februar 2011)

... bei W gibts shutdown und damit kann man graphisch oder Kommandozeile Rechner remote herunterfahren.

meinen FREENAS Dateiserver fahre ich mit plink in einer Batchdatei herunter

```
plink 192.168.1.2 -P 22 -l Benutzer -pw Passwort  shutdown -p now
```

Thomas


----------



## Matze001 (19 Februar 2011)

Entschuldigt!

OS ist Windoof Server 2003. Das ich dann ne Batch mit Shutdown ausführe habe ich mir auch schon gedacht, aber nun muss ich erstmal auf das UDP-Paket sniffen, und da seh ich den größten Knackpunkt.

Grüße

Marcel


----------



## Question_mark (19 Februar 2011)

*Sleep on lan*

Hallo,

vielleicht hilft das hier :

http://www.ireksoftware.com/SleepOnLan/

Ich selbst habe es noch nicht ausprobiert, daher von mir keine Wertung über das Tool.

Gruß

Question_mark


----------



## thomass5 (19 Februar 2011)

Matze001 schrieb:


> Entschuldigt!
> 
> OS ist Windoof Server 2003. Das ich dann ne Batch mit Shutdown ausführe habe ich mir auch schon gedacht, aber nun muss ich erstmal auf das UDP-Paket sniffen, und da seh ich den größten Knackpunkt.
> 
> ...



das shutdown kannst du doch direkt in der bat einbauen siehe schalter /?
Thomas


----------



## Matze001 (19 Februar 2011)

Danke! Sehr hilfreich!

Ich werde es mal Testen wenn ich wieder in der Heimat bin!
Klingt aber auf jeden Fall sehr vielversprechend!

Grüße

Marcel


----------



## Matze001 (19 Februar 2011)

thomass5 schrieb:


> das shutdown kannst du doch direkt in der bat einbauen siehe schalter /?
> Thomas




Das ist nicht das Problem, das Problem ist das ich diese Batch starten muss, oder die Batch immer läuft und auf Anweisung wartet... da fehlt mir einfach der Ansatz!

Grüße

Marcel

P.S: Sorry 4 Doppelpost


----------



## Thomas_v2.1 (19 Februar 2011)

Wie wäre es, beim Win2003 Server Telnet zu aktivieren, sich dann von der SPS aus per Telnet einzuloggen und dann ein shutdown auszuführen?
Telnet ist ein relativ einfaches Protokoll, daher sollte man das in der SPS noch unterbringen können. Das sollte man natürlich nur aktivieren wenn man sich in einem halbwegs sicheren Netzwerk befindet.

Alternativ könnte das Herunterfahren auch vom Server ausgelöst werden. Z.B. indem er sich per kleines über den Taskplaner augeführtes Skript minütlich in die SPS einloggt und einen Wert im Datenbaustein abfragt. Steht dort ein entsprechender Wert wird heruntergefahren.


----------



## thomass5 (19 Februar 2011)

Matze001 schrieb:


> Das ist nicht das Problem, das Problem ist das ich diese Batch starten muss, oder die Batch immer läuft und auf Anweisung wartet... da fehlt mir einfach der Ansatz!
> 
> Grüße
> 
> ...


 klar musst du die batch starten. Auf deinem lokalen Rechner, von dem aus du den anderen herunterfahren möchtest.
Thomas

PS wer lesen kann... hab vollkommen überlesen von SPS aus.

Thomas


----------



## Matze001 (19 Februar 2011)

thomass5 schrieb:


> klar musst du die batch starten. Auf deinem lokalen Rechner, von dem aus du den anderen herunterfahren möchtest.
> Thomas
> 
> PS wer lesen kann... hab vollkommen überlesen von SPS aus.
> ...




@ Thomas: Ich habe mich gerade schon gewundert  Aber nun ist ja alles klar

@ Thomas: Den Server auf die SPS schauen zu lassen ist ne geile Idee, 
das ist so einfach das ich nicht drauf gekommen bin. Die SPS kann in
XML-Dateien schrieben, bzw. mit http://IP_DER_SPS/READPI=BLABLABLA
lassen sich auch Variablen auslesen. Den Ansatz werde ich mal verfolgen!

Grüße und danke für die super Hilfe!

Marcel

P.S: Wer noch mehr Ideen hat, immer her damit!


----------



## thomass5 (19 Februar 2011)

Eine Alternative, um einen Rechner "geordnet auszubekommen" wäre ihm wenn er eine Ser. SS hat eine USV an selbiger vorzugaukeln welche Netzausfall signalisiert. Im Netz gibt es dazu diverse einfache Anleitungen(z.B. http://www.helmut.hullen.de/filebox/Technik/usv-klug.html) welche nur 1DO benötigen würden.
Das ist zwar nicht über Lan, aber für manch anderen Zweck sicher ausreichend.

Thomas


----------



## Matze001 (19 Februar 2011)

Ist nur über 600km und VPN etwas schwierig 

Aber woher sollst du es auch wissen!

Trotzdem kann es für andere interessant sein. Danke!

Grüße

Marcel


----------



## Matze001 (19 Februar 2011)

Bluesky (welcher neben mir saß) hat sich dazu überreden lassen ein
Programm in C# anzufangen mit dem das zu realisieren ist.

Funktionsumfang wird sein:

Auf der CPU liegt eine XML Datei welche wie folgt aufgebaut ist:


```
<shutdown.xml>

<pc1><!--Readpi--></pc1>
<pc2><!--Readpi--></pc2>
<pcn><!--Readpi--></pcn>

</shutdown>
```

Readpi (hier abgekürzt) füllt dann den Wert der Variablen zwischen die Tags, welche von dem Programm ausgewertet werden.

Es wird zyklisch geschaut ob der PC herruntergefahren werden soll, 
wenn das Ereignis eintritt wird die Shutdown.exe ausgeführt.

Mit dem gleichen zyklischen Trigger wird mittels writepi eine Variable in
der SPS auf true gesetzt. Eine Art Lebensbit des PCs. So kann bei Wake on Lan kontrolliert werden ob der PC nach einer Zeit X hochfährt, und dies ggf. wieder angestoßen werden muss, und bei Sleep on Lan ob der PC wirklich herruntergefahren ist.

Wenn das alles soweit funktioniert und getestet ist stelle ich hier die XML, das C# Programm sowie einen FB online!

Grüße

Marcel


----------



## Jochen Kühner (19 Februar 2011)

Hab da mal geschwind eine Beispiel App dazu gemacht welche du nützen könntest. (Warn ja nur 20 Zeilen Code...)

Wenn man die Exe mit "/config" aufruft, kann man die Verbindung konfigurieren.

Den Befehl welcher ausgeführt werden soll, und das Datenbit welches überprüft wird kann man in dem Config File festlegen.

Wenn man das Programm nun alle Minute mit dem taskplaner aufrufen würde, könnte man damit den PC runterfahren.

Quellcode dazu gibt's in meine SiemenPLCToolBoxLib
(http://siemensplctoolboxlib.codeplex.com/)


----------

