
- •Funktionale Sezifikation Schnittstelle für den direkten Aufruf von Funktionen in externen Treibermodulen aus der SoftPlc-Runtime
- •Windows nt
- •1.Welche Module werden eingehängt ?
- •1.1.Die Anmeldeprozedur der Funtionszeiger.
- •2.Funktionsbeschreibungen
- •2.1.Drv_fct_init
- •2.2.Drv_fct_exit
- •2.4.Drv_fct _get_flags
- •2.5.Drv_fct _get_iorange
- •2.6.Drv_fct_start_configure_ionet
- •2.7.Drv_fct_done_configure_ionet
- •2.8.Drv_fct_configure_module
- •2.9.Drv_fct _configure_device
- •2.10.Drv_fct _start_write_outputs
- •2.11.Drv_fct_write_outputs
- •2.12.Drv_fct _done_write_outputs
- •2.13.Start_read_input, read_input, done_read_input
- •2.14.Drv_fct_plc_status_changes
- •2.15.Drv_fct_enter_nmi_routine
- •2.16.Drv_fct_leave_nmi_routine
- •2.17.Drv_fct_start_interrupt
- •2.18.Drv_fct_stop_interrupt
- •2.19.Drv_fct_retain_save
- •2.20.Drv_fct_retain_restore
- •2.21.Drv_fct_cyclic_call
- •2.22.Drv_get_extreftable
- •2.23.Drv_fct_busdiag_getbusstate
- •2.24.Drv_fct_precompute_service
- •2.25.Drv_fct_postcompute_service
- •2.26.Drv_fct_srv_browsercmd
- •2.27.Drv_fct_add_browserhelp
- •2.28.Drv_fct_cst_processhook
- •2.29.Drv_fct_gettargetids
- •3.1.Die Übergabe der Funktionszeiger
- •3.2.Übersicht über die api-Funktionen
- •3.13.Api_fct_delete_task
- •3.14.Api_fct_wait_for_object
- •3.15.Api_fct_set_object
- •3.16.Api_fct_sleep
- •3.17.Api_fct_resume
- •3.18.Api_fct_suspend
- •3.19.Api_fct_openfile
- •3.20.Api_fct_closefile
- •3.21.Api_fct_readfile
- •3.22.Api_fct_writefile
- •3.23.Api_fct_prgreset
- •3.24.Api_fct_datamanipulation
- •3.25.Api_fct_getprojectinfo
- •4.Anhang
3.20.Api_fct_closefile
Schließt eine Datei. Diese Funktion ist asynchron, siehe API_FCT_OPENFILE.
Die synchrone Version heißt IODrvSynchFileClose.
Prototyp:
typedef int (*PFASYNCHFILECLOSE)(void* pHandle);
Der Rückgabewert ist wie genauso definiert wie bei OPENFILE.
pHandle identifiziert die zu schließende Datei.
3.21.Api_fct_readfile
Ließt aus einer Datei. Diese Funktion ist asynchron, siehe API_FCT_OPENFILE.
Die synchrone Version heißt IODrvSynchFileRead.
Prototyp:
typedef int (*PFASYNCHFILEREAD)(void* pHandle, char* pBuffer, unsigned long ulSize);
pHandle identifiziert die Datei, aus der gelesen werden soll.
pBuffer ist ein Zeiger auf den Datenpuffer, in den die Funktion schreibt.
ulSize gibt die Anzahl Bytes an, die von der Funktion aus der Datei nach pBuffer gelesen werden.
3.22.Api_fct_writefile
Schreibt in eine Datei. Diese Funktion ist asynchron, siehe API_FCT_OPENFILE.
Die synchrone Version heißt IODrvSynchFileWrite.
Prototyp:
typedef int (*PFASYNCHFILEWRITE)(void* pHandle, char* pBuffer, unsigned long ulSize);
pHandle identifiziert die Datei, aus der gelesen werden soll.
pBuffer ist ein Zeiger auf den Datenpuffer, aus dem die Funktion ließt.
ulSize gibt die Anzahl Bytes an, die von der Funktion aus dem Puffer gelesen und in die Datei geschrieben werden.
3.23.Api_fct_prgreset
Ein RESET kann auf der Steuerung ausgeführt werden, je nach vorgegebenem Resetmode.
Prototyp:
typedef void (*PFRTSPROGRAMRESET)(unsigned char byResetMode);
Diese Funktion darf nur ausgeführt werden, wenn der IRQL von NT <= DISPATCH_LEVEL, also ausschließlich im Kontext eines DeviceIOControl-Aufrufs an den IOTreiber oder beim Starten/Beenden des IOTreibers.
3.24.Api_fct_datamanipulation
Diese Funktion kann benutzt werden, um z.B. dem Kernel mitzuteilen, daß er die Retainvariablen löschen soll, oder seinen InitCode auszuführen. Die Art der Manipulation, die durchzuführen ist, muß vom IOTreiber in ulMode übergeben werden, passend dazu eine Zusatzinformation in ulPar.
Prototyp:
typedef unsigned long (*PFDATAMANIPULATION)(unsigned long ulMode, unsigned long ulPar);
Die Funktion sollte nur auf Anfrage benutzt werden. Der derzeitige Kernel unterstützt nur den Aufruf, macht aber noch nichts.
3.25.Api_fct_getprojectinfo
Die Function liefert einen Pointer auf die ProjektInfo-Struktur (siehe IODrvInterface.h) der PLC.
Prototyp:
typedef ProjectInfo* (*PFRTSGETPROJECTINFO)(void);
4.Anhang
Alle Definitionen im Überblick (aus: IodrvInterface.h):
3S – Smart Software Solutions