Technical Forum

CNC Automatisierungssystem SINUMERIK

an 840D PLC Daten auslesen

Thread Starter: D_Lar   Started: 3/14/2011 11:13 AM   Replies: 3

« Previous thread Next thread »
Page 1 of 1 (4 items)
  3/14/2011, 11:13 AM
Joined 3/14/2011
Last visit: 4/5/2011
Posts: 8
Rating:
Rated: Excellent [5 out of 5 / rated 2 time(s)]. (2) 
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
Hallo,

hab mal ne Frage: Ich möchte an der 840D PLC Daten auslesen um sie in einer exe Datei anzuzeigen (C++).
Wie kann ich das am besten machen? Rnf:lblSmileyTooltip_  think Hat von euch jemand schon Erfahrung damit?
Top
  3/14/2011, 12:11 PM
Joined 11/2/2005
Last visit: 1/23/2013
Posts: 76
Rating:
Rated: Outstanding [3.89 out of 5 / rated 9 time(s)]. (9) 
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
Moin,

ich wuerde es via dde probieren, eine Anleitung mit Excel findest du hier:

http://www.automation.siemens.com/WW/forum/guests/PostShow.aspx?PageIndex=1&PostID=250137&Language=de&onlyInternet=False#top

Problem wäre, das ein HMI Advanced oder das Inbetriebnahmetool laufen müssten.

Sonst wuerde mir spontan noch der OPC Server einfallen welcher beim HMI mit läuft.

MfgRnf:lblSmileyTooltip_  think 
Top
  3/14/2011, 12:25 PM
Joined 7/22/2008
Last visit: 5/24/2013
Posts: 1213
Rating:
Rated: Outstanding [3.94 out of 5 / rated 126 time(s)]. (126) 
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
Hallo,

über den DDE Server mit den erwähnten Voraussetzungen kann man auch direkt über C auf Maschinendaten zugreifen. Evtl. gibt es auch Lösungen um direket auf die PLC zuzugreifen. Soll nur gelesen werden oder auch geschrieben?

MfG, Servicetechniker

P.S.:
Mit Excel habe ich es schon auf einer PCU 50 getestet und mein Kollege hat auch schon Maschinendaten mittels C ausgelesen. Sollte also generell klappen.
Top
  3/15/2011, 12:00 PM
Joined 3/14/2011
Last visit: 4/5/2011
Posts: 8
Rating:
Rated: Excellent [5 out of 5 / rated 2 time(s)]. (2) 
Rated: no ratings [0 out of 5 / rated 0 time(s)]. (0) 
Hallo,

danke für eure Antworten. Ich habe mir auch überlegt, es mit DDE zu versuchen. Wenn ich eine HIM Advanced habe müsste der ncdde-Server ja laufen, oder?
Am besten wäre es, auf die PLC Daten zuzugreifen, also lesen und schreiben.

Folgenden Beispielcode hab ich in einer Doku gefunden:


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


Das war das einzige, was ich für C++ gefunden hab, da das meiste für Visual Basic geschrieben ist.
Geht das wirklich so einfach? Oder muss ich noch weitere Sachen bedenken, um an die PLC Variablen zu kommen? Habe gerade keinen Überblick.
Top
Page 1 of 1 (4 items)
Actions