ADS .NET-DLL mit Powershell Nutzen und Variable aus SPS lesen

Hen-ling

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Servus zusammen,

ich möchte gerne über die .Net TwinCAT.Ads.dll Variablen in der SPS lesen und schreiben.

Das ganze möchte ich gerne über ein Powershell Script machen.

Ich kann die dll in Powershell bereits nutzen und ein Variablen Handle erstellen. Beim Lesen und Schreiben hakt es allerdings noch.

Das habe ich bisher:

//Dll einbinden:
[Reflection.Assebly]::LoadFile("Pfad\TwinCat.Ads.dll")

//Verbindungsaufbau:
$client = New-Object TwinCat.Ads.TcAdsClient
$client.connect("amsNetId", port)

//Handle erzeugen
$hvar = $client.CreateVariableHandle("Main.Var1")

Wäre sehr dankbar, wenn mir jemand helfen kann den Befehl zum Lesen/Schreiben richtig aufzubauen.

Danke für jeden Tipp!
 
Wo ist das Problem?
fuer die .Net Varianate gibt doch viele Beispiele im Beckhoff Infosys. Das du die innerhalb von Powershell aufrufst ist unerheblich (marginale Syntaxunterschiede).
Interessant kann es werden wenn der Datentyp in der PLC nicht 1 zu 1 in die Hochsprache umgesetzt werden kann (Thema Marshalling bei Strukturen). Aber bei der Syntax "Main.Var1" daran glaube ich auch erst mal nicht .
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Rückmeldung. Das Problem war der "marginale" Syntaxunterschied zwischen den Infosys Beispielen und Powershell.

So ruft man die Variable ab, wenn das Handle erzeugt wurde:

//Dll einbinden:
[Reflection.Assebly]::LoadFile("Pfad\TwinCat.Ads.dll")

//Verbindungsaufbau:
$client = New-Object TwinCat.Ads.TcAdsClient
$client.connect("amsNetId", port)

//Handle erzeugen
$hvar = $client.CreateVariableHandle("Main.Var1")

//Abruf:
$client.Readany($hvar, [int])

//Schreiben:
$value=5
$client.Writeany($hvar, $value)

Wichtig ist hier dass eine normale Integer in Windows eine Int32 ist und in TwinCat eine Int16.
 
Zurück
Oben