Deltalogic AG-LINK vs. C#

Matze001

Level-3
Beiträge
2.813
Reaktionspunkte
572
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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.
 
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:

Code:
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:

Code:
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
 
Zurück
Oben