INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

prodave dll in lv aufrufen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

08.03.2013, 11:10
Beitrag #1

vanbasten Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Mar 2013

11
-
DE



prodave dll in lv aufrufen
Hallo,
ich habe erfolgreich mittels Prodave eine Verbindung zu einer SoftPLC (ACCONtrol S7) aufgebaut. In C++ sieht der Code folgendermassen aus:
Code:
//load connection (automatically sets as active)
    int loadConRV = 0; //return value
    unsigned short conNr = 0; //ID
    char* accessPoint = "S7ONLINE"; //default, as opposed to MPI
    CON_TABLE_TYPE conTable[MAX_CONNECTION+1]; //CON_TABLE_TYPE conTable; works as well to simplify LV access
    CON_TABLE_TYPE* pConTable = &conTable[conNr]; //&conTable; works as well to simplify LV access
    unsigned short conTableLen = sizeof(CON_TABLE_TYPE);
    pConTable[conNr].Adr.Ip[0] = 127; //IP irrelevant for softplc
    pConTable[conNr].Adr.Ip[1] = 0;
    pConTable[conNr].Adr.Ip[2] = 0;
    pConTable[conNr].Adr.Ip[3] = 1;
    pConTable[conNr].AdrType = 2; //IP
    pConTable[conNr].SlotNr = 2;
    pConTable[conNr].RackNr = 0;
    loadConRV = LoadConnection_ex6(conNr, accessPoint, conTableLen, pConTable);
    printf("LoadConnection() return value: %x\n", loadConRV);

Nun versuche ich dasselbe mit lv11_img unter WinXP 32-bit. Die Funktion lässt sich nicht importieren, weil unter den Parametern union innerhalb struct vorkommt. Ausschnitt aus dem Prodave-Manual:
Code:
int LoadConnection_ex6 (int ConNr, char* pAccessPoint, int ConTableLen,
CON_TABLE_TYPE * pConTable);
Parameters
ConNr
[in] Number of the connection (max. 64 connections).
pAccessPoint
[in] access point (zero-terminated) of the driver used, e.g. "S7ONLINE" for the MPI
driver or 0 (default).
ConTableLen
[in] length of the connection structure provided by the user in bytes
pConTable
[in] pointer to address structure of the user
#pragma pack(1)
typedef union {
unsigned char Mpi; // MPI/PB station address (2)
unsigned char Ip[4]; // IP address (192.168.0.1)
unsigned char Mac[6]; // MAC address (08-00-06-01-AA-BB)
} CON_ADR_TYPE;
typedef struct {
CON_ADR_TYPE Adr; // connection address
unsigned char AdrType; // Type of address: MPI/PB (1), IP (2), MAC (3)
unsigned char SlotNr; // Slot number
unsigned char RackNr; // Rack number
} CON_TABLE_TYPE;
#pragma pack(1)

Ich habe mir bereits folgende Seite angeschaut. Man soll theoretisch die Parameter eines Structs einzeln nacheinander auflisten. Jedoch mein Code verursacht einen Absturz von LV..

Im Anhang findet ihr das Beispiel. Für jede Hilfe wäre ich dankbar.


Angehängte Datei(en)
11.0 .vi  loadConnection_ex6.vi (Größe: 11,9 KB / Downloads: 278)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Nachrichten in diesem Thema
prodave dll in lv aufrufen - vanbasten - 08.03.2013 11:10
RE: prodave dll in lv aufrufen - rolfk - 08.03.2013, 11:52
RE: prodave dll in lv aufrufen - rolfk - 08.03.2013, 14:00

Gehe zu: