an 840D PLC Daten auslesen für C++ Programm

D_Lar

Level-1
Beiträge
16
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

hab mal ne Frage: Ich möchte an der 840D PLC Daten auslesen um in einer exe Datei auf darau zuzugreifen (C++). Es soll eine Anzeige der Variablen werden.
Wie kann ich das am besten machen? Hat von euch jemand schon Erfahrung damit?
 
Hallo,

hab mal ne Frage: Ich möchte an der 840D PLC Daten auslesen um in einer exe Datei auf darau zuzugreifen (C++). Es soll eine Anzeige der Variablen werden.
Wie kann ich das am besten machen? Hat von euch jemand schon Erfahrung damit?

Ja, habe ich.
Was willst du auslesen?
Auf der 840d läuft ein ncdde Server.
Da kannst du über DDE sehr komfortabel darauf zugreifen.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo bike,

danke für deine schnelle Antwort. Ich möchte eine GUI als Visualisierung erstellen. Dabei möchte ich auf folgende Daten zugreifen:

- interne Antriebsgrößen z.B. Drehmoment
- PLC Daten: Werte aus einem Datenbaustein auslesen / evtl schreiben

Geht das über den ncdde Server?
 
Zuletzt bearbeitet:
Geht auch mit ACCON-AGLink z. B. über TCP/IP (sl), NetLink (pl) oder die eingebaute Karte der PCU (pl).

ja, stimmt, aber ich möchte wirklich nur eine simple Visuallisierung machen. Eine Antriebsvariable und vielleicht 3-5 PLC Variablen, dass wäre alles was ich anzeigen will. Wie ich es sehe, würde ich nur einen absolut kleinen Teil dieser Biblioteken benutzen.
Eine andere Lösung wäre mir lieber ;)
 
Hallo,

ich habe mir auch überlegt, es mit DDE zu versuchen. Wenn ich eine HIM Advanced habe müsste der ncdde-Server ja laufen, oder?

Folgenden Beispielcode hab ich in einer Doku gefunden (für C++):


DWORD idInst; // erzeugt mit DdeInitialize
HSZ hszService, hszTopic, hszItem; // String Handles
HCONV hConv; // Conversation Handle

hszService = DdeCreateStringHandle ( idInst , ”ncdde” , NULL );
hszTopic = DdeCreateStringHandle ( idInst , ”NCU840D” , NULL );
hszItem = DdeCreateStringHandle ( idInst ,
Ä”/Channel/GeometricAxis/toolBaseDistToGo[1]” , NULL );

hConv = DdeConnect(idInst,hszService,hszTopic,NULL);
// Verbindungsaufbau zum Server
// Hotlink folgt
if ( DdeClientTransaction ( (LPBYTE)NULL , 0 , hConv , hszItem,
ÄCF_TEXT ,XTYP_ADVSTART|XTYP_ACKREQ , 1000 , NULL )
Ä==TRUE) { } // Hotlink Aufbau erfolgreich



Ist das der richtige Weg? Oder verbergen sich dahinter noch ungeahnte Schwierigkeiten, um an die PLC Variablen zu kommen? Oder würdet ihr einen ganz anderen Weg nehmen?
Ich hab zwar schon viel in C++ Programmiert, aber das ist für mich doch etwas Neuland.
 
Zurück
Oben