Fehlermedlung bei neuer AGLink-dll 452

ToSchum

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,
ich habe ein Problem mit der neuen dll Version 452. Wir benutzen c# 2010 64 bit und ich habe schon alles versucht deise Fehler zu eliminieren.
Warnung 1 "Accon.AGLink.AGL4.GetParas<S>(int, int, ref S)" ist veraltet: "@"This Method will be removed in one of the next AGLink-Versions. Please use ""GetParas(Int32 DevNr, Int32 ParaType, ref Object Para)"" instead."" E:\Projekte\SPS_Kommunikation\SPS_Kommunikation\SPSDB.cs 310 21 SPS_Kommunikation
Wie kann ich das vermeiden????

Ausserdem hätte ich da noch einen Verbesserungsvorschlag. Mit dem AGLink Konfig kann man sehr schön Verbindungen zur SPS aufbauen. Aber wenn man in einer xml Datei mehrere Device verwalten will,
wäre ein Kommentarfeld sehr schön, damit man vermerken, welche SPS das ist. Diese Feld sollte man dann auch per SPS und XML auslesen können. Somit ist die Verwechslungsgefahr geringer.

Mfg ToSchu
 
Antwort zu ertem Punkt kommt nachher.

Zum zweiten Punkt: In einer XML-Datei immer nur ein Device, allerdings enthält diese alle Kommunikationswege für das Device.Desweiteren gehe ich davon aus, dass über S7-TCP/IP kommuniziert wird. Hier kann auch statt einer IP-Adresse ein Namen eingegeben werden. Als Abhilfe also der SPS im Netzwerk einen Namen geben, über den sie erreichbar ist, dann ist die Verwechslungsgefahr auf jeden Fall geringer. Die SPS kann übrigens nie auf diese XML-Datei zugreifen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da ich mich erst schlau machen musste, jetzt noch die Antwort auf die erste Frage:

Bitte die Methode AGL4.GetParas(int, int, ref object) benutzen, da die Methode AGL4.GetParas<S>(int, int, ref S) nicht empfohlen wird. Im Normalfall reicht es einfach die Generik "<S>" vom Aufruf zu entfernen.
Falls es nicht das Problem ist, bitte die Codezeilen posten, die die Meldung auslösen.
 
Snippet

Ich benutze folgenden Code:
Code:
                    Int32 paratype = AGL4.TYPE_S7_TCPIP;
                    AGL4.S7tcpip para = new AGL4.S7tcpip();
                    AGL4.GetParas(_DevNr, paratype, ref para);

Da gibt es kein generic <S>
 
Antwort vom .net-Spezialisten:

das ist ein bisschen blöd, der Compiler denkt irgendwie immer, dass die obsolete Methode genutzt werden soll...
Erst wenn man explizit den Datentyp auf "object" setzt ist er glücklich. Also aus

Code:
      Int32 paratype = AGL4.TYPE_S7_TCPIP;
-->   AGL4.S7tcpip para = new AGL4.S7tcpip();
      AGL4.GetParas(_DevNr, paratype, ref para);

wird

Code:
      Int32 paratype = AGL4.TYPE_S7_TCPIP;
-->   object para = new AGL4.S7tcpip();
      AGL4.GetParas(_DevNr, paratype, ref para);
 
Zurück
Oben