# Deltalogic AG-LINK vs. C#



## Matze001 (18 November 2015)

Hallo Zusammen,

ich spiele gerade ein wenig mit C# und wollte mich daher mal der 1200er auf meinem Schreibtisch zuwenden.
Da ich AG-LINK bereits in den Fingern hatte (aber damals mit Silverlight) wollte ich mir das mal mit C# anschauen.

Alles kein Thema, AG-Link geladen, Dokus gelesen, Demo Projekte geladen. 
Nen haufen Fehler nach dem migrieren nach VS 15 -> Referenz zum Wrapper hergestellt und das meißte war ok.
Leider habe ich das Problem, dass in den Beispielen auf die "Variable" AGL Zugegriffen wird (AGL.LIzenzieren, etc).
Diese wird aber nirgends im Projekt (egal in welchem Beispiel) deklariert. Wirklich schlau bin ich aus den Dokus auch nicht
geworden, wie genau das jetzt aussehen sollte.

Wenn mir also jemand einen Tipp hätte, wäre ich sehr dankbar!

Und wenn ich grad nen Beitrag offen habe, gleich noch Fragen hintendran bzw. vorneweg (aus sicht des Projektes).

1. Zugriff auf die 1200er sollte gehen - mit Silverlight ging es vor 100 Jahren mal. GGf. nicht optimierte DBs, aber damit kann ich leben. Geht es ggf. auch Symbolisch?
2. Wie sieht es mit dem Lesen/Schreiben von Strings aus? Muss ich Bytes lesen und diese dann wandeln oder gibt es da was fertiges?



Grüße

Marcel


----------



## DELTALOGIC Support (19 November 2015)

Hallo Marcel,

 "AGL" ist die statische Klasse in der alle Methoden von ACCON-AGLink  definiert sind. Um Methoden von AGL nutzen zu können muss in den  Projektreferenzen die Assembly "AGL4DotNET.4.dll" eingebunden werden.  Projekt->Add Reference->Browse.
 Dann den AGLink Namespace mit

 using Accon.AGLink; 

 angegeben. Sollte "AGL" nicht mehr als Fehler markiert sein kann man  Funktionen wie  AGL4.Activate() aufrufen.

 S7-Strings: Zuerst die Daten als Bytes lesen mit AGL4.ReadDataBytes(). Dann  die Bytes in Text umwandeln mit AGL4.S7String2String(). Schreiben entsprechen  andersherum.

 Alle API Funktionen werden auch in dem mitgelieferten Programm  "ACCON-AGLink API Guide" erklärt.

 Wegen symbolischen Zugriff auf optimierte und nicht optimierte DBs  bitte per Mail an DELTALOGIC wenden:  support@deltalogic.de


----------



## Matze001 (19 November 2015)

Hallo,

vielen dank für die Rückmeldung! Hab es heute Morgen hinbekommen, aber vergessen hier ein Update zu veröffentlichen!
Der Fehler lag daran, dass das Beispiel die "alte" Wrapper.dll nutzte, und ich die neue (4) eingebunden hatte. 

Nun funktioniert alles einwandfrei!

Grüße

Marcel

P.S: Das mit dem String habe ich mir _fast_ so gedacht. Werde es mal testen und ggf. nachfragen.


----------



## Matze001 (19 November 2015)

So weiter gehts.

Ich habe eine Verbindung, kann die MLFB auslesen und anzeigen. Wie bereits erwähnt eine S7-1200er. (ggf. wäre zu erwähnen, eine 1200F)
Der nachfolgend verwendete DB ist NICHT Optimiert eingestellt, und es sind ein paar Bytes vorhanden.

Wenn ich nun ein Byte auslesen will, versuche ich es wie folgt:


```
result = AGL4.ReadDataBytes(0,100,0,1, bytearray, 1000)
```

Kurze Erklärung:

0 = conn -> funktioniert mal bei der MLFB
100 = DB100
0 = Start Byte 0
1 = Anzahl 1 Byte lesen
bytearray -> mein Rückgabearray
1000 - Timeout

Was passiert? Es erscheint folgende Fehlermeldung:


```
Unbekannte Fehlermeldung von AG (Bitte melden!)
```

Das gleiche passiert auch bei ReadFlagBytes. Bisher liefert nur ReadMLFBNr ein SUCCESS zurück.

Muss ich ggf. noch etwas einstellen an der 1200er? Bei Schutz stehe ich auf Vollzugriff inkl. Fail-Safe.

Ich probiere es Morgen mal mit einer nicht F-Steuerung.

Grüße

Marcel


----------



## Thomas_v2.1 (19 November 2015)

Was ist denn mit dem optimierten Zugriff, funktioniert das nicht?
Hier wird damit geworben:
http://www.deltalogic.de/accon-aglink/aglink-siemens-tia-portal


----------



## Jochen Kühner (19 November 2015)

Thomas_v2.1 schrieb:


> Was ist denn mit dem optimierten Zugriff, funktioniert das nicht?
> Hier wird damit geworben:
> http://www.deltalogic.de/accon-aglink/aglink-siemens-tia-portal



Soll soweit Ich weiß in V5 drin sein, aber auf der Homepage gibts nur 4.7 zum Download!


----------



## Jochen Kühner (19 November 2015)

Siehe hier: http://www.wito-ag.ch/news-detail/News_AGLink50_81.html


----------



## Rainer Hönle (20 November 2015)

@Matze001: Bei ConnNr *MUSS* der Wert von PLCConnect verwendet werden. In Deiner Version muss Put/Get in der Hardwarekonfig der SPS aktiviert werden.


----------

