PLCSIM COM-Object

towsim

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Ich arbeite seit längerem mit einer älteren PLCSIM Version und habe eine Verbindung über ein COM Object aufgebaut. Es funktioniert alles ganz prächtig bis auf eine Kleinigkeit, die ich wohl nicht richtig verstehe.
Der Pointer auf die Schnittstelle wird über den ProSimWrapper mit *GetPtr() geholt. Der Pointer is vom Typ IS7ProSim und bietet die gesamte Palette für Zugriffe auf das IO memory und die Datenblöcke.
Es existiert ein zweiter Pointer vom typ IS7ProSimEvents der mit *GetEventPtr() geholt werden kann. Leider enthält der Rückgabewert immer NULL. Damit bleibt mir der Gebrauch der eventgesteuerten Funktionen verwehrt. Laut der dünnbrüstigen Beschreibung sollen Ereignis-Handler programmiert werden für alle 5 möglichen Ereignisse. Leider habe ich keine Ahnung wie ich die Ereignis-Handler mit der Klasse IS7ProSimEvents verbinden kann damit sie dem COM object als Callback zur Verfügung stehen. Meine Applikation ist in C++ geschrieben und meine Kenntnisse in .NET, C# und BASIC sind ein wenig rachitisch. Ich bin für jede Hilfe dankbar.
MfG
Friedhelm Michel
 
Hallo,

ist ja schon Weile her, aber hast du ein Lösung für dein Problem, würde mich interesieren. Vesuche auch gerade eine DLL in C++ zu schreiben mit der ich auf die Schnittstelle der PLCSIM zugreifen kann.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ist ja schon Weile her, aber hast du ein Lösung für dein Problem, würde mich interesieren. Vesuche auch gerade eine DLL in C++ zu schreiben mit der ich auf die Schnittstelle der PLCSIM zugreifen kann.

Hallo Erwin,
ich habe ein kleines Testprogramm in VC++6 welches die ProSim-Schnittstelle erfolgreich nutzt.
Es geht auch nur mit einem Microsoft Compiler, da es dort einen Wizard gibt der einem automatisch diverse Wrapper-Funktionen erstellt.

Die einzelnen Schritte kann ich leider nicht mehr nachvollziehen. Ich habe nur einen kleinen Test gemacht um zu prüfen, ob die C++ Schnittstelle im Vergleich zum Auslesen über eine .Net Anwendung einen Geschwindigkeitsunterschied hat. Ergebnis: beide gleich schnell.

Ich kann dir aber die Projekte zuschicken.
 
Events

Hallo,
leider habe ich keine Lösung gefunden. Als Ausweg frage ich alle wichtigen Variable in einem Loop ab. Sobald ich eine Änderung erkenne, veranlasse ich eine entsprechende Aktion. Der Nachteil ist, dass die Schnittstelle überproportional belasted ist und dadurch manchmal Eingaben über die Bedienoberfläche verloren gehen.

Friedhelm Michel
 
Zurück
Oben