+ All Categories
Home > Documents > Addidata Handbuch

Addidata Handbuch

Date post: 18-Dec-2014
Category:
Upload: rotbarsch
View: 60 times
Download: 2 times
Share this document with a friend
317
Standardsoftware APCI-3xxx (Standard) 9 STANDARDSOFTWARE 9.1 Softwarefunktionen ADDIPACK unterstützt die folgenden Funktionen für die APCI-3xxx Tabelle 9-1: Unterstützte Software-Funktionen Funktionalität Funktionsname b_ADDIDATA_GetNumberOfAnalogInputs b_ADDIDATA_GetNumberOfAnalogInputModules b_ADDIDATA_GetNumberOfAnalogInputsForTheModule Analoge Eingänge (APCI-3016, b_ADDIDATA_GetAnalogInputModuleNumber APCI-3116) b_ADDIDATA_GetAnalogInputModuleGeneralInformation Ausgabe: - Auflösung: 16-Bit - Unipolar / bipolar konfigurierbar - verfügbare Konvertierungszeit: μs, ms - Konvertierungsauflösung: 16-Bit - Min. Konvertierungszeit: 5 μs b_ADDIDATA_GetAnalogInputModuleSingleAcquisitionInforma tion Ausgabe: - Interrupt vorhanden - Vorhandene Gains: 1, 2, 5, 10 - Hardware-/Softwaretrigger vorhanden - Kein Hardwaregate - Zugriffs-Mode: 32-Bit b_ADDIDATA_GetAnalogInputModuleAutoRefreshInformation Ausgabe: - Interrupt nicht vorhanden - Vorhandene Gains: 1, 2, 5, 10 - Hardware-/Softwaretrigger vorhanden - Kein Hardwaregate - Zugriffs-Mode: 32-Bit 54
Transcript
Page 1: Addidata Handbuch

Standardsoftware APCI-3xxx (Standard)

9 STANDARDSOFTWARE

9.1 Softwarefunktionen

ADDIPACK unterstützt die folgenden Funktionen für die APCI-3xxx

Tabelle 9-1: Unterstützte Software-Funktionen

Funktionalität Funktionsname

b_ADDIDATA_GetNumberOfAnalogInputs

b_ADDIDATA_GetNumberOfAnalogInputModules

b_ADDIDATA_GetNumberOfAnalogInputsForTheModule

Analoge

Eingänge

(APCI-3016, b_ADDIDATA_GetAnalogInputModuleNumber APCI-3116)

b_ADDIDATA_GetAnalogInputModuleGeneralInformation Ausgabe: - Auflösung: 16-Bit - Unipolar / bipolar konfigurierbar - verfügbare Konvertierungszeit: µs, ms - Konvertierungsauflösung: 16-Bit - Min. Konvertierungszeit: 5 µs

b_ADDIDATA_GetAnalogInputModuleSingleAcquisitionInformation Ausgabe: - Interrupt vorhanden

- Vorhandene Gains: 1, 2, 5, 10 - Hardware-/Softwaretrigger vorhanden - Kein Hardwaregate - Zugriffs-Mode: 32-Bit

b_ADDIDATA_GetAnalogInputModuleAutoRefreshInformation Ausgabe: - Interrupt nicht vorhanden

- Vorhandene Gains: 1, 2, 5, 10 - Hardware-/Softwaretrigger vorhanden - Kein Hardwaregate - Zugriffs-Mode: 32-Bit

54

Page 2: Addidata Handbuch

APCI-3xxx (Standard) Standardsoftware

Funktionalität Funktionsname

b_ADDIDATA_GetAnalogInputModuleSCANInformation - Ausgabe:

- Vorhandene Gains: 1, 2, 5, 10 - Hardware-/Softwaretrigger vorhanden - Kein Hardwaregate - EinzelSCAN Zyklus-Mode vorhanden - xSCAN Zyklus-Mode vorhanden - Kontinuierlicher SCAN Zyklus-Mode vorhanden - Verzögerung vorhanden - Vorhandenes Verzögerungstiming: μs, ms - Auflösung Verzögerungszeit: 16-Bit

b_ADDIDATA_GetAnalogInputModuleSequenceInformation - Ausgabe:

- Vorhandene Gains: 1, 2, 5, 10 - Hardware-/Softwaretrigger vorhanden - Kein Hardwaregate - Einzelzyklus-Mode vorhanden - xZyklus-Mode vorhanden - Kontinuierlicher Sequenz-Zyklus-Mode vorhanden - Verzögerung möglich - Vorhandenes Verzögerungstiming: μs, ms - Auflösung Verzögerungszeit: 16-Bit

b_ADDIDATA_InitAnalogInput Vorhandene Parameter: - Gain: 1, 2, 5, 10 - Polarität: Unipolar/bipolar - Offset-Bereich:Nicht verwendet - Coupling: DC

b_ADDIDATA_ReleaseAnalogInput

b_ADDIDATA_Read1AnalogInput Vohandene Parameter: - Interrupt: Aktiv/inaktiv - Einheit Konvertierungszeit: µs/ms - Konvertierungszeit: 5 bis 65535 bei µs 1 bis 65535 bei ms

b_ADDIDATA_ConvertDigitalToRealAnalogValue

b_ADDIDATA_ConvertMoreDigitalToRealAnalogValues

b_ADDIDATA_GetAutoRefreshAcquisitionChannelPointer

b_ADDIDATA_GetAutoRefreshAcquisitionModulePointer

55

Page 3: Addidata Handbuch

Standardsoftware APCI-3xxx (Standard)

Funktionalität Funktionsname

b_ADDIDATA_GetAnalogInputAutoRefreshModuleCounterPointer

b_ADDIDATA_StartAutoRefreshAcquisition Vorhandene Parameter: - Einheit Konvertierungszeit: µs/ms - Konvertierungszeit: 5 bis 65535 bei µs 1 bis 65535 bei ms

b_ADDIDATA_StopAutoRefreshAcquisition

b_ADDIDATA_InitAnalogInputSCANAcquisition Vorhandene Parameter: - Einheit Konvertierungszeit:µs/ms - Konvertierungszeit: 5 bis 65535 bei µs 1 bis 65535 bei ms - Scan-Mode: Einzel/X Zyklus/ kontinuierlich - Verzögerungs-Mode: Nicht verwendet/Mode1/Mode2 - Verzögerungs-Timing: µs/ms

b_ADDIDATA_StartAnalogInputSCAN

b_ADDIDATA_GetAnalogInputSCANStatus

b_ADDIDATA_ConvertDigitalToRealAnalogValueSCAN

b_ADDIDATA_StopAnalogInputSCAN

b_ADDIDATA_CloseAnalogInputSCAN

b_ADDIDATA_InitAnalogInputSequenceAcquisition Vorhandene Parameter: - Einheit Konvertierungszeit:µs/ms - Konvertierungszeit: 5 bis 65535 bei µs 1 bis 65535 bei ms - Mode: X Zyklus/kontinuierlich - Verzögerungs-Mode: Nicht verwendet/Mode1/Mode2 - Verzögerungs-Timing: µs/ms

b_ADDIDATA_StartAnalogInputSequenceAcquisition

b_ADDIDATA_ConvertDigitalToRealAnalogValueSequenceAcquisition

b_ADDIDATA_GetSequenceAcquisitionCounter

b_ADDIDATA_StopAnalogInputSequenceAcquisition

b_ADDIDATA_ReleaseAnalogInputSequenceAcquisition

b_ADDIDATA_GetAnalogInputHardwareTriggerInformation Rückgabe: - High-/Low-Level auswählbar - Kann verwendet werden für Autorefresh, SCAN, Sequenz, Einzelkonvertierung

56

Page 4: Addidata Handbuch

APCI-3xxx (Standard) Standardsoftware

Funktionalität Funktionsname - Max Triggerzähler ist 65535 (16-Bit) - One shot Trigger-Mode vorhanden - Einzelzyklus-Trigger-Mode vorhanden - X Zyklus Trigger-Mode vorhanden

b_ADDIDATA_EnableDisableAnalogInputHardwareTrigger Parameter: - Level: High/Low - Aktion: Autorefresh/SCAN/Sequenz, Einzelkonvertierung One shot Einzelzyklus x Zyklus

b_ADDIDATA_GetAnalogInputHardwareTriggerStatus

b_ADDIDATA_GetAnalogInputSoftwareTriggerInformation Rückgabe: - Kann für Autorefresh, SCAN, Sequenz, Einzelkonvertierung verwendet werden - One shot Trigger-Mode vorhanden - Einzelzyklus-Trigger-Mode vorhanden - X Zyklus Trigger-Mode vorhanden

b_ADDIDATA_EnableDisableAnalogInputSoftwareTrigger Vorhandene Parameter: - Aktion: Autorefresh/SCAN/Sequenz One shot Einzelzyklus x Zyklen

b_ADDIDATA_GetAnalogInputSoftwareTriggerStatus

b_ADDIDATA_GetNumberOfAnalogInputs

b_ADDIDATA_GetNumberOfAnalogInputModules

b_ADDIDATA_GetNumberOfAnalogInputsForTheModule

Analoge

Eingänge

(APCI-3010,

APCI-3110) b_ADDIDATA_GetAnalogInputModuleNumber

b_ADDIDATA_GetAnalogInputModuleGeneralInformation Rückgabe:

-Auflösung: 12-Bit - Unipolar/bipolar konfigurierbar - Verfügbares Konvertierungstiming: µs, ms - Konvertierungsauflösung: 16-Bit - Min. Konvertierungszeit 5µs

57

Page 5: Addidata Handbuch

Standardsoftware APCI-3xxx (Standard)

Funktionalität Funktionsname

b_ADDIDATA_GetAnalogInputModuleSingleAcquisitionInformation Return: - Interrupt vorhanden - Vorhandene Gains: 1, 2, 5, 10 - Kein Hardware/Software-Trigger - Kein Hardwaregate

b_ADDIDATA_GetAnalogInputModuleAutoRefreshInformation Return: - Interrupt nicht vorhanden - Vorhandene Gains: 1, 2, 5, 10 - Hardware-/Softwaretrigger vorhanden - Kein Hardwaregate - Zugriffs-Mode: 32-Bit

b_ADDIDATA_GetAnalogInputModuleSCANInformation Rückgabe: - Vorhandene Gains: 1, 2, 5, 10 - Hardware-/Softwaretrigger vorhanden - Kein Hardwaregate - Einzel SCAN Zyklus-Mode vorhanden -X SCAN Zyklus-Mode vorhanden - Kontinuierlicher SCAN Zyklus-Mode vorhanden - Verzögerung vorhanden - Vorhandenes Verzögerungstiming: µs, ms - Auflösung Verzögerungszeit: 16-Bit

b_ADDIDATA_GetAnalogInputModuleSequenceInformation Rückgabe: - Vorhandene Gains: 1, 2, 5, 10 - Hardware-/Softwaretrigger vorhanden - Kein Hardwaregate - Einzelsequenz-Mode vorhanden - X Sequenz-Mode vorhanden - Kontinuierlicher Sequenz-Mode vorhanden - Vorhandene Verzögerung - Vorhandenes Verzögerungstiming: µs, ms - Auflösung Verzögerungszeit: 16-Bit

b_ADDIDATA_InitAnalogInput Vorhande Parameter: - Gain: 1, 2, 5, 10 - Polarität: Unipolar/Bipolar - Offset-Beeich: Nicht verwendet - Coupling DC

b_ADDIDATA_ReleaseAnalogInput

58

Page 6: Addidata Handbuch

APCI-3xxx (Standard) Standardsoftware

Funktionalität Funktionsname

b_ADDIDATA_Read1AnalogInput Vorhandene Parameter: - Interrupt: Akiviert/deaktiviert - Einheit Konvertierungszeit: µs/ms - Konvertierungszeit: 5 bis 65535 bei µs 1 bis 65535 bei ms

b_ADDIDATA_ReadMoreAnalogInputs Vorhandene Parameter: - Interrupt: Aktiviert/deaktiviert - Einheit Konvertierungszeit: µs/ms - Konvertierungszeit: 5 bis 65535 bei µs 1 bis 65535 bei ms

b_ADDIDATA_ConvertDigitalToRealAnalogValue

b_ADDIDATA_ConvertMoreDigitalToRealAnalogValues

b_ADDIDATA_GetAutoRefreshAcquisitionChannelPointer

b_ADDIDATA_GetAutoRefreshAcquisitionModulePointer

b_ADDIDATA_GetAnalogInputAutoRefreshModuleCounterPointer

b_ADDIDATA_StartAutoRefreshAcquisition Vorhandene Parameter: - Einheit Konvertierungszeit: µs/ms - Konvertierungszeit: 5 bis 65535 bei µs 1 bis 65535 bei ms

b_ADDIDATA_StopAutoRefreshAcquisition

b_ADDIDATA_InitAnalogInputSCANAcquisition Vorhandene Parameter: - Einheit Konvertierungszeit:µs/ms - Konvertierungszeit: 5 bis 65535 bei µs 1 bis 65535 bei ms - Mode: Einzel/X Zyklus/ kontinuierlich - Verzögerungs-Mode: Nicht verwendet/Mode1/Mode2 - Verzögerungstiming: µs/ms

b_ADDIDATA_StartAnalogInputSCAN

b_ADDIDATA_GetAnalogInputSCANStatus

b_ADDIDATA_ConvertDigitalToRealAnalogValueSCAN

b_ADDIDATA_StopAnalogInputSCAN

b_ADDIDATA_CloseAnalogInputSCAN

59

Page 7: Addidata Handbuch

Standardsoftware APCI-3xxx (Standard)

Funktionalität Funktionsname

b_ADDIDATA_InitAnalogInputSequenceAcquisition Vorhandene Parameter: - Einheit Konvertierungszeit: µs/ms - Konvertierungszeit; 5 bis 65535 bei µs 1 bis 65535 bei ms - Scan-Mode: X Zyklus/ kontinuierlich - Verzögerungs-Mode: Nicht verwendet/Mode1/Mode2 - Verzögerungstiming: µs/ms

b_ADDIDATA_StartAnalogInputSequenceAcquisition

b_ADDIDATA_ConvertDigitalToRealAnalogValueSequenceAcquisition

b_ADDIDATA_GetSequenceAcquisitionCounter

b_ADDIDATA_StopAnalogInputSequenceAcquisition

b_ADDIDATA_ReleaseAnalogInputSequenceAcquisition

b_ADDIDATA_GetAnalogInputHardwareTriggerInformation Rückgabe: - High-/Low-Level auswählbar - Kann für Autorefresh, SCAN und Sequenz verwendet werden - Max. Triggerzähler ist 65535 (16-Bit) - One shot Trigger-Mode vorhanden - Einzelzyklustrigger-Mode vorhanden - X-Zyklustrigger-Mode vorhanden.

b_ADDIDATA_EnableDisableAnalogInputHardwareTrigger Vorhandene Parameter: - Level: High/Low - Aktion: Autorefresh/SCAN/Sequenz One shot Einzelzyklus x Zyklen

b_ADDIDATA_GetAnalogInputHardwareTriggerStatus

b_ADDIDATA_GetAnalogInputSoftwareTriggerInformation Rückgabe: - Kann verwendet werden für Autorefresh, SCAN, Sequenz - One shot Trigger-Mode vorhanden - Einzelzyklustrigger-Mode vorhanden - X Zyklen Trigger-Mode vorhanden

60

Page 8: Addidata Handbuch

APCI-3xxx (Standard) Standardsoftware

Funktionalität Funktionsname

Vorhandene Parameter: - Aktion: Autorefresh/SCAN/Sequenz One shot Einzelzyklus x-Zyklen

b_ADDIDATA_GetAnalogInputSoftwareTriggerStatus

Analoge b_ADDIDATA_GetNumberOfAnalogOutputs

Ausgänge (APCI-3110, APCI-3116)

Rückgabe: - Vorhandene Spannungs-Modes: 2 - Mode 0: Bipolar (12-Bit) - Mode 1: Unipolar (11-Bit) - Keine Synchronisierung vorhanden

b_ADDIDATA_Init1AnalogOutput Vorhandene Parameter: - Vorhandene Spannungs-Modes : 2 - Mode 0: Bipolar (12-Bit) - Mode 1: Unipolar (11-Bit) - Keine Synchronisierung vorhanden

b_ADDIDATA_InitMoreAnalogOutputs Vorhandene Parameter: - Vorhandene Spannungs-Modes: 2 - Mode 0: Bipolar (12-Bit) - Mode 1: Unipolar (11-Bit) - Keine Synchronisierung vorhanden

b_ADDIDATA_Write1AnalogOutput

b_ADDIDATA_WriteMoreAnalogOutputs

b_ADDIDATA_Release1AnalogOutput

b_ADDIDATA_ReleaseMoreAnalogOutputs

b_ADDIDATA_GetAnalogOutputInformation() Synchronisierung für den analogen Ausgang vorhanden = Nein

Anzahl der vorhandenen Spannungsmodes = 2 Information Spannungsmode 0: Auflösung = 12-Bit Max. Ausgangswert = 10 V Auswahl der Polarität über Hardware = Nein Auswahl der Polarität über Software = Ja Unipolar konfigurierbar = Nein Bipolar konfigurierbar = Ja Information Spannungsmode 1: Auflösung = 11-Bit

61

Page 9: Addidata Handbuch

Standardsoftware APCI-3xxx (Standard)

Funktionalität Funktionsname Max. Ausgangswert = 10 V Auswahl der Polarität über Hardware = Nein Auswahl der Polarität via Software = Ja Unipolar konfigurierbar = Ja Bipolar konfigurierbar = Nein

24 V Ausgänge b_ADDIDATA_GetNumberOfDigitalOutputs

(APCI-3010, APCI-3016, APCI-3110, APCI-3116)

b_ADDIDATA_GetDigitalOutputInformation Rückgabe: Ausgangstyp : 24 V Kein Interrupt vorhanden

b_ADDIDATA_SetDigitalOutputMemoryOn

b_ADDIDATA_SetDigitalOutputMemoryOff

b_ADDIDATA_Set1DigitalOutputOn

b_ADDIDATA_Set1DigitalOutputOff

b_ADDIDATA_Set2DigitalOutputOn

b_ADDIDATA_Set2DigitalOutputOff

b_ADDIDATA_Set4DigitalOutputOn

b_ADDIDATA_Set4DigitalOutputOff

b_ADDIDATA_Set8DigitalOutputOn

b_ADDIDATA_Set8DigitalOutputOff

b_ADDIDATA_Set16DigitalOutputOn

b_ADDIDATA_Set16DigitalOutputOff

b_ADDIDATA_Set32DigitalOutputOn

b_ADDIDATA_Set32DigitalOutputOff

b_ADDIDATA_Get1DigitalOutputStatus

b_ADDIDATA_Get2DigitalOutputStatus

b_ADDIDATA_Get4DigitalOutputStatus

b_ADDIDATA_Set8DigitalOutputsOff

b_ADDIDATA_Set16DigitalOutputsOn

b_ADDIDATA_Set16DigitalOutputsOff

b_ADDIDATA_Set32DigitalOutputsOn

b_ADDIDATA_Set32DigitalOutputsOff

b_ADDIDATA_Get1DigitalOutputStatus

b_ADDIDATA_Get2DigitalOutputStatus

62

Page 10: Addidata Handbuch

APCI-3xxx (Standard) Standardsoftware

Funktionalität Funktionsname

b_ADDIDATA_Get4DigitalOutputStatus

TTL- b_ADDIDATA_GetNumberOfDigitalOutputs

b_ADDIDATA_GetDigitalOutputInformation Return: Ausgangstyp: TTL Kein Interrupt vorhanden

b_ADDIDATA_SetDigitalOutputMemoryOn

Ausgänge (APCI-3110, APCI-3116,

APCI-3010,

APCI-3016) b_ADDIDATA_SetDigitalOutputMemoryOff

b_ADDIDATA_Set1DigitalOutputOn

b_ADDIDATA_Set1DigitalOutputOff

b_ADDIDATA_Set2DigitalOutputOn

b_ADDIDATA_Set2DigitalOutputOff

b_ADDIDATA_Set4DigitalOutputOn

b_ADDIDATA_Set4DigitalOutputOff

b_ADDIDATA_Set8DigitalOutputOn

b_ADDIDATA_Set8DigitalOutputOff

b_ADDIDATA_Set16DigitalOutputOn

b_ADDIDATA_Set16DigitalOutputOff

b_ADDIDATA_Set32DigitalOutputOn

b_ADDIDATA_Set32DigitalOutputOff

b_ADDIDATA_Get1DigitalOutputStatus

b_ADDIDATA_Get2DigitalOutputStatus

b_ADDIDATA_Get4DigitalOutputStatus

24 V-Eingänge b_ADDIDATA_GetNumberOfDigitalInputs

(APCI-3010, APCI-3016, APCI-3110, APCI-3116)

b_ADDIDATA_GetDigitalInputInformationEx Rückgabe: Eingangstyp : 24 V Kein Interrupt vorhanden

b_ADDIDATA_Read1DigitalInput

b_ADDIDATA_Read2DigitalInputs

b_ADDIDATA_Read4DigitalInputs

b_ADDIDATA_Read8DigitalInputs

b_ADDIDATA_Read16DigitalInputs

b_ADDIDATA_Read32DigitalInputs

63

Page 11: Addidata Handbuch

Standardsoftware APCI-3xxx (Standard)

Funktionalität Funktionsname

TTL-Eingänge b_ADDIDATA_GetNumberOfDigitalInputs

(APCI-3010, APCI-3016, APCI-3110, APCI-3116)

b_ADDIDATA_GetDigitalInputInformationEx Rückgabe: Eingangstyp : TTL Kein Interrupt vorhanden

b_ADDIDATA_Read1DigitalInput

b_ADDIDATA_Read2DigitalInputs

b_ADDIDATA_Read4DigitalInputs

b_ADDIDATA_Read8DigitalInputs

b_ADDIDATA_Read16DigitalInputs

b_ADDIDATA_Read32DigitalInputs

Timer b_ADDIDATA_GetNumberOfTimers

(APCI-3010, APCI-3016, APCI-3110, APCI-3116)

b_ADDIDATA_GetTimerInformationEx Rückgabe: Interrupt vorhanden: 16-Bit Zeiteinehit vorhanden: µs, ms, s Ausgang vorhanden: High/Low Vorhandene Modes: 2 and 3

b_ADDIDATA_InitTimer Vorhandene Parameter: Interrupt: Aktiviert oder deaktiviert Auflösung: 16-Bit Zeiteinheit: µs oder ms oder s Modes: 2 oder 3

b_ADDIDATA_EnableDisableTimerInterrupt

b_ADDIDATA_StartTimer

b_ADDIDATA_StartAllTimers

b_ADDIDATA_TriggerTimer

b_ADDIDATA_TriggerAllTimers

b_ADDIDATA_StopTimer

b_ADDIDATA_StopAllTimers

b_ADDIDATA_ReleaseTimer

b_ADDIDATA_ReadTimerValue

b_ADDIDATA_ReadTimerStatus

64

Page 12: Addidata Handbuch

APCI-3xxx (Standard) Standardsoftware

Funktionalität Funktionsname

b_ADDIDATA_EnableDisableTimerOutput Vorhandene Parameter: Aktion: Low oder High

b_ADDIDATA_GetTimerHardwareOutputStatus

b_ADDIDATA_ReleaseTimer

b_ADDIDATA_TestTimerAsynchronousFIFOFull

Zähler b_ADDIDATA_GetNumberOfCounters

(APCI-3010, APCI-3016, APCI-3110, APCI-3116)

b_ADDIDATA_GetCounterInformationEx Rückgabe: Interrupt vorhanden Auflösung: 16-Bit Ausgang vorhanden: High/Low Vorhandener Zähler-Mode: Up/Down Vorhandene Einganglevels: High/Low

b_ADDIDATA_InitCounter Vorhandene Parameter: Auflösung: 16-Bit Einganglevels: High/Low

b_ADDIDATA_SetCounterDirection Vorhandene Parameter: Zähler-Mode: Up/Down

b_ADDIDATA_EnableDisableCounterInterrupt

b_ADDIDATA_StartCounter

b_ADDIDATA_StartAllCounters

b_ADDIDATA_ClearCounter

b_ADDIDATA_TriggerCounter

b_ADDIDATA_TriggerAllCounters

b_ADDIDATA_StopCounter

b_ADDIDATA_StopAllCounters

b_ADDIDATA_ReleaseCounter

b_ADDIDATA_ReadCounterValue

b_ADDIDATA_ReadCounterStatus

Vorhandene Parameter: Vorhandene Einganglevels: High/Low

b_ADDIDATA_GetCounterHardwareOutputStatus

b_ADDIDATA_TestCounterAsynchronousFIFOFull

65

Page 13: Addidata Handbuch

Standardsoftware APCI-3xxx (Standard)

Funktionalität Funktionsname

Watchdog b_ADDIDATA_GetNumberOfWatchdogs

(APCI-3110, APCI-3116)

b_ADDIDATA_GetWatchdogInformationEx Rückgabe: Interrupt vorhanden Auflösung: 16-Bit Ausgang vorhanden: High/Low Vorhandene Zeiteinheit: µs, ms, s

b_ADDIDATA_InitWatchdog Vorhandene Parameter: Auflösung: 16-Bit Zeiteinheit: µs, ms, s

b_ADDIDATA_EnableDisableWatchdogInterrupt

b_ADDIDATA_StartWatchdog

b_ADDIDATA_StartAllWatchdogs

b_ADDIDATA_TriggerWatchdog

b_ADDIDATA_TriggerAllWatchdogs

b_ADDIDATA_StopWatchdog

b_ADDIDATA_StopAllWatchdogs

b_ADDIDATA_ReleaseWatchdog

b_ADDIDATA_ReadWatchdogStatus

b_ADDIDATA_EnableDisableWatchdogOutput Vorhandene Parameter: Vorhandene Einganglevels: High/Low

b_ADDIDATA_GetWatchdogHardwareOutputStatus

b_ADDIDATA_TestWatchdogAsynchronousFIFOFull

66

Page 14: Addidata Handbuch

APCI-3xxx (Standard) Standardsoftware

9.2 Softwarebeispiele

Tabelle 9-2: Unterstützte Softwarebeispiele für die APCI-3xxx

Funktionalität Nummer des Beispieles

Beschreibung

Analoge SAMPLE00 Zeigt 1 analoge Eingangsinformation

Eingänge SAMPLE01 Liest 1 analogen Eingangskanal ohne Interrupt. Der Benutzer gibt an, welchen Kanal er verwenden möchte.

SAMPLE02 Liest 1 analogen Eingangskanal mit Interrupt. Der Benutzer gibt an, welchen Kanal er verwenden möchte. Der Benutzer gibt den Interrupt-Mode an (synchron, asynchron)

SAMPLE03 Liest mehrere analoge Eingangskanäle ohne Interrupt.

SAMPLE04 Liest mehrere analoge Eingangskanäle mit Interrupt. Der Benutzer gibt den Interrupt-Mode an (synchron, asynchron)

SAMPLE05 Testet die Sequenzerfassung mit Interrupt. Der Benutzer gibt an, welchen Kanal er verwenden möchte. Der Benutzer gibt den Interrrupt-Mode an (synchron, asynchron) Der Benutzer gibt, falls vorhanden, den externen Trigger- und Gate-Mode an. Der Benutzer gibt an, ob er eine Verzögerung verwenden möchte und gibt ihre Zeit ein.

SAMPLE06 Testet die Autorefresh Sequenzerfassung. Der Benutzer gibt an, welchen Kanal er verwenden möchte. Der Benutzer gibt, falls vorhanden, den externen Trigger- und Gate-Mode an.

SAMPLE07 Initialisiert den SCAN mit Interrupt. Der Benutzer gibt, falls vorhanden, den externen Trigger- und Gate-Mode an. Der Benutzer gibt an, ob er die Verzögerung verwenden möchte und gibt ihre Zeit ein. Der Benutzer gibt den Interrupt-Mode (synchron, asynchron) an.

Digitale Eingänge

SAMPLE00 Bekommt die Informationen des ausgewählten digitalen Eingangkanals

SAMPLE01 Liest 1 digitalen Eingang

67

Page 15: Addidata Handbuch

Standardsoftware APCI-3xxx (Standard)

Funktionalität Nummer des Beispieles

Beschreibung

SAMPLE02 Liest 2 digitale Eingänge

SAMPLE03 Liest 4 digitale Eingänge

SAMPLE04 Liest 8 digitale Eingänge

SAMPLE05 Liest 16 digitale Eingänge

SAMPLE06 Liest 32 digitale Eingänge

Digitale SAMPLE01 Testet 1 digitalen Ausgang mit oder ohne Ausgangsspeicheroption: Gibt, falls möglich, den Status des digitalen Ausgangs an.

Ausgänge

SAMPLE02 Testet 2 digitale Ausgänge mit oder ohne Ausgangsspeicheroption. Gibt, falls möglich, den Status der digitalen Ausgänge an.

SAMPLE03 Testet 4 digitale Ausgänge mit oder ohne Ausgangsspeicheroption. Gibt, falls möglich, den Status der digitalen Ausgänge an.

SAMPLE04 Testet 8 digitale Ausgänge mit oder ohne Ausgangsspeicheroption. Gibt, falls möglich, den Status der digitalen Ausgänge an.

SAMPLE05 Testet 16 digitale Ausgänge mit oder ohne Ausgangsspeicheroption. Gibt, falls möglich, den Status des digitalen Ausgänge an.

SAMPLE06 Testet 32 digitale Ausgänge mit oder ohne Ausgangsspeicheroption. Gibt, falls möglich, den Status des digitalen Ausgänge an.

Timer SAMPLE00 Zeigt alle Timerinformationen

SAMPLE01 Initialisierung von 1 Timer ohne Interrupt. Der Benutzer kann den Timer durch Tastendruck triggern. Der Benutzer wählt den Timer aus, den er verwenden möchte. Der Benutzer gibt an, ob der HW-Gate, der HW-Trigger und der HW-Ausgang verwendet werden.

SAMPLE02 Initialisierung von 1 Timer mit Interrupt. Der Benutzer kann den Timer durch Tastendruck triggern. Der Benutzer gibt den Timer an, den er verwenden möchte. Der Benutzer gibt an, ob der HW-Gate, der HW-Trigger und der HW-Ausgang verwendet werden. Der Benutzer gibt den Interrupt-Mode an (asynchron/synchron).

68

Page 16: Addidata Handbuch

APCI-3xxx (Standard) Standardsoftware

Funktionalität Nummer des Beispieles

Beschreibung

SAMPLE03 Initialisierung von allen Timern ohne Interrupt. Der Benutzer kann den Timer durch Tastendruck triggern. Der Benutzer wählt den Timer aus, den er verwenden möchte.Der Benutzer gibt an, ob der HW-Gate, der HW-Trigger und der HW-Ausgang verwendet werden

SAMPLE04 Initialisierung von allen Timern mit Interrupt. Der Benutzer kann den Timer durch Tastendruck triggern Der Benutzer gibt an, ob der HW-Gate, der HW-Trigger und der HW-Ausgang verwendet werden Der Benutzer gibt den Interrupt.Mode (asynchron/synchron) an.

Zähler SAMPLE00 Zeigt alle Zählerinformationen

SAMPLE01 Initialisierung von 1 Zähler ohne Interrupt. Der Benutzer kann den Zähler durch Tastendruck triggern. Der Benutzer gibt an, welchen Zähler er testen möchte. Der Benutzer gibt an, ob der HW-Gate, der HW-Trigger und der HW-Ausgang verwendet werden

SAMPLE02 Initialisierung von 1 Zähler mit Interrupt. Der Benutzer kann den Zähler durch Tastendruck triggern. Der Benutzer gibt an, welchen Zähler er testen möchte. Der Benutzer gibt an, ob der HW-Gate, der HW-Trigger und der HW-Ausgang verwendet werden Der Benutzer gibt den Interrupt-Mode an (asynchron/synchron)

SAMPLE03 Initialisierung von allen Zählern ohne Interrupt. Der Benutzer kann den Zähler durch Tastendruck triggern. Der Benutzer gibt an, welchen Zähler er testen möchte. Der Benutzer gibt an, ob der HW-Gate, der HW-Trigger und der HW-Ausgang verwendet werden

SAMPLE04 Initialisierung von allen Zählern mit Interrupt. Der Benutzer kann den Zähler durch Tastendruck triggern. Der Benutzer gibt an, welchen Zähler er testen möchte. Der Benutzer gibt an, ob der HW-Gate, der HW-Trigger und der HW-Ausgang verwendet werden Der Benutzer gibt den Interrupt-Mode (asynchron / synchron) an.

Watchdog SAMPLE00 Zeigt alle Watchdoginformationen

69

Page 17: Addidata Handbuch

Standardsoftware APCI-3xxx (Standard)

Funktionalität Nummer des Beispieles

Beschreibung

SAMPLE01 Initialisierung von 1 Watchdog ohne Interrupt. Der Benutzer kann den Watchdog durch Tastendruck triggern. Der Benutzer wählt den Watchdog aus, den er verwenden möchte. Der Benutzer gibt an, ob der HW-Gate, der HW-Trigger und der HW-Ausgang verwendet werden

SAMPLE02 Initialisierung von 1 Watchdog mit Interrupt. Der Benutzer kann den Watchdog durch Tastendruck triggern. Der Benutzer wählt den Watchdog aus, den er verwenden möchte. Der Benutzer gibt an, ob der HW-Gate, der HW-Trigger und der HW-Ausgang verwendet werden Der Benutzer gibt den Interrupt-Mode (asynchron/synchron) an.

SAMPLE03 Initialisierung von allen Watchdogs ohne Interrupt. Der Benutzer kann den Watchdog durch Tastendruck triggern. Der Benutzer wählt den Watchdog aus, den er testen möchte. Der Benutzer gibt an, ob der HW-Gate, der HW-Trigger und der HW-Ausgang verwendet werden

SAMPLE04 Initialisierung von allen Watchdogs mit Interrupt. Der Benutzer kann den Watchdog durch Tastendruck triggern. Der Benutzer wählt den Watchdog aus, den er testen möchte. Der Benutzer gibt an, ob der HW-Gate, der HW-Trigger und der HW-Ausgang verwendet werden. Der Benutzer gibt den Interrupt-Mode (asynchron/synchron) an.

Analoge Ausgänge

SAMPLE00 Zeigt 1 analoge Ausgangsinformation

SAMPLE01 Schreib 1 analogen Ausgangswert ohne Synchronisierung (Rampengenerierung).

SAMPLE02 Schreibt mehrere analoge Ausgangswerte ohne Synchronisierung (Rampengenerierung).

70

Page 18: Addidata Handbuch

Anschluss an die Peripherie APCI-3xxx (Standard)

7 ANSCHLUSS AN DIE PERIPHERIE

7.1 Steckerbelegung

Abb. 7-1: 37-pol. SUB-D Stiftstecker (Analoge Ein- und Ausgänge)

30

Page 19: Addidata Handbuch

APCI-3xxx (Standard) Anschluss an die Peripherie

Abb. 7-2: 50-pol. Pfostenstecker (TTL E/A und 24 V E/A)

i WICHTIG!

Die Nummerierung des 50-pol. SUB-D Steckers entspricht der üblichen Zählweise wie sie auch beim Stecker für die LP-Montage aufgedruckt ist. Allerdings ist beim Stecker zur Verbindung an ein Flachbandkabel eine andere Zählweise im Stecker eingeprägt (entspricht der Nummerierung des Flachband).

31

Page 20: Addidata Handbuch

Anschluss an die Peripherie APCI-3xxx (Standard)

Tabelle 7-1: Anschluss der digitalen Ein-/Ausgänge (24 V und TTL)

Pinnummer am 50-pol. Pfosten-

steckers

Beschreibung Pinnummer am Frontblech des FB8001

(50-pol. SUB-D Stiftstecker)

1 Ausgangskanal 3 1

2 Eingangskanal 3 (+) 34

3 Eingangskanal 3 (-) 18

4 Ausgangskanal 2 2

5 Eingangskanal 2 (+) 35

6 Eingangskanal 2 (-) 19

7 Ausgangskanal 1 3

8 Eingangskanal 1 (+) 36

9 Eingangskanal 1 (-) 20

10 Ausgangskanal 0 4

11 Eingangskanal 0 (+) 37

12 Eingangskanal 0 (-) 21

13 GND O 5

14 +24 V 38

15 Nicht belegt 22

16 Nicht belegt 6

17 Nicht belegt 39

18 Nicht belegt 23

19 Nicht belegt 7

20 Nicht belegt 40

21 Nicht belegt 24

22 Nicht belegt 8

23 Nicht belegt 41

24 Nicht belegt 25

25 TTL-Kanal GND 9

26 TTL-Kanal GND 42

27 TTL-Kanal 15 26

28 TTL-Kanal 23 10

29 TTL-Kanal 7 43

30 TTL-Kanal 14 27

32

Page 21: Addidata Handbuch

APCI-3xxx (Standard) Anschluss an die Peripherie

Pinnummer am 50-pol. Pfosten-

steckers

Beschreibung Pinnummer am Frontblech des FB8001

(50-pol. SUB-D Stiftstecker)

31 TTL-Kanal 22 11

32 TTL-Kanal 6 44

33 TTL-Kanal 13 28

34 TTL-Kanal 21 12

35 TTL-Kanal 5 45

36 TTL-Kanal 12 29

37 TTL-Kanal 20 13

38 TTL-Kanal 4 46

39 TTL-Kanal 11 30

40 TTL-Kanal 19 14

41 TTL-Kanal 3 47

42 TTL-Kanal 10 31

43 TTL-Kanal 18 15

44 TTL-Kanal 2 48

45 TTL-Kanal 9 32

46 TTL-Kanal 17 16

47 TTL-Kanal 1 49

48 TTL-Kanal 8 33

49 TTL-Kanal 16 17

50 TTL-Kanal 0 50

33

Page 22: Addidata Handbuch

DIN EN ISO 9001:2000 certified

ADDI-DATA GmbHAirpark Business CenterAirport Boulevard B210

77836 RheinmünsterGermany

Phone: +49 7229 1847–0Fax: +49 7229 1847–222

E-mail: [email protected]

Software description

ADDIDRIVER

Common functions

Edition: 08.04 – 08/2010

Page 23: Addidata Handbuch

ADDIDRIVER Table of contents

2

1 INTRODUCTION...................................................................................3

2 SOFTWARE FUNCTIONS........................................................................4

2.1 Common functions ...............................................................................................4 1) i_ADDIDATA_OpenWin32Driver (..) .................................................................................. 4 2) i_ADDIDATA_GetCurrentDriverHandle (..) ........................................................................ 6 3) v_ADDIDATA_GetDriverVersion (..) .................................................................................. 7 4) b_ADDIDATA_GetLocalisation (..)...................................................................................... 8 5) b_ADDIDATA_CloseWin32Driver (..)............................................................................... 11

2.2 Error ....................................................................................................................12 1) i_ADDIDATA_GetLastError (...)........................................................................................ 12 2) i_ADDIDATA_GetLastErrorAndSource (...)...................................................................... 13 3) b_ADDIDATA_EnableErrorMessage (...)........................................................................... 29 4) b_ADDIDATA_DisableErrorMessage (...) ......................................................................... 31 5) b_ADDIDATA_FormatErrorMessage (...) .......................................................................... 33

Tables

Table 1-1: Type Declaration for Windows 98/NT/2000/XP ........................................................3 Table 2-1: Return values for i_ADDIDATA_OpenWin32Driver ....................................................5 Table 2-2: Function number .................................................................................................14 Table 2-3: Error number ........................................................................................................21

Page 24: Addidata Handbuch

Introduction ADDIDRIVER

1 INTRODUCTION

IMPORTANT! Note the following conventions in the text:

Function: "b_ADDIDATA_GetNumberOfAnalogInputs" Variable dw_DriverHandle

Table 1-1: Type Declaration for Windows 98/NT/2000/XP

Borland C Microsoft C Borland Pascal

Microsoft Visual Basic

Windows VOID void void pointer any

BYTE unsigned char unsigned char byte integer

INT int int integer integer

WORD unsigned short int unsigned short int long long

DWORD long long longint long

PBYTE unsigned char * unsigned char * var byte integer

PINT int * int * var integer integer

PWORD unsigned short int * unsigned short int * var long long

PCHAR char * char * var string string

PDWORD long * long * var longint long

DOUBLE double double double double

3

Page 25: Addidata Handbuch

ADDIDRIVER Common functions

4

2 SOFTWARE FUNCTIONS

2.1 Common functions

1) i_ADDIDATA_OpenWin32Driver (..)

Syntax: <Return value> = i_ADDIDATA_OpenWin32Driver (BYTE b_CompilerDefine, PDWORD pdw_DriverHandle)

Parameters: - Input: BYTE b_CompilerDefine The user has to choose the language under Windows in which he wants to program - ADDIDATA_DLL_COMPILER_C = 0: The user programs in C. - ADDIDATA_DLL_COMPILER_ VB = 2: The user programs in Visual Basic for Windows. - ADDIDATA_DLL_COMPILER_VB_5 or ADDIDATA_DLL_COMPILER_VB_6 = 4: The user programs in Visual Basic 5 or 6 for Windows NT or Windows 95. - ADDIDATA_DLL_COMPILER_PASCAL = 1: The user programs in Pascal or Delphi. - ADDIDATA_DLL_LABVIEW = 3: The user programs in Labview. - Output: PDWORD pdw_DriverHandle Returns the driver handle. This parameter is the first to be called up for each function.

Task: This function loads the ADDIDATA driver. All information concerning the ADDI-DATA boards is read. The user choose the language in which he/she wants to program through the parameter b_CompilerDefine.

Calling convention: ANSI C : INT i_ReturnValue; DWORD dw_DriverHandle; i_ReturnValue = i_ADDIDATA_OpenWin32Driver (ADDIDATA_DLL_COMPILER_C, &dw_DriverHandle);

Return value: 0: No error -100….: See Table 2-1

Page 26: Addidata Handbuch

Common functions ADDIDRIVER

5

Table 2-1: Return values for i_ADDIDATA_OpenWin32Driver

Constant Return value Meaning

Common function errors

ADDIDATA_FUNCTIONALITY_NOT_AVAILABLE -100 Functionality not available ADDIDATA_FUNCTIONALITY_NO_RING_0 -101 This function cannot be called up in the synchronous

mode ADDIDATA_SYSTEM_ERROR -102 Cannot detect the 32-bit system ADDIDATA_NO_FREE_DRIVER_HANDLE_FOUND -103 No driver handle available (up to 25 drivers can be used) ADDIDATA_DRIVER_SHARED_MEMORY_ERROR -104 The allocation of the user shared memory is wrong ADDIDATA_DRIVER_OPENING_ERROR -105 The ADDI-DATA sys/vxd driver cannot be loaded ADDIDATA_CURRENT_PROCESS_HDL_NOT_AVAIBLE -106 The current process handle is not available ADDIDATA_GET_SHARED_MEMORY_ERROR -107 Error by allocation of the shared memory ADDIDATA_DRIVER_HANDLE_ERROR -108 Driver handle passed to the function not available ADDIDATA_DRIVER_NOT_OPEN -109 Driver is not open ADDIDATA_ONE_OR_MORE_BOARDS_NOT_FOUND -110 One or more boards not found ADDIDATA_DRIVER_ALREADY_OPEN -111 Driver already open ADDIDATA_REGISTRY_PROBLEM -112 The registry information is not complete ADDIDATA_ADDIDATA_SHARED_PATH_NOT_AVAILABLE -113 The path of the shared files is not available ADDIDATA_TEMPERATURE_CONVERT_FILE_ERROR -114 There is an error in the temperature convert file ADDIDATA_TEMPERATURE_BUFFER_SHARED_MEMORY_ERROR -115 Problem by allocation of the shared memory for the

converting buffer ADDIDATA_COMPILER_DEFINED_ERROR -116 The compiler defined is not available ADDIDATA_MULTIPROCESS_NOT_AVAILABLE_IN_THIS_VERSION -117 Multiprocess operation is not supported by this driver

version. ADDIDATA_READY_BIT_TIMEOUT_OCCUR -118 Timeout occurred while ready bit was waiting. ADDIDATA_ERROR_FILE_NOT_AVAILABLE -119 The error file „error.dat“ and „function.dat“ are not

available in the shared directory. ADDIDATA_ERROR_STRING_TOO_SMALL -120 The error string parameter(s) is or are too small. ADDIDATA_ERROR_STRING_NOT_FOUND -121 Error string not found in the error file. ADDIDATA_REGISTRY_NOT_UPDATED -122 The registry has not been updated. Start ADDIREG to

update it. ADDIDATA_DRIVER_FREE_SHARED_MEMORY_ERROR -123 Error in the free shared memory ADDIDATA_DRIVER_RING_0_PREPARATION_ERROR -124 Error in preparation of ring 0 ADDIDATA_DRIVER_MEMORY_MAP_ERROR -125 Memory mapping error ADDIDATA_REGISTRY_COULD_NOT_BE_TESTED -126 The registry could not be tested ADDIDATA_ADDEVICEMAPPER_ALREADY_STARTED -127 ADDEVICE MAPPER program is already started. ADDIDATA_EXTERN_DRIVER_DLL_LOAD_ERROR -128 External DLL file cannot be loaded ADDIDATA_EXTERN_DRIVER_APCI_1500_DLL_NOT_FOUND -129 External DLL file not found (only for the APCI-1500) ADDIDATA_EXTERN_DRIVER_APCI_1500_DLL_VERSION_ERROR -130 The version of the external DLL file (only for the

APCI-1500) is not correct. ADDIDATA_VIRTUAL_BOARD_FILE_NOT_FOUND -131 File of the virtual board not found ADDIDATA_REALBOARD_XML_FILE_NOT_FOUND -132 Real board XML file not found ADDIDATA_REALBOARD_XML_FILE_BACKUO_ERROR -133 Real board XML file error backup error ADDIDATA_COPY_VIRTUAL_BOARD_FILE_ERROR -134 Virtual board file copy error ADDIDATA_ADDEVICEMAPER_CALL_ERROR -135 ADDevice Mapper call error ADDIDATA_IEEE1394a_WRONG_HANDLE -140 The IEEE-1394a device handle used is wrong. ADDIDATA_IEEE1394a_WRONG_ADRESS -141 The IEEE-1394a device adress used is wrong. ADDIDATA_IEEE1394a_DEVICE_TEMPORARY_NOT_AVAILABLE -142 The IEEE-1394a device is temporary not available. ADDIDATA_IEEE1394a_DEVICE_PERMANENTLY_NOT_AVAILABLE -143 The IEEE-1394a device is permanently not available. ADDIDATA_IEEE1394a_DEVICE_UNKNOWN_ERROR -144 The IEEE-1394a device generate an unknown error. ADDIDATA_ONE_OR_MORE_DEVICE_NOT_READY -145 One or more ADDI-DATA device not ready. ADDIDATA_SOAP_NEW_ERROR -146 Soap new function error ADDIDATA_SOAP_COMMUNICATION_ERROR -147 soap communication error ADDIDATA_SOCKET_WSASTARTUP_ERROR -174 Socket startup error ADDIDATA_SOCKET_GETHOSTBYNAME_ERROR -175 Socket: Get host by name error ADDIDATA_CREATE_SOCKET_ERROR -176 Create socket error ADDIDATA_SOCKET_CONNECTOR_ERROR -177 Socket connect error ADDIDATA_MUTEX_CREATION_ERROR -178 Mutex creation error

Page 27: Addidata Handbuch

ADDIDRIVER Common functions

6

2) i_ADDIDATA_GetCurrentDriverHandle (..)

Syntax: <Return value> = i_ADDIDATA_GetCurrentDriverHandle (PDWORD pdw_DriverHandle) Parameters: - Input: No input parameter has occurred. - Output: PDWORD pdw_DriverHandle Returns the driver handle of the process which calls up the function

Task: Gives the driver handle of the process which calls up the function.

Calling convention: ANSI C : INT i_ReturnValue; DWORD dw_DriverHandle; i_ReturnValue = i_ADDIDATA_GetCurrentDriverHandle (&dw_DriverHandle);

Return value: 0 : No error has occurred. -106 : ADDIDATA_CURRENT_PROCESS_HDL_NOT_AVAIBLE : The current process handle is not available

Page 28: Addidata Handbuch

Common functions ADDIDRIVER

7

3) v_ADDIDATA_GetDriverVersion (..)

Syntax: <Return value> = v_ADDIDATA_GetDriverVersion (PDWORD pdw_DriverVersion) Parameters: - Input: No input signal has occurred. - Output: PDWORD pdw_DriverVersion Returns the driver version in Hex form: 0x09000210 means 0900/0210

Task: This function returns the version of the ADDIDriver.

Calling convention: ANSI C : DWORD dw_DriverVersion; v_ADDIDATA_GetDriverVersion (&dw_DriverVersion);

Return value: No value returned

Page 29: Addidata Handbuch

ADDIDRIVER Common functions

8

4) b_ADDIDATA_GetLocalisation (..)

Syntax: <Return value> = b_ADDIDATA_GetLocalisation (str_RequestInformation s_RequestInformation, DWORD dw_RequestInformationStructSize,

pstr_LocalisationInformation ps_LocalisationInformation, DWORD dw_LocalisationInformationStructSize)

Parameters - Input: str_RequestInformation s_RequestInformation: Structure for requesting the localisation information typedef struct { WORD w_EntityVirtualIndex; // Virtual Index BYTE b_EntityType; // ADDIDATA_LOCALISATION_CHANNEL or ADDIDATA_LOCALISATION_MODULE BYTE b_Reserved1; // Not used WORD w_Functionality; // ADDIDATA_NameOfTheFunctionality BYTE b_Reserved2[2]; // Not used }str_RequestInformation,*pstr_RequestInformation; with ADDIDATA_LOCALISATION_CHANNEL 0 ADDIDATA_LOCALISATION_MODULE 1 and ADDIDATA_DIGITAL_INPUT 0 ADDIDATA_DIGITAL_OUTPUT 1 ADDIDATA_ANALOG_INPUT 2 ADDIDATA_ANALOG_OUTPUT 3 ADDIDATA_TIMER 4 ADDIDATA_WATCHDOG 5 ADDIDATA_TEMPERATURE 6 ADDIDATA_COUNTER 7 ADDIDATA_RESISTANCE 9 ADDIDATA_PRESSURE 11 ADDIDATA_TRANSDUCER 12 DWORD dw_RequestInformationStructSize Size of the structure requesting the localisation information DWORD dw_LocalisationInformationStructSize Size of the structure containing the localisation information

Page 30: Addidata Handbuch

Common functions ADDIDRIVER

9

- Output: pstr_LocalisationInformation ps_LocalisationInformation Structure containing the localisation information typedef struct { WORD w_ChannelRealIndex; // Real index of the channel WORD w_ModuleRealIndex; // Real Index of the module CHAR c_BoardName[MAX_PATH]; // Board name of the device containing the entity DWORD dw_BoardAddress[6]; // Base address of the device containing the entity BYTE b_BoardInterrupt; // Interrupt address of the device containing the entity BYTE b_DeviceNbr; // Device number (BIOS) of the device containing the entity BYTE b_Reserved[2]; // Not used CHAR c_PCISlotNumberInformation[MAX_PATH]; // PCI slot of the device containing the entity

DWORD dw_DeviceSerialNumber; // Serial number of the device containing the entity DWORD dw_Reserved; // Not used }str_LocalisationInformation,*pstr_LocalisationInformation;

Task: Localise the entity (channel or module) of the virtual board in the real hardware configuration. Can be called up by the driver.

Calling convention: ANSI C : INT i_ReturnValue; str_RequestInformation s_RequestInformation; str_LocalisationInformation s_LocalisationInformation; s_RequestInformation.w_EntityVirtualIndex = 0; s_RequestInformation.b_EntityType = ADDIDATA_LOCALISATION_CHANNEL; s_RequestInformation.w_Functionality = ADDIDATA_DIGITAL_INPUT; i_ReturnValue = i_ADDIDATA_GetLocalisation

(s_RequestInformation, sizeof(str_RequestInformation), &s_LocalisationInformation, sizeof(str_LocalisationInformation));

Page 31: Addidata Handbuch

ADDIDRIVER Common functions

10

Return value: 0 : No error ADDIDATA_ENTITY_COULD_NOT_BE_FOUND: The entity content in the request information could not be found. ADDIDATA_ENTITY_TYPE_IS_WRONG : The entity type is wrong. ADDIDATA_ENTITY_FUNCTIONALITY_IS_WRONG : The entity functionality is wrong. ADDIDATA_REQUEST_INFORMATION_STRUCT_SIZE_IS_WRONG : The dw_RequestInformationStructSize is wrong. ADDIDATA_LOCALISATION_INFORMATION_STRUCT_SIZE_IS_WRONG The dw_LocalisationInformationStructSize is wrong. with -1000: ADDIDATA_ENTITY_COULD_NOT_BE_FOUND -1001: ADDIDATA_ENTITY_TYPE_IS_WRONG -1002: ADDIDATA_ENTITY_FUNCTIONALITY_IS_WRONG -1003: ADDIDATA_REQUEST_INFORMATION_STRUCT_SIZE_IS_WRONG -1004: ADDIDATA_LOCALISATION_INFORMATION_STRUCT_SIZE_IS_WRONG

Page 32: Addidata Handbuch

Common functions ADDIDRIVER

11

5) b_ADDIDATA_CloseWin32Driver (..)

IMPORTANT! Call up this function each time you want to quit the user program!

Syntax: <Return value> = b_ADDIDATA_CloseWin32Driver (DWORD dw_DriverHandle)

Parameters - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: No output signal has occurred.

Task: Closes the ADDI-DATA driver and blocks the access to all boards.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_CloseWin32Driver (dw_DriverHandle);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 33: Addidata Handbuch

ADDIDRIVER Common functions

2.2 Error

IMPORTANT! Each function of the ADDIDRIVER returns a value of the type Byte.

When the return value is "False", the user can receive the error source through the functions described below.

1) i_ADDIDATA_GetLastError (...)

Syntax: <Return value> = i_ADDIDATA_GetLastError (DWORD dw_DriverHandle, PWORD pw_FunctionNumber, PINT pi_ErrorCode, PBYTE pb_ErrorLevel)

Parameters: - Input: DWORD dw_DriverHandle Handle of the driver - Output: PWORD pw_FunctionNumber Number of the function on which an error has occurred. See Table 2-2 PINT pi_ErrorCode Error number. See Table 2-3 PBYTE pb_ErrorLevel 0: An error has occurred in the application (ring 3) 1: The function which caused the error has been called up in the user interrupt routine. This parameter has only a meaning for 32-bit operating systems. (ring 0) Task: Transmits the last error message.

Calling convention: ANSI C : WORD w_FunctionNumber; INT i_ErrorCode; INT i_ErrorLevel; INT i_ReturnValue;

i_ReturnValue = i_ADDIDATA_GetLastError (dw_DriverHandle, &w_FunctionNumber, &i_ErrorCode, &b_ErrorLevel); Return value: 0: No error 1: Error message present - 101: Function cannot be called up in the user interrupt routine - 102: Error message not found

12

Page 34: Addidata Handbuch

Common functions ADDIDRIVER

13

2) i_ADDIDATA_GetLastErrorAndSource (...)

Syntax: <Return value> = i_ADDIDATA_GetLastErrorAndSource (DWORD dw_DriverHandle, PWORD pw_FunctionNumber, PINT pi_ErrorCode, PBYTE pb_ErrorLevel, PDWORD pdw_ErrorSource) Parameters: - Input: DWORD dw_DriverHandle Handle of the driver - Output: PWORD pw_FunctionNumber Number of the function on which an error has

occurred. See Table 2-2 PINT pi_ErrorCode Error number. See Table 2-3 PBYTE pb_ErrorLevel 0: An error has occurred in the application (ring 3)

1: The function which caused the error has been called up in the user interrupt routine. This parameter has only a meaning for 32-bit operating systems. (ring 0)

PDWORD pdw_ErrorSource Error source value.

Task: Transmits the last error message.

Calling convention: ANSI C : WORD w_FunctionNumber; INT i_ErrorCode; INT i_ErrorLevel; INT i_ReturnValue; DWORD dw_ErrorSource; i_ReturnValue = i_ADDIDATA_GetLastErrorAndSource (dw_DriverHandle, &w_FunctionNumber, &i_ErrorCode, &i_ErrorLevel, &dw_ErrorSource); Return value: 0: No error 1: Error message present - 101: Function cannot be called up in the user interrupt routine - 102: Error message not found

Page 35: Addidata Handbuch

ADDIDRIVER Common functions

14

Table 2-2: Function number

Constant Return value Function

Common function

ADDIDATA_OPEN_WIN32_DRIVER 10 i_ADDIDATA_OpenWin32Driver ADDIDATA_CLOSE_ WIN32_DRIVER 11 b_ADDIDATA_CloseWin32Driver ADDIDATA_GET_CURRENT_DRIVER_HANDLE 14 i_ADDIDATA_GetCurrentDriverHandle

Interrupt

ADDIDATA_SET_FUNCTIONALITY_INT_ROUTINE 50 b_ADDIDATA_SetFunctionalityIntRoutineWin32 ADDIDATA_TEST_INTERRUPT 51 b_ADDIDATA_TestInterrupt ADDIDATA_RESET_FUNCTIONALITY_INT_ROUTINE 52 b_ADDIDATA_ResetFunctionalityIntRoutine

Error Messages ADDIDATA_GET_LAST_ERROR_MESSAGE 100 i_ADDIDATA_GetLastError ADDIDATA_ENABLE_ERROR_MESSAGE 101 b_ADDIDATA_EnableErrorMessage ADDIDATA_DISABLE_ERROR_MESSAGE 102 b_ADDIDATA_DisableErrorMessage ADDIDATA_FORMAT_ERROR_MESSAGE 103 b_ADDIDATA_FormatErrorMessage

Timer

ADDIDATA_GET_NUMBER_OF_TIMERS 200 b_ADDIDATA_GetNumberOfTimers ADDIDATA_GET_TIMER_INFORMATION 201 b_ADDIDATA_GetTimerInformation ADDIDATA_INIT_TIMER 202 b_ADDIDATA_InitTimer ADDIDATA_ENABLE_DISABLE_TIMER_INTERRUPT 203 b_ADDIDATA_EnableDisableTimerInterrupt ADDIDATA_START_TIMER 204 b_ADDIDATA_StartTimer ADDIDATA_START_ALL_TIMERS 205 b_ADDIDATA_StartAllTimers ADDIDATA_TRIGGER_TIMER 206 b_ADDIDATA_TriggerTimer ADDIDATA_TRIGGER_ALL_TIMERS 207 b_ADDIDATA_TriggerAllTimers ADDIDATA_STOP_TIMER 208 b_ADDIDATA_StopTimer ADDIDATA_STOP_ALL_TIMERS 209 b_ADDIDATA_StopAllTimers ADDIDATA_READ_TIMER_VALUE 210 b_ADDIDATA_ReadTimerValue ADDIDATA_READ_TIMER_STATUS 211 b_ADDIDATA_ReadTimerStatus ADDIDATA_ENABLE_DISABLE_TIMER_HARDWARE_GATE 212 b_ADDIDATA_EnableDisableTimerHardwareGate ADDIDATA_GET_TIMER_HARDWARE_GATE_STATUS 213 b_ADDIDATA_GetTimerHardwareGateStatus ADDIDATA_ENABLE_DISABLE_TIMER_HARDWARE_TRIGGER 214 b_ADDIDATA_EnableDisableTimerHardwareTrigger ADDIDATA_GET_TIMER_HARDWARE_TRIGGER_STATUS 215 b_ADDIDATA_GetTimerHardwareTriggerStatus ADDIDATA_ENABLE_DISABLE_TIMER_HARDWARE_OUTPUT 216 b_ADDIDATA_EnableDisableTimerHardwareOutput ADDIDATA_GET_TIMER_HARDWARE_OUTPUT_STATUS 217 b_ADDIDATA_GetTimerHardwareOutputStatus ADDIDATA_RELEASE_TIMER 218 b_ADDIDATA_ReleaseTimer ADDIDATA_TEST_TIMER_ASYNCHRONOUS_FIFO_FULL 219 b_ADDIDATA_TestTimerAsynchronousFIFOFull ADDIDATA_GET_TIMER_INFORMATION_EX 220 b_ADDIDATA_GetTimerInformationEx

Page 36: Addidata Handbuch

Common functions ADDIDRIVER

15

Constant Return value Function

Watchdog

ADDIDATA_GET_NUMBER_OF_WATCHDOGS 300 b_ADDIDATA_GetNumberOfWatchdogs ADDIDATA_GET_WATCHDOG_INFORMATION 301 b_ADDIDATA_GetWatchdogInformation ADDIDATA_INIT_WATCHDOG 302 b_ADDIDATA_InitWatchdog ADDIDATA_ENABLE_DISABLE_WATCHDOG_INTERRUPT 303 b_ADDIDATA_EnableDisableWatchdogInterrupt ADDIDATA_START_WATCHDOG 304 b_ADDIDATA_StartWatchdog ADDIDATA_START_ALL_WATCHDOGS 305 b_ADDIDATA_StartAllWatchdogs ADDIDATA_TRIGGER_WATCHDOG 306 b_ADDIDATA_TriggerWatchdog ADDIDATA_TRIGGER_ALL_WATCHDOGS 307 b_ADDIDATA_TriggerAllWatchdogs ADDIDATA_STOP_WATCHDOG 308 b_ADDIDATA_StopWatchdog ADDIDATA_STOP_ALL_WATCHDOGS 309 b_ADDIDATA_StopAllWatchdogs ADDIDATA_READ_WATCHDOG_STATUS 310 b_ADDIDATA_ReadWatchdogStatus ADDIDATA_ENABLE_DISABLE_WATCHDOG_HARDWARE_GATE 311 b_ADDIDATA_EnableDisableWatchdogHardwareGate ADDIDATA_GET_WATCHDOG_HARDWARE_GATE_STATUS 312 b_ADDIDATA_GetWatchdogHardwareGateStatus ADDIDATA_ENABLE_DISABLE_WATCHDOG_HARDWARE_TRIGGER 313 b_ADDIDATA_EnableDisableWatchdogHardwareTrigger ADDIDATA_GET_WATCHDOG_HARDWARE_TRIGGER_STATUS 314 b_ADDIDATA_GetWatchdogHardwareTriggerStatus ADDIDATA_GET_WARNING_DELAY_INFORMATION 315 b_ADDIDATA_GetWarningDelayInformation ADDIDATA_INIT_WARNING_DELAY 316 b_ADDIDATA_InitWarningDelay ADDIDATA_ENABLE_DISABLE_WATCHDOG_WARNING_RELAY 317 b_ADDIDATA_EnableDisableWatchdogWarningRelay ADDIDATA_ENABLE_DISABLE_WATCHDOG_RESET_RELAY 318 b_ADDIDATA_EnableDisableWatchdogResetRelay ADDIDATA_RELEASE_WATCHDOG 319 b_ADDIDATA_ReleaseWatchdog ADDIDATA_GET_WATCHDOG_INFORMATION_EX 320 b_ADDIDATA_GetWatchdogInformationEx ADDIDATA_SET_WATCHDOG_RESET_RELAY_MODE 321 b_ADDIDATA_SetWatchdogResetRelayMode ADDIDATA_TEST_WATCHDOG_ASYNCHRONOUS_FIFO_FULL 322 b_ADDIDATA_TestWatchdogAsynchronousFIFOFull ADDIDATA_ENABLE_DISABLE_WATCHDOG_HARDWARE_OUTPUT 323 b_ADDIDATA_EnableDisableWatchdogHardwareOutput ADDIDATA_GET_WATCHDOG_HARDWARE_OUTPUT_STATUS 324 b_ADDIDATA_GetWatchdogHardwareOutputStatus

Temperature

ADDIDATA_INIT_TEMPERATURE_CHANNEL 400 b_ADDIDATA_InitTemperatureChannel ADDIDATA_READ_1_TEMPERATURE_CHANNEL 401 b_ADDIDATA_Read1TemperatureChannel ADDIDATA_GET_NUMBER_OF_TEMPERATURE_CHANNELS 402 b_ADDIDATA_GetNumberOfTemperatureChannels ADDIDATA_CONVERT_DIGITAL_TO_REAL_TEMPERATURE_VALUE 403 b_ADDIDATA_ConvertDigitalToRealTemperatureValue ADDIDATA_GET_TEMPERATURE_CHANNEL_INFORMATION 404 b_ADDIDATA_GetTemperatureChannelInformation ADDIDATA_INIT_TEMPERATURE_WARNING 405 b_ADDIDATA_InitTemperatureWarning ADDIDATA_ENABLE_DISABLE_TEMPERATURE_WARNING_CHANNEL 406 b_ADDIDATA_EnableDisableTemperatureWarningChannel ADDIDATA_START_ALL_TEMPERATURE_WARNINGS 407 b_ADDIDATA_StartAllTemperatureWarnings ADDIDATA_STOP_ALL_TEMPERATURE_WARNINGS 408 b_ADDIDATA_StopAllTemperatureWarnings ADDIDATA_RELEASE_TEMPERATURE_WARNING 409 b_ADDIDATA_ReleaseTemperatureWarning ADDIDATA_RELEASE_TEMPERATURE_CHANNEL 410 b_ADDIDATA_ReleaseTemperatureChannel ADDIDATA_READ_MORE_TEMPERATURE_CHANNELS 411 b_ADDIDATA_ReadMoreTemperatureChannels ADDIDATA_INIT_TEMPERATURE_CHANNEL_SCAN 412 b_ADDIDATA_InitTemperatureChannelSCAN ADDIDATA_START_TEMPERATURE_CHANNEL_SCAN 413 b_ADDIDATA_StartTemperatureChannelSCAN ADDIDATA_GET_TEMPERATURE_CHANNEL_SCAN_STATUS 414 b_ADDIDATA_GetTemperatureChannelSCANStatus ADDIDATA_CONVERT_DIGITAL_TO_REAL_TEMPERATURE_VALUE_ SCAN

415 b_ADDIDATA_ConvertDigitalToRealTemperatureValue SCAN

ADDIDATA_STOP_TEMPERATURE_CHANNEL_SCAN 416 b_ADDIDATA_StopTemperatureChannelSCAN ADDIDATA_CLOSE_TEMPERATURE_CHANNEL_SCAN 417 b_ADDIDATA_CloseTemperatureChannelSCAN ADDIDATA_GET_NUMBER_OF_TEMPERATURE_MODULES 419 b_ADDIDATA_GetNumberOfTemperatureModules ADDIDATA_GET_NUMBER_OF_TEMPERATURE_CHANNELS_FOR_ THE_MODULE

420 b_ADDIDATA_GetNumberOfTemperatureChannelsForThe Module

ADDIDATA_CONVERT_DIGITAL_TO_REAL_TEMPERATURE_ WITH_CORRECTION_PARAMETERS

421 b_ADDIDATA_ConvertDigitalToRealTemperatureWith CorrectionParameters

ADDIDATA_CONVERT_MORE_DIGITAL_TO_REAL_TEMPERATURE_ VALUES

422 b_ADDIDATA_ConvertMoreDigitalToRealTemperature Values

ADDIDATA_TEST_TEMPERATURE_CHANNEL_SHORT_CIRCUIT 423 b_ADDIDATA_TestTemperatureChannelShortCircuit ADDIDATA_TEST_TEMPERATURE_CHANNEL_CONNECTION 424 b_ADDIDATA_TestTemperatureChannelConnection ADDIDATA_TEST_TEMPERATURE_ASYNCHRONOUS_FIFO_FULL 425 b_ADDIDATA_TestTemperatureAsynchronousFIFOFull

Page 37: Addidata Handbuch

ADDIDRIVER Common functions

16

Constant Return value Function

Digital inputs ADDIDATA_GET_NUMBER_OF_DIGITAL_INPUTS 500 b_ADDIDATA_GetNumberOfDigitalInputs ADDIDATA_GET_DIGITAL_INPUT_INFORMATION 501 b_ADDIDATA_GetDigitalInputInformation ADDIDATA_READ_1_DIGITAL_INPUT 502 b_ADDIDATA_Read1DigitalInput ADDIDATA_READ_2_DIGITAL_INPUTS 503 b_ADDIDATA_Read2DigitalInputs ADDIDATA_READ_4_DIGITAL_INPUTS 504 b_ADDIDATA_Read4DigitalInputs ADDIDATA_READ_8_DIGITAL_INPUTS 505 b_ADDIDATA_Read8DigitalInputs ADDIDATA_READ_16_DIGITAL_INPUTS 506 b_ADDIDATA_Read16DigitalInputs ADDIDATA_READ_32_DIGITAL_INPUTS 507 b_ADDIDATA_Read32DigitalInputs ADDIDATA_INIT_DIGITAL_INPUT_INTERRUPT 508 b_ADDIDATA_InitDigitalInputInterrupt ADDIDATA_ENABLE_DISABLE_DIGITAL_INPUT_INTERRUPT 509 b_ADDIDATA_EnableDisableDigitalInputInterrupt ADDIDATA_RELEASE_DIGITAL_INPUT_INTERRUPT 510 b_ADDIDATA_ReleaseDigitalInputInterrupt ADDIDATA_GET_DIGITAL_INPUT_INFORMATION_EX 511 b_ADDIDATA_GetDigitalInputInformationEx ADDIDATA_INIT_1_DIGITAL_INPUT_LEVEL 512 b_ADDIDATA_Init1DigitalInputLevel ADDIDATA_READ_1_DIGITAL_INPUT_STATUS 513 b_ADDIDATA_Read1DigitalInputStatus ADDIDATA_READ_MORE_DIGITAL_INPUT_STATUS 514 b_ADDIDATA_ReadMoreDigitalInputStatus ADDIDATA_READ_1_DIGITAL_INPUT_VALUE 515 b_ADDIDATA_Read1DigitalInputValue ADDIDATA_READ_MORE_DIGITAL_INPUT_VALUE 516 b_ADDIDATA_ReadMoreDigitalInputValue ADDIDATA_CONVERT_1_DIGITAL_INPUT_VALUE 517 b_ADDIDATA_Convert1DigitalInputValueInAnalogValue ADDIDATA_GET_DIGITAL_INPUT_MODULE_FILTER_INFORMATION 518 b_ADDIDATA_GetDigitalInputModuleFilterInformation ADDIDATA_INIT_DIGITAL_INPUT_MODULE_FILTER 519 b_ADDIDATA_InitDigitalInputModuleFilter ADDIDATA_ENABLE_DISABLE_DIGITAL_INPUT_MODULE_FILTER 520 b_ADDIDATA_EnableDisableDigitalInputModuleFilter ADDIDATA_SET_DIGITAL_INPUT_MODULE_LEVEL_SELECTION 521 b_ADDIDATA_SetDigitalInputModuleLevelSelection ADDIDATA_SAVE_DIGITAL_INPUT_MODULE_LEVEL 522 b_ADDIDATA_SaveDigitalInputModuleLevel ADDIDATA_TEST_DIGITAL_INPUT_ASYNCHRONOUS_FIFO_FULL 523 b_ADDIDATA_TestDigitalInputAsynchronousFIFOFull

Digital outputs ADDIDATA_GET_NUMBER_OF_DIGITAL_OUTPUTS 600 b_ADDIDATA_GetNumberOfDigitalOutputs ADDIDATA_GET_DIGITAL_OUTPUT_INFORMATION 601 b_ADDIDATA_GetDigitalOutputInformation ADDIDATA_SET_DIGITAL_OUTPUT_MEMORY_ON 602 b_ADDIDATA_SetDigitalOutputMemoryOn ADDIDATA_SET_DIGITAL_OUTPUT_MEMORY_OFF 603 b_ADDIDATA_SetDigitalOutputMemoryOff ADDIDATA_SET_1_DIGITAL_OUTPUT_ON 604 b_ADDIDATA_Set1DigitalOutputOn ADDIDATA_SET_2_DIGITAL_OUTPUTS_ON 605 b_ADDIDATA_Set2DigitalOutputsOn ADDIDATA_SET_4_DIGITAL_OUTPUTS_ON 606 b_ADDIDATA_Set4DigitalOutputsOn ADDIDATA_SET_8_DIGITAL_OUTPUTS_ON 607 b_ADDIDATA_Set8DigitalOutputsOn ADDIDATA_SET_16_DIGITAL_OUTPUTS_ON 608 b_ADDIDATA_Set16DigitalOutputsOn ADDIDATA_SET_32_DIGITAL_OUTPUTS_ON 609 b_ADDIDATA_Set32DigitalOutputsOn ADDIDATA_SET_1_DIGITAL_OUTPUT_OFF 610 b_ADDIDATA_Set1DigitalOutputOff ADDIDATA_SET_2_DIGITAL_OUTPUTS_OFF 611 b_ADDIDATA_Set2DigitalOutputsOff ADDIDATA_SET_4_DIGITAL_OUTPUTS_OFF 612 b_ADDIDATA_Set4DigitalOutputsOff ADDIDATA_SET_8_DIGITAL_OUTPUTS_OFF 613 b_ADDIDATA_Set8DigitalOutputsOff ADDIDATA_SET_16_DIGITAL_OUTPUTS_OFF 614 b_ADDIDATA_Set16DigitalOutputsOff ADDIDATA_SET_32_DIGITAL_OUTPUTS_OFF 615 b_ADDIDATA_Set32DigitalOutputsOff ADDIDATA_GET_1_DIGITAL_OUTPUT_STATUS 616 b_ADDIDATA_Get1DigitalOutputStatus ADDIDATA_GET_2_DIGITAL_OUTPUT_STATUS 617 b_ADDIDATA_Get2DigitalOutputStatus ADDIDATA_GET_4_DIGITAL_OUTPUT_STATUS 618 b_ADDIDATA_Get4DigitalOutputStatus ADDIDATA_GET_8_DIGITAL_OUTPUT_STATUS 619 b_ADDIDATA_Get8DigitalOutputStatus ADDIDATA_GET_16_DIGITAL_OUTPUT_STATUS 620 b_ADDIDATA_Get16DigitalOutputStatus ADDIDATA_GET_32_DIGITAL_OUTPUT_STATUS 621 b_ADDIDATA_Get32DigitalOutputStatus ADDIDATA_INIT_DIGITAL_OUTPUT_INTERRUPT 623 b_ADDIDATA_InitDigitalOutputInterrupt ADDIDATA_ENABLE_DISABLE_DIGITAL_OUTPUT_INTERRUPT 624 b_ADDIDATA_EnableDisableDigitalOutputInterrupt ADDIDATA_RELEASE_DIGITAL_OUTPUT_INTERRUPT 625 b_ADDIDATA_ReleaseDigitalOutputInterrupt ADDIDATA_TEST_DIGITAL_OUTPUT_ASYNCHRONOUS_FIFO_FULL 626 b_ADDIDATA_TestDigitalOutputAsynchronousFIFOFull

Page 38: Addidata Handbuch

Common functions ADDIDRIVER

17

Constant Return value Function

Analog outputs ADDIDATA_GET_NUMBER_OF_ANALOG_OUTPUTS 700 b_ADDIDATA_GetNumberOfAnalogOutputs ADDIDATA_GET_ ANALOG_OUTPUT_INFORMATION 701 b_ADDIDATA_GetAnalogOutputInformation ADDIDATA_INIT_1_ANALOG_OUTPUT 702 b_ADDIDATA_Init1AnalogOutput ADDIDATA_INIT_MORE_ANALOG_OUTPUTS 703 b_ADDIDATA_InitMoreAnalogOutputs ADDIDATA_WRITE_1_ANALOG_OUTPUT 704 b_ADDIDATA_Write1AnalogOutput ADDIDATA_WRITE_MORE_ANALOG_OUTPUTS 705 b_ADDIDATA_WriteMoreAnalogOutputs ADDIDATA_RELEASE_1_ANALOG_OUTPUT 706 b_ADDIDATA_Release1AnalogOutput ADDIDATA_RELEASE_MORE_ANALOG_OUTPUTS 707 b_ADDIDATA_ReleaseMoreAnalogOutputs ADDIDATA_ENABLE_DISABLE_1_ANALOG_OUTPUT_SYNC 708 b_ADDIDATA_EnableDisable1AnalogOutputSync ADDIDATA_ENABLE_DISABLE_MORE_ANALOG_OUTPUTS_SYNC 709 b_ADDIDATA_EnableDisableMoreAnalogOutputsSync ADDIDATA_TRIGGER_ANALOG_OUTPUT 710 b_ADDIDATA_TriggerAnalogOutput

Analog inputs ADDIDATA_GET_NUMBER_OF_ANALOG_INPUTS 800 b_ADDIDATA_GetNumberOfAnalogInputs ADDIDATA_GET_NUMBER_OF_ANALOG_INPUT_MODULES 801 b_ADDIDATA_GetNumberOfAnalogInputModules ADDIDATA_GET_NUMBER_OF_ANALOG_INPUTS_FOR_THE_MODULE 802 b_ADDIDATA_GetNumberOfAnalogInputsForTheModule ADDIDATA_GET_ANALOG_INPUT_INFORMATION 803 b_ADDIDATA_GetAnalogInputInformation ADDIDATA_INIT_ANALOG_INPUT 804 b_ADDIDATA_InitAnalogInput ADDIDATA_TEST_ANALOG_INPUT_SHORT_CIRCUIT 805 b_ADDIDATA_TestAnalogInputShortCircuit ADDIDATA_TEST_ANALOG_INPUT_CONNECTION 806 b_ADDIDATA_TestAnalogInputConnection ADDIDATA_READ_1_ANALOG_INPUT 807 b_ADDIDATA_Read1AnalogInput ADDIDATA_READ_MORE_ANALOG_INPUTS 808 b_ADDIDATA_ReadMoreAnalogInputs ADDIDATA_CONVERT_DIGITAL_TO_REAL_ANALOG_VALUE 809 b_ADDIDATA_ConvertDigitalToRealAnalogValue ADDIDATA_CONVERT_MORE_DIGITAL_TO_REAL_ANALOG_VALUES 810 b_ADDIDATA_ConvertMoreDigitalToRealAnalogValues ADDIDATA_INIT_ANALOG_INPUT_SCAN 811 b_ADDIDATA_InitAnalogInputSCAN ADDIDATA_START_ANALOG_INPUT_SCAN 812 b_ADDIDATA_StartAnalogInputSCAN ADDIDATA_GET_ANALOG_INPUT_SCAN_STATUS 813 b_ADDIDATA_GetAnalogInputSCANStatus ADDIDATA_CONVERT_DIGITAL_TO_REAL_ANALOG_VALUE_SCAN 814 b_ADDIDATA_ConvertDigitalToRealAnalogValueSCAN ADDIDATA_STOP_ANALOG_INPUT_SCAN 815 b_ADDIDATA_StopAnalogInputSCAN ADDIDATA_CLOSE_ANALOG_INPUT_SCAN 816 b_ADDIDATA_CloseAnalogInputSCAN ADDIDATA_RELEASE_ANALOG_INPUT 817 b_ADDIDATA_ReleaseAnalogInput ADDIDATA_TEST_ANALOG_INPUT_ASYNCHRONOUS_FIFO_FULL 818 b_ADDIDATA_TestAnalogInputAsynchronousFIFOFull ADDIDATA_GET_ANALOG_INPUT_MODULE_NUMBER 819 b_ADDIDATA_GetAnalogInputModuleNumber ADDIDATA_GET_ANALOG_INPUT_MODULE_AUTO_REFRESH_ ACQUISITION_INFORMATION

820 b_ADDIDATA_GetAnalogInputModuleAutoRefreshInformation

ADDIDATA_GET_ANALOG_INPUT_MODULE_SEQUENCE_ ACQUISITION_INFORMATION

821 b_ADDIDATA_GetAnalogInputModuleSequenceInformation

ADDIDATA_GET_ANALOG_INPUT_AUTO_REFRESH_CHANNEL_ POINTER

822 b_ADDIDATA_GetAnalogInputAutoRefreshChannelPointer

ADDIDATA_GET_ANALOG_INPUT_AUTO_REFRESH_MODULE_ POINTER

823 b_ADDIDATA_GetAnalogInputAutoRefreshModulePointer

ADDIDATA_START_ANALOG_INPUT_AUTO_REFRESH 824 b_ADDIDATA_StartAnalogInputAutoRefresh ADDIDATA_STOP_ANALOG_INPUT_AUTO_REFRESH 825 b_ADDIDATA_StopAnalogInputAutoRefresh ADDIDATA_READ_1_ANALOG_INPUT_AUTO_REFRESH_VALUE 826 b_ADDIDATA_Read1AnalogInputAutoRefreshValue ADDIDATA_INIT_ANALOG_INPUT_SEQUENCE_ACQUISITION 827 b_ADDIDATA_InitAnalogInputSequenceAcquisition ADDIDATA_START_ANALOG_INPUT_SEQUENCE_ACQUISITION 828 b_ADDIDATA_StartAnalogInputSequenceAcquisition ADDIDATA_PAUSE_ANALOG_INPUT_SEQUENCE_ACQUISITION 829 b_ADDIDATA_PauseAnalogInputSequenceAcquisition ADDIDATA_STOP_ANALOG_INPUT_SEQUENCE_ACQUISITION 830 b_ADDIDATA_StopAnalogInputSequenceAcquisition ADDIDATA_RELEASE_ANALOG_INPUT_SEQUENCE_ACQUISITION 831 b_ADDIDATA_ReleaseAnalogInputSequenceAcquisition ADDIDATA_CONVERT_DIGITAL_TO_REAL_ANALOG_VALUE_SEQUENCE 832 b_ADDIDATA_ConvertDigitalToRealAnalogValueSequence ADDIDATA_GET_ANALOG_INPUT_SEQUENCE_ACQUISITION_HANDLE_ STATUS

833 b_ADDIDATA_GetAnalogInputSequenceAcquisitionHandle Status

ADDIDATA_GET_ANALOG_INPUT_HARDWARE_TRIGGER_INFORMATION 834 b_ADDIDATA_GetAnalogInputHardwareTriggerInformation ADDIDATA_ENABLE_DISABLE_ANALOG_INPUT_HARDWARE_TRIGGER 835 b_ADDIDATA_EnableDisableAnalogInputHardwareTrigger ADDIDATA_GET_ANALOG_INPUT_HARDWARE_TRIGGER_STATUS 836 b_ADDIDATA_GetAnalogInputHardwareTriggerStatus ADDIDATA_ENABLE_DISABLE_ANALOG_INPUT_SOFTWARE_TRIGGER 837 b_ADDIDATA_EnableDisableAnalogInputSoftwareTrigger ADDIDATA_ANALOG_INPUT_SOFTWARE_TRIGGER 838 b_ADDIDATA_AnalogInputSoftwareTrigger ADDIDATA_GET_ANALOG_INPUT_SOFTWARE_TRIGGER_STATUS 839 b_ADDIDATA_GetAnalogInputSoftwareTriggerStatus

Page 39: Addidata Handbuch

ADDIDRIVER Common functions

18

ADDIDATA_GET_ANALOG_INPUT_MODULE_GENERAL_INFORMATION 840 b_ADDIDATA_GetAnalogInputAutoRefreshModuleCounterPointer ADDIDATA_GET_ANALOG_INPUT_MODULE_SINGLE_ACQUISITION_ INFORMATION

841 b_ADDIDATA_GetAnalogInputModuleGeneralInformation

ADDIDATA_GET_ANALOG_INPUT_AUTO_REFRESH_MODULE_ COUNTER_POINTER

842 b_ADDIDATA_GetAnalogInputModuleSingleAcquisition Information

ADDIDATA_GET_ANALOG_INPUT_MODULE_SCAN_ACQUISITION_ INFORMATION

843 b_ADDIDATA_GetAnalogInputModuleSCANInformation

ADDIDATA_INIT_ANALOG_INPUT_SCAN_ACQUISITION 844 b_ADDIDATA_InitAnalogInputSCANAcquisition ADDIDATA_GET_ANALOG_INPUT_SOFTWARE_TRIGGER_ INFORMATION

845 b_ADDIDATA_GetAnalogInputSoftwareTriggerInformation

Resistance ADDIDATA_GET_NUMBER_OF_RESISTANCE_CHANNELS 900 b_ADDIDATA_GetNumberOfResistanceChannels ADDIDATA_GET_NUMBER_OF_RESISTANCE_CHANNEL_MODULES 901 b_ADDIDATA_GetNumberOfResistanceChannelModules ADDIDATA_GET_NUMBER_OF_RESISTANCE_CHANNELS_FOR_THE_ MODULE

902 b_ADDIDATA_GetNumberOfResistanceChannelsForTheModule

ADDIDATA_GET_ RESISTANCE_CHANNELS_INFORMATION 903 b_ADDIDATA_GetResistanceChannelInformation ADDIDATA_INIT_RESISTANCE_CHANNEL 904 b_ADDIDATA_InitResistanceChannel ADDIDATA_TEST_RESISTANCE_CHANNEL_SHORT_CIRCUIT 905 b_ADDIDATA_TestResistanceChannelShortCircuit ADDIDATA_TEST_RESISTANCE_CHANNEL_CONNECTION 906 b_ADDIDATA_TestResistanceChannelConnection ADDIDATA_READ_1_RESISTANCE_CHANNEL 907 b_ADDIDATA_Read1ResistanceChannel ADDIDATA_READ_MORE_RESISTANCE_CHANNELS 908 b_ADDIDATA_ReadMoreResistanceChannels ADDIDATA_CONVERT_DIGITAL_TO_REAL_RESISTANCE_VALUE 909 b_ADDIDATA_ConvertDigitalToRealResistanceValue ADDIDATA_CONVERT_MORE_DIGITAL_TO_REAL_RESISTANCE_ VALUES

910 b_ADDIDATA_ConvertMoreDigitalToRealResistanceValues

ADDIDATA_INIT_RESISTANCE_CHANNEL_SCAN 911 b_ADDIDATA_InitResistanceChannelSCAN ADDIDATA_START_RESISTANCE_CHANNEL_SCAN 912 b_ADDIDATA_StartResistanceChannelSCAN ADDIDATA_GET_RESISTANCE_CHANNEL_SCAN_STATUS 913 b_ADDIDATA_GetResistanceChannelSCANStatus ADDIDATA_CONVERT_DIGITAL_TO_REAL_RESISTANCE_VALUE_ SCAN

914 b_ADDIDATA_ConvertDigitalToRealResistanceValueSCAN

ADDIDATA_STOP_RESISTANCE_CHANNEL_SCAN 915 b_ADDIDATA_StopResistanceChannelSCAN ADDIDATA_CLOSE_RESISTANCE_CHANNEL_SCAN 916 b_ADDIDATA_CloseResistanceChannelSCAN ADDIDATA_RELEASE_RESISTANCE_CHANNEL 917 b_ADDIDATA_ReleaseResistanceChannel ADDIDATA_TEST_RESISTANCE_CHANNEL_ASYNCHRONOUS_FIFO_ FULL

918 b_ADDIDATA_TestResistanceChannelAsynchronousFIFOFull

Counter

ADDIDATA_GET_NUMBER_OF_COUNTERS 1000 b_ADDIDATA_GetNumberOfCounters ADDIDATA_GET_COUNTER_INFORMATION 1001 b_ADDIDATA_GetCounterInformation ADDIDATA_INIT_COUNTER 1002 b_ADDIDATA_InitCounter ADDIDATA_COUNTER_DIRECTION 1003 b_ADDIDATA_SetCounterDirection ADDIDATA_ENABLE_DISABLE_COUNTER_INTERRUPT 1004 b_ADDIDATA_EnableDisableCounterInterrupt ADDIDATA_START_COUNTER 1005 b_ADDIDATA_StartCounter ADDIDATA_START_ALL_COUNTERS 1006 b_ADDIDATA_StartAllCounters ADDIDATA_CLEAR_COUNTER 1007 b_ADDIDATA_ClearCounter ADDIDATA_TRIGGER_COUNTER 1008 b_ADDIDATA_TriggerCounter ADDIDATA_TRIGGER_ALL_COUNTERS 1009 b_ADDIDATA_TriggerAllCounters ADDIDATA_STOP_COUNTER 1010 b_ADDIDATA_StopCounter ADDIDATA_STOP_ALL_COUNTERS 1011 b_ADDIDATA_StopAllCounters ADDIDATA_READ_COUNTER_VALUE 1012 b_ADDIDATA_ReadCounterValue ADDIDATA_READ_COUNTER_STATUS 1013 b_ADDIDATA_ReadCounterStatus ADDIDATA_ENABLE_DISABLE_COUNTER_HARDWARE_GATE 1014 b_ADDIDATA_EnableDisableCounterHardwareGate ADDIDATA_GET_COUNTER_HARDWARE_GATE_STATUS 1015 b_ADDIDATA_GetCounterHardwareGateStatus ADDIDATA_ENABLE_DISABLE_COUNTER_HARDWARE_TRIGGER 1016 b_ADDIDATA_EnableDisableCounterHardwareTrigger ADDIDATA_GET_COUNTER_HARDWARE_TRIGGER_STATUS 1017 b_ADDIDATA_GetCounterHardwareTriggerStatus ADDIDATA_ENABLE_DISABLE_COUNTER_HARDWARE_OUTPUT 1018 b_ADDIDATA_EnableDisableCounterHardwareOutput ADDIDATA_GET_COUNTER_HARDWARE_OUTPUT_STATUS 1019 b_ADDIDATA_GetCounterHardwareOutputStatus ADDIDATA_RELEASE_COUNTER 1020 b_ADDIDATA_ReleaseCounter ADDIDATA_TEST_COUNTER_ASYNCHRONOUS_FIFO_FULL 1021 b_ADDIDATA_TestCounterAsynchronousFIFOFull ADDIDATA_GET_COUNTER_INFORMATION_EX 1022 b_ADDIDATA_GetCounterInformationEx

Page 40: Addidata Handbuch

Common functions ADDIDRIVER

19

Pressure ADDIDATA_GET_NUMBER_OF_PRESSURE_CHANNELS 1100 b_ADDIDATA_GetNumberOfPressureChannels ADDIDATA_GET_NUMBER_OF_PRESSURE_MODULES 1101 b_ADDIDATA_GetNumberOfPressureModules ADDIDATA_GET_NUMBER_OF_PRESSURE_CHANNELS_FOR_THE_ MODULE

1102 b_ADDIDATA_GetNumberOfPressureChannelsForTheModule

ADDIDATA_GET_ PRESSURE_CHANNELS_INFORMATION 1103 b_ADDIDATA_GetPressureChannelInformation ADDIDATA_INIT_PRESSURE_CHANNEL 1104 b_ADDIDATA_InitPressureChannel ADDIDATA_READ_1_PRESSURE_CHANNEL 1105 b_ADDIDATA_Read1PressureChannel ADDIDATA_READ_MORE_PRESSURE_CHANNELS 1106 b_ADDIDATA_ReadMorePressureChannels ADDIDATA_CONVERT_DIGITAL_TO_REAL_PRESSURE_VALUE 1107 b_ADDIDATA_ConvertDigitalToRealPressureValue ADDIDATA_CONVERT_MORE_DIGITAL_TO_REAL_PRESSURE_ VALUES

1108 b_ADDIDATA_ConvertMoreDigitalToRealPressureValues

ADDIDATA_INIT_PRESSURE_CHANNEL_SCAN 1109 b_ADDIDATA_InitPressureSCAN ADDIDATA_START_PRESSURE_CHANNEL_SCAN 1110 b_ADDIDATA_StartPressureSCAN ADDIDATA_GET_PRESSURE_CHANNEL_SCAN_STATUS 1111 b_ADDIDATA_GetPressureSCANStatus ADDIDATA_CONVERT_DIGITAL_TO_REAL_PRESSURE_VALUE_ SCAN

1112 b_ADDIDATA_ConvertDigitalToRealPressureValueSCAN

ADDIDATA_STOP_PRESSURE_CHANNEL_SCAN 1113 b_ADDIDATA_StopPressureChannelSCAN ADDIDATA_CLOSE_PRESSURE_CHANNEL_SCAN 1114 b_ADDIDATA_ClosePressureChannelSCAN ADDIDATA_RELEASE_PRESSURE_CHANNEL 1115 b_ADDIDATA_ReleasePressureChannel ADDIDATA_TEST_PRESSURE_CHANNEL_ASYNCHRONOUS_FIFO_ FULL

1118 b_ADDIDATA_TestPressureChannelAsynchronousFIFOFull

Transducer ADDIDATA_GET_NUMBER_OF_TRANSDUCERS_CHANNELS 1200 b_ADDIDATA_GetNumberOfTransducerChannels ADDIDATA_GET_NUMBER_OF_TRANSDUCER_MODULES 1201 b_ADDIDATA_GetNumberOfTransducerModules ADDIDATA_GET_NUMBER_OF_TRANSDUCER_CHANNELS_FOR_THE_MODULE

1202 b_ADDIDATA_GetNumberOfTransducerChannelsForThe Module

ADDIDATA_GET_TRANSDUCER_CHANNEL_MODULE_NUMBER 1203 b_ADDIDATA_GetTransducerChannelModuleNumber ADDIDATA_GET_TRANSDUCER_MODULE_GENERAL_INFORMATION 1204 b_ADDIDATA_GetTransducerModuleGeneralInformation ADDIDATA_GET_TRANSDUCER_MODULE_SINGLE_ACQUISITION_ INFORMATION

1205 b_ADDIDATA_GetTransducerModuleSingleAcquisition Information

ADDIDATA_GET_TRANSDUCER_MODULE_AUTO_REFRESH_ACQUISITION_INFORMATION

1206 b_ADDIDATA_GetTransducerModuleAutoRefresh Information

ADDIDATA_GET_TRANSDUCER_MODULE_SEQUENCE_ACQUISITION_INFORMATION

1207 b_ADDIDATA_GetTransducerModuleSequenceInformation

ADDIDATA_INIT_TRANSDUCER_CHANNEL 1208 b_ADDIDATA_InitTransducerChannel ADDIDATA_RELEASE_TRANSDUCER_CHANNEL 1209 b_ADDIDATA_ReleaseTransducerChannel ADDIDATA_READ_1_TRANSDUCER_CHANNEL 1210 b_ADDIDATA_Read1TransducerChannel ADDIDATA_CONVERT_DIGITAL_TO_REAL_METRIC_VALUE 1211 b_ADDIDATA_ConvertDigitalToRealMetricValue ADDIDATA_READ_MORE_TRANSDUCER_CHANNELS 1212 b_ADDIDATA_ReadMoreTransducerChannels ADDIDATA_CONVERT_MORE_DIGITAL_TO_REAL_METRIC_VALUE 1213 b_ADDIDATA_ConvertMoreDigitalToRealMetricValue ADDIDATA_GET_TRANSDUCER_HARDWARE_TRIGGER_INFORMATION 1214 b_ADDIDATA_GetTransducerHardwareTriggerInformations ADDIDATA_ENABLE_DISABLE_TRANSDUCER_HARDWARE_TRIGGER 1215 b_ADDIDATA_EnableDisableTransducerHardwareTrigger ADDIDATA_GET_TRANSDUCER_HARDWARE_TRIGGER_STATUS 1216 b_ADDIDATA_GetTransducerHardwareTriggerStatus ADDIDATA_ENABLE_DISABLE_TRANSDUCER_SOFTWARE_TRIGGER 1217 b_ADDIDATA_EnableDisableTransducerSoftwareTrigger ADDIDATA_TRANSDUCER_SOFTWARE_TRIGGER 1218 b_ADDIDATA_TransducerSoftwareTrigger ADDIDATA_GET_TRANSDUCER_SOFTWARE_TRIGGER_STATUS 1219 b_ADDIDATA_GetTransducerSoftwareTriggerStatus ADDIDATA_GET_TRANSDUCER_HARDWARE_GATE_INFORMATION 1220 b_ADDIDATA_GetTransducerHardwareGateInformations ADDIDATA_ENABLE_DISABLE_TRANSDUCER_HARDWARE_GATE 1221 b_ADDIDATA_EnableDisableTransducerHardwareGate ADDIDATA_GET_TRANSDUCER_HARDWARE_GATE_STATUS 1222 b_ADDIDATA_GetTransducerHardwareGateStatus ADDIDATA_TEST_TRANSDUCER_CHANNEL_SECONDARY_CONNECTION 1223 b_ADDIDATA_TestTransducerChannelSecondaryConnection ADDIDATA_ENABLE_DISABLE_TRANSDUCER_MODULE_PRIMARY_ CONNECTION_TEST

1224 b_ADDIDATA_EnableDisableTransducerModulePrimary ConnectionTest

ADDIDATA_TEST_TRANSDUCER_MODULE_PRIMARY_CONNECTION 1225 b_ADDIDATA_TestTransducerModulePrimaryConnection ADDIDATA_ENABLE_DISABLE_TRANSDUCER_MODULE_PRIMARY_ SHORT_CIRCUIT_INTERRUPT

1226 b_ADDIDATA_EnableDisableTransducerModulePrimaryShortCircuitInterrupt

ADDIDATA_INIT_TRANSDUCER_SEQUENCE_ACQUISITION 1227 b_ADDIDATA_InitTransducerSequenceAcquisition ADDIDATA_START_TRANSDUCER_SEQUENCE_ACQUISITION 1228 b_ADDIDATA_StartTransducerSequenceAcquisition ADDIDATA_PAUSE_TRANSDUCER_SEQUENCE_ACQUISITION 1229 b_ADDIDATA_PauseTransducerSequenceAcquisition ADDIDATA_STOP_TRANSDUCER_SEQUENCE_ACQUISITION 1230 b_ADDIDATA_StopTransducerSequenceAcquisition

Page 41: Addidata Handbuch

ADDIDRIVER Common functions

20

ADDIDATA_RELEASE_TRANSDUCER_SEQUENCE_ACQUISITION 1231 b_ADDIDATA_ReleaseTransducerSequenceAcquisition ADDIDATA_CONVERT_TRANSDUCER_SEQUENCE_DIGITAL_TO_REAL_METRIC_VALUE

1232 b_ADDIDATA_ConvertTransducerSequenceDigitalToReal MetricValue

ADDIDATA_GET_TRANSDUCER_SEQUENCE_ACQUISITION_HANDLE_STATUS

1233 b_ADDIDATA_GetTransducerSequenceAcquisitionHandleStatus

ADDIDATA_REARM_TRANSDUCER_MODULE_PRIMARY_SHORT_ CIRCUIT_CONNECTION_TEST

1234 b_ADDIDATA_RearmTransducerModulePrimaryShortCircuitConnectionTest

ADDIDATA_GET_TRANSDUCER_MODULE_CONVERT_TIME_DIVISION_FACTOR_INFORMATION

1235 b_ADDIDATA_GetTransducerModuleConvertTimeDivisionFactorInformation

ADDIDATA_INIT_TRANSDUCER_MODULE_CONVERT_TIME_DIVISION_FACTOR

1236 b_ADDIDATA_InitTransducerModuleConvertTimeDivisionFactor

ADDIDATA_RELEASE_TRANSDUCER_MODULE_CONVERT_TIME_ DIVISION_FACTOR

1237 b_ADDIDATA_ReleaseTransducerModuleConvertTime DivisionFactor

ADDIDATA_GET_TRANSDUSER_AUTO_REFRESH_CHANNEL_POINTER 1238 b_ADDIDATA_GetTransducerAutoRefreshChannelPointer ADDIDATA_GET_TRANSDUSER_AUTO_REFRESH_MODULE_POINTER 1239 b_ADDIDATA_GetTransducerAutoRefreshModulePointer ADDIDATA_GET_TRANSDUSER_AUTO_REFRESH_MODULE_COUNTER_POINTER

1240 b_ADDIDATA_GetTransducerAutoRefreshModuleCounter Pointer

ADDIDATA_START_TRANSDUSER_AUTO_REFRESH 1241 b_ADDIDATA_StartTransducerAutoRefresh ADDIDATA_STOP_TRANSDUSER_AUTO_REFRESH 1242 b_ADDIDATA_StopTransducerAutoRefresh ADDIDATA_SET_TRANSDUSER_AUTO_REFRESH_AVERAGE_VALUE 1243 b_ADDIDATA_SetTransducerAutoRefreshAverageValue ADDIDATA_SET_TRANSDUSER_AUTO_REFRESH_AVERAGE_MODE 1244 b_ADDIDATA_SetTransducerAutoRefreshAverageMode ADDIDATA_SET_TRANSDUCER_AUTO_REFRESH_THREAD 1245 b_ADDIDATA_TransducerAutoRefreshThread ADDIDATA_GET_TRANSDUCER_HARDWARE_TRIGGER_INFORMATION_EX

1246 b_ADDIDATA_GetTransducerHardwareTriggerInformationEx

ADDIDATA_ENABLE_DISABLE_TRANSDUCER_HARDWARE_TRIGGER_EX

1247 b_ADDIDATA_EnableDisableTransducerHardwareTriggerEx

ADDIDATA_READ_1_TRANSDUCER_AUTO_REFRESH_VALUE 1248 b_ADDIDATA_Read1TransducerAutoRefreshValue ADDIDATA_READ_TRANSDUCER_AUTO_REFRESH_COUNTER_VALUE 1249 b_ADDIDATA_ReadTransducerAutoRefreshCounterValue

Page 42: Addidata Handbuch

Common functions ADDIDRIVER

21

Table 2-3: Error number

Constant Return value Meaning

Interrupt errors ADDIDATA_INTERRUPT_USER_SHARED_MEMORY_SIZE_ERROR -150 Selected size for the user shared memory is

wrong ADDIDATA_INTERRUPT_SHARED_MEMORY_MODE_ERROR -151 Selected mode for the user shared memory is

wrong ADDIDATA_INTERRUPT_USER_CALLING_MODE_ERROR -152 The selected user calling mode is wrong ADDIDATA_INTERRUPT_FUNCTIONALITY_ALREADY_INSTALLED -153 Interrupt for the selected functionality is already

installed ADDIDATA_INTERRUPT_USER_SHARED_MEMORY_NOT_FOUND -154 Cannot find the user shared memory ADDIDATA_INTERRUPT_USER_SHARED_MEMORY_ALLOCATION_ERROR -155 No memory available for the allocation of the

user shared memory ADDIDATA_INTERRUPT_USER_INSTALLATION_FUNCTION_ERROR -156 Error when installing the user function ADDIDATA_INTERRUPT_PREPARE_FUNCTIONALITY_INTERRUPT_FUNCTION_ERROR -157 Error by preparing the interrupt function for

each functionality ADDIDATA_INTERRUPT_PREPARE_API_INTERRUPT_FUNCTION_ERROR -158 Error by preparing the API interrupt function ADDIDATA_INTERRUPT_INSTALL_API_INTERRUPT_FUNCTION_ERROR -159 API interrupt installation error.

Interrupt already used ADDIDATA_INTERRUPT_NO_INDEX_AVAILABLE -160 The selected functionality interrupt cannot be

enabled ADDIDATA_INTERRUPT_INDEX_NUMBER_ERROR -161 The selected functionality interrupt cannot be

disabled ADDIDATA_INTERRUPT_FUNCTIONALITY_NUMBER_ERROR -162 The selected functionality number is wrong ADDIDATA_INTERRUPT_FUNCTIONALITY_NOT_INSTALLED -163 User interrupt function not installed ADDIDATA_INTERRUPT_END_FUNCTIONALITY_EXEC_ERROR -164 Error by releasing the functionality interrupt ADDIDATA_INTERRUPT_API_UNINSTALL_ERROR -165 Error when uninstalling the API interrupt ADDIDATA_INTERRUPT_END_API_EXEC_ERROR -166 Error by releasing the API interrupt ADDIDATA_INTERRUPT_FUNCTIONALITY_SELECTION_ERROR -167 The selected interrupt functionality is wrong ADDIDATA_INTERRUPT_API_THREAD_CREATION_ERROR -168 Error in the creation of the API interrupt thread ADDIDATA_INTERRUPT_API_EVENT_CREATION_ERROR -169 Error in the creation of the API interrupt event ADDIDATA_INTERRUPT_NO_INTERRT_INITIALISED -170 No interrupt initialised ADDIDATA_INTERRUPT_FLAG_ERROR -171 Interrupt flag error ADDIDATA_ACPI_ACTIV_AND_USE_OF_WINDOWS_NT4 -172 ACPI mode is set and has conflict with

Windows NT 4.0 ADDIDATA_PNP_OS_ACPI_AND_USE_OF_WINDOWS_NT4 -173 Plug & Play option and ACPI mode is set:

conflict with Windows NT 4.0

Timer errors ADDIDATA_TIMER_NUMBER_ERROR -200 The selected timer number is wrong ADDIDATA_TIMER_RELOAD_VALUE_ERROR -201 The timer reload value is wrong ADDIDATA_TIMER_UNIT_ERROR -202 The selected time unit for the timer is wrong ADDIDATA_TIMER_MODE_ERROR -203 The selected timer mode is wrong ADDIDATA_TIMER_INTERRUPT_FLAG_ERROR -204 Timer interrupt flag is wrong ADDIDATA_TIMER_HARDWARE_GATE_ LEVEL_ERROR -205 Timer hardware gate not available ADDIDATA_TIMER_HARDWARE_GATE_LEVEL_SELECTION_ERROR -206 The selected hardware gate level is wrong ADDIDATA_TIMER_HARDWARE_GATE_FLAG_ERROR -207 The flag of the hardware gate is wrong ADDIDATA_TIMER_HARDWARE_TRIGGER_ LEVEL_ERROR -208 Timer hardware trigger not available ADDIDATA_TIMER_HARDWARE_TRIGGER_LEVEL_SELECTION_ERROR -209 Hardware trigger level selection error ADDIDATA_TIMER_HARDWARE_TRIGGER_FLAG_ERROR -210 The flag of the hardware trigger is wrong ADDIDATA_TIMER_HARDWARE_OUTPUT_ LEVEL_ERROR -211 Timer output not available ADDIDATA_TIMER_HARDWARE_OUTPUT_LEVEL_SELECTION_ERROR -212 Timer output level selection error ADDIDATA_TIMER_HARDWARE_OUTPUT_FLAG_ERROR -213 The flag of the timer output is wrong ADDIDATA_TIMER_ALREADY_USED -214 Timer already used by another process or used

as a watchdog ADDIDATA_TIMER_INFORMATION_STRUCTURE_INVALID_SIZE -215 The timer struct size is wrong

Page 43: Addidata Handbuch

ADDIDRIVER Common functions

22

Constant Return value Meaning

Watchdog errors ADDIDATA_WATCHDOG_NUMBER_ERROR -300 Watchdog number error ADDIDATA_WATCHDOG_DELAY_VALUE_ERROR -301 Watchdog delay selection error ADDIDATA_WATCHDOG_UNIT_ERROR -302 Watchdog unit selection error ADDIDATA_WATCHDOG_INTERRUPT_FLAG_ERROR -303 The flag of the watchdog interrupt is wrong ADDIDATA_WATCHDOG_HARDWARE_GATE_LEVEL_ERROR -304 Watchdog hardware gate not available ADDIDATA_WATCHDOG_HARDWARE_GATE_LEVEL_SELECTION_ERROR -305 Hardware gate level selection error ADDIDATA_WATCHDOG_HARDWARE_GATE_FLAG_ERROR -306 the flag of the hardware gate is wrong ADDIDATA_WATCHDOG_HARDWARE_TRIGGER_ LEVEL_ERROR -307 Watchdog hardware trigger not available ADDIDATA_WATCHDOG_HARDWARE_TRIGGER_LEVEL_SELECTION_ERROR -308 Hardware trigger level selection error ADDIDATA_WATCHDOG_HARDWARE_TRIGGER_FLAG_ERROR -309 The flag of the hardware trigger is wrong ADDIDATA_WARNING_DELAY_VALUE_ERROR -310 The selected warning delay is wrong ADDIDATA_WARNING_DELAY_TIME_UNIT_ERROR -311 The selected time unit for the warning delay is

wrong ADDIDATA_WATCHDOG_WARNING_RELAY_FLAG_ERROR -312 The flag of the warning relay is wrong ADDIDATA_WATCHDOG_RESET_RELAY_FLAG_ERROR -313 The flag of the reset relay is wrong ADDIDATA_ WATCHDOG_ALREADY_USED -314 Watchdog already used by another process or

used as a timer ADDIDATA_WATCHDOG_INFORMATION_STRUCTURE_INVALID_SIZE -315 The specified size is wrong. ADDIDATA_WATCHDOG_RESET_RELAY_MODE_SELECTION_ERROR -316 The specified reset relay mode is wrong. ADDIDATA_WATCHDOG_CREATE_THREAD_ERROR -317 Creating watchdog thread error ADDIDATA_WATCHDOG_GET_MX_EVENT_IDENTIFIER_ERROR -318 Getting watchdog mutex event identifier error

Analog measurement errors ADDIDATA_ ANALOG_MEASURE_CHANNEL_NUMBER_ERROR -400 The channel number is wrong ADDIDATA_ANALOG_MEASURE_CONVERSION_STARTED -401 Conversion already started. Cannot start a new

conversion ADDIDATA_ ANALOG_MEASURE_WARNING_FLAG_ERROR -402 Warning not available ADDIDATA_ ANALOG_MEASURE_CONVERTING_TIME_ERROR -403 The selected converting time value is wrong ADDIDATA_ ANALOG_MEASURE_CONVERTING_TIME_UNIT_ERROR -404 The selected converting time unit is wrong ADDIDATA_ ANALOG_MEASURE_INTERRUPT_FLAG_ERROR -405 Interrupt flag selection error ADDIDATA_ ANALOG_MEASURE_INTERRUPT_NOT_AVAILABLE -406 Interrupt not available ADDIDATA_ ANALOG_MEASURE_WARNING_VALUE_ERROR -407 Warning value selection error ADDIDATA_ ANALOG_MEASURE_CHANNEL_ALREADY_USED -408 Channel already used by another process ADDIDATA_ ANALOG_MEASURE_WARNING_ALREADY_USED -409 Warning already used by another process ADDIDATA_ANALOG_MEASURE_GAIN_ERROR -410 Gain selection is wrong ADDIDATA_ANALOG_MEASURE_POLARITY_PARAMETER_ERROR -411 Polarity parameter is wrong ADDIDATA_ANALOG_MEASURE_OFFSET_RANGE_ERROR -412 Offset range selection is wrong ADDIDATA_ANALOG_MEASURE_CHANNEL_NOT_INITIALISED -413 The channel to convert is not initialised ADDIDATA_ANALOG_MEASURE_POLARITY_MODE_NOT_AVAILABLE -414 Polarity mode is not available ADDIDATA_ANALOG_MEASURE_SCAN_MODE_NOT_AVAILABLE -415 The selected SCAN mode is not available ADDIDATA_ANALOG_MEASURE_SCAN_MODE_PARAMETER_ERROR -416 The SCAN mode parameter is wrong ADDIDATA_ANALOG_MEASURE_EXTERN_TRIGGER_MODE_NOT_AVAILABLE -417 The external trigger mode is not available ADDIDATA_ANALOG_MEASURE_EXTERN_TRIGGER_NOT_AVAILABLE -418 The external trigger is not available ADDIDATA_ANALOG_MEASURE_EXTERN_TRIGGER_PARAMETER_ERROR -419 The external trigger parameter is wrong ADDIDATA_ANALOG_MEASURE_EXTERN_GATE_MODE_NOT_AVAILABLE -420 The external gate mode is not available ADDIDATA_ANALOG_MEASURE_EXTERN_GATE_NOT_AVAILABLE -421 The external gate is not available ADDIDATA_ANALOG_MEASURE_EXTERN_GATE_PARAMETER_ERROR -422 The external gate parameter is wrong ADDIDATA_ANALOG_MEASURE_COMMON_GAIN_ERROR -423 The gain must be the same for all channels ADDIDATA_ANALOG_MEASURE_COMMON_POLARITY_ERROR -424 The polarity must be the same for all channels ADDIDATA_ANALOG_MEASURE_COMMON_OFFSET_RANGE_ERROR -425 The offset range must be the same for all

channels ADDIDATA_ANALOG_MEASURE_SCAN_DELAY_NOT_AVAILABLE -426 The SCAN delay is not available ADDIDATA_ANALOG_MEASURE_SCAN_DELAY_VALUE_ERROR -427 The value for the SCAN delay cannot be used ADDIDATA_ANALOG_MEASURE_INTERRUPT_NOT_INSTALLED -428 The interrupt function is not installed ADDIDATA_ANALOG_MEASURE_SCAN_NOT_INITIALISED -429 The SCAN is not initialised ADDIDATA_ANALOG_MEASURE_MODULE_NOT_AVAILABLE -430 The selected module is not available ADDIDATA_ANALOG_MEASURE_SCAN_ALREADY_STARTED -431 The selected scan is already started ADDIDATA_ANALOG_MEASURE_SCAN_COUNTER_VALUE_ERROR -432 The SCAN counter value is wrong

Page 44: Addidata Handbuch

Common functions ADDIDRIVER

23

ADDIDATA_ANALOG_MEASURE_SCAN_NOT_STARTED -433 The selected SCAN is not started ADDIDATA_ANALOG_MEASURE_SCAN_NOT_STOPPED -434 The selected SCAN is not stopped

Analog measurement errors ADDIDATA_ANALOG_MEASURE_SCAN_SAME_MODULE_REQUIRED -435 All channels for the SCAN process must be

from the same module ADDIDATA_ANALOG_MEASURE_SCAN_NOT_AVAILABLE -436 The SCAN functionality is not available ADDIDATA_ANALOG_MEASURE_SCAN_CHANNEL_SELECTION_ERROR -437 Since the SCAN is determined by hardware, the

channel selection is wrong. The first channel must be the first channel of the module and the last channel must be the last channel of the module.

ADDIDATA_ANALOG_MEASURE_SCAN_DELAY_MODE_NOT_AVAILABLE -438 The selected SCAN delay mode is not available. ADDIDATA_ANALOG_MEASURE_COUPLING_MODE_NOT_AVAILABLE -439 The coupling mode is not available ADDIDATA_ANALOG_MEASURE_COMMON_COUPLING_ERROR -440 The coupling mode must be the same for all

channels ADDIDATA_ANALOG_MEASURE_COUPLING_PARAMETER_ERROR -441 The coupling mode parameter is wrong ADDIDATA_ANALOG_MEASURE_HARDWARE_INDEX_ERROR -442 The module index is not available ADDIDATA_ANALOG_MEASURE_CONVERSION_ERROR -443 The conversion cannot be completed ADDIDATA_ANALOG_MEASURE_INVALID_STRUCTURE -444 The structure passed as a parameter is invalid ADDIDATA_ANALOG_MEASURE_SIGN_TEST_PARAMETER_ERROR -445 The sign test parameter is not available ADDIDATA_ANALOG_MEASURE_EXTERN_TRIGGER_FLAG_ERROR -446 The flag of the hardware trigger is wrong ADDIDATA_ANALOG_MEASURE_EXTERN_TRIGGER_COUNTER_ERROR -447 The selected counter value for the trigger is wrong ADDIDATA_ANALOG_MEASURE_EXTERN_TRIGGER_ALREADY_USED -448 Hardware trigger already initialised by another

process ADDIDATA_ANALOG_MEASURE_EXTERN_TRIGGER_NOT_INITIALISED -449 Hardware trigger not initialised ADDIDATA_ANALOG_MEASURE_SOFTWARE_TRIGGER_NOT_AVAILABLE -450 Software trigger not available ADDIDATA_ANALOG_MEASURE_SOFTWARE_TRIGGER_MODE_NOT_AVAILABLE -451 The selected mode for the software trigger is not

available ADDIDATA_ANALOG_MEASURE_SOFTWARE_TRIGGER_FLAG_ERROR -452 The flag of the software trigger is wrong ADDIDATA_ANALOG_MEASURE_SOFTWARE_TRIGGER_ALREADY_USED -453 Software trigger already initialised by another

process ADDIDATA_ANALOG_MEASURE_SOFTWARE_TRIGGER_NOT_INITIALISED -454 Software trigger not initialised ADDIDATA_ANALOG_MEASURE_EXTERN_GATE_FLAG_ERROR -455 The flag of the hardware gate is wrong ADDIDATA_ANALOG_MEASURE_EXTERN_GATE_ALREADY_USED -456 Hardware gate already initialised by another

process ADDIDATA_ANALOG_MEASURE_EXTERN_GATE_NOT_INITIALISED -457 Hardware gate not initialised ADDIDATA_ANALOG_MEASURE_SEQUENCE_SAME_MODULE_REQUIRED -458 All channels for the sequence process must be

from the same module ADDIDATA_ANALOG_MEASURE_SEQUENCE_DELAY_NOT_AVAILABLE -459 The sequence delay is not available ADDIDATA_ANALOG_MEASURE_SEQUENCE_DELAY_VALUE_ERROR -460 The delay value cannot be used for the sequence ADDIDATA_ANALOG_MEASURE_SEQUENCE_DELAY_TIME_UNIT_ERROR -461 The selected delay time unit is wrong ADDIDATA_ANALOG_MEASURE_SEQUENCE_ALREADY_STARTED -462 The selected sequence is already started ADDIDATA_ANALOG_MEASURE_SEQUENCE_COUNTER_VALUE_ERROR -463 The number of selected sequences is wrong ADDIDATA_ANALOG_MEASURE_SEQUENCE_INTERRUPT_COUNTER_VALUE_ERROR -464 The number of interrupt sequences is wrong ADDIDATA_ANALOG_MEASURE_SEQUENCE_NOT_STARTED -465 The selected sequence is not started ADDIDATA_ANALOG_MEASURE_SEQUENCE_NOT_STOPPED -466 The selected sequence is not stopped ADDIDATA_ANALOG_MEASURE_SEQUENCE_CHANNEL_SELECTION_ERROR -467 Since the sequence is determined by hardware,

the channel selection is wrong. The first channel must be the first channel of the module and the last channel must be the last channel of the module.

ADDIDATA_ANALOG_MEASURE_SEQUENCE_DELAY_MODE_NOT_AVAILABLE -468 The selected sequence delay mode is not available.

ADDIDATA_ANALOG_MEASURE_SEQUENCE_NO_FREE_HANDLE_FOUND -469 No free handle found for the sequence initialisation. Max 10 handles for one module available

ADDIDATA_ANALOG_MEASURE_SEQUENCE_MEMORY_ALLOCATION_ERROR -470 Sequence memory allocation error. ADDIDATA_ANALOG_MEASURE_SEQUENCE_DESCRIPTION_LIST_CREATION_ERROR -471 Error in the memory allocation for the sequence

description list ADDIDATA_ANALOG_MEASURE_SEQUENCE_HANDLE_ERROR -472 Selected sequence handle is wrong ADDIDATA_ANALOG_MEASURE_SEQUENCE_DELAY_MODE_SETTING_ERROR -473 Error by initialising the sequence delay ADDIDATA_ANALOG_MEASURE_SEQUENCE_DESCRIPTION_LIST_SETTING_ERROR -474 Error in the initialisation of the sequence

description list ADDIDATA_ANALOG_MEASURE_SEQUENCE_RESET_DESCRIPTION_LIST_ERROR -475 Error by resetting the sequence description list

Page 45: Addidata Handbuch

ADDIDRIVER Common functions

24

ADDIDATA_ANALOG_MEASURE_SEQUENCE_ENABLE_TRANSFER_ERROR -476 Error for enabling the transfer sequence ADDIDATA_ANALOG_MEASURE_SEQUENCE_START_TRANSFER_ERROR -477 Error for starting the transfer sequence ADDIDATA_ANALOG_MEASURE_SEQUENCE_STOP_TRANSFER_ERROR -478 Error for stopping the transfer sequence ADDIDATA_ANALOG_MEASURE_SEQUENCE_CONTINUE_TRANSFER_ERROR -479 Error for continuing the transfer sequence ADDIDATA_ANALOG_MEASURE_SEQUENCE_PAUSE_TRANSFER_ERROR -480 Error by transfer sequence pause ADDIDATA_ANALOG_MEASURE_SEQUENCE_ABORT_TRANSFER_ERROR -481 Error for aborting the transfer sequence ADDIDATA_ANALOG_MEASURE_SEQUENCE_ENABLE_TRANSFER_INTERRUPT_ERROR -482 Error by enabling the interrupt of the transfer

sequence ADDIDATA_ANALOG_MEASURE_SEQUENCE_DISABLE_TRANSFER_INTERRUPT_ERROR -483 Error by disabling the interrupt of the transfer

sequence ADDIDATA_ANALOG_MEASURE_SEQUENCE_MODULE_INITIALISATION_ERROR -484 Error in the initialisation of the sequence list ADDIDATA_ANALOG_MEASURE_SEQUENCE_MODULE_MODE_INITIALISATION_ERROR -485 Error in the initialisation of the sequence mode ADDIDATA_ANALOG_MEASURE_SEQUENCE_MODULE_MODE_CLEAR_INDEX_ERROR -486 Error by clearing the sequence index ADDIDATA_ANALOG_MEASURE_SEQUENCE_MODULE_START_ERROR -487 Error by starting the sequence module ADDIDATA_ANALOG_MEASURE_SEQUENCE_MODULE_PAUSE_ERROR -488 Error in the pause of the sequence module ADDIDATA_ANALOG_MEASURE_SEQUENCE_MODULE_STOP_ERROR -489 Error by stopping the sequence module ADDIDATA_TRANSDUCER_TYPE_SELECTION_ERROR -490 Selected transducer type is not available ADDIDATA_TRANSDUCER_FREQUENCY_SELECTION_ERROR -491 Selected frequency for the selected transducer is

not available ADDIDATA_TRANSDUCER_PRIMARY_MODULE_CONNECTION_TEST_ALREADY_USED -492 Transducer module connection test already

initialised by another process ADDIDATA_TRANSDUCER_PRIMARY_MODULE_CONNECTION_FLAG_ERROR -493 The flag of the primary connection test is wrong ADDIDATA_TRANSDUCER_NO_SENSOR_CONNECTED -494 No transducer connected to the module ADDIDATA_ANALOG_MEASURE_AUTO_REFRESH_NOT_STARTED -495 Auto refresh acquisition not started ADDIDATA_ANALOG_MEASURE_AUTO_REFRESH_NOT_STOPPED -496 Auto refresh acquisition not stopped ADDIDATA_TRANSDUCER_PRIMARY_SHORT_CIRCUIT_OCCUR -497 Primary short circuit occurred ADDIDATA_ANALOG_MEASURE_SEQUENCE_SAME_FREQUENCY_REQUIRED -498 Same frequency required for all transducers ADDIDATA_ANALOG_MEASURE_EXTERN_TRIGGER_CYCLE_ERROR -499 Hardware trigger cycle counter value is wrong ADDIDATA_ANALOG_MEASURE_CONVERT_TIME_DIVISION_FACTOR_ALREADY_USED -900 Conversion time division factor already

initialised by another process ADDIDATA_ANALOG_MEASURE_CONVERT_TIME_DIVISION_FACTOR_VALUE_ERROR -901 Convert time division factor selection is wrong ADDIDATA_ANALOG_MEASURE_CONVERT_TIME_DIVISION_FACTOR_NOT_INITIALISED -902 Convert time division factor not initialised ADDIDATA_ANALOG_MEASURE_CREATE_THREAD_ERROR -903 Thread error created ADDIDATA_ANALOG_MEASURE_CHANNEL_GROUP_INITIALISATION_NOT_THE_SAME -904 Channel group initialisation is not the same ADDIDATA_ANALOG_MEASURE_AVERAGE_VALUE_ERROR -905 Average value error

Digital input errors ADDIDATA_DIGITAL_INPUT_CHANNEL_NUMBER_ERROR -500 The number of the digtal input channel is wrong ADDIDATA_DIGITAL_INPUT_PORT_NUMBER_ERROR -501 The number of the digtal input port is wrong ADDIDATA_DIGITAL_INPUT_ACCESS_ERROR -502 No digital input access port is available ADDIDATA_DIGITAL_INPUT_INTERRUPT_ALREADY_USED -503 The digital input interrupt is already used ADDIDATA_DIGITAL_INPUT_INTERRUPT_ALREADY_RELEASED -504 The digital input interrupt is already released ADDIDATA_DIGITAL_INPUT_INTERRUPT_FLAG_ERROR -505 The digital input interrupt flag is wrong ADDIDATA_DIGITAL_INPUT_INTERRUPT_LOGIC_ERROR -506 The digital input interrupt logic is wrong ADDIDATA_DIGITAL_INPUT_INFORMATION_STRUCTURE_INVALID_SIZE -507 The structure size passed is invalid ADDIDATA_DIGITAL_INPUT_LEVEL_VALUE_SELECTION_ERROR -508 The selection of the input level value is invalid ADDIDATA_DIGITAL_INPUT_CHANNEL_ARRAY_SIZE_ERROR -509 The channel array size passed is invalid ADDIDATA_DIGITAL_INPUT_CHANNEL_SELECTION_ERROR -510 The number of the digtal input channel is wrong ADDIDATA_DIGITAL_INPUT_MODULE_SELECTION_ERROR -511 The number of the digital input module is wrongADDIDATA_DIGITAL_INPUT_FILTER_UNIT_ERROR -512 The selected time unit for the filter is wrong ADDIDATA_DIGITAL_INPUT_FILTER_DELAY_VALUE_ERROR -513 Error in the filter time selection ADDIDATA_DIGITAL_INPUT_FILTER_NOT_INITIALISED -514 Digital input filter not initialised ADDIDATA_DIGITAL_INPUT_FILTER_FLAG_ERROR -515 The digital input filter flag parameter is wrong ADDIDATA_DIGITAL_INPUT_LEVEL_FLAG_ERROR -516 The digital input level flag parameter is wrong ADDIDATA_DIGITAL_INPUT_MASK_ERROR -517 The set mask for digital input interrupt is wrong

Page 46: Addidata Handbuch

Common functions ADDIDRIVER

25

Constant Return value Meaning

Digital output errors

ADDIDATA_DIGITAL_OUTPUT_CHANNEL_NUMBER_ERROR -600 The number of the digtal output channel is wrong ADDIDATA_DIGITAL_OUTPUT_PORT_NUMBER_ERROR -601 The number of the digtal output port is wrong ADDIDATA_DIGITAL_OUTPUT_VALUE_ERROR -602 The digital output value is wrong ADDIDATA_DIGITAL_OUTPUT_ACCESS_ERROR -603 No digital output access port is available ADDIDATA_DIGITAL_OUTPUT_MEMORY_ALREADY_ENABLED -604 The digital output memory is already active ADDIDATA_DIGITAL_OUTPUT_MEMORY_ALREADY_DISABLED -605 The digital output memory is already deactivated ADDIDATA_DIGITAL_OUTPUT_INTERRUPT_ALREADY_USED -606 The digital output interrupt is already used ADDIDATA_DIGITAL_OUTPUT_INTERRUPT_ALREADY_RELEASED -607 The digital output interrupt is already released ADDIDATA_DIGITAL_OUTPUT_INTERRUPT_FLAG_ERROR -608 The digital output interrupt flag is wrong

Analog output errors ADDIDATA_ANALOG_OUTPUT_CHANNEL_NUMBER_ERROR -700 The analog output channel number is wrong ADDIDATA_ANALOG_OUTPUT_VOLTAGE_MODE_ERROR -701 The analog output voltage mode is wrong ADDIDATA_ANALOG_OUTPUT_POLARITY_ERROR -702 The analog output polarity is wrong ADDIDATA_ANALOG_OUTPUT_VALUE_ERROR -703 The analog output value is wrong ADDIDATA_ANALOG_OUTPUT_ENABLE_DISABLE_SYNC_ERROR -704 No analog output synchronisation is available ADDIDATA_ANALOG_OUTPUT_ALREADY_USED -705 Analog output channel already used by another process ADDIDATA_ANALOG_OUTPUT_TIMEOUT -706 Timeout has occurred ADDIDATA_ANALOG_OUTPUT_TIMEOUT_ERROR -707 Conversion timeout for the analog outputs could not be

measured ADDIDATA_ANALOG_OUTPUT_ALREADY_RELEASED -708 Analog output already released

Error sources

Common function errors

pdw_ErrorSource Pdw_ErrorSource contain Timer errors ADDIDATA_TIMER_NUMBER_ERROR The selected timer number ADDIDATA_TIMER_RELOAD_VALUE_ERROR The selected wrong timer reload value ADDIDATA_TIMER_UNIT_ERROR The selected wrong time unit ADDIDATA_TIMER_MODE_ERROR The selected wrong timer mode ADDIDATA_TIMER_INTERRUPT_FLAG_ERROR Timer selected wrong interrupt flag ADDIDATA_TIMER_HARDWARE_GATE_ LEVEL_ERROR Timer selected wrong hardware gate ADDIDATA_TIMER_HARDWARE_GATE_LEVEL_SELECTION_ERROR The selected wrong hardware gate level ADDIDATA_TIMER_HARDWARE_GATE_FLAG_ERROR The selected wrong flag of the hardware gate ADDIDATA_TIMER_HARDWARE_TRIGGER_ LEVEL_ERROR Timer selected wrong hardware trigger level ADDIDATA_TIMER_HARDWARE_TRIGGER_LEVEL_SELECTION_ERROR Hardware selected wrong trigger level ADDIDATA_TIMER_HARDWARE_TRIGGER_FLAG_ERROR The selected wrong flag of the hardware trigger ADDIDATA_TIMER_HARDWARE_OUTPUT_ LEVEL_ERROR Timer selected wrong output level selection ADDIDATA_TIMER_HARDWARE_OUTPUT_LEVEL_SELECTION_ERROR Timer selected wrong output level selection ADDIDATA_TIMER_HARDWARE_OUTPUT_FLAG_ERROR The selected wrong flag of the timer output ADDIDATA_TIMER_ALREADY_USED The selected wrong timer number Counter errors ADDIDATA_COUNTER_NUMBER_ERROR The selected wrong counter number ADDIDATA_COUNTER_RELOAD_VALUE_ERROR The selected wrong counter reload value ADDIDATA_COUNTER_COUNTER_UP_DOWN_FLAG_ERROR Counter selected wrong Up/Down selection ADDIDATA_COUNTER_INPUT_LEVEL_ERROR Counter selected wrong input level selection ADDIDATA_COUNTER_INTERRUPT_FLAG_ERROR Counter selected wrong interrupt flag ADDIDATA_COUNTER_HARDWARE_GATE_ LEVEL_ERROR Counter selected wrong hardware gate ADDIDATA_COUNTER_HARDWARE_GATE_LEVEL_SELECTION_ERROR The selected wrong hardware gate level ADDIDATA_COUNTER_HARDWARE_GATE_FLAG_ERROR The selected wrong hardware flag ADDIDATA_COUNTER_HARDWARE_TRIGGER_ LEVEL_ERROR Counter selected wrong hardware trigger ADDIDATA_COUNTER_HARDWARE_TRIGGER_LEVEL_SELECTION_ERROR Hardware selected wrong trigger level

Page 47: Addidata Handbuch

ADDIDRIVER Common functions

26

ADDIDATA_COUNTER_HARDWARE_TRIGGER_FLAG_ERROR The selected wrong hardware trigger flag ADDIDATA_COUNTER_HARDWARE_OUTPUT_ LEVEL_ERROR Counter selected wrong output level ADDIDATA_COUNTER_HARDWARE_OUTPUT_LEVEL_SELECTION_ERROR Counter selected wrong output level ADDIDATA_COUNTER_HARDWARE_OUTPUT_FLAG_ERROR The selected wrong flag of the counter output ADDIDATA_COUNTER_ALREADY_USED The selected wrong counter number Watchdog errors ADDIDATA_WATCHDOG_NUMBER_ERROR The selected wrong watchdog number ADDIDATA_WATCHDOG_DELAY_VALUE_ERROR The selected wrong watchdog delay ADDIDATA_WATCHDOG_UNIT_ERROR The selected wrong watchdog unit ADDIDATA_WATCHDOG_INTERRUPT_FLAG_ERROR The selected wrong interrupt flag ADDIDATA_WATCHDOG_HARDWARE_GATE_LEVEL_ERROR The selected wrong watchdog hardware gate ADDIDATA_WATCHDOG_HARDWARE_GATE_LEVEL_SELECTION_ERROR The selected wrong hardware gate level ADDIDATA_WATCHDOG_HARDWARE_GATE_FLAG_ERROR The selected wrong hardware gate flag ADDIDATA_WATCHDOG_HARDWARE_TRIGGER_ LEVEL_ERROR The selected wrong watchdog hardware trigger ADDIDATA_WATCHDOG_HARDWARE_TRIGGER_LEVEL_SELECTION_ERROR

The selected wrong hardware trigger level

ADDIDATA_WATCHDOG_HARDWARE_TRIGGER_FLAG_ERROR The selected wrong hardware trigger flag ADDIDATA_WARNING_DELAY_VALUE_ERROR The selected wrong warning delay value ADDIDATA_WARNING_DELAY_TIME_UNIT_ERROR The selected wrong warning time unit ADDIDATA_WATCHDOG_WARNING_RELAY_FLAG_ERROR The selected wrong warning relay flag ADDIDATA_WATCHDOG_RESET_RELAY_FLAG_ERROR The selected wrong reset relay flag ADDIDATA_ WATCHDOG_ALREADY_USED The selected wrong watchdog number ADDIDATA_WATCHDOG_RESET_RELAY_MODE_SELECTION_ERROR The selected wrong reset relay mode. Analog measure errors ADDIDATA_ ANALOG_MEASURE_CHANNEL_NUMBER_ERROR The selected wrong channel number ADDIDATA_ANALOG_MEASURE_CONVERSION_STARTED The selected wrong channel number ADDIDATA_ ANALOG_MEASURE_CONVERTING_TIME_ERROR The selected wrong converting time value ADDIDATA_ ANALOG_MEASURE_CONVERTING_TIME_UNIT_ERROR The selected wrong converting time unit ADDIDATA_ ANALOG_MEASURE_INTERRUPT_FLAG_ERROR The selected wrong interrupt flag ADDIDATA_ANALOG_MEASURE_INTERRUPT_NOT_AVAILABLE The selected wrong channel number ADDIDATA_ ANALOG_MEASURE_WARNING_VALUE_ERROR The selected wrong warning value ADDIDATA_ ANALOG_MEASURE_CHANNEL_ALREADY_USED The selected wrong channel number ADDIDATA_ ANALOG_MEASURE_WARNING_ALREADY_USED The selected wrong channel number ADDIDATA_ANALOG_MEASURE_GAIN_ERROR The selected wrong gain ADDIDATA_ANALOG_MEASURE_POLARITY_PARAMETER_ERROR The selected wrong polarity ADDIDATA_ANALOG_MEASURE_OFFSET_RANGE_ERROR The selected wrong offset range ADDIDATA_ANALOG_MEASURE_CHANNEL_NOT_INITIALISED The selected wrong channel number ADDIDATA_ANALOG_MEASURE_POLARITY_MODE_NOT_AVAILABLE The selected wrong polarity mode ADDIDATA_ANALOG_MEASURE_SCAN_MODE_NOT_AVAILABLE The selected wrong channel number ADDIDATA_ANALOG_MEASURE_SCAN_MODE_PARAMETER_ERROR The selected wrong SCAN mode ADDIDATA_ANALOG_MEASURE_EXTERN_TRIGGER_MODE_NOT_AVAILABLE

The selected wrong external trigger mode

ADDIDATA_ANALOG_MEASURE_EXTERN_TRIGGER_NOT_AVAILABLE The selected wrong channel number ADDIDATA_ANALOG_MEASURE_EXTERN_TRIGGER_PARAMETER_ERROR The selected wrong external trigger parameter ADDIDATA_ANALOG_MEASURE_EXTERN_GATE_MODE_NOT_AVAILABLE The selected wrong external gate mode ADDIDATA_ANALOG_MEASURE_EXTERN_GATE_NOT_AVAILABLE The selected wrong channel number ADDIDATA_ANALOG_MEASURE_EXTERN_GATE_PARAMETER_ERROR The selected wrong external gate parameter ADDIDATA_ANALOG_MEASURE_COMMON_GAIN_ERROR The selected wrong channel number ADDIDATA_ANALOG_MEASURE_COMMON_POLARITY_ERROR The selected wrong channel number ADDIDATA_ANALOG_MEASURE_COMMON_OFFSET_RANGE_ERR OR The selected wrong channel number ADDIDATA_ANALOG_MEASURE_SCAN_DELAY_NOT_AVAILABLE The selected wrong SCAN delay mode ADDIDATA_ANALOG_MEASURE_SCAN_DELAY_VALUE_ERROR The selected wrong SCAN delay value ADDIDATA_ANALOG_MEASURE_SCAN_NOT_INITIALISED The selected wrong SCAN handle ADDIDATA_ANALOG_MEASURE_MODULE_NOT_AVAILABLE The selected wrong module number ADDIDATA_ANALOG_MEASURE_SCAN_ALREADY_STARTED The selected SCAN handle ADDIDATA_ANALOG_MEASURE_SCAN_COUNTER_VALUE_ERROR The selected wrong SCAN counter value ADDIDATA_ANALOG_MEASURE_SCAN_NOT_STARTED The selected SCAN handle ADDIDATA_ANALOG_MEASURE_SCAN_NOT_STOPPED The selected SCAN handle ADDIDATA_ANALOG_MEASURE_SCAN_SAME_MODULE_REQUIRED The selected wrong channel number ADDIDATA_ANALOG_MEASURE_SCAN_NOT_AVAILABLE The selected wrong channel number ADDIDATA_ANALOG_MEASURE_SCAN_CHANNEL_SELECTION_ERROR The selected wrong channel number ADDIDATA_ANALOG_MEASURE_SCAN_DELAY_MODE_NOT_AVAILABLE The selected wrong SCAN delay mode ADDIDATA_ANALOG_MEASURE_COUPLING_MODE_NOT_AVAILABLE The selected wrong channel number ADDIDATA_ANALOG_MEASURE_COMMON_COUPLING_ERROR The selected wrong channel number ADDIDATA_ANALOG_MEASURE_COUPLING_PARAMETER_ERROR The selected wrong coupling mode parameter ADDIDATA_ANALOG_MEASURE_SIGN_TEST_PARAMETER_ERROR The selected wrong sign test parameter

Page 48: Addidata Handbuch

Common functions ADDIDRIVER

27

Digital input errors ADDIDATA_DIGITAL_INPUT_CHANNEL_NUMBER_ERROR The selected wrong digital input channel ADDIDATA_DIGITAL_INPUT_PORT_NUMBER_ERROR The selected wrong digital input port ADDIDATA_DIGITAL_INPUT_INTERRUPT_ALREADY_USED The selected wrong digital input channel ADDIDATA_DIGITAL_INPUT_INTERRUPT_ALREADY_RELEASED

The selected wrong digital input channel

ADDIDATA_DIGITAL_INPUT_INTERRUPT_FLAG_ERROR The selected wrong digital input channel ADDIDATA_DIGITAL_INPUT_INTERRUPT_LOGIC_ERROR The selected wrong digital input channel

Digital output errors ADDIDATA_DIGITAL_OUTPUT_CHANNEL_NUMBER_ERROR The selected wrong digital output channel ADDIDATA_DIGITAL_OUTPUT_PORT_NUMBER_ERROR The selected wrong digital output port ADDIDATA_DIGITAL_OUTPUT_VALUE_ERROR The selected wrong digital output channel ADDIDATA_DIGITAL_OUTPUT_INTERRUPT_ALREADY_USED The selected wrong digital output channel ADDIDATA_DIGITAL_OUTPUT_INTERRUPT_ALREADY_RELEASED The selected wrong digital output channel ADDIDATA_DIGITAL_OUTPUT_INTERRUPT_FLAG_ERROR The selected wrong digital output channel Analog output errors ADDIDATA_ANALOG_OUTPUT_CHANNEL_NUMBER_ERROR The selected wrong analog output channel ADDIDATA_ANALOG_OUTPUT_VOLTAGE_MODE_ERROR The selected wrong analog output channel ADDIDATA_ANALOG_OUTPUT_POLARITY_ERROR The selected wrong analog output channel ADDIDATA_ANALOG_OUTPUT_VALUE_ERROR The selected wrong analog output channel ADDIDATA_ANALOG_OUTPUT_ALREADY_USED The selected wrong analog output channel ADDIDATA_ANALOG_OUTPUT_TIMEOUT The selected wrong analog output channel ADDIDATA_ANALOG_OUTPUT_TIMEOUT_ERROR The selected wrong analog output channel ADDIDATA_ANALOG_OUTPUT_ALREADY_RELEASED The selected wrong analog output channel

Calling convention: ANSI C : WORD w_FunctionNumber; INT i_ErrorCode; INT i_ErrorLevel; INT i_ReturnValue; DWORD dw_ErrorSource; i_ReturnValue = i_ADDIDATA_GetLastErrorAndSource (dw_DriverHandle, &w_FunctionNumber, &i_ErrorCode, &i_ErrorLevel, &dw_ErrorSource); Return value: 0: No error 1: Error message present - 101: Function cannot be called up in the user interrupt routine

- 102: Error message not found

Page 49: Addidata Handbuch

ADDIDRIVER Common functions

28

Counter errors ADDIDATA_COUNTER_NUMBER_ERROR -800 The selected counter number is wrong ADDIDATA_COUNTER_RELOAD_VALUE_ERROR -801 The counter reload value is wrong ADDIDATA_COUNTER_COUNTER_UP_DOWN_FLAG_ERROR -802 Counter Up/Down selection error ADDIDATA_COUNTER_INPUT_LEVEL_ERROR -803 Counter input level selection error ADDIDATA_COUNTER_INTERRUPT_FLAG_ERROR -804 Counter interrupt flag is wrong ADDIDATA_COUNTER_HARDWARE_GATE_ LEVEL_ERROR -805 Counter hardware gate not available ADDIDATA_COUNTER_HARDWARE_GATE_LEVEL_SELECTION_ERROR -806 The selected hardware gate level is wrong ADDIDATA_COUNTER_HARDWARE_GATE_FLAG_ERROR -807 The flag of the hardware gate is wrong ADDIDATA_COUNTER_HARDWARE_TRIGGER_ LEVEL_ERROR -808 Counter hardware trigger not available ADDIDATA_COUNTER_HARDWARE_TRIGGER_LEVEL_SELECTION_ERROR -809 Hardware trigger level selection error ADDIDATA_COUNTER_HARDWARE_TRIGGER_FLAG_ERROR -810 The flag of the hardware trigger is wrong ADDIDATA_COUNTER_HARDWARE_OUTPUT_ LEVEL_ERROR -811 Counter output not available ADDIDATA_COUNTER_HARDWARE_OUTPUT_LEVEL_SELECTION_ERROR -812 Counter output level selection error ADDIDATA_COUNTER_HARDWARE_OUTPUT_FLAG_ERROR -813 The flag of the counter output is wrong ADDIDATA_COUNTER_ALREADY_USED -814 Counter already used by another process or used as a

watchdog ADDIDATA_COUNTER_INFORMATION_STRUCTURE_INVALID_SIZE -815 The specified size is wrong.

Calling convention: ANSI C : WORD w_FunctionNumber; INT i_ErrorCode; INT i_ErrorLevel; INT i_ReturnValue;

i_ReturnValue = i_ADDIDATA_GetLastError (dw_DriverHandle, &w_FunctionNumber, &i_ErrorCode, &b_ErrorLevel); Return value: 0: No error 1: Error message present - 101: Function cannot be called up in the user interrupt routine - 102: Error message not found

Page 50: Addidata Handbuch

Common functions ADDIDRIVER

3) b_ADDIDATA_EnableErrorMessage (...)

IMPORTANT! This function is only available for 32-bit operating systems

Syntax: <Return value> = b_ADDIDATA_EnableErrorMessage (DWORD dw_DriverHandle, HANDLE h_WndHandle, WORD w_Message) Parameters: - Input: DWORD dw_DriverHandle Handle of the driver HANDLE h_WndHandle Handle of the process/task WORD w_Message Number of the message to be sent - Output: No output has occurred. Task: Allows the transmission of a message to a process or task, when an error has occurred by calling up an ADDI-DATA API function. Calling convention: ANSI C : BYTE b_ReturnValue; HANDLE h_WndHandle; b_ReturnValue = b_ADDIDATA_EnableErrorMessage (dw_DriverHandle h_WndHandle WM_USER);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source. • To receive the error message under Visual C++ proceed as follows:

In the CALLBACK WndProc(HWND hWnd, UINT nMessage, WPARAM

wParam, LPARAM lParam) function, add the case WM_USER.

29

Page 51: Addidata Handbuch

ADDIDRIVER Common functions

• To receive the error message under Delphi proceed as follows:

// Declare the message const CM_ERRORMESSAGE = WM_USER; // Declare the function to be called up when the message occurs TSampleForm = class(TForm) ExecutionBox: TGroupBox; ... protected procedure CMErrorMessage(var Message: TMessage);

message CM_ERRORMESSAGE; private { Private-Deklarationen } public { Public-Deklarationen } end; // Delphi will call up this function once the message has occurred procedure TSampleForm.CMErrorMessage(var Message:

TMessage); Begin ... inherited; end;

WARNING! Call up the function b_ADDIDATA_EnableErrorMessageEnable only once the window is active.

the creating method of the window, the windows is active only at the end of the creating

not proceed in this way, the GetActiveWindow () will return 0.

Inmethod. If you do No message can then be returned.

30

Page 52: Addidata Handbuch

Common functions ADDIDRIVER

4) b_ADDIDATA_DisableErrorMessage (...)

Syntax: <Return value> = b_ADDIDATA_DisableErrorMessage (DWORD dw_DriverHandle) Parameters: - Input: DWORD dw_DriverHandle Handle of the driver - Output: No output has occurred. Task: Disables the transmission of a message to a process or task, when an error has occurred by calling up an ADDI-DATA API function.

IMPORTANT! This function is only available for 32-bit operating systems.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_DisableErrorMessage (dw_DriverHandle);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

• To receive the error message under Visual C++ proceed as follows:

In the CALLBACK WndProc(HWND hWnd, UINT nMessage, WPARAM

wParam, LPARAM lParam) function, add the case WM_USER.

• To receive the error message under Delphi proceed as follows:

// Declare the message const CM_ERRORMESSAGE = WM_USER; // Declare the function to be called up when the message occurs TSampleForm = class(TForm) ExecutionBox: TGroupBox; ... protected procedure CMErrorMessage(var Message: TMessage);

message CM_ERRORMESSAGE; private { Private-Deklarationen }

31

Page 53: Addidata Handbuch

ADDIDRIVER Common functions

public { Public-Deklarationen } end; // Delphi will call up this function once the message has occurred procedure TSampleForm.CMErrorMessage(var Message:

TMessage); Begin ... inherited; end;

WARNING! Call up the function b_ADDIDATA_EnableErrorMessageEnable only once the window is active.

In the creating method of the window, the windows is active only at the end of the

ed in this way, the GetActiveWindow () will return 0. creating method. If you do not proceNo message can then be returned.

32

Page 54: Addidata Handbuch

Common functions ADDIDRIVER

33

5) b_ADDIDATA_FormatErrorMessage (...)

Syntax: <Return value> = b_ADDIDATA_FormatErrorMessage (DWORD dw_DriverHandle INT i_ErrorNumber, PCHAR pc_ErrorString, WORD w_ErrorStringSize, WORD w_FunctionNumber, PCHAR pc_FunctionName, WORD w_FunctionStringSize) Parameters: - Input: DWORD dw_DriverHandle Handle of the driver INT i_ErrorNumber Error code of the function "i_ADDIDATA_GetLastError" WORD w_ErrorStringSize Size of the pc_ErrorString parameter. WORD w_FunctionNumber Function number. This information is transmitted through the function "i_ADDIDATA_GetLastError" WORD w_FunctionStringSize Size of the pc_FunctionName parameter. - Output: PCHAR pc_ErrorString Character string including the error PCHAR pc_FunctionName Character string including the name of the function which has generated the error. Task: Returns the character strings of the error and of the function name for the i_ErrorNumber and pc_FunctionName parameters. Calling convention: ANSI C : BYTE b_ReturnValue; CHAR c_ErrorString[50]; CHAR c_FunctionName[50]; b_ReturnValue = i_ADDIDATA_FormatErrorMessage (dw_DriverHandle -100, c_ErrorString, sizeof (c_ErrorString), 301, c_FunctionName, sizeof (c_FunctionName));

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 55: Addidata Handbuch

DIN EN ISO 9001:2000 certified

ADDI-DATA GmbHAirpark Business CenterAirport Boulevard B210

77836 RheinmünsterGermany

Phone: +49 7229 1847–0Fax: +49 7229 1847–222

E-mail: [email protected]

Software description

ADDIDRIVER

Digital input channels

Edition: 07.04– 08/2010

Page 56: Addidata Handbuch

Table of contents ADDIDRIVER

I

1 INTRODUCTION...................................................................................1

2 DIGITAL INPUT CHANNELS....................................................................2

1) b_ADDIDATA_GetNumberOfDigitalInputs (...) .................................................................. 2 2) b_ADDIDATA_GetDigitalInputInformation (…)................................................................. 3 3) b_ADDIDATA_GetDigitalInputInformationEx (...) ............................................................. 4 4) b_ADDIDATA_Read1DigitalInput (...) ................................................................................ 6 5) b_ADDIDATA_Read1DigitalInputStatus (...)....................................................................... 7 6) b_ADDIDATA_Read1DigitalInputValue (...)....................................................................... 8 7) b_ADDIDATA_Convert1DigitalInputValueInAnalogValue (...) ......................................... 9 8) b_ADDIDATA_Read2DigitalInputs (...)............................................................................. 10 9) b_ADDIDATA_Read2DigitalInputStatus (...)..................................................................... 11 10) b_ADDIDATA_ReadMoreDigitalInputValue (...) ............................................................ 12 11) b_ADDIDATA_Read4DigitalInputs (...)........................................................................... 13 12) b_ADDIDATA_Read4DigitalInputStatus (...)................................................................... 14 13) b_ADDIDATA_Read8DigitalInputs (...)........................................................................... 15 14) b_ADDIDATA_Read8DigitalInputStatus (...)................................................................... 16 15) b_ADDIDATA_Read16DigitalInputs (...)......................................................................... 17 16) b_ADDIDATA_Read16DigitalInputStatus (...)................................................................. 18 17) b_ADDIDATA_Read32DigitalInputs (...)......................................................................... 19 18) b_ADDIDATA_Init1DigitalInputLevel (...) ...................................................................... 20 19) b_ADDIDATA_InitDigitalInputInterrupt (...) ................................................................... 21 20) b_ADDIDATA_ReleaseDigitalInputInterrupt (...) ............................................................ 26 21) b_ADDIDATA_EnableDisableDigitalInputInterrupt (...) ................................................. 27 22) b_ADDIDATA_Init1DigitalInputLevel (...) ...................................................................... 28 23) b_ADDIDATA_SaveDigitalInputModuleLevel (...) ......................................................... 29 24) b_ADDIDATA_Read1DigitalInputStatus (...)................................................................... 30 25) b_ADDIDATA_ReadMoreDigitalInputStatus (...)............................................................ 31 26) b_ADDIDATA_Read1DigitalInputValue (...)................................................................... 32 27) b_ADDIDATA_ReadMoreDigitalInputValue (...) ............................................................ 33 28) b_ADDIDATA_Convert1DigitalInputValueInAnalogValue (...) ..................................... 34 29) b_ADDIDATA_GetDigitalInputModuleFilterInformation (...)......................................... 35 30) b_ADDIDATA_InitDigitalInputModuleFilter (...)............................................................ 37 31) b_ADDIDATA_EnableDisableDigitalInputModuleFilter (...) .......................................... 38 32) b_ADDIDATA_SetDigitalInputModuleLevelSelection (...) ............................................. 39 33) b_ADDIDATA_TestDigitalInputAsynchronousFIFOFull (…) ........................................ 40

Tables

Table 1-1: Type Declaration for Windows 98/NT/2000/XP ........................................................1 Table 2-1: Principle of the AND logic (for 2 channels) ...........................................................24 Table 2-2: Filter timer units Table 2-3: Resolution ................................................................35

Page 57: Addidata Handbuch

Introduction ADDIDRIVER

1

1 INTRODUCTION

IMPORTANT! Please note the following conventions in the text:

Function: "b_ADDIDATA_GetNumberOfAnalogInputs" Variable dw_DriverHandle

Table 1-1: Type Declaration for Windows 98/NT/2000/XP

Borland C Microsoft C Borland Pascal

Microsoft Visual Basic

Windows VOID void void pointer any

BYTE unsigned char unsigned char byte integer

INT int int integer integer

WORD unsigned short int unsigned short int long long

DWORD long long longint long

PBYTE unsigned char * unsigned char * var byte integer

PINT int * int * var integer integer

PWORD unsigned short int * unsigned short int * var long long

PCHAR char * char * var string string

PDWORD long * long * var longint long

DOUBLE double double double double

Page 58: Addidata Handbuch

ADDIDRIVER Digital input channels

2

2 DIGITAL INPUT CHANNELS

1) b_ADDIDATA_GetNumberOfDigitalInputs (...)

Syntax: <Return value> = b_ADDIDATA_GetNumberOfDigitalInputs (DWORD dw_DriverHandle, PWORD pw_NumberOfChannels)

Parameters: - Input: DWORD dw_DriverHandle Driver handle - Output: PWORD pw_NumberOfChannels Number of digital input channels

Task: Returns the number of digital input channels.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_NumberOfChannels; b_ReturnValue = b_ADDIDATA_GetNumberOfDigitalInput (dw_DriverHandle, &w_NumberOfChannels);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 59: Addidata Handbuch

Digital input channels ADDIDRIVER

3

2) b_ADDIDATA_GetDigitalInputInformation (…) Syntax: <Return value> = b_ADDIDATA_ GetDigitalInputInformation (DWORD dw_DriverHandle, WORD w_DigitalInputNumber, PBYTE pb_DigitalInputType, PDWORD pdw_DigitalInputInterrupt) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_DigitalInputNumber Number of the selected digital input - Output: PBYTE pb_DigitalInputType Type of the selected input

0x00 Input type not defined 1 – 15 5V type 16 – 31 12 type 32 – 47 24 type 48 – 255 Any other type

PDWORD pdw_DigitalInputInterrupt Available interrupt for the input Task: Returns information about the digital input channels.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_DigitalInputType; DWORD dw_DigitalInputInterrupt; b_ReturnValue = b_ADDIDATA_GetDigitalInputInformation (dw_DriverHandle, 0, &b_DigitalInputType, &dw_DigitalInputInterrupt);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 60: Addidata Handbuch

ADDIDRIVER Digital input channels

4

3) b_ADDIDATA_GetDigitalInputInformationEx (...) Syntax: <Return value> = b_ADDIDATA_ GetDigitalInputInformationEx (DWORD dw_DriverHandle, WORD w_DigitalInputNumber, pstr_GetDigitalInputInformation ps_DigitalInputInformation, DWORD dw_StructSize) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_DigitalInputNumber Number of the selected digital input DWORD dw_StructSize Size of the Digital Input Information Structure. (In byte) - Output: pstr_GetDigitalInputInformation ps_DigitalInputInformation The digital input information are returned in this structure. The structure contains: BYTE b_DigitalInputType Type of the selected input

0x00 Input type not defined 1 – 15 5 V type 16 – 31 12 type 32 – 47 24 type 48 – 255 Any other type

DWORD dw_DigitalInputInterrupt Available interrupt for the input BYTE b_InputStatusAvailable 0 : Input status information not available 1 : Input status information available BYTE b_InputStatusResolution Return the resolution of the input status. BYTE b_InputValueAvailable 0 : Input value not available 1 : Input value available BYTE b_InputValueResolution Return the resolution of the input value BYTE b_InputLevelConfigurable 0: Input level not configurable 1: Input level configurable BYTE b_InputLevelNbr Return the number of Input Level. Task: Returns information about the digital input channels.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; str_GetDigitalInputInformation s_DigitalInputInformation; b_ReturnValue = b_ADDIDATA_GetDigitalInputInformationEx (dw_DriverHandle, 0,

Page 61: Addidata Handbuch

Digital input channels ADDIDRIVER

5

& s_DigitalInputInformation, sizeof(str_GetDigitalInputInformation));

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 62: Addidata Handbuch

ADDIDRIVER Digital input channels

6

4) b_ADDIDATA_Read1DigitalInput (...)

Syntax: <Return value> = b_ADDIDATA_Read1DigitalInput (DWORD dw_DriverHandle, WORD w_Channel, PBYTE pb_ChannelStatus) Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_Channel Number of the input to be read - Output: PBYTE pb_ChannelStatus Status of the digital input 0 low 1 high Task: Indicates the status of a digital input. The variable b_Channel passes the input to be read. A value is returned through the variable pb_ChannelStatus: 0 (low) or 1 (high).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_Value; b_ReturnValue = b_ADDIDATA_Read1DigitalInput (dw_DriverHandle, 0, &b_Value);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 63: Addidata Handbuch

Digital input channels ADDIDRIVER

7

5) b_ADDIDATA_Read1DigitalInputStatus (...)

Syntax: <Return value> = b_ADDIDATA_Read1DigitalInputStatus (DWORD dw_DriverHandle, WORD w_Channel, PWORD pw_ChannelStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_Channel Number of the input to be read - Output: PWORD pw_ChannelStatus Status of the digital input The number of bit is given by the function b_ADDIDATA_GetDigitalInputInformation. Ex : 2 bit : 00 : Voltage < Compare value A 01 : Voltage > Compare value A and Voltage < Compare value B 10 : Voltage > Compare value B Task: Indicates the status of a digital input. The variable b_Channel passes the input to be read (1 to 32). A value is returned through the variable pw_ChannelStatus.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_Value; b_ReturnValue = b_ADDIDATA_Read1DigitalInputStatus (dw_DriverHandle, 0, &w_Value); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 64: Addidata Handbuch

ADDIDRIVER Digital input channels

8

6) b_ADDIDATA_Read1DigitalInputValue (...)

Syntax: <Return value> = b_ADDIDATA_Read1DigitalInputValue (DWORD dw_DriverHandle, WORD w_Channel, PWORD pw_ChannelStatus PDWORD pdw_ChannelValue) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_Channel Number of the input to be read - Output: PWORD pw_ChannelStatus Status of the digital input The number of bit is given by the function b_ADDIDATA_GetDigitalInputInformation. Ex : 2 bit : 00 : Voltage < Compare value A 01 : Voltage > Compare value A and Voltage < Compare value B 10 : Voltage > Compare value B PDWORD pdw_ChannelValue Value of the digital input : Use the convert function to have the value in Volt. Task: Indicates the status of a digital input. The variable b_Channel passes the input to be read (1 to 32). A value is returned through the variable pw_ChannelStatus. The value of the input is returned by the variable pdw_ChannelValue. To become the real voltage value, use the function b_ADDIDATA_Convert1DigitalInputValueInAnalogValue.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_Value; DWORD dw_Value; b_ReturnValue = b_ADDIDATA_Read1DigitalInputValue (dw_DriverHandle, 0, &w_Value, &dw_Value); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 65: Addidata Handbuch

Digital input channels ADDIDRIVER

9

7) b_ADDIDATA_Convert1DigitalInputValueInAnalogValue (...)

Syntax: <Return value> = b_ADDIDATA_Convert1DigitalInputValueInAnalogValue (DWORD dw_DriverHandle, WORD w_Channel, DWORD dw_DigitalValue, DOUBLE *pd_AnalogValue) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_Channel Number of the input to be read DWORD dw_DigitalValue Digital value of the input returned by the b_ADDIDATA_Read1DigitalInputValue or b_ADDIDATA_ReadMoreDigitalInputValue. - Output: DOUBLE *pd_AnalogValue Value in Volt from the input signal. Task: Convert the digital input value in a voltage value..

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_Value; DOUBLE d_VoltageValue; b_ReturnValue = b_ADDIDATA_Convert1DigitalInputValueInAnalogValue (dw_DriverHandle, 0, dw_Value, &d_VoltageValue); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 66: Addidata Handbuch

ADDIDRIVER Digital input channels

10

8) b_ADDIDATA_Read2DigitalInputs (...)

Syntax: <Return value> = b_ADDIDATA_Read2DigitalInputs (DWORD dw_DriverHandle, BYTE b_Port, PBYTE pb_PortValue) Parameters: - Input DWORD dw_DriverHandle Driver handle BYTE b_Port Number of the 2-bit input port to be read - Output: PBYTE pb_PortValue Status of the digital input ports (0 to 3) Task: Indicates the status of a 2-bit port. The variable b_Port passes the input to be read. The value is returned through the variable pb_PortValue.

The input range of the channels set to "1" is within the high voltage range (See chapter 4 "Limit values" of the technical manual of the board concerned). The input range of the channels set to "1" is within the low voltage range (See chapter 4 "Limit values" of the technical manual of the board concerned).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_PortValue; b_ReturnValue = b_ADDIDATA_Read2DigitalInputs (dw_DriverHandle, 0, &b_PortValue);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 67: Addidata Handbuch

Digital input channels ADDIDRIVER

11

9) b_ADDIDATA_Read2DigitalInputStatus (...)

Syntax: <Return value> = b_ADDIDATA_Read2DigitalInputStatus (DWORD dw_DriverHandle, BYTE b_Port, PDWORD pdw_PortStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the 2-Input port to be read - Output: PDWORD pdw_PortStatus Status of the digital input port. The number of bit is given by the function b_ADDIDATA_GetDigitalInputInformation. Ex : 2 bit : 00 : Voltage < Compare value A 01 : Voltage > Compare value A and Voltage < Compare value B 10 : Voltage > Compare value B Task: Indicates the status of a 2-Input port. The variable b_Port passes the input to be read. The value is returned through the variable pdw_PortStatus.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_PortStatus; b_ReturnValue = b_ADDIDATA_Read2DigitalInputStatus (dw_DriverHandle, 0, &dw_PortStatus); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 68: Addidata Handbuch

ADDIDRIVER Digital input channels

12

10) b_ADDIDATA_ReadMoreDigitalInputValue (...)

Syntax: <Return value> = b_ADDIDATA_ReadMoreDigitalInputValue (DWORD dw_DriverHandle, WORD w_NbrOfChannel, PWORD pw_ChannelArray, PWORD pw_ChannelStatusArray, PDWORD pdw_ChannelValueArray) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_NbrOfChannel Define the Nbr of Channel in the channel array. PWORD pw_ChannelArray Array composed of the number of the input to be read. - Output: PWORD pw_ChannelStatusArray Status of the digital input The number of bit is given by the function b_ADDIDATA_GetDigitalInputInformation. Ex : 2 bit : 00 : Voltage < Compare value A 01 : Voltage > Compare value A and Voltage < Compare value B 10 : Voltage > Compare value B PDWORD pdw_ChannelValueArray Value of the digital input : Use the convert function to have the value in Volt. Task: Read the analog value of several digital input. To become the real voltage value, use the function b_ADDIDATA_Convert1DigitalInputValueInAnalogValue.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_Channel[10]; WORD w_Value[10]; DWORD dw_Value[10]; b_ReturnValue = b_ADDIDATA_ReadMoreDigitalInputValue (dw_DriverHandle, 5, &w_Channel, &w_Value, &dw_Value); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 69: Addidata Handbuch

Digital input channels ADDIDRIVER

13

11) b_ADDIDATA_Read4DigitalInputs (...)

Syntax: <Return value> = b_ADDIDATA_Read4DigitalInputs (DWORD dw_DriverHandle, BYTE b_Port, PBYTE pb_PortValue) Parameters: - Input DWORD dw_DriverHandle Driver handle BYTE b_Port Number of the 4-bit input port to be read - Output: PBYTE pb_PortValue Status of the digital input port (0 to 15)

Task: Indicates the status of a 4-bit port. The variable b_Port passes the input to be read. The value is returned through the variable pb_PortValue.

The input range of the channels set to "1" is within the high voltage range (se chapter 4 "Limit values" of the technical manual of the board concerned). The input range of the channels set to "1" is within the low voltage range (See chapter 4 "Limit values" of the technical manual of the board concerned).

Calling Convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_PortValue; b_ReturnValue = b_ADDIDATA_Read4DigitalInputs (dw_DriverHandle, 1, &b_PortValue);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 70: Addidata Handbuch

ADDIDRIVER Digital input channels

14

12) b_ADDIDATA_Read4DigitalInputStatus (...)

Syntax: <Return value> = b_ADDIDATA_Read4DigitalInputStatus (DWORD dw_DriverHandle, BYTE b_Port, PDWORD pdw_PortStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the 4-Input input port to be read - Output: PDWORD pdw_PortStatus Status of the digital input port. The number of bit is given by the function b_ADDIDATA_GetDigitalInputInformationEx. Ex : 2 bit : 00 : Voltage < Compare value A 01 : Voltage > Compare value A and Voltage < Compare value B 10 : Voltage > Compare value B Task: Indicates the status of a 4-Input port. The variable b_Port passes the input to be read. The value is returned through the variable pdw_PortStatus.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_PortStatus; b_ReturnValue = b_ADDIDATA_Read4DigitalInputStatus (dw_DriverHandle, 0, &dw_PortStatus);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 71: Addidata Handbuch

Digital input channels ADDIDRIVER

15

13) b_ADDIDATA_Read8DigitalInputs (...)

Syntax: <Return value> = b_ADDIDATA_Read8DigitalInputs (DWORD dw_DriverHandle, BYTE b_Port, PBYTE pb_PortValue) Parameters: - Input DWORD dw_DriverHandle Driver handle BYTE b_Port Number of the 8-bit input port to be read - Output: PBYTE pb_PortValue Status of the digital input port (0 to 255)

Task: Indicates the status of a 8-bit port. The variable b_Port passes the input to be read. The value is returned through the variable pb_PortValue.

The input range of the channels set to "1" is within the high voltage range (See chapter 4 "Limit values" of the technical manual of the board concerned). The input range of the channels set to "1" is within the low voltage range (See chapter 4 "Limit values" of the technical manual of the board concerned).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_PortValue; b_ReturnValue = b_ADDIDATA_Read8DigitalInputs (dw_DriverHandle, 0, &b_PortValue);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 72: Addidata Handbuch

ADDIDRIVER Digital input channels

16

14) b_ADDIDATA_Read8DigitalInputStatus (...)

Syntax: <Return value> = b_ADDIDATA_Read8DigitalInputStatus (DWORD dw_DriverHandle, BYTE b_Port, PDWORD pdw_PortStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the 8-Input input port to be read - Output: PDWORD pdw_PortStatus Status of the digital input port. The number of bit is given by the function b_ADDIDATA_GetDigitalInputInformationEx. Ex : 2 bit : 00 : Voltage < Compare value A 01 : Voltage > Compare value A and Voltage < Compare value B 10 : Voltage > Compare value B Task: Indicates the status of a 8-Input port. The variable b_Port passes the input to be read. The value is returned through the variable pdw_PortStatus.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_PortStatus; b_ReturnValue = b_ADDIDATA_Read8DigitalInputStatus (dw_DriverHandle, 0, &dw_PortStatus);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 73: Addidata Handbuch

Digital input channels ADDIDRIVER

17

15) b_ADDIDATA_Read16DigitalInputs (...)

Syntax: <Return value> = b_ADDIDATA_Read16DigitalInputs (DWORD dw_DriverHandle, BYTE b_Port, PWORD pw_PortValue)

Parameters: - Input DWORD dw_DriverHandle Driver handle BYTE b_Port Number of the 16-bit input port to be read - Output: PWORD pw_PortValue Status of the digital input port (0 to 65535)

Task: Indicates the status of a 16-bit port.

The input range of the channels set to "1" is within the high voltage range (See chapter 4 "Limit values" of the technical manual of the board concerned). The input range of the channels set to "1" is within the low voltage range (See chapter 4 "Limit values" of the technical manual of the board concerned).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_PortValue; b_ReturnValue = b_ADDIDATA_Read16DigitalInputs (dw_DriverHandle, 0, &w_PortValue);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 74: Addidata Handbuch

ADDIDRIVER Digital input channels

18

16) b_ADDIDATA_Read16DigitalInputStatus (...)

Syntax: <Return value> = b_ADDIDATA_Read16DigitalInputStatus (DWORD dw_DriverHandle, BYTE b_Port, PDWORD pdw_PortStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the 16-Input input port to be read - Output: PDWORD pdw_PortStatus Status of the digital input port. The number of bit is given by the function b_ADDIDATA_GetDigitalInputInformationEx. Ex : 2 bit : 00 : Voltage < Compare value A 01 : Voltage > Compare value A and Voltage < Compare value B 10 : Voltage > Compare value B Task: Indicates the status of a 16-Input port. The variable b_Port passes the input to be read. The value is returned through the variable pdw_PortStatus.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_PortStatus; b_ReturnValue = b_ADDIDATA_Read16DigitalInputStatus(dw_DriverHandle, 0, &dw_PortStatus);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 75: Addidata Handbuch

Digital input channels ADDIDRIVER

19

17) b_ADDIDATA_Read32DigitalInputs (...)

Syntax: <Return value> = b_ADDIDATA_Read32DigitalInputs (DWORD dw_DriverHandle, BYTE b_Port, PDWORD pdw_PortValue) Parameters: - Input DWORD dw_DriverHandle Driver handle BYTE b_Port Number of the 32-bit input port to be read - Output: PDWORD pw_PortValue Status of the digital input port (0 to 232-1)

Task: Indicates the status of a 32-bit port.

The input range of the channels set to "1" is within the high voltage range (See chapter 4 "Limit values" of the technical manual of the board concerned). The input range of the channels set to "1" is within the low voltage range (See chapter 4 "Limit values" of the technical manual of the board concerned).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_PortValue; b_ReturnValue = b_ADDIDATA_Read32DigitalInputs (dw_DriverHandle, 0, &dw_PortValue);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 76: Addidata Handbuch

ADDIDRIVER Digital input channels

20

18) b_ADDIDATA_Init1DigitalInputLevel (...) Syntax: <Return value> = b_ADDIDATA_Init1DigitalInputLevel (DWORD dw_DriverHandle, WORD w_DigitalInput, DOUBLE *pd_VoltageValueArray); Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver

WORD w_DigitalInput Number of the digital input to configure. DOUBLE *pd_VoltageValueArray Array witch contains the voltage value for the

level. pd_VoltageValueArray [0] : Determines level A

pd_VoltageValueArray [1] : Determines level B pd_VoltageValueArray [2] : Determines level C, usw.

- Output: No output signal has occurred.

Task: Initialise the input level voltage of the digital input.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DOUBLE d_VoltageValue[2]; d_VoltageValue[0] = 10.0; d_VoltageValue[1] = 15.0; b_ReturnValue = b_ADDIDATA_Init1DigitalInputLevel (dw_DriverHandle, 0, d_VoltageValue);

Return value: 1: No error 0: Error by calling up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 77: Addidata Handbuch

Digital input channels ADDIDRIVER

21

19) b_ADDIDATA_InitDigitalInputInterrupt (...)

Syntax: <Return value> = b_ADDIDATA_InitDigitalInputInterrupt (DWORD dw_DriverHandle, WORD w_FirstDigitalInput, WORD w_LastDigitalInput, BYTE b_InterruptLogic, PDWORD pdw_DigitalInputArrayMode1, PDWORD pdw_DigitalInputArrayMode2); Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_FirstDigitalInput Number of the first digital input to be initialised. WORD w_LastDigitalInput Number of the last digital input to be initialised. BYTE b_InterruptLogic Interrupt logic for the inputs (0= no, 1= OR, 2= AND). PDWORD pdw_DigitalInputArrayMode1 Mask of Mode 1 (see table below). PDWORD pdw_DigitalInputArrayMode2 Mask of Mode 2 (see table below). - Output: No output signal has occurred.

Task: Initialises the digital input interrupt.

i IMPORTANT! The user has to set only the bits of the inputs which are contained in the range between " w_FirstDigitalInput" and " w_LastDigitalInput".

If the user sets other bits out of the defined range, an error is returned.

The OR logic (for edge only) is defined as follows: If one of the selected edges occurs on the inputs, the interrupt is generated.

The AND logic (status) is defined as follows: Each time a logic is true (when the rising or falling edge of the last input which verifies the logic occurs), the interrupt is generated.

The AND logic and the OR logic have the same action when both modes (mode1 and mode2) are set to 1 for all inputs (rising or falling edge for OR logic; low and high status for AND logic). The AND logic and the OR logic have the same action when only one input is considered.

Page 78: Addidata Handbuch

ADDIDRIVER Digital input channels

22

Table 2-1: Overview: Table Index 0

Table Index 0

Mode_1 table values MSB 0000 0000 0000 0000 0000 0000 0000 0000 LSB

Mode_2 table values MSB 0000 0000 0000 0000 0000 0000 0000 0000 LSB

Table 2-2: Overview: Table Index 1

Table Index 1

Mode_1 table values MSB 0000 0000 0000 0000 0000 0000 0000 0000 LSB

Mode_2 table values MSB 0000 0000 0000 0000 0000 0000 0000 0000 LSB

The Mode_X table values are binary. Each bit defines the interrupt mask of one input.

One channel is defined with 2 bit, the one bit is from Mode_1 and the other bit is from Mode_2. The combination of both bits is shown in the table below:

Table 2-3: Definition of interrupt logic

OR logic Disable Rising edge Falling edge Rising/falling edge

AND logic Disable High level Low level High/low level

Mode_1 0 1 0 1

Mode_2 0 0 1 1

Example:

If you want to use the OR logic with 2 boards of each 32 inputs and you want to have a rising edge on input Index 2, then input Index 36 must react with a falling edge and all other inputs must be disabled. The inputs Index begin with 0.

Table 2-4: Example: Table Index 0

Table Index 0

Mode_1 table values MSB 0000 0000 0000 0000 0000 0000 0000 0100 LSB

Mode_2 table values MSB 0000 0000 0000 0000 0000 0000 0000 0000 LSB

In the tables the first bit at the left (in italics) stands for channel 31 and the first bit at the right (in italics) stands for channel 0.

Page 79: Addidata Handbuch

Digital input channels ADDIDRIVER

23

Table 2-5: Example: Table Index 1

Table Index 1

Mode_1 table values MSB 0000 0000 0000 0000 0000 0000 0000 0000 LSB

Mode_2 table values MSB 0000 0000 0000 0000 0000 0000 0001 0000 LSB

The OR logic reacts to rising or falling edges.

An interrupt is generated if an edge modification occurs on an interruptible input and fulfils the interrupt conditions set by Mode_1 and Mode_2.

Table 2-6: Principle of the OR logic (for 2 channels)

Input 0 Input 1

INPUT 1 MODE2, MODE1

INPUT 0 MODE2, MODE1

0,0 0,0 No interrupt

1,0 0,0 10* 10

0,1 0,0 10 10

1,1 0,0 10 10 10 10

0,0 1,0 01** 01

1,0 1,0 01 10 01 10

0,1 1,0 10 01 10 01

1,1 1,0 10 01 10 10 01 10

0,0 0,1 01 01

1,0 0,1 01 10 01 10

0,1 0,1 01 10 10 01

1,1 0,1 01 10 10 10 01 10

0,0 1,1 01 01 01 01

1,0 1,1 01 01 10 01 01 10

0,1 1,1 01 10 01 10 01 01

1,1 1,1 01 10 01 10 10 01 01 10

* 10: Interrupt source: the 2nd input (Channel 1) has generated an interrupt. ** 01: Interrupt source: the 1st input (Channel 0) has generated an interrupt.

Page 80: Addidata Handbuch

ADDIDRIVER Digital input channels

24

AND Logic

The AND logic reacts to a change in the level of the selected inputs.

An interrupt is generated each time when the following conditions are fulfilled: - the interruptible inputs fulfil the conditions set in Mode 1 and Mode 2. - the IRQ condition must be fulfilled during a determined time interval (differs according to the board specifications: see in the corresponding board manual). Possible bounce pulses are thus eliminated. - after an interrupt, a level modification is to occur on the interruptible inputs so that the interrupt logic is released.

Table 2-1: Principle of the AND logic (for 2 channels)

Input 0 Input 1

INPUT 1 MODE2, MODE1

INPUT 0 MODE2, MODE1

0,0 0,0 Kein Interrupt 1,0 0,0

0,1 0,0

1,1 0,0

0,0 1,0

1,0 1,0

0,1 1,0

1,1 1,0

0,0 0,1

1,0 0,1

0,1 0,1

1,1 0,1

0,0 1,1

1,0 1,1

0,1 1,1

1,1 1,1

Page 81: Addidata Handbuch

Digital input channels ADDIDRIVER

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_DigitalInputArrayMode1[2]; dw_DigitalInputArrayMode2[2]; dw_DigitalInputArrayMode 1 [0] = 4; (virtual bit 31 0000 0000 0000 0000 0000 0000 000 0100 virtual bit 0 dw_DigitalInputArrayMode1 [1] = 0 virtual bit 63 0000 0000 0000 0000 0000 0000 0000 0000 virtual bit 32 dw_DigitalInputArrayMode2 [0] = 0 virtual bit 31 0000 0000 0000 0000 0000 0000 0000 0000 virtual bit 0 dw_DigitalInputArrayMode2 [1] = 16 virtual bit 63 0000 0000 0000 0000 0000 0000 0001 0000 virtual bit 32 b_ReturnValue = b_ADDIDATA_InitDigitalInputInterrupt (dw_DriverHandle, 0, 63, ADDIDATA_OR, dw_DigitalInputArrayMode1, dw_DigitalInputArrayMode2);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

IMPORTANT! The interrupt mask for the functionality is detailed in the "Interrupt" function description. (Tables 2-1 and 2-2).

25

Page 82: Addidata Handbuch

ADDIDRIVER Digital input channels

26

20) b_ADDIDATA_ReleaseDigitalInputInterrupt (...)

Syntax: <Return value> = b_ADDIDATA_ReleaseDigitalInputInterrupt (DWORD dw_DriverHandle, WORD w_FirstDigitalInput, WORD w_LastDigitalInput);

Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_FirstDigitalInput Number of the first digital input to be released. WORD w_LastDigitalInput Number of the last digital input to be released. - Output: No output signal has occurred.

Task: Releases the digital input interrupt.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_ReleaseDigitalInputInterrupt (dw_DriverHandle, 0, 15);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 83: Addidata Handbuch

Digital input channels ADDIDRIVER

27

21) b_ADDIDATA_EnableDisableDigitalInputInterrupt (...)

Syntax: <Return value> = b_ADDIDATA_EnableDisableDigitalInputInterrupt (DWORD dw_DriverHandle,

WORD w_FirstDigitalOutput, WORD w_LastDigitalOutput,

BYTE b_InterruptFlag);

Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_FirstDigitalInput Number of the first digital input to be enabled or disabled WORD w_LastDigitalInput Number of the last digital input to be enabled or disabled BYTE b_InterruptFlag Interrupt flag (0 = disable, 1 = enable). - Output: No output signal has occurred.

Task: Enables or disables the digital input interrupt.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableDigitalInputInterrupt (dw_DriverHandle, 0, 64, ADDIDATA_ENABLE);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 84: Addidata Handbuch

ADDIDRIVER Digital input channels

28

22) b_ADDIDATA_Init1DigitalInputLevel (...) Syntax: <Return value> = b_ADDIDATA_Init1DigitalInputLevel (DWORD dw_DriverHandle, WORD w_DigitalInput, DOUBLE *pd_VoltageValueArray)

Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_DigitalInput Number of the digital input to be configured. DOUBLE *pd_VoltageValueArray Array to determine the voltage value of the levels. pd_VoltageValueArray [0] : Determines level A pd_VoltageValueArray [1] : Determines level B pd_VoltageValueArray [2] : Determines level C … - Output: No output signal has occurred. Task: Initialises the input voltage level of the digital input. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DOUBLE d_VoltageValue[2] = {10.0, 15.0}; b_ReturnValue = b_ADDIDATA_Init1DigitalInputLevel (dw_DriverHandle, 0, d_VoltageValue); Return value: 1: No error 0: Error by calling up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 85: Addidata Handbuch

Digital input channels ADDIDRIVER

23) b_ADDIDATA_SaveDigitalInputModuleLevel (...) Syntax: <Return value> = b_ADDIDATA_SaveDigitalInputModuleLevel (DWORD dw_DriverHandle, DWORD dw_DigitalModuleNumber)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver DWORD dw_DigitalModuleNumber Number of the digital input module - Output: No output signal has occurred. Task: Saves the selected level configuration to the hardware. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_SaveDigitalInputLevelModule (dw_DriverHandle, 0); Return value: 1: No error 0: Error by callup of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 86: Addidata Handbuch

ADDIDRIVER Digital input channels

30

24) b_ADDIDATA_Read1DigitalInputStatus (...) Syntax: <Return value> = b_ADDIDATA_Read1DigitalInputStatus (DWORD dw_DriverHandle, WORD w_Channel, PWORD pw_ChannelStatus) Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_Channel Number of the input to be read - Output: PWORD pw_ChannelStatus Status of the digital input The number of bits is given by the function b_ADDIDATA_GetDigitalInputInformationEx. Task: Indicates the status of a digital input. The variable w_Channel passes the input to be read. A value is returned through the variable pw_ChannelStatus.The value is coded on 2 bits. Ex : 2 bit : 00 : Voltage <= Compare value A 01 : Voltage > Compare value A and Voltage < Compare value B 11 : Voltage >= Compare value B Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_ChannelStatus; b_ReturnValue = b_ADDIDATA_Read1DigitalInputStatus (dw_DriverHandle, 0, &w_ChannelStatus); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 87: Addidata Handbuch

Digital input channels ADDIDRIVER

25) b_ADDIDATA_ReadMoreDigitalInputStatus (...) Syntax: <Return value> = b_ADDIDATA_ReadMoreDigitalInputStatus (DWORD dw_DriverHandle, WORD w_NbrOfChannel, PWORD pw_ChannelArray, PWORD pw_ChannelArrayStatus) Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_NbrOfChannel Defines the number of channels in the channel array. PWORD pw_ChannelArray Array composed of the number of inputs to be read. - Output: PWORD pw_ChannelArrayStatus Status of the selected digital input channels.

pw_ChannelArrayStatus [0]: Returns the status of the first selected channel pw_ChannelArrayStatus [1]: Returns the status of the second selected channel pw_ChannelArrayStatus [w_NbrOfChannel - 1]: Returns the status of the last selected channel The number of bits is given by the function b_ADDIDATA_GetDigitalInputInformationEx.

0 low 1 high

Task: Reads the status of several digital inputs. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_ChannelArray[3]; WORD w_ChannelArrayStatus [3]; w_ChannelArray [0] = 0; // Select channel 0 w_ChannelArray [1] = 3; // Select channel 3 w_ChannelArray [2] = 5; // Select channel 5 b_ReturnValue = b_ADDIDATA_ReadMoreDigitalInputStatus (dw_DriverHandle, 3, w_ChannelArray, w_ChannelArrayStatus); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 88: Addidata Handbuch

ADDIDRIVER Digital input channels

32

26) b_ADDIDATA_Read1DigitalInputValue (...) Syntax: <Return value> = b_ADDIDATA_Read1DigitalInputValue (DWORD dw_DriverHandle, WORD w_Channel, PWORD pw_ChannelStatus, PDWORD pdw_ChannelValue) Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_Channel Number of the input to be read - Output: PWORD pw_ChannelStatus Status of the digital input The number of bits is given by the function b_ADDIDATA_GetDigitalInputInformationEx. PDWORD pdw_ChannelValue Value of the digital input: Use the conversion function to obtain the value in Volt.

Task: Indicates the status of a digital inputs. The variable w_Channel passes the input to be read. A value is returned through the variable pw_ChannelStatus. The value of the inputs is returned by the variable pdw_ChannelValue. To obtain the real voltage value, please use the function b_ADDIDATA_Convert1DigitalInputValueInAnalogValue. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_Value; DWORD dw_Value; b_ReturnValue = b_ADDIDATA_Read1DigitalInputValue (dw_DriverHandle, 0, &w_Value, &dw_Value); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 89: Addidata Handbuch

Digital input channels ADDIDRIVER

27) b_ADDIDATA_ReadMoreDigitalInputValue (...) Syntax: <Return value> = b_ADDIDATA_ReadMoreDigitalInputValue (DWORD dw_DriverHandle, WORD w_NbrOfChannel, PWORD pw_ChannelArray, PWORD pw_ChannelStatusArray, PDWORD pdw_ChannelValueArray) Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_NbrOfChannel Defines the number of channels in the channel array. PWORD pw_ChannelArray Array containing the number of the inputs to be read. - Output: PWORD pw_ChannelStatusArray Status of the digital input. The number of bit is given by the function b_ADDIDATA_GetDigitalInputInformationEx. PDWORD pdw_ChannelValueArray Value of the digital input: Use the conversion function to obtain the value in Volt. Task: Reads the analog value of several digital inputs. To obtain the real voltage value, use the function b_ADDIDATA_Convert1DigitalInputValueInAnalogValue. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_Channel[10]; WORD w_Value[10]; DWORD dw_Value[10]; b_ReturnValue = b_ADDIDATA_ReadMoreDigitalInputValue (dw_DriverHandle, 5, w_Channel, w_Value, dw_Value); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 90: Addidata Handbuch

ADDIDRIVER Digital input channels

34

28) b_ADDIDATA_Convert1DigitalInputValueInAnalogValue (...) Syntax: <Return value> = b_ADDIDATA_Convert1DigitalInputValueInAnalogValue (DWORD dw_DriverHandle, WORD w_Channel, DWORD dw_DigitalValue, DOUBLE *pd_AnalogValue) Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_Channel Number of the input to be read DWORD dw_DigitalValue Digital value of the input returned by the b_ADDIDATA_Read1DigitalInputValue or b_ADDIDATA_ReadMoreDigitalInputValue. - Output: DOUBLE *pd_AnalogValue Value of the input signal in V. Task: Converts the digital input value in a voltage value. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_Value; DOUBLE d_VoltageValue; b_ReturnValue = b_ADDIDATA_Convert1DigitalInputValueInAnalogValue (dw_DriverHandle, 0, dw_Value, &d_VoltageValue); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 91: Addidata Handbuch

Digital input channels ADDIDRIVER

29) b_ADDIDATA_GetDigitalInputModuleFilterInformation (...) Syntax: <Return value> = b_ADDIDATA_GetDigitalInputModuleFilterInformation (DWORD dw_DriverHandle, DWORD dw_ModuleNumber, DWORD dw_StructSize

pstr_DigitalInputModuleFilterInf ps_DigitalInputModuleFilterInf)

Parameters: - Input: DWORD dw_DriverHandle Driver handle DWORD dw_ModuleNumber Digital input module number. The first module begins from 0. DWORD dw_StructSize Size of the digital input module filter Information structure. (In bytes) - Output: pstr_DigitalInputModuleFilterInf ps_DigitalInputModuleFilterInf The digital input module filter information are returned in this structure. The structure contains : BYTE b_FilterTimeUnit Time units available. See Table 2-2. WORD w_FilterTimeStep Possible time steps for the filter BYTE b_Resolution Selection of the resolution for the filter. See Table 2-2. Task: Returns the time units (b_FilterTimeUnit), the time steps (w_FilterTimeStep) and the resolution (b_Resolution) which can be used for the selected digital input module.

Table 2-2: Filter timer units Table 2-3: Resolution

Value Description Value Resolution 1 ns 8 8-bit 2 µs 12 12-bit 3 ns und µs 16 16-bit 4 ms 24 24-bit 5 ns und ms 32 32-bit 6 µs und ms 7 ns und µs und ms 8 s 9 ns und s 10 µs und s 11 ns und ms und s 12 ms und s 13 ns und ms und s 14 µs und ms und s 15 ns und µs und ms und s

Page 92: Addidata Handbuch

ADDIDRIVER Digital input channels

36

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; str_DigitalInputModuleFilterInf s_DigitalInputModuleFilterInf b_ReturnValue = b_ADDIDATA_GetDigitalInputModuleFilterInformation (dw_DriverHandle, 0, &b_FilterTimeUnit, sizeof (s_DigitalInputModuleFilterInf), &s_DigitalInputModuleFilterInf); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 93: Addidata Handbuch

Digital input channels ADDIDRIVER

30) b_ADDIDATA_InitDigitalInputModuleFilter (...) Syntax: <Return value> = b_ADDIDATA_InitDigitalInputModuleFilter (DWORD dw_DriverHandle, DWORD dw_ModuleNumber, BYTE b_DelayTimeUnit, DWORD dw_DelayValue) Parameters: - Input: DWORD dw_DriverHandle Driver handle DWORD dw_ModuleNumber Digital input module number. The first module begins from 0. BYTE b_DelayTimeUnit Selection of the time unit 0: ns 1: µs 2: ms 3: s DWORD dw_DelayValue Filter time - Output: No output signal has occurred.

Task: Initialises the digital input filter.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle;

b_ReturnValue = b_ADDIDATA_InitDigitalInputModuleFilter (dw_DriverHandle, 0, 0, 1000); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 94: Addidata Handbuch

ADDIDRIVER Digital input channels

38

31) b_ADDIDATA_EnableDisableDigitalInputModuleFilter (...) Syntax: <Return value> = b_ADDIDATA_EnableDisableDigitalInputModuleFilter (DWORD dw_DriverHandle, DWORD dw_ModuleNumber, BYTE b_FilterFlag)

Parameters: - Input: DWORD dw_DriverHandle Driver handle DWORD dw_ModuleNumber Module number. The first begins from 0. BYTE b_FilterFlag ADDIDATA_ENABLE or ADDIDATA_DISABLE - Ausgabe: No output signal has occurred.

Task: Activates or deactivates the filter for the selected digital input module.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableDigitalInputModuleFilter (dw_DriverHandle, 0, ADDIDATA_ENABLE);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 95: Addidata Handbuch

Digital input channels ADDIDRIVER

32) b_ADDIDATA_SetDigitalInputModuleLevelSelection (...) Syntax: <Return value> = b_ADDIDATA_SetDigitalInputModuleLevelSelection (DWORD dw_DriverHandle, DWORD dw_ModuleNumber, BYTE b_LevelFlag) Parameters: - Input: DWORD dw_DriverHandle Driver handle DWORD dw_ModuleNumber Module number. The first module begins from 0. BYTE b_LevelFlag ADDIDATA_NOT_INVERTED or ADDIDATA_INVERTED - Output: No output signal has occurred.

Task: Inverts or not the level of the digital inputs of the selected module.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_SetDigitalInputModuleLevelSelection (dw_DriverHandle, 0, ADDIDATA_INVERTED); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 96: Addidata Handbuch

ADDIDRIVER Digital input channels

40

33) b_ADDIDATA_TestDigitalInputAsynchronousFIFOFull (…)

Syntax: <Return value> = b_ ADDIDATA_TestDigitalInputAsynchronousFIFOFull (DWORD dw_DriverHandle, PBYTE pb_Full)

Parameters: - Input: DWORD dw_DriverHandle Driver handle - Output: PBYTE pb_Full 0: Asynchronous interrupt FIFO memory not full 1: Asynchronous interrupt FIFO memory is full

Task: Tests if the asynchronous interrupt FIFO memory is full or not. The asynchronous interrupt FIFO memory is the FIFO memory in which the asynchronous events generated by the asynchronous interrupt are stored.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_FIFOFull b_ReturnValue = b_ ADDIDATA_TestDigitalInputAsynchronousFIFOFull (dw_DriverHandle, &b_FIFOFull);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 97: Addidata Handbuch

DIN EN ISO 9001:2000 certified

ADDI-DATA GmbHAirpark Business CenterAirport Boulevard B210

77836 RheinmünsterGermany

Phone: +49 7229 1847–0Fax: +49 7229 1847–222

E-mail: [email protected]

Software description

ADDIDRIVER

Analog output channels

Edition: 06.02 - 08/2010

Page 98: Addidata Handbuch

Table of contents ADDIDRIVER

I

1 INTRODUCTION...................................................................................1

2 ANALOG OUTPUT CHANNELS ...............................................................2

1) b_ADDIDATA_GetNumberOfAnalogOutputs (...)............................................................... 2 2) b_ADDIDATA_GetAnalogOutputInformation (...) .............................................................. 3 3) b_ADDIDATA_Init1AnalogOutput (...)................................................................................ 6 4) b_ADDIDATA_InitMoreAnalogOutputs (...) ....................................................................... 7 5) b_ADDIDATA_Write1AnalogOutput (...) ............................................................................ 9 6) b_ADDIDATA_WriteMoreAnalogOutputs (...).................................................................. 10 7) b_ADDIDATA_Release1AnalogOutput (...)....................................................................... 11 8) b_ADDIDATA_ReleaseMoreAnalogOutputs (...) .............................................................. 12 9) b_ADDIDATA_EnableDisable1AnalogOutputSync (...).................................................... 13 10) b_ADDIDATA_EnableDisableMoreAnalogOutputsSync (...).......................................... 14 11) b_ADDIDATA_TriggerAnalogOutput (...) ....................................................................... 15

Tables

Table 1-1: Type Declaration for Windows 98/NT/2000/XP ........................................................1 Table 2-1: Type of analog output ...........................................................................................2 Table 2-2: Output voltage range (high and low) ....................................................................3 Table 2-3: Output software and hardware polarity .................................................................4 Table 2-4: Resolution ..............................................................................................................4

Page 99: Addidata Handbuch

Introduction ADDIDRIVER

1

1 INTRODUCTION

IMPORTANT! Note the following conventions in the text:

Function: "b_ADDIDATA_GetNumberOfAnalogInputs" Variable dw_DriverHandle

Table 1-1: Type Declaration for Windows 98/NT/2000/XP

Borland C Microsoft C Borland Pascal

Microsoft Visual Basic

Windows VOID void void pointer any

BYTE unsigned char unsigned char byte integer

INT int int integer integer

WORD unsigned short int unsigned short int long long

DWORD long long longint long

PBYTE unsigned char * unsigned char * var byte integer

PINT int * int * var integer integer

PWORD unsigned short int * unsigned short int * var long long

PCHAR char * char * var string string

PDWORD long * long * var longint long

DOUBLE double double double double

Page 100: Addidata Handbuch

ADDIDRIVER Analog output channels

2

2 ANALOG OUTPUT CHANNELS

1) b_ADDIDATA_GetNumberOfAnalogOutputs (...)

Syntax: <Return value> = b_ADDIDATA_GetNumberOfAnalogOutputs

(DWORD dw_DriverHandle, PWORD pw_NumberOfChannels,

PBYTE pb_AnalogOutputType) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: PWORD pw_NumberOfChannels Number of the analog output channels PBYTE pb_AnalogOutputType Type Array. Gives the type of each analog output. See Table 2-1 pb_AnalogOutputType [0]: Type of the first analog output. pb_AnalogOutputType [1]: Type of the second analog output. ... pb_AnalogOutputType [*pb_AnalogOutputNumber– 1]: Type of the last analog output

Task: Returns the number of analog outputs and the type of each analog output.

Table 2-1: Type of analog output

Define Value Definition ADDIDATA_ANALOG_OUTPUT_DIRECT 0 Analog output is immediately written ADDIDATA_ANALOG_OUTPUT_SYNC 1 Analog output can be written later

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_NumberOfChannels; BYTE b_AnalogOutputType [12];

b_ReturnValue = b_ADDIDATA_GetNumberOfAnalogOutput (dw_DriverHandle, &w_NumberOfChannels, b_AnalogOutputType);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 101: Addidata Handbuch

Analog output channels ADDIDRIVER

3

Possi .

Possib

ble 2-3. E pb_Resolution Possible resolution for the analog output.

ives the number of modes (pb_NumberOfVoltageMode), the voltage range (pb_HighVolta Polarity and pb_SWPolarit lution (pb_Re b_AnalogOutputNumber).

-2 utpu

alue

2) b_ADDIDATA_GetAnalogOutputInformation (...)

Syntax: <Return value> = b_ADDIDATA_GetAnalogOutputInformation (DWORD dw_DriverHandle, WORD w_ChannelNumber, PBYTE pb_NumberOfVoltageMode, PBYTE pb_HighVoltageRange, PBYTE pb_LowVoltageRange, PBYTE pb_SWPolarity, PBYTE pb_HWPolarity, PBYTE pb_Resolution, PDWORD pdw_Synchronisation)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_ChannelNumber Analog output number. The first analog output begins from 0. - Output: PBYTE pb_NumberOfVoltageMode Number of voltage modes which can be used for the channel PBYTE pb_HighVoltageRange Possible voltage range for the analog output in V. See Table 2-2. PBYTE pb_LowVoltageRange Possible voltage range for the analog output in hundredths of V. See Table 2-2.

PBYTE pb_SWPolarity ble software polarity for the analog output See

Table 2-3.

PBYTE pb_HWPolarity le hardware polarity for the analog output. See

Ta PBYT See Table 2-4. PDWORD pdw_Synchronisation If = 1, synchronisation is available for the analog output.

Task: G

geRange and pb_HighVoltageRange), the polarity (pb_SWy), the synchronisation (pb_Synchronisation) and the reso

solution) which can be set for the selected analog output (

Table 2 : O t voltage range (high and low)

Define V Definition ADDIDATA_RANGE_0 0 First output range supported by the board ADDIDATA_RANGE_1 1 Second output range supported by the boardADDIDATA_RANGE_2 2 Third output range supported by the board ADDIDATA_RANGE_3 3 Fourth output range supported by the board

Page 102: Addidata Handbuch

ADDIDRIVER Analog output channels

IMPORTANT! Please refer to the specific technical manual of the used board (Sof tware functions and samples) to know the correct range for your board.

2-3: Output re and hardw ity

V e

Table softwa are polar

Define alu Definition ADDIDATA_NONE 0 No polarity available.

ADDIDATA_UNIPOLAR 1 0 V to Max Voltage Range* ADDIDATA_BIPOLAR 2 - Max Voltage Range* to + Max

Voltage Range* ADDIDATA_BOTH 3 Both are available

* Max voltage range = High voltage range + (Low voltage range x 0,01)

e tion

Value Resolution

Tabl 2-4: Resolu

10 10-bit 11 11-bit 12 12-bit 13 13-bit 14 14-bit 15 15-bit 16 16-bit 24 24-bit 32 32-bit

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_NumberOfMode;

];

WORD dw_Synchronisation;

rHandle,

e,

&dw_Synchronisation)

BYTE b_HighRange[4]; BYTE b_LowRange[4BYTE b_Polarity[4]; BYTE b_Resolution[4]; D b_ReturnValue = b_ADDIDATA_AnalogOutputInformation (dw_Drive 0, &b_NumberOfVoltageMod &b_HighRange[0], &b_LowRange[0], &b_Polarity[0], &b_Resolution[0],

4

Page 103: Addidata Handbuch

Analog output channels ADDIDRIVER

5

0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Return value: 1: No error

Page 104: Addidata Handbuch

ADDIDRIVER Analog output channels

6

WO N lised The fir

S 2-2. b_Polarity

ut:

alog output with the given range and polarity.

3) b_ADDIDATA_Init1AnalogOutput (...)

Syntax: <Return Value> = b_ADDIDATA_Init1AnalogOutput (DWORD dw_DriverHandle, WORD w_ChannelNumber, BYTE b_VoltageMode, BYTE b_Polarity) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver

RD w_ChannelNumber umber of the analog output to be initia st analog output begins from 0.

BYTE b_VoltageMode elected voltage range. See Table BYTE Selected polarity. See

Table 2-3. - Outp No output signal has occurred.

Task: he selected anInitialises t

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle;

b_ReturnValue = b_ADDIDATA_Init1AnalogOutput (dw_DriverHandle, 0, ADDIDATA_RANGE_0,

ADDIDATA_UNIPOLAR);

: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Return value: 1: No error 0

Page 105: Addidata Handbuch

Analog output channels ADDIDRIVER

7

fir

e Volt -2.BYTE pb_P

- Output: tput signal has occurred.

ed range and polarity.

4) b_ADDIDATA_InitMoreAnalogOutputs (...)

Syntax: <Return Value> = b_ADDIDATA_InitMoreAnalogOutputs

(DWORD dw_DriverHandle, WORD w_NumberOfChannels, PWORD pw_ChannelNumber, PBYTE pb_VoltageMode, PBYTE pb_Polarity)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_NumberOfChannels Number of the analog outputs to be initialised.

The st analog output begins from 0. PWORD pw_ChannelNumber Analog output array.

PBYTE pb_VoltageMod age or current range array. See Table 2 P olarity Polarity array. See

Table 2-3.

No ou

Task: he analog outputs in the selectInitialises t

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_ChannelNumber[4]; BYTE b_VoltageMode[4];

4];

_1; E_1;

b_Polarity[2] = ADDIDATA_UNIPOLAR;

lue = DIDATA_InitMoreAnalogOutputs

r, b_VoltageMode, b_Polarity);

BYTE b_Polarity[

w_ChannelNumber[0] = 0; w_ChannelNumber [1] = 2; w_ChannelNumber [2] = 5; w_ChannelNumber [3] = 8; b_ VoltageMode [0] = ADDIDATA_RANGE_0; b_ VoltageMode [1] = ADDIDATA_RANGE_0; b_ VoltageMode [2] = ADDIDATA_RANGEb_ VoltageMode [3] = ADDIDATA_RANGb_Polarity[0] = ADDIDATA_UNIPOLAR; b_Polarity[1] = ADDIDATA_BIPOLAR;

b_Polarity[3] = ADDIDATA_BIPOLAR;

b_ReturnVa b_AD (dw_DriverHandle, 4, w_ChannelNumbe

Return value:

Page 106: Addidata Handbuch

ADDIDRIVER Analog output channels

8

0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", the error source.

1: No error

to find

Page 107: Addidata Handbuch

Analog output channels ADDIDRIVER

9

RD ,

arameters:

dw_DriverHandle Handle of the ADDI-DATA driver ritten.

the selected analog output. utput:

Writes a value on 1 analog output.

5) b_ADDIDATA_Write1AnalogOutput (...)

Syntax: <Return Value> = b_ADDIDATA_Write1AnalogOutput (DWORD dw_DriverHandle, WO w_ChannelNumber DWORD dw_ValueToWrite) P- Input: DWORD WORD w_ChannelNumber Number of the analog output to be w The first analog output begins from 0. DWORD dw_ValueToWrite Value to be written on- O No output signal has occurred.

Task:

Calling convention: ANSI C : BYTE b_ReturnValue;

dw_DriverHandle;

logOutput iverHandle,

00);

ction. Use the function "i_ADDIDATA_GetLastError",

DWORD

b_ReturnValue = b_ADDIDATA_Write1Ana (dw_Dr

, 0 10

Return value: 1: No error 0: Error by calling up the fun to find the error source.

Page 108: Addidata Handbuch

ADDIDRIVER Analog output channels

10

)

ts (DWORD WORD PWORD pw_ChannelNumber PDWORD pdw_ValueToWrite)

WORD _DriverHandle e ADDI-DATA driver ORD _NumberOfChannels

pw_ChannelNumber Analog output array. The first analog output begins from 0.

PDWORD pb_ValueToWrite Array of the values to be written. ut:

ue on each of the selected channels.

6) b_ADDIDATA_WriteMoreAnalogOutputs (...

Syntax: <Return Value> = b_ADDIDATA_WriteMoreAnalogOutpu dw_DriverHandle, w_NumberOfChannels, Parameters: - Input: D dw Handle of th W w Number of analog outputs to be written PWORD

- Outp No output signal has occurred.

Task: Write a val

Calling convention: NSI C A :

BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_ChannelNumber[4]; DWORD b_ValueToWrite[4];

w_ChannelNumber[0] = 0; umber [1] = 2;

_ValueToWrite [0] = 500; _ValueToWrite [1] = 1000;

b_ValueToWrite [2] = 1500; b_ValueToWrite [3] = 2000;

b_ReturnValue = b_ADDIDATA_WriteMoreAnalogOutputs (dw_DriverHandle, 4, w_ChannelNumber, b_ValueToWrite);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

w_ChannelNw_ChannelNumber [2] = 5; w_ChannelNumber [3] = 8;bb

Page 109: Addidata Handbuch

Analog output channels ADDIDRIVER

11

_DriverHandle Handle of the ADDI-DATA driver r to be

ignal has occurred.

s the analog output channel.

7) b_ADDIDATA_Release1AnalogOutput (...)

Syntax: <Return Value> = b_ADDIDATA_Release1AnalogOutput (DWORD dw_DriverHandle, WORD w_ChannelNumber) Parameters: - Input:

D dw DWOR WORD w_ChannelNumber Number of the analog output numbe released.

t begins from 0. The first analog outpu- Output: No output s

Task: Release

Calling convention: ANSI C :

b_RBYTE eturnValue;

utput iverHandle,

0);

: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError",

DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_Release1AnalogO (dw_Dr

Return value: 1: No error 0 to find the error source.

Page 110: Addidata Handbuch

ADDIDRIVER Analog output channels

12

(DWPW

ls ased. ORD _ChannelNumber

o output gnal has occurred.

annels.

vention:

8) b_ADDIDATA_ReleaseMoreAnalogOutputs (...)

Syntax: <Return Value> = b_ADDIDATA_ReleaseMoreAnalogOutputs WORD dw_DriverHandle, ORD w_NumberOfChannels, ORD pw_ChannelNumber)

Parameters: - Input:

DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_NumberOfChanne Number of analog outputs to be rele

W w P p Analog output array. The first analog output begins from 0. - Output:

i N s

Task: Releases several analog output ch

Calling conANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle;

w_ChannelNumber[4];

Outputs (dw_DriverHandle,

4, w_ChannelNumber);

: No error the function "i_ADDIDATA_GetLastError",

to find the error source.

WORD

w_ChannelNumber [0] = 0; w_ChannelNumber [1] = 2; w_ChannelNumber [2] = 5; w_ChannelNumber [3] = 8;

b_ReturnValue = b_ADDIDATA_ReleaseMoreAnalog

Return value: 10: Error by calling up the function. Use

Page 111: Addidata Handbuch

Analog output channels ADDIDRIVER

13

arameters: - Input:

_DriverHandle Handle of the ADDI-DATA driver w_ChannelNumber Number of the analog output to be

c ut is synchronised and

t() utput: o output gnal has occurred.

Synchronises the analog output to be written with all other synchronised analog outputs.

9) b_ADDIDATA_EnableDisable1AnalogOutputSync (...)

Syntax: <Return Value> = b_ADDIDATA_EnableDisable1AnalogOutputSync (DWORD dw_DriverHandle, WORD w_ChannelNumber, DWORD dw_EnableDisableSync) P

DWORD dw WORD synchronised. The first analog output begins from 0. DWORD dw_EnableDisableSyn If = 1, the analog outp written with all other analog outputs. See function: b_ADDIDATA_TriggerAnalogOutpu- O N si

Task:

Calling convention: ANSI C : BYTE b_ReturnVa

w_Driverlue;

Handle;

iverHandle,

ction. Use the function "i_ADDIDATA_GetLastError",

DWORD d

ableDisable1AnalogOutputSync b_ReturnValue = b_ADDIDATA_En (dw_Dr 0, 1);

Return value: 1: No error 0: Error by calling up the fun to find the error source.

Page 112: Addidata Handbuch

ADDIDRIVER Analog output channels

14

OutputsSync (...)

alogOutputsSync (D

WORD w_NumberOfChannels, PWORD pw_ChannelNumber,

eDisableSync)

- Input: RD dw_DriverHandle Handle of the ADDI-DATA driver

o be released. elNumber Analog output array.

The first analog output begins from 0. he analog output is synchronised and with all other analog outputs. ction:

iggerAnalogOutput()

aNSI C

10) b_ADDIDATA_EnableDisableMoreAnalog

Syntax: <Return Value> = b_ADDIDATA_EnableDisableMoreAn WORD dw_DriverHandle, PDWORD pdw_Enabl

Parameters:

DWO WORD w_ NumberOfChannels Number of analog outputs t PWORD pw_Chann

PDWORD pdw_EnableDisableSync If = 1 t written

See fun b_ADDIDATA_Tr- Output: No output signal has occurred.

Task: Synchronises the selected analog outputs (pw_ChannelNumber).

lling convention: CA :

YTE b_ReturnValue; WORD dw_DriverHandle; ORD w_ChannelNumber[4];

DWORD dw_EnableDisableSync [4];

w_ChannelNumber[0] = 0; w_ChannelNumber[1] = 2; w_ChannelNumber[2] = 5; w_ChannelNumber[3] = 8; b_EnableDisableSync [0] = 0; b_EnableDisableSync [1] = 1; b_EnableDisableSync [2] = 0; b_EnableDisableSync [3] = 1; b_ReturnValue = b_ADDIDATA_EnableDisableMoreAnalogOutputsSync (dw_DriverHandle, 4, w_ChannelNumber, dw_EnableDisableSync);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

BDW

Page 113: Addidata Handbuch

Analog output channels ADDIDRIVER

15

12B11) b_ADDIDATA_TriggerAnalogOutput (...)

Syntax: <Return Value> = b_ADDIDATA_TriggerAnalogOutput (DWORD dw_DriverHandle) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: No output signal has occurred.

Task: Triggers the writing on all synchronised analog output channels.

Calling convention: UANSI C U: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_TriggerAnalogOutput (dw_DriverHandle);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 114: Addidata Handbuch

DIN EN ISO 9001:2000 certified

ADDI-DATA GmbHAirpark Business CenterAirport Boulevard B210

77836 RheinmünsterGermany

Phone: +49 7229 1847–0Fax: +49 7229 1847–222

E-mail: [email protected]

Software description

ADDIDRIVER

Analog inputs

Edition: 07.06- 08/2010

Page 115: Addidata Handbuch

Table of contents ADDIDRIVER

2

1 INTRODUCTION...................................................................................3

2 ANALOG INPUTS ..................................................................................4

2.1 General information.............................................................................................4

2.2 Initialisation........................................................................................................31

2.3 Single acquisition...............................................................................................34

2.4 Autorefresh acquisition ......................................................................................40

2.5 SCAN acquisition................................................................................................45

2.6 Sequence acquisition ........................................................................................58

2.7 Hardware trigger ................................................................................................69

2.8 Software trigger functions ..................................................................................75

2.9 Other functions...................................................................................................81

Tables

Table 1-1: Type Declaration for Windows 98/NT/2000/XP ........................................................3 Table 2-1: Gain/Polarity for a max. voltage of 5 V ................................................................32 Table 2-2: Selection of the conversion time .........................................................................35 Table 2-3: Time selection of a SCAN.....................................................................................46 Table 2-4: SCAN time mode.................................................................................................46 Table 2-5: SCAN mode.........................................................................................................47 Table 2-6: Trigger mode .......................................................................................................47

Page 116: Addidata Handbuch

ADDIDRIVER Introduction

3

1 INTRODUCTION

i

IMPORTANT! Note the following conventions in the text:

Function: "b_ADDIDATA_GetNumberOfAnalogInputs" Variable dw_DriverHandle

Table 1-1: Type Declaration for Windows 98/NT/2000/XP

Borland C Microsoft C Borland Pascal

Microsoft Visual Basic

Windows VOID void void pointer any

BYTE unsigned char unsigned char byte integer

INT int int integer integer

WORD unsigned short int unsigned short int long long

DWORD long long longint long

PBYTE unsigned char * unsigned char * var byte integer

PINT int * int * var integer integer

PWORD unsigned short int * unsigned short int * var long long

PCHAR char * char * var string string

PDWORD long * long * var longint long

DOUBLE double double double double

Page 117: Addidata Handbuch

Analog inputs ADDIDRIVER

4

2 ANALOG INPUTS

2.1 General information

1) b_ADDIDATA_GetNumberOfAnalogInputs (..)

Syntax: <Return value> = b_ADDIDATA_GetNumberOfAnalogInputs (DWORD dw_DriverHandle, PWORD pw_ChannelNbr)

Parameters: - Input: DWORD dw_DriverHandle Driver handle - Output: PWORD pw_ChannelNbr Returns the number of analog inputs

Task: Returns the number of analog inputs. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_ChannelNbr; b_ReturnValue = b_ADDIDATA_GetNumberOfAnalogInputs (dw_DriverHandle, &w_ChannelNbr);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 118: Addidata Handbuch

ADDIDRIVER Analog inputs

5

2) b_ADDIDATA_GetNumberOfAnalogInputModules (..)

Syntax: <Return value> = b_ADDIDATA_GetNumberOfAnalogInputModules (DWORD dw_DriverHandle, PWORD pw_ModuleNbr) Parameter: - Input: DWORD dw_DriverHandle Driver handle - Output: PWORD pw_ModuleNbr Returns the number of analog input modules.

Task: Returns the number of analog input modules. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_ModuleNbr; b_ReturnValue = b_ADDIDATA_GetNumberOfAnalogInputModules (dw_DriverHandle, &w_ModuleNbr);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 119: Addidata Handbuch

Analog inputs ADDIDRIVER

6

3) b_ADDIDATA_GetNumberOfAnalogInputsForTheModule (..)

Syntax: <Return value> = b_ADDIDATA_GetNumberOfAnalogInputsForTheModule (DWORD dw_DriverHandle, WORD w_Module, PWORD pw_ChannelNbr) Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_Module Analog input module - Output: PWORD pw_ChannelNbr Returns the number of analog input channels for the selected module.

Task: Returns the number of analog input channels for the module selected with w_Module. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_ChannelNbr; b_ReturnValue = b_ADDIDATA_GetNumberOfAnalogInputsForTheModule (dw_DriverHandle, 0, &w_ChannelNbr);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 120: Addidata Handbuch

ADDIDRIVER Analog inputs

7

4) b_ADDIDATA_GetAnalogInputModuleNumber (..)

Syntax: <Return value> = b_ADDIDATA_GetAnalogInputModuleNumber (DWORD dw_DriverHandle, WORD w_Channel, PWORD pw_Module)

Input: DWORD dw_DriverHandle Driver handle WORD w_Channel Analog input channel

Output: PWORD pw_Module Returns the analog input module number from selected channel.

Task: Return the analog input module index (pw_Module) from selected channel (w_Channel) Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_Module; b_ReturnValue = b_ADDIDATA_b_ADDIDATA_GetAnalogInputModuleNumber (dw_DriverHandle, 0, &w_Module);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 121: Addidata Handbuch

Analog inputs ADDIDRIVER

8

5) b_ADDIDATA_GetAnalogInputInformation (..)

i IMPORTANT! This function is only available for old user applications (up to version 2132-0304 of ADDIPACK).

If you develop new applications with ADDIDRIVER, please use the following functions:

b_ADDIDATA_GetAnalogInputModuleGeneralInformation b_ADDIDATA_GetAnalogInputModuleSingleAcquisitionInformation, b_ADDIDATA_GetAnalogInputModuleAutoRefreshInformation, b_ADDIDATA_GetAnalogInputModuleSCANInformation and b_ADDIDATA_GetAnalogInputModuleSequenceInformation.

Syntax: <Return value> = b_ADDIDATA_GetAnalogInputInformation (DWORD dw_DriverHandle, WORD w_Channel, pstr_GetAnalogMesureInformation ps_ChannelInformation, DWORD dw_StructSize)

Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_Channel Number of the analog input DWORD dw_StructSize Size of the structure entered in the pointer. - Output: pstr_GetAnalogMesureInformation ps_ChannelInformation Channel information. structure returned :

typedef struct { BYTE b_InputsResolution; Returns the input resolution 8: 8-bit resolution 16: 16-bit resolution, ... BYTE b_CanUsedInterrupt; 0: No interrupt can be generated 1: Interrupt can be generated BYTE b_UnipolarBipolarConfigurable 0: Unipolar/bipolar hardware configurable 1: Unipolar/bipolar configurable BYTE b_UnipolarAvailable; 0: Cannot configure in unipolar 1: Can configure in unipolar BYTE b_BipolarAvailable; 0: Cannot configure in bipolar 1: Can configure in bipolar BYTE b_SingleDifferenceSelected; 0: Single mode selected 1: Differential mode selected

Page 122: Addidata Handbuch

ADDIDRIVER Analog inputs

9

BYTE b_DCCouplingAvailable; 0: Cannot configure the direct coupling (DC) 1: Can configure direct coupling (DC) BYTE b_ACCouplingAvailable; 0: Cannot configure alternative coupling (AC) 1: Can configure alternative coupling (AC) BYTE b_BufferAvailable; 0: No hardware buffer available 1: Hardware buffer available BYTE b_CanGerenatedWarning; 0: Alarm not available 1: Alarm available BYTE b_CurrentSourceSetBySoft; 0: The current source must not be activated by software 1: The current source must be activated by software. BYTE b_NbrOfGain; Returns the number of gain values available DWORD dw_ModuleNumber Module number DOUBLE d_GainAvailable[255]; Defines the available gain value BYTE b_OffsetRangeAvailable; 0: Offset not allowed 1: Offset allowed BYTE b_Reserved2; WORD w_OffsetRangeResolution; Offset resolution 8: 8-bit resolution 16: 16-bit resolution, ... BYTE b_OffsetRangeDenominator; Offset denominator step value BYTE b_OffsetRangeNumerator; Offset numerator step value BYTE b_OpenInputDetection; 0: Open input detection not available 1: Open input detection available BYTE b_ShortCircuitDetection; 0: Short-circuit detection not available 1: Short-circuit detection available DOUBLE d_Umax; Returns the maximum input voltage value in V or A DOUBLE d_URef; Returns the reference input voltage value in V or A BYTE b_InputType; Selected user input type ADDIDATA_RTD ADDIDATA_THERMOCOUPLE ADDIDATA_TEMPERATURE_ON_BOARD ADDIDATA_OHM ADDIDATA_ANALOG_INPUT BYTE b_TypePrecision; Precision of the input ADDIDATA_THERMOCOUPLE_TYPE_B ADDIDATA_THERMOCOUPLE_TYPE_E ADDIDATA_THERMOCOUPLE_TYPE_J ADDIDATA_THERMOCOUPLE_TYPE_K ADDIDATA_THERMOCOUPLE_TYPE_N ADDIDATA_THERMOCOUPLE_TYPE_R ADDIDATA_THERMOCOUPLE_TYPE_S ADDIDATA_THERMOCOUPLE_TYPE_T or ADDIDATA_RTD_TYPE_PT ADDIDATA_RTD_TYPE_Ni WORD w_InputTypeValue; If a Pt sensor is connected type of the sensor 100 Pt100

Page 123: Addidata Handbuch

Analog inputs ADDIDRIVER

10

Module Information BYTE b_AutoCalibration; 0: Auto-calibration not available 1: Auto-calibration available BYTE b_CJCAvailable; 0: Without CJC (cold junction compensation) 1: With CJC BYTE b_ConversionMustSetting; 0: The conversion time for a single acquisition is determined by hardware (jumper) 1: The conversion time for a single acquisition is determined by software BYTE b_ConversionCalcType; 0: Binary type (XX000,XX001,XX010,XX011,XX100) 1: Multiple type (60, 120, 240, 480, 960, ...) BYTE b_ConversionUnitType; 0: Time unit (ns, µs, ms, s, ...) 1: Frequency unit (MHz, kHz, Hz, mHz, ...) BYTE b_AvailableConversionUnit; For time unit: D0: 0: ns not available 1: ns available D1: 0: µs not available 1: µs available D2: 0: ms not available 1: ms available D3: 0: s not available 1: s available For frequency unit: D0: 0: MHz not available 1: MHz available D1: 0: kHz not available 1: kHz available D2: 0: Hz not available 1: Hz available D3: 0: mHz not available 1: mHz available WORD w_ConversionResolution; 8 : 8-bit resolution 16: 16-bit resolution, ... WORD w_MinConversionTime; Minimum conversion time. 7000: 7000(ns) 10000: 10000(ns), ... WORD w_ConversionStep; Conversion time steps 20: 20 steps 50: 50 steps, ... BYTE b_SEQArrayAvailable; 0: Sequence array not available 1: Sequence array available BYTE b_SEQConfigurable; 0: Sequence fixed 1: Sequence configurable BYTE b_SEQHardwareTriggerAvailable; 0: Hardware trigger not available 1: Hardware trigger available BYTE b_SEQHardwareTriggerHighAvailable; 0: Hardware high trigger level not available 1: Hardware high trigger level available

Page 124: Addidata Handbuch

ADDIDRIVER Analog inputs

11

BYTE b_SEQHardwareTriggerLowAvailable; 0: Low level not available for hardware trigger 1: Low level available for hardware trigger BYTE b_SEQHardwareTriggerAvailableMode; 001: External trigger start a 1 DMA cycle 010: Each trigger starts a sequence 100: Each trigger starts a DMA cycle BYTE b_SEQHardwareGateAvailable; 0: Hardware gate not available 1: Hardware gate available BYTE b_SEQHardwareGateHighAvailable; 0: High level not available for hardware gate 1: High level available for hardware gate BYTE b_SEQHardwareGateLowAvailable; 0: Low level not available for hardware gate 1: Low level available for hardware gate BYTE b_SEQClrIndexAvailable; 0: It is not possible to restart the acquisition with the next selected channel in the sequence 1: It's possible to restart the acquisition with the next selected channel in the sequence WORD w_SEQAcquisitionMode; 00: The acquisition can operate in single mode 01: The acquisition can operate in continuous mode 11: The acquisition can operate in single and continuous mode BYTE b_DMAAvailable; 0: Board cannot use the DMA 1: Board can use the DMA BYTE b_DualDMAChannel; 0: Only 1 DMA channel can be used 1: Board can use 2 DMA channels BYTE b_SEQCounterAvailable; 0: DMA conversion counter not available 1: DMA conversion counter available BYTE b_SEQCounterMode; 01: Counter can count the number of sequences 10: Counter can count the number of DMA cycles 11: Counter can count the number of DMA cycles or the number of sequences BYTE b_SEQCommonGain; Defines if the gain can differ for each input 0: Gain is the same for each input 1: Gain can differ for each input. BYTE b_SEQCommonPolarity; Defines if the polarity can differ for each input 0: Polarity is the same for each input 1: Polarity can differ for each input. BYTE b_SEQCommonOffsetRange; Defines if the offset can differ for each input 0: Offset is the same for each input 1: Offset can differ for each input. BYTE b_SEQCommonCoupling; WORD w_SEQCounterResolution; Counter resolution 8 : 8-bit resolution 16: 16-bit resolution, ... BYTE b_SEQDelayTimeConfigurable; 0: Delay after each sequence not available 1: Delay after each sequence available

Page 125: Addidata Handbuch

Analog inputs ADDIDRIVER

12

BYTE b_SEQDelayMode; BYTE b_SEQDelayCalcType; 0: Binary type (XX000,XX001,XX010,XX011,XX100) 1: Multiple type (60,120,240,480,960, ...) BYTE b_SEQDelayTimeUnitType; 0: Time unit (ns, µs, ms, s, ...) 1: Frequency unit (MHz, kHz, Hz, mHz, ...) BYTE b_SEQDelayValueType; 0: Value to write in the register is in s or in Hz 1: The step multiplier is to be written in the register BYTE b_SEQDelayTimeUnit; For time unit: D0: 0: ns not available 1: ns available D1: 0: µs not available 1: µs available D2: 0: ms not available 1: ms available D3: 0: s not available 1: s available For frequency unit: D0: 0: MHz not available 1: MHz available D1: 0: kHz not available 1: kHz available D2: 0: Hz not available 1: Hz available D3: 0: mHz not available 1: mHz available WORD w_SEQDelayTimeResolution; Delay time resolution 8: 8-bit resolution 16: 16-bit resolution, ... WORD w_SEQMinDelayTime; Minimum delay time. 7000: 7000(ns) 10000: 10000(ns), ... WORD w_SEQDelayTimeStep; Conversion delay time steps 20: 20 steps 50: 50 steps, ... BYTE b_SEQUnipolarBipolarConfigurable; 0: Unipolar/Bipolar hardware configurable 1: Unipolar/Bipolar configurable BYTE b_SEQUnipolarAvailable; 0: Cannot configure in unipolar 1: Can configure in unipolar BYTE b_SEQBipolarAvailable; 0: Cannot configure in bipolar 1: Can configure in bipolar BYTE b_SEQDCCouplingAvailable; 0: Cannot configure the direct coupling (DC) 1: Can configure direct coupling (DC) BYTE b_SEQACCouplingAvailable; 0: Cannot configure alternative coupling (AC) 1: Can configure alternative coupling (AC) BYTE b_SEQBufferAvailable; 0: No hardware buffer available 1: Hardware buffer available

Page 126: Addidata Handbuch

ADDIDRIVER Analog inputs

13

BYTE b_SEQNbrOfGain; Returns the number of gain values available BYTE b_Reserved3; WORD w_Reserved4; DWORD dw_Reserved5; DOUBLE d_SEQGainAvailable[255]; Defines the available gain value BYTE b_SEQOffsetRangeAvailable; 0: Offset not allowed 1: Offset allowed BYTE b_Reserved6; WORD w_SEQOffsetRangeResolution; Offset resolution 8 : 8-bit resolution 16: 16-bit resolution, ... BYTE b_SEQOffsetRangeDenominator; Offset denominator step value BYTE b_SEQOffsetRangeNumerator; Offset numerator step value BYTE b_SCANAvailable; 0: SCAN not available 1: SCAN available BYTE b_SCANConfigurable; 0: SCAN fixed 1: SCAN configurable (The first and the last channel can be given) BYTE b_SCANHardwareTriggerAvailable; 0: Hardware trigger not available 1: Hardware trigger available BYTE b_SCANHardwareTriggerHighAvailable; 0: Hardware high trigger level not available 1: Hardware high trigger level available BYTE b_SCANHardwareTriggerLowAvailable; 0: Hardware low trigger level not available 1: Hardware low trigger level available BYTE b_SCANHardwareTriggerAvailableMode; 0001: External trigger starts each acquisition from a SCAN 0010: Each trigger starts each SCAN 1000: the first Trigger starts the SCAN cycle BYTE b_SCANHardwareGateAvailable; 0: Hardware gate not available 1: Hardware gate available BYTE b_SCANHardwareGateHighAvailable; 0: Hardware high gate level not available 1: Hardware high gate level available BYTE b_SCANHardwareGateLowAvailable; 0: Low level not available for hardware gate 1: Low level available for hardware gate BYTE b_SCANClrIndexAvailable; 0: It is not possible to restart the acquisition with the next selected channel of SCAN 1: It is possible to restart the acquisition with the next selected channel of SCAN WORD w_SCANAcquisitionMode; 00: The acquisition can operate in single mode 01: The acquisition can operate in continuous mode 11: The acquisition can operate in single and continuous mode

Page 127: Addidata Handbuch

Analog inputs ADDIDRIVER

14

BYTE b_SCANCounterAvailable; 0: SCAN conversion counter not available 1: SCAN conversion counter available BYTE b_SCANCounterMode; 01: Counter can count the number of SCANs BYTE b_SCANCommonGain; Defines if the gain can differ for each input 0: Gain is the same for each input 1: Gain can differ for each input. BYTE b_SCANCommonPolarity; Defines if the polarity can differ for each input 0: Polarity is the same for each input 1: Polarity can be differ for each input. BYTE b_SCANCommonOffsetRange;Defines if the offset can differ for each input 0: Offset is the same for each input 1: Offset can differ for each input. BYTE b_SCANCommonCoupling; WORD w_SCANCounterResolution; Counter resolution 8: 8-bit resolution 16: 16-bit resolution, ... BYTE b_SCANDelayTimeConfigurable; 0: Delay after each sequence not available 1: Delay after each sequence available BYTE b_SCANDelayMode; BYTE b_SCANDelayCalcType; 0: Binary type (XX000,XX001,XX010,XX011,XX100) 1: Multiple type (60,120,240,480,960, ...) BYTE b_SCANDelayTimeUnitType; 0: Time unit (ns, µs, ms, s, ...) 1: Frequency unit (MHz, kHz, Hz, mHz, ...) BYTE b_SCANDelayValueType; 0: Value to write in the register is the value in s or in Hz 1: The step multiplier is to be written in the register BYTE b_SCANDelayTimeUnit; For time unit: D0: 0: ns not available 1: ns available D1: 0: µs not available 1: µs available D2: 0: ms not available 1: ms available D3: 0: s not available 1: s available For frequency unit: D0: 0: MHz not available 1: MHz available D1: 0: kHz not available 1: kHz available D2: 0: Hz not available 1: Hz available D3: 0: mHz not available 1: mHz available WORD w_SCANDelayTimeResolution; Delay time resolution 8: 8-bit resolution 16: 16-bit resolution, ...

Page 128: Addidata Handbuch

ADDIDRIVER Analog inputs

15

WORD w_SCANMinDelayTime; Minimum delay time. 7000: 7000(ns) 10000: 10000(ns), ... WORD w_SCANDelayTimeStep; Conversion delay time steps 20: 20 steps 50: 50 steps, ... BYTE b_SCANUnipolarBipolarConfigurable; 0: Unipolar/bipolar hardware configurable 1: Unipolar/bipolar configurable BYTE b_SCANUnipolarAvailable; 0: Cannot configure in unipolar 1: Can configure in unipolar BYTE b_SCANBipolarAvailable; 0: Cannot configure in bipolar 1: Can configure in bipolar BYTE b_SCANDCCouplingAvailable; 0: Cannot configure the direct coupling (DC) 1: Can configure direct coupling (DC) BYTE b_SCANACCouplingAvailable; 0: Cannot configure alternative coupling (AC) 1: Can configure alternative coupling (AC) BYTE b_SCANBufferAvailable; 0: No hardware buffer available 1: Hardware buffer available BYTE b_SCANNbrOfGain; Returns the number of gain values available BYTE b_Reserved7; WORD w_Reserved8; DOUBLE d_SCANGainAvailable[255]; Defines the available gain values BYTE b_SCANOffsetRangeAvailable; 0: Offset not allowed 1: Offset allowed BYTE b_Reserved9; WORD w_SCANOffsetRangeResolution; Offset resolution 8 : 8-bit resolution 16: 16-bit resolution, ... BYTE b_SCANOffsetRangeDenominator; Offset denominator step value BYTE b_SCANOffsetRangeNumerator; Offset numerator step value WORD w_Reserved10; }str_GetAnalogMesureInformation,*pstr_GetAnalogMesureInformation;

Task: Returns information about the selected analog input channels.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_ChannelNbr; str_GetAnalogMesureInformation s_ChannelInformation; b_ReturnValue = b_ADDIDATA_GetAnalogInputInformation (dw_DriverHandle, 0, &s_ChannelInformation, sizeof (str_GetAnalogMesureInformation));

Page 129: Addidata Handbuch

Analog inputs ADDIDRIVER

16

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 130: Addidata Handbuch

ADDIDRIVER Analog inputs

17

6) b_ADDIDATA_GetAnalogInputModuleGeneralInformation (..)

Syntax: <Return value> = b_ADDIDATA_GetAnalogInputModuleGeneralInformation (DWORD dw_DriverHandle, WORD w_Module, pstr_AnalogInputModuleInformation ps_ModuleInformation, DWORD dw_StructSize)

Input: DWORD dw_DriverHandle Driver handle DWORD dw_StructSize Size of the structure entered in the pointer.

Output: pstr_AnalogInputModuleInformation ps_ModuleInformation Module information. structure returned : typedef struct { BYTE b_InputsResolution; Returns the input resolution 8: 8-bit resolution 16: 16-bit resolution, ... BYTE b_UnipolarBipolarConfigurable; 0: Unipolar/Bipolar hardware configurable 1: Unipolar/Bipolar software configurable BYTE b_UnipolarAvailable; 0: Unipolar mode not available 1: Unipolar mode available BYTE b_BipolarAvailable; 0: Bipolar mode not available 1: Bipolar mode available BYTE b_SingleDifferenceSelected; 0: Single mode selected 1: Difference mode selected BYTE b_ACAvailable; 0: AC available 1: AC not available BYTE b_DCAvailable; 0: DC available 1: DC not available BYTE b_AutoCalibration; 0: Auto calibration not available 1: Auto calibration available DOUBLE d_UMax; Return the maximal input voltage value in V or A BYTE b_ConversionCalcType; 0: Binary type (XX000,XX001,XX010,XX011) 1: Multiple type (60,120,240,480, ...)

Page 131: Addidata Handbuch

Analog inputs ADDIDRIVER

18

BYTE b_ConversionUnitType; 0: Time unit (ns, µs, ms, s, ...) 1: Frequency unit (MHz, KHz, Hz, etc.) BYTE b_AvailableConversionUnit; For time unit: D0: 0: ns not available 1: ns available D1: 0: µs not available 1: µs available D2: 0: ms not available 1: ms available D3: 0: s not available 1 : s available For frequency unit:: D0: 0: MHz not available 1: MHz available D1: 0: KHz not available 1: KHz available D2: 0: Hz not available 1: Hz available D3: 0: mHz not available 1: mHz available BYTE b_Reserved2[5]; WORD w_ConversionResolution; Convert time resolution 8: 8-bit resolution 16: 16-bit resolution, ... WORD w_MinConversionTime; Minimum conversion time. 7000 : 7000(ns) 10000 : 10000(ns), ... WORD w_ConversionStep; Conversion time steps 20: 20 steps 50: 50 steps, ... BYTE b_Reserved3[2]; BYTE b_SingleAcquisition; 0: Single acquisition not available 1: Single acquisition available BYTE b_AutoRefreshAcquisition; 0: Auto refresh acquisition not available 1: Auto refresh acquisition available BYTE b_ScanAcquisition; 0: Scan acquisition not available 1: Scan acquisition available BYTE b_SequenceAcquisition; 0: Sequence acquisition not available 1: Sequence acquisition available BYTE b_Reserved4[4];

Page 132: Addidata Handbuch

ADDIDRIVER Analog inputs

19

WORD w_FirstChannelNumber; Return the number from first channel number WORD w_LastChannelNumber; Return the number from last channel number BYTE b_Reserved5[4]; }str_AnalogInputModuleInformation, *pstr_AnalogInputModuleInformation; Task: Returns information about the analog input module (input resolution, convert time, available acquisition modes, …) Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; str_AnalogInputModuleInformation s_ModuleInformation; b_ReturnValue = b_ADDIDATA_GetAnalogInputModuleGeneralInformation (dw_DriverHandle, 0, &s_ModuleInformation, sizeof (s_ModuleInformation));

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 133: Addidata Handbuch

Analog inputs ADDIDRIVER

20

7) b_ADDIDATA_GetAnalogInputModuleSingleAcquisitionInformation (..)

Syntax: <Return value> = b_ADDIDATA_GetAnalogInputModuleSingleAcquisitionInformation (DWORD dw_DriverHandle, WORD w_Module, pstr_AnalogInputSingleAcquisitionInformation ps_ModuleInformation, DWORD dw_StructSize)

Input: DWORD dw_DriverHandle Driver handle DWORD dw_StructSize Size of the structure entered in the pointer.

Output: pstr_AnalogInputSingleAcquisitionInformation ps_ModuleInformation Module information. structure returned : typedef struct { BYTE b_Interrupt; 0: No interrupt can by generated 1: Interrupt can by generated BYTE b_SoftwareTrigger; 0: Software trigger not available 1: Software trigger available BYTE b_HardwareTrigger; 0: Hardware trigger not available 1: Hardware trigger available BYTE b_HardwareGate; 0: Hardware gate not available 1: Hardware gate available BYTE b_NbrOfGain; Returns the number of gain values available BYTE b_Reserved1[3]; DOUBLE d_GainAvailable[255]; Defines the available gain value }str_AnalogInputSingleAcquisitionInformation, *pstr_AnalogInputSingleAcquisitionInformation; Task: Returns information about the analog input module for the single acquisition mode. (b_ADDIDATA_Read1AnalogInput and b_ADDIDATA_ReadMoreAnalogInputs)

Page 134: Addidata Handbuch

ADDIDRIVER Analog inputs

21

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; str_AnalogInputSingleAcquisitionInformation s_ModuleInformation; b_ReturnValue = b_ADDIDATA_GetAnalogInputModuleSingleAcquisitionInformation (dw_DriverHandle, 0, &s_ModuleInformation, sizeof (s_ModuleInformation));

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 135: Addidata Handbuch

Analog inputs ADDIDRIVER

22

8) b_ADDIDATA_GetAnalogInputModuleAutoRefreshInformation (..)

Syntax: <Return value> = b_ADDIDATA_GetAnalogInputModuleAutoRefreshInformation (DWORD dw_DriverHandle, WORD w_Module, pstr_AnalogInputAutoRefreshInformation ps_ModuleInformation, DWORD dw_StructSize)

Input: DWORD dw_DriverHandle Driver handle DWORD dw_StructSize Size of the structure entered in the pointer.

Output: pstr_AnalogInputAutoRefreshInformation ps_ModuleInformation Module information. structure returned : typedef struct { BYTE b_Interrupt; 0: No interrupt can by generated 1: Interrupt can by generated BYTE b_SoftwareTrigger; 0: Software trigger not available 1: Software trigger available BYTE b_HardwareTrigger; 0: Hardware trigger not available 1: Hardware trigger available BYTE b_HardwareGate; 0: Hardware gate not available 1: Hardware gate available BYTE b_AccessMode; Auto refresh buffer access mode 8: 8-bit access mode 16: 16-bit access mode 32: 32-bit access mode BYTE b_CommonGain; Define if the gain can be different for each input 0: Gain is common on each input 1: Gain can be different for each input. BYTE b_CommonPolarity; Define if the polarity can be different for each input 0: Polarity is common on each input 1: Polarity can be different for each input. BYTE b_Reserved1 [1]; BYTE b_NbrOfGain; Returns the number of gain values available BYTE b_Reserved2 [7]; DOUBLE d_GainAvailable[255]; Defines the available gain value } str_AnalogInputAutoRefreshInformation,*pstr_AnalogInputAutoRefreshInformation

Page 136: Addidata Handbuch

ADDIDRIVER Analog inputs

23

Task: Returns information about the analog input module for the auto refresh acquisition mode (b_ADDIDATA_GetAnalogInputAutoRefreshChannelPointer and b_ADDIDATA_StartAnalogInputAutoRefresh). The auto refresh mode acquire continually the analog inputs and give the values via a memory space. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; str_AnalogInputAutoRefreshInformation s_ModuleInformation; b_ReturnValue = b_ADDIDATA_GetAnalogInputModuleAutoRefreshInformation (dw_DriverHandle, 0, &s_ModuleInformation, sizeof (s_ModuleInformation)); Note: All channels of a module must be initialised to run the auto refresh acquisition.

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 137: Addidata Handbuch

Analog inputs ADDIDRIVER

24

9) b_ADDIDATA_GetAnalogInputModuleSCANInformation (..)

Syntax: <Return value> = b_ADDIDATA_GetAnalogInputModuleSCANInformation (DWORD dw_DriverHandle, WORD w_Module, pstr_AnalogInputSCANInformation ps_ModuleInformation, DWORD dw_StructSize)

Input: DWORD dw_DriverHandle Driver handle DWORD dw_StructSize Size of the structure entered in the pointer.

Output: pstr_AnalogInputSCANInformation ps_ModuleInformation Module information. structure returned : typedef struct { BYTE b_SCANConfigurable; 0: SCAN fixed. User must pass the first and last channel from the selected module 1: SCAN configurable User is free to define the first and last channel BYTE b_SoftwareTrigger; 0: Software trigger not available 1: Software trigger available BYTE b_HardwareTrigger; 0: Hardware trigger not available 1: Hardware trigger available BYTE b_HardwareGate; 0: Hardware gate not available 1: Hardware gate available BYTE b_CommonGain; Define if the gain can be different for each input 0: Gain is common on each input 1: Gain can be different for each input. BYTE b_CommonPolarity; Define if the polarity can be different for each input 0: Polarity is common on each input 1: Polarity can be different for each input. BYTE b_Reserved1; BYTE b_NbrOfGain; Returns the number of gain values available DOUBLE d_GainAvailable[255]; Defines the available gain value BYTE b_DelayTimeConfigurable; 0: Delay after each SCAN not available 1: Delay after each SCAN available BYTE b_DelayAvailableMode; D0: 0: Mode 1 not available

Page 138: Addidata Handbuch

ADDIDRIVER Analog inputs

25

1: Mode 1 available D1: 0: Mode 2 not available 1: Mode 2 available BYTE b_DelayCalcType; 0: Binary type (XX000,XX001,XX010) 1: Multiple type (60,120,240,480,960, ...) BYTE b_DelayTimeUnitType; 0: Time unit (ns,µs,ms,s, ...) 1: Frequency unit (MHz,kHz,Hz,mHz, ...) BYTE b_DelayTimeUnit; For time unit: D0: 0: ns not available 1: ns available D1: 0: µs not available 1: µs available D2: 0: ms not available 1: ms available D3: 0: s not available 1 : s available For frequency unit: D0: 0: MHz not available 1: MHz available D1: 0: KHz not available 1: KHz available D2: 0: Hz not available 1: Hz available D3: 0: mHz not available 1: mHz available BYTE b_Reserved2 [3]; WORD w_DelayTimeResolution; Delay time resolution 8: 8-bit resolution 16: 16-bit resolution, ... WORD w_MinDelayTime; Minimum delay time. 7000 : 7000(ns) 10000: 10000(ns), ... WORD w_DelayTimeStep; Conversion delay time steps 20: 20 steps 50: 50 steps, ... WORD w_AcquisitionMode; XX1: The acquisition can work in Single mode X11: The acquisition can work in continuous mode 1XX: The acquisition can work in counting mode DWORD dw_MaxNumberOfAcquisition; Return the max number of acquisition for the counting acquisition SCAN mode BYTE b_Reserved4 [4]; } str_AnalogInputSCANInformation,*pstr_AnalogInputSCANInformation Task: Returns information about the analog input module for the SCAN acquisition mode (b_ADDIDATA_InitAnalogInputSCANAcquisition and

Page 139: Addidata Handbuch

Analog inputs ADDIDRIVER

26

b_ADDIDATA_StartAnalogInputSCAN). Into the SCAN mode the user define the first and last channel to acquire. After each SCAN a interrupt is generated and the user receive the analog input values. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; pstr_AnalogInputSCANInformation s_ModuleInformation; b_ReturnValue = b_ADDIDATA_GetAnalogInputModuleSCANInformation (dw_DriverHandle, 0, &s_ModuleInformation, sizeof (s_ModuleInformation));

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 140: Addidata Handbuch

ADDIDRIVER Analog inputs

27

10) b_ADDIDATA_GetAnalogInputModuleSequenceInformation (..)

Syntax: <Return value> = b_ADDIDATA_GetAnalogInputModuleSequenceInformation (DWORD dw_DriverHandle, WORD w_Module, pstr_AnalogInputSequenceInformation ps_ModuleInformation, DWORD dw_StructSize)

Input: DWORD dw_DriverHandle Driver handle DWORD dw_StructSize Size of the structure entered in the pointer.

Output: pstr_AnalogInputSequenceInformation ps_ModuleInformation Module information. structure returned : typedef struct { BYTE b_SequenceConfigurable; 0: Sequence fixed. User muss pass the first and last channel from the selected module 1: Sequence configurable User is free to define the first and last channel BYTE b_SoftwareTrigger; 0: Software trigger not available 1: Software trigger available BYTE b_HardwareTrigger; 0: Hardware trigger not available 1: Hardware trigger available BYTE b_HardwareGate; 0: Hardware gate not available 1: Hardware gate available BYTE b_CommonGain; Define if the gain can be different for each input 0: Gain is common on each input 1: Gain can be different for each input. BYTE b_CommonPolarity; Define if the polarity can be different for each input 0: Polarity is common on each input 1: Polarity can be different for each input. BYTE b_Reserved1;

Page 141: Addidata Handbuch

Analog inputs ADDIDRIVER

28

BYTE b_NbrOfGain; Returns the number of gain values available DOUBLE d_GainAvailable[255]; Defines the available gain value BYTE b_DelayTimeConfigurable; 0: Delay after each sequence not available 1: Delay after each sequence available BYTE b_DelayAvailableMode; D0: 0: Mode 1 not available 1: Mode 1 available D1: 0: Mode 2 not available 1: Mode 2 available BYTE b_DelayCalcType; 0: Binary type (XX000,XX001,XX010) 1: Multiple type (60,120,240,480,960, ...) BYTE b_DelayTimeUnitType; 0: Time unit (ns,µs,ms,s, ...) 1: Frequency unit (MHz,kHz,Hz,mHz, ...) BYTE b_DelayTimeUnit; For time unit: D0: 0: ns not available 1: ns available D1: 0: µs not available 1: µs available D2: 0: ms not available 1: ms available D3: 0: s not available 1 : s available For frequency unit: D0: 0: MHz not available 1: MHz available D1: 0: KHz not available 1: KHz available D2: 0: Hz not available 1: Hz available D3: 0: mHz not available 1: mHz available BYTE b_Reserved2 [3]; WORD w_DelayTimeResolution; Delay time resolution 8: 8-bit resolution 16: 16-bit resolution, ... WORD w_MinDelayTime; Minimum delay time. 7000: 7000 (ns) 10000: 10000 (ns), ... WORD w_DelayTimeStep; Conversion delay time steps 20: 20 steps 50: 50 steps, ... WORD w_AcquisitionMode; XX1: The acquisition can work in Single mode X11: The acquisition can work in continuous mode 1XX: The acquisition can work in counting mode

Page 142: Addidata Handbuch

ADDIDRIVER Analog inputs

29

DWORD dw_MaxNumberOfAcquisition; Return the max number of acquisition for the counting acquisition SCAN mode BYTE b_Reserved4 [4]; } str_AnalogInputSequenceInformation,*pstr_AnalogInputSequenceInformation

Page 143: Addidata Handbuch

Analog inputs ADDIDRIVER

30

Task: Returns information about the analog input module for the SCAN acquisition mode (b_ADDIDATA_InitAnalogInputSequenceAcquisition and b_ADDIDATA_StartAnalogInputSequenceAcquisition). The sequence mode use the DMA. This give the possibility to acquire in background. Into the sequence mode the user define a channel sequence to acquire. After each X sequence a interrupt is generated and the user receive the analog input values via a buffer. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; str_AnalogInputSequenceInformation s_ModuleInformation; b_ReturnValue = b_ADDIDATA_GetAnalogInputModuleSequenceInformation (dw_DriverHandle, 0, &s_ModuleInformation, sizeof (s_ModuleInformation));

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 144: Addidata Handbuch

ADDIDRIVER Analog inputs

31

2.2 Initialisation

1) b_ADDIDATA_InitAnalogInput (..)

Syntax: <Return value> = b_ADDIDATA_InitAnalogInput (DWORD dw_DriverHandle, WORD w_Channel, pstr_InitAnalogInput ps_InitParameters, DWORD dw_StructSize)

Input: DWORD dw_DriverHandle Driver handle WORD w_Channel Number of the analog input channel to be initialised pstr_InitAnalogInputChannel ps_InitParameters DWORD dw_StructSize Size of the structure entered in the pointer. The structure must contain the following information: typedef struct { DOUBLE d_Gain Gain of the channel (Refer to table 2-1) BYTE b_Polarity Polarity of the selected channel ADDIDATA_UNIPOLAR for unipolar and ADDIDATA_BIPOLAR for bipolar (see table 2-1) BYTE b_Reserved1 WORD w_OffsetRange Offset range of the channel. Not used for the moment. Set it to 0. BYTE b_Coupling Select the coupling: ADDIDATA_AC_COUPLING : Alternative coupling ADDIDATA_DC_COUPLING : Direct coupling BYTE b_Reserved2 WORD w_Reserved3 }str_InitAnalogInput,*pstr_InitAnalogInput

Output: No output signal has occurred.

Task: Initialises the selected analog input channel.

Page 145: Addidata Handbuch

Analog inputs ADDIDRIVER

32

Table 2-1: Gain/Polarity for a max. voltage of 5 V Gain selection Polarity selection Min. voltage Max. voltage

ADDIDATA_UNIPOLAR 0 V 5V 1 ADDIDATA_BIPOLAR -5V 5V ADDIDATA_UNIPOLAR 0 V 2.5V 2 ADDIDATA_BIPOLAR - 2.5V 2.5V ADDIDATA_UNIPOLAR 0 V 1.25 V 4 ADDIDATA_BIPOLAR - 1.25 V 1.25 V ADDIDATA_UNIPOLAR 0 V 1 V 5 ADDIDATA_BIPOLAR - 1 V 1 V ADDIDATA_UNIPOLAR 0 V 0.625 V 8 ADDIDATA_BIPOLAR - 0.625 V 0.625 V ADDIDATA_UNIPOLAR 0 V 0.5 V 10 ADDIDATA_BIPOLAR - 0.5 V 0.5 V ADDIDATA_UNIPOLAR 0 V 0.3125 V 16 ADDIDATA_BIPOLAR - 0.3125 V 0.3125 V ADDIDATA_UNIPOLAR 0 V 0.250 V 20 ADDIDATA_BIPOLAR - 0.250 V 0.250 V ADDIDATA_UNIPOLAR 0 V 156.25 mV 32 ADDIDATA_BIPOLAR - 156.25 mV 156.25 mV ADDIDATA_UNIPOLAR 0 V 100 mV 50 ADDIDATA_BIPOLAR - 100 mV 100 mV ADDIDATA_UNIPOLAR 0 V 78.125 mV 64 ADDIDATA_BIPOLAR - 78.125 mV 78.125 mV ADDIDATA_UNIPOLAR 0 V 50 mV 100 ADDIDATA_BIPOLAR - 50 mV 50 mV ADDIDATA_UNIPOLAR 0 V 39,0625 mV 128 ADDIDATA_BIPOLAR - 39,0625 mV 39,0625 mV ...

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; str_InitAnalogInputChannel s_InitParameters; b_ReturnValue = b_ADDIDATA_ InitAnalogInput (dw_DriverHandle, 0, &s_InitParameters, sizeof (str_InitAnalogInputChannel));

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 146: Addidata Handbuch

ADDIDRIVER Analog inputs

33

2) b_ADDIDATA_ReleaseAnalogInput (..)

Syntax: <Return value> = b_ADDIDATA_ReleaseAnalogInput (DWORD dw_DriverHandle, WORD w_Channel)

Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_Channel Number of the analog input channel to be released before a new initialisation. - Output: No output signal has occurred.

Task: Releases the analog input logic for the selected channel (w_Channel) to allow a new initialisation.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_ReleaseAnalogInput (dw_DriverHandle, 0);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 147: Addidata Handbuch

Analog inputs ADDIDRIVER

34

2.3 Single acquisition

1) b_ADDIDATA_Read1AnalogInput (..)

Syntax: <Return value> = b_ADDIDATA_Read1AnalogInput (DWORD dw_DriverHandle, WORD w_Channel, DWORD dw_ConvertingTime, BYTE b_ConvertingTimeUnit, BYTE b_InterruptFlag, PDWORD pdw_ChannelValue)

Input: DWORD dw_DriverHandle Driver handle DWORD w_Channel Number of the analog input channel to be read DWORD dw_ConvertingTime Conversion time. Refer to table 2-2 BYTE b_ConvertingTimeUnit Determines the conversion time unit. Refer to table 2-2 BYTE b_InterruptFlag ADDIDATA_DISABLE: No interrupt is generated after the conversion and the variable pdw_ChannelValue returns the digital value. ADDIDATA_ENABLE: An interrupt is generated after the conversion. The digital value of the selected channel is returned through the interrupt function. Refer to the chapter "Interrupt"

Output: PDWORD pdw_ChannelValue Returns the digital value of the selected channel *pdw_ChannelValue[0] = digital value of the channel *pdw_ChannelValue[1] = digital value of the calibration offset (if available) *pdw_ChannelValue[2] = digital value of the calibration gain (if available)

Task: Returns the digital value (pdw_ChannelValue) of the selected channel (w_Channel). To obtain the real analog input value, you must call up the "b_ADDIDATA_ConvertDigitalToRealAnalogValue (...)" function. dw_ConvertingTime and b_ConvertingTimeUnit determine the conversion time.

IMPORTANT! The interrupt mask for the function is detailed in the "Interrupt" function description. (Tables 2-1).

Page 148: Addidata Handbuch

ADDIDRIVER Analog inputs

Table 2-2: Selection of the conversion time

b_ConvertingTimeUnit Unit selection dw_ConvertingTime Conversion time 10 10 ns / MHz 20 20 ns / MHz 300 300 ns / MHz 1000 1000 ns / MHz

0

ns / MHz

22222 22222 ns / MHz 10 10 µs / KHz 20 20 µs / KHz 300 300 µs / KHz 1000 1000 µs / KHz

1

µs / KHz

22222 22222 µs / KHz 10 10 ms / Hz 20 20 ms / Hz 300 300 ms / Hz 1000 1000 ms / Hz

2

ms / Hz

22222 22222 ms / Hz 10 10 s / mHz 20 20 s / mHz 300 300 s / mHz 1000 1000 s / mHz

3

s / mHz

22222 22222 s / mHz

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_ChannelValue[4]; b_ReturnValue = b_ADDIDATA_Read1AnalogInput (dw_DriverHandle, 0, 10, 1, ADDIDATA_DISABLE, dw_ChannelValue);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

35

Page 149: Addidata Handbuch

Analog inputs ADDIDRIVER

36

2) b_ADDIDATA_ReadMoreAnalogInputs (..)

Syntax: <Return value> = b_ADDIDATA_ReadMoreAnalogInputs (DWORD dw_DriverHandle, WORD w_FirstChannel, WORD w_LastChannel, DWORD dw_ConvertingTime, BYTE b_ConvertingTimeUnit, BYTE b_InterruptFlag, PDWORD pdw_ChannelArrayValue)

Input: DWORD dw_DriverHandle Driver handle WORD w_FirstChannel Selection of the first channel to be read WORD w_LastChannel Selection of the last channel to be read DWORD dw_ConvertingTime Conversion time. Refer to table 2-2 BYTE b_ConvertingTimeUnit Determines the unit of the conversion time. Refer to table 2-2 BYTE b_InterruptFlag ADDIDATA_DISABLE: No interrupt is generated after the last conversion and the variable pdw_ChannelArrayValue returns the digital value. ADDIDATA_ENABLE: An interrupt is generated after the last conversion. The digital value of all selected channels is returned through the interrupt function. Refer to the chapter "Interrupt"

Output: PDWORD pdw_ChannelArrayValue Returns the digital value of all selected channels *pdw_ChannelValue[0] = digital value of the first channel *pdw_ChannelValue[1] = digital value of the calibration offset (if available) *pdw_ChannelValue[2] = digital value of the calibration gain (if available) *pdw_ChannelValue[3] = digital value of the next channel *pdw_ChannelValue[4] = digital value of the calibration offset (if available) *pdw_ChannelValue[5] = digital value of the calibration gain (if available) ...

Task: Returns the digital value (pdw_ChannelValue) of all selected channels (w_FirstChannel, w_LastChannel). To obtain the real analog input value, you must call up the "b_ADDIDATA_ConvertDigitalToRealAnalogValue (...)" function.

Page 150: Addidata Handbuch

ADDIDRIVER Analog inputs

37

dw_ConvertingTime and b_ConvertingTimeUnit determine the conversion time.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_ChannelArrayValue [48]; b_ReturnValue = b_ADDIDATA_ReadMoreAnalogInputs (dw_DriverHandle, 0, 11, 10, 1, ADDIDATA_DISABLE, dw_ChannelArrayValue);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 151: Addidata Handbuch

Analog inputs ADDIDRIVER

38

3) b_ADDIDATA_ConvertDigitalToRealAnalogValue (..)

Syntax: <Return value> = b_ADDIDATA_ConvertDigitalToRealAnalogValue (DWORD dw_DriverHandle, WORD w_Channel, PDWORD pdw_DigitalValue, PDOUBLE pd_RealValue)

Input: DWORD dw_DriverHandle Driver handle WORD w_Channel Number of the channel to be converted PDWORD pdw_DigitalValue Digital analog input value (composed of the digital value of the channel, the calibration offset and of the calibration gain if available)

Output: PDOUBLE pd_RealValueArray Returns the real analog input value

Task: Converts the digital analog input value (pdw_DigitalValue) into a real analog input value (pd_RealValue) for the selected channel (w_Channel).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_DigitalValue[4]; DOUBLE d_RealValue; b_ReturnValue = b_ADDIDATA_ConvertDigitalToRealAnalogValue (dw_DriverHandle, 0, dw_DigitalValue, &d_RealValue);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 152: Addidata Handbuch

ADDIDRIVER Analog inputs

39

4) b_ADDIDATA_ConvertMoreDigitalToRealAnalogValues (..)

Syntax: <Return value> = b_ADDIDATA_ConvertMoreDigitalToRealAnalogValues

(DWORD dw_DriverHandle, WORD w_FirstChannel,

WORD w_LastChannel, PDWORD pdw_DigitalValue, PDOUBLE pd_RealValue)

Input: DWORD dw_DriverHandle Driver handle WORD w_FirstChannel Selection of the first channel WORD w_LastChannel Selection of the last channel PDWORD pdw_DigitalValue Digital value of the analog input (composed of the digital value of the channel, of the calibration offset and of the calibration gain if available)

Output: PDOUBLE pd_RealValueArray Returns the real analog value of the input channel

Task: Converts the digital value (pdw_DigitalValue) into a real analog value (pd_RealValue) for the selected channels.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_DigitalValue[4]; DOUBLE d_RealValue; b_ReturnValue = b_ADDIDATA_ConvertMoreDigitalToRealAnalogValues (dw_DriverHandle, 0, 3, dw_DigitalValue, &d_RealValue);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 153: Addidata Handbuch

Analog inputs ADDIDRIVER

40

2.4 Autorefresh acquisition

1) b_ADDIDATA_GetAnalogInputAutoRefreshChannelPointer (..)

Syntax: <Return value> = b_ADDIDATA_GetAnalogInputAutoRefreshChannelPointer

(DWORD dw_DriverHandle, DWORD dw_Channel, VOID **ppv_ChannelValueApplicationLevelPointer, VOID **ppv_ChannelValueKernelLevelPointer)

Input: DWORD dw_DriverHandle Driver handle DWORD dw_Channel Channel Index Output: VOID **ppv_ChannelValueApplicationLevelPointer

Return the pointer of the value from the selected channel in the application level.

VOID **ppv_ChannelValueKernelLevelPointer Return the pointer of the value

from the selected channel in the kernel level.

Task: Return the pointer of the value from the selected channel. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; PDWORD pdw_ChannelValueRing0; PDWORD pdw_ChannelValueRing3; b_ReturnValue = b_ADDIDATA_GetAnalogInputAutoRefreshChannelPointer(dw_DriverHandle,0, (VOID **)&pdw_ChannelValueRing3, (VOID **)&pdw_ChannelValueRing0);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 154: Addidata Handbuch

ADDIDRIVER Analog inputs

41

2) b_ADDIDATA_GetAnalogInputAutoRefreshModulePointer (..)

Syntax: <Return value> = b_ADDIDATA_GetAnalogInputAutoRefreshModulePointer

(DWORD dw_DriverHandle, WORD w_Module, VOID **ppv_ModuleValueApplicationLevelPointer, VOID **ppv_ModuleValueKernelLevelPointer)

Input: DWORD dw_DriverHandle Driver handle WORD w_Module Module index Output: VOID **ppv_ModuleValueApplicationLevelPointer

Returns the pointer of the values from the selected module in the application level.

VOID **ppv_ModuleValueKernelLevelPointer Returns the pointer of the values

from the selected module in the kernel level.

Task: Return the pointer of the value from the selected module. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; PDWORD pdw_ModuleValueRing0; PDWORD pdw_ModuleValueRing3; b_ReturnValue = b_ADDIDATA_GetAnalogInputAutoRefreshModulePointer(dw_DriverHandle,0, (VOID **)&pdw_ChannelValueRing3, (VOID **)&pdw_ChannelValueRing0);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 155: Addidata Handbuch

Analog inputs ADDIDRIVER

42

3) b_ADDIDATA_GetAnalogInputAutoRefreshModuleCounterPointer (..)

Syntax: <Return value> = b_ADDIDATA_GetAnalogInputAutoRefreshModuleCounterPointer

(DWORD dw_DriverHandle, DWORD dw_Channel, VOID **ppv_ApplicationLevelPointer, VOID **ppv_KernelLevelPointer)

Input: DWORD dw_DriverHandle Driver handle DWORD dw_Channel Channel Index Output: VOID **ppv_ApplicationLevelPointer Return the pointer of the counter from the selected module in the application level. VOID **ppv_KernelLevelPointer Return the pointer of the counter from the selected module in the kernel level.

Task: Return the pointer of the auto refresh counter from the selected module. After each auto refresh cycle, the counter is incremented from 1. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; PDWORD pdw_CounterValueRing0; PDWORD pdw_CounterValueRing3; b_ReturnValue = b_ADDIDATA_GetAnalogInputAutoRefreshModuleCounterPointer (dw_DriverHandle,0, (VOID **)&pdw_CounterValueRing3, (VOID **)&pdw_CounterValueRing0);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 156: Addidata Handbuch

ADDIDRIVER Analog inputs

43

4) b_ADDIDATA_StartAnalogInputAutoRefresh (..)

Syntax: <Return value> = b_ADDIDATA_StartAnalogInputAutoRefresh

(DWORD dw_DriverHandle, WORD w_Module,

DWORD dw_ConvertingTime, BYTE b_ConvertingTimeUnit)

Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_Module Index of the module for which the auto refresh acquisition must be started DWORD dw_ConvertingTime Conversion time. See table 2-2 BYTE b_ConvertingTimeUnit Determines the conversion time unit. See table 2-2 - Output: No output signal has occurred.

Task: Starts the auto refresh acquisition on the selected module. dw_ConvertingTime and b_ConvertingTimeUnit determines the conversion time.

i IMPORTANT! Do initialise all analog input channels of the module to run an acquisition in the auto refresh mode.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StartAnalogInputAutoRefresh (dw_DriverHandle, 0, 10, 1);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 157: Addidata Handbuch

Analog inputs ADDIDRIVER

44

5) b_ADDIDATA_StopAnalogInputAutoRefresh(..)

Syntax: <Return value> = b_ADDIDATA_StopAnalogInputAutoRefresh

(DWORD dw_DriverHandle, WORD w_Module)

Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_Module Index of the module for which the auto refresh acquisition must be stopped - Output: No output signal has occurred.

Task: Stops an auto refresh acquisition on the selected module. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StopAnalogInputAutoRefresh(dw_DriverHandle,0);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 158: Addidata Handbuch

ADDIDRIVER Analog inputs

45

2.5 SCAN acquisition

IMPORTANT! The SCAN acquisition functions can only be operated on one module (group of channels). Please check that all selected channels are on the same module.

1) b_ADDIDATA_InitAnalogInputSCAN (...)

i IMPORTANT! This function is only available for old user applications (up to version 2132-0304 of ADDIPACK).

If you develop new applications with ADDIDRIVER, please use the following functions: b_ADDIDATA_InitAnalogInputSCANAcquisition

Syntax: <Return value> = b_ADDIDATA_InitAnalogInputSCAN (DWORD dw_DriverHandle, pstr_InitAnalogInputSCAN ps_InitParameters, DWORD dw_StructSize, PDWORD pdw_SCANHandle)

Parameters: - Input: DWORD dw_DriverHandle Driver handle pstr_InitAnalogInput s_InitParameters pointer on a structure which contains the initialisation parameters DWORD dw_StructSize Size of the structure The structure must contain the following information: WORD w_FirstChannel First channel to be converted. WORD w_LastChannel Last channel to be converted DWORD dw_ConvertingTime Conversion time. Refer to Table 2-2 BYTE b_ConvertingTimeUnit Conversion time unit. Refer to Table 2-2 BYTE b_SCANTimeMode Determines the mode of the delay. Refer to Table 2-4 DWORD dw_SCANTime Total time of the SCAN. Refer to Table 2-3 and Table 2-4 BYTE b_SCANTimeUnit Unit used for the total time. Refer to Table 2-3 and Table 2-4 BYTE b_SCANMode SCAN mode. Refer to Table 2-5 BYTE b_ExternTriggerMode External trigger action. Refer to Table 2-6

Page 159: Addidata Handbuch

Analog inputs ADDIDRIVER

BYTE b_ExternGateMode External gate action. ADDIDATA_DISABLE: External gate not used ADDIDATA_LOW_LEVEL: The SCAN is activated when the external gate is low ADDIDATA_HIGH_LEVEL: The SCAN is activated when the external gate is high DWORD dw_SCANCounter Number of SCAN. Refer to Table 2-5 - Output: PDWORD pdw_SCANHandle Handle of the initialised SCAN. This handle is used for all SCAN functions.

Task: Initialises the SCAN function for the acquisition of analog inputs.

Table 2-3: Time selection of a SCAN

b_SCANTimeUnit Unit selection dw_SCANTime Total time of the SCAN

10 10 ns / MHz 20 20 ns / MHz 300 300 ns / MHz 1000 1000 ns / MHz

0

ns or MHz

22222 22222 ns / MHz 10 10 µs / KHz 20 20 µs / KHz 300 300 µs / KHz 1000 1000 µs / KHz

1

µs or KHz

22222 22222 µs / KHz 10 10 ms / Hz 20 20 ms / Hz 300 300 ms / Hz 1000 1000 ms / Hz

2

ms or Hz

22222 22222 ms / Hz 10 10 s / mHz 20 20 s / mHz 300 300 s / mHz 1000 1000 s / mHz

3

s or mHz

22222 22222 s / mHz

Table 2-4: SCAN time mode

b_SequenceTimeMode Mode description ADDIDATA_DELAY_NOT_USED The delay between two SCAN is not used ADDIDATA_DELAY_MODE1_USED The delay between two SCAN is used. The conversion is

started at once, and the delay is used after the first SCAN. ADDIDATA_DELAY_MODE2_USED The delay between two SCANs is used. The conversion is

started after a delay.

46

Page 160: Addidata Handbuch

ADDIDRIVER Analog inputs

47

Table 2-5: SCAN mode

b_SCANMode dw_SCANCounter SCAN description ADDIDATA_SINGLE_SCAN Not used Only one SCAN is started after calling up

the function "b_ADDIDATA_StartAnalogInputSCAN"

ADDIDATA_DEFINED_SCAN_NUMBER Determines the number of SCAN

A predefined number of SCANs is started after calling up the function "b_ADDIDATA_StartAnalogInputSCAN"

ADDIDATA_CONTINUOUS_SCAN Not used An undefined number of SCANs is started after calling up the function "b_ADDIDATA_StartAnalogInputSCAN"

Table 2-6: Trigger mode

ADDIDATA_DISABLE External trigger not used ADDIDATA_FIRST_LOW_EDGE_START_ALL_SCAN The first low edge starts all SCANs ADDIDATA_FIRST_HIGH_EDGE_START_ALL_SCAN The first high edge starts all SCANs ADDIDATA_FIRST_EDGE_START_ALL_SCAN The first low/high edge starts all SCANs ADDIDATA_EACH_LOW_EDGE_START_A_SCAN The first low edge starts a single SCAN ADDIDATA_EACH_HIGH_EDGE_START_A_SCAN The first high edge starts a single SCAN ADDIDATA_EACH_EDGE_START_A_SCAN Each edge starts a single SCAN ADDIDATA_EACH_LOW_EDGE_START_A_SINGLE_ACQUISITION Each low edge starts a single acquisition of the SCAN ADDIDATA_EACH_HIGH_EDGE_START_A_SINGLE_ACQUISITION Each high edge starts a single acquisition of the SCANADDIDATA_EACH_EDGE_START_A_SINGLE_ACQUISITION Each edge starts a single acquisition of the SCAN

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_SCANHandle; str_InitAnalogInputSCAN s_InitParameters; . . . b_ReturnValue = b_ADDIDATA_ InitAnalogInputSCAN (dw_DriverHandle, &s_InitParameters, sizeof (str_InitAnalogInputSCAN), &dw_SCANHandle);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 161: Addidata Handbuch

Analog inputs ADDIDRIVER

48

2) b_ADDIDATA_InitAnalogInputSCANAcquisition (..)

Syntax: <Return value> = b_ADDIDATA_InitAnalogInputSCANAcquisition (DWORD dw_DriverHandle, pstr_InitAnalogInputSCANAcquisition ps_InitParameters, DWORD dw_StructSize, PDWORD pdw_SCANHandle)

Input: DWORD dw_DriverHandle Driver handle pstr_InitAnalogInputSCANAcquisition ps_InitParameters DWORD dw_StructSize Size of the structure The structure must contain the following information: typedef struct { WORD w_FirstChannel; First SCAN channel selection WORD w_LastChannel; Last SCAN channel selection DWORD dw_ConversionTime; Selected conversion time BYTE b_ConversionTimeUnit; Selected conversion time unit For time unit: 0: ns selected 1: µs selected 2: ms selected 3: s selected For frequency unit: 0: MHz selected 1: KHz selected 2: Hz selected 3: mHz selected BYTE b_DelayTimeMode; Delay mode selection Refer to table 2-1 and sample1 and sample 2 BYTE b_DelayTimeUnit; Delay time unit selection Refer to sample 1 and sample 2 For time unit: 0: ns selected 1: µs selected 2: ms selected 3: s selected For frequency unit: 0: MHz selected 1: KHz selected 2: Hz selected 3: mHz selected BYTE b_Reserved1[5]; DWORD dw_DelayTime; Delay time DWORD dw_SCANCounter; Define the number of SCAN cycles if the SCAN mode (b_SCANMode) is setting to

Page 162: Addidata Handbuch

ADDIDRIVER Analog inputs

49

ADDIDATA_DEFINED_SCAN_NUMBER BYTE b_SCANMode; Refer to table 2-2 , sample1 and sample2 BYTE b_Reserved2[7]; } str_InitAnalogInputSCANAcquisition,*pstr_InitAnalogInputSCANAcquisition

Output: PDWORD pdw_SCANHandle Handle of the initialised SCAN. This handle is used for all SCAN functions.

Task: Initialises the analog input acquisition SCAN. This can by combined with the hardware or software trigger. See the functions “b_ADDIDATA_EnableDisableAnalogInputHardwareTrigger“ and “b_ADDIDATA_EnableDisableAnalogInputSoftwareTrigger“

Table 2-1: SCAN delay time mode

b_DelayTimeMode Mode description ADDIDATA_DELAY_NOT_USED The delay between two SCANs is not used ADDIDATA_DELAY_MODE1_USED The delay between two SCAN cycles is used. The delay is started after

the first acquisition. After this delay a new SCAN cycle is started ADDIDATA_DELAY_MODE2_USED The delay between two SCAN cycles is used. The delay is started after

the last SCAN channel acquisition. After this delay a new SCAN cycle is started

Table 2-2: SCAN mode

b_SCANMode dw_SCANCounter SCAN description ADDIDATA_SINGLE_SCAN Not used Only one SCAN is started after calling up the function

"b_ADDIDATA_StartAnalogInputSCAN" ADDIDATA_DEFINED_SCAN_NUMBER Determines the

number of SCAN A predefined number of SCANs is started after calling up the function "b_ADDIDATA_StartAnalogInputSCAN"

ADDIDATA_CONTINUOUS_SCAN Not used An undefined number of SCANs is started after calling up the function "b_ADDIDATA_StartAnalogInputSCAN"

Page 163: Addidata Handbuch

Analog inputs ADDIDRIVER

50

Samples Sample 1 : w_FirstChannel = 0 w_LastChannel = 5 b_ConvertingTimeUnit = 1 (µs) dw_ConvertingTime = 10 b_DelayTimeMode = ADDIDATA_DELAY_NOT_USED b_SCANMode = ADDIDATA_DEFINED_SCAN_NUMBER dw_SCANCounter = 3

An interrupt occur after each end of SCAN (5 acquisitions) and the acquisition is stopped after 3 SCAN cycles Sample 2 : w_FirstChannel = 0 w_LastChannel = 4 b_ConvertingTimeUnit = 1 (µs) dw_ConvertingTime = 10 b_DelayTimeMode = ADDIDATA_DELAY_NOT_USED b_SCANMode = ADDIDATA_CONTINUOUS_SCAN

An interrupt occurs after each SCAN (5 acquisitions) and the acquisition is stopped via the function b_ADDIDATA_StopAnalogInputSCAN

Page 164: Addidata Handbuch

ADDIDRIVER Analog inputs

Sample 3 : w_FirstChannel = 0 w_LastChannel = 4 b_ConvertingTimeUnit = 1 (µs) dw_ConvertingTime = 10 b_DelayTimeUnit; = 1 (µs) dw_DelayTime = 20 b_DelayTimeMode = ADDIDATA_DELAY_MODE2_USED b_SCANMode = ADDIDATA_DEFINED_SCAN_NUMBER dw_SCANCounter = 2

An interrupt occurs after each SCAN (5 acquisitions) and the acquisition is stopped after 2 SCAN cycles. A Delay from 20 µs is respected between 2 SCAN cycles. The SCAN total time is 70 µs. Sample 4 : w_FirstChannel = 0 w_LastChannel = 4 b_ConvertingTimeUnit = 1 (µs) dw_ConvertingTime = 10 b_DelayTimeUnit; = 1 (µs) dw_DelayTime = 20 b_DelayTimeMode = ADDIDATA_DELAY_MODE1_USED b_SCANMode = ADDIDATA_DEFINED_SCAN_NUMBER dw_SCANCounter = 2

51

Page 165: Addidata Handbuch

Analog inputs ADDIDRIVER

An interrupt occurs after each SCAN (5 acquisitions) and the acquisition is stopped after 2 SCAN cycles. The SCAN total time is 100µs.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_SCANHandle; str_InitAnalogInputChannelSCANAcquisition s_InitParameters; b_ReturnValue = b_ADDIDATA_InitAnalogInputSCANAcquisition (dw_DriverHandle, &s_InitParameters, sizeof (str_InitAnalogInputChannelSCANAcquisition), &dw_SCANHandle);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

52

Page 166: Addidata Handbuch

ADDIDRIVER Analog inputs

53

3) b_ADDIDATA_StartAnalogInputSCAN (..)

Syntax: <Return value> = b_ADDIDATA_StartAnalogInputSCAN (DWORD dw_DriverHandle, DWORD dw_SCANHandle)

Parameters: - Input: DWORD dw_DriverHandle Driver handle DWORD dw_SCANHandle SCAN handle. This handle is returned by function "b_ADDIDATA_InitAnalogInputSCAN" - Output: No output signal has occurred.

Task: Starts the selected SCAN (dw_SCANHandle).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_SCANHandle; b_ReturnValue = b_ADDIDATA_StartAnalogInputSCAN (dw_DriverHandle, dw_SCANHandle);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 167: Addidata Handbuch

Analog inputs ADDIDRIVER

54

4) b_ADDIDATA_GetAnalogInputSCANStatus (..)

Syntax: <Return value> = b_ADDDATA_GetAnalogInputSCANStatus (DWORD dw_DriverHandle, DWORD dw_SCANHandle, PBYTE pb_SCANStatus)

Parameters: - Input: DWORD dw_DriverHandle Driver handle DWORD dw_SCANHandle SCAN handle. This handle is returned by the "b_ADDIDATA_InitAnalogInputSCAN" function - Output: PBYTE pb_SCANStatus Status of the SCAN. 0: SCAN not started 1: SCAN started 2: SCAN completed 3: SCAN completed and new SCAN started

Task: Returns the status (pb_SCANStatus) of the selected SCAN (dw_SCANHandle).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_SCANHandle; BYTE b_SCANStatus; b_ReturnValue = b_ADDDATA_GetAnalogInputSCANStatus (dw_DriverHandle, dw_SCANHandle, &b_SCANStatus);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 168: Addidata Handbuch

ADDIDRIVER Analog inputs

55

5) b_ADDIDATA_ConvertDigitalToRealAnalogValueSCAN (..)

Syntax: <Return value> = b_ADDIDATA_ConvertDigitalToRealAnalogValueSCAN (DWORD dw_DriverHandle, DWORD dw_SCANHandle, PDWORD pdw_DigitalValueArray, PDOUBLE pd_RealValueArray)

Parameters: - Input: DWORD dw_DriverHandle Driver handle DWORD dw_SCANHandle SCAN handle. This handle is returned by the "b_ADDIDATA_InitAnalogInputSCAN" function PDWORD pdw_DigitalValueArray Digital value array of the analog input - Output: PDOUBLE pd_RealValueArray Real analog value array

Task: Converts the digital value array of the analog input into a real analog value array.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_SCANHandle; DWORD dw_DigitalValueArray [600]; DOUBLE d_RealValueArray [600]; b_ReturnValue = b_ADDIDATA_ConvertDigitalToRealAnalogValueSCAN (dw_DriverHandle, dw_SCANHandle, dw_DigitalValueArray, d_RealValueArray);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 169: Addidata Handbuch

Analog inputs ADDIDRIVER

56

6) b_ADDIDATA_StopAnalogInputSCAN (..)

Syntax: <Return value> = b_ADDIDATA_StopAnalogInputSCAN (DWORD dw_DriverHandle, DWORD dw_SCANHandle)

Parameters: - Input: DWORD dw_DriverHandle Driver handle DWORD dw_SCANHandle SCAN handle. This handle is returned by the "b_ADDIDATA_InitAnalogInputSCAN" function - Output: No output signal has occurred.

Task: Stops the selected SCAN (dw_SCANHandle).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_SCANHandle; b_ReturnValue = b_ADDIDATA_StopAnalogInputSCAN (dw_DriverHandle, dw_SCANHandle);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 170: Addidata Handbuch

ADDIDRIVER Analog inputs

57

7) b_ADDIDATA_CloseAnalogInputSCAN (..)

Syntax: <Return value> = b_ADDIDATA_CloseAnalogInputSCAN (DWORD dw_DriverHandle, DWORD dw_SCANHandle)

Parameters - Input: DWORD dw_DriverHandle Driver handle DWORD dw_SCANHandle SCAN handle. This handle is returned by the "b_ADDIDATA_InitAnalogInputSCAN" function - Output: No output signal has occurred.

Task: Closes the selected SCAN (dw_SCANHandle) and releases the SCAN handle.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_SCANHandle; b_ReturnValue = b_ADDIDATA_CloseAnalogInputSCAN (dw_DriverHandle, dw_SCANHandle);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 171: Addidata Handbuch

Analog inputs ADDIDRIVER

58

2.6 Sequence acquisition

i IMPORTANT! This functionality can only be operated on one module.

1) b_ADDIDATA_InitAnalogInputSequenceAcquisition (..)

Syntax: <Return value> = b_ADDIDATA_InitAnalogInputSequenceAcquisition (DWORD dw_DriverHandle, DWORD dw_NbrOfChannel, PWORD pw_SequenceChannelArray, str_InitAnalogMeasureSequenceAcquisition ps_InitParam, DWORD dw_StructSize, PDWORD pd_SEQHandle)

Input: DWORD dw_DriverHandle Driver handle DWORD dw_NbrOfChannel Number of channel in the sequence. PDWORD pdw_SequenceChannelArray Array of index of the channel to be converted. str_InitAnalogMeasureSequenceAcquisition ps_InitParam Typedef struct { BYTE b_ConvertingTimeUnit; Selected conversion time unit For time unit: 0: ns selected 1: µs selected 2: ms selected 3: s selected For frequency unit: 0: MHz selected 1: KHz selected 2: Hz selected 3: mHz selected BYTE b_DelayTimeMode; Delay mode selection Refer to table 2-3, sample 7 and sample 8 BYTE b_DelayTimeUnit; Delay time unit selection Refer to sample 7 and sample 8 For time unit: 0: ns selected 1: µs selected 2: ms selected 3: s selected

Page 172: Addidata Handbuch

ADDIDRIVER Analog inputs

59

For frequency unit: 0: MHz selected 1: KHz selected 2: Hz selected 3: mHz selected BYTE b_Reserved [5]; DWORD dw_DelayTime; Delay time DWORD dw_ConvertingTime; Selected conversion time DWORD dw_SequenceCounter; Number of sequences. Refer to table 2-4 DWORD dw_InterruptSequenceCounter; Number of sequences before an interrupt is generated. }str_InitAnalogMeasureSequenceAcquisition, *pstr_InitAnalogMeasureSequenceAcquisition

DWORD dw_StructSize Size of the structure. Output: PDWORD pdw_SEQHandle Return the Sequence Handle. Task:

Initialises the analog input acquisition sequence. dw_SequenceCounter defines the number of sequences. A sequence is composed of the channels that are defined in the pdw_SequenceChannelArray. dw_InterruptSequenceCounter defines the number of sequences before an interrupt is generated.

i IMPORTANT! In the sequence mode only an even number of acquisitions can be initialised and executed (see examples below).

Examples for possible acquisitions in the sequence mode (even numbers)

Examples for acquisitions that are not possible in the sequence mode (odd numbers)

dw_NbrOfChannel = 3, dw_InterruptSequenceCounter = 10 => Number of acquisitions = 3 * 10 = 30 dw_NbrOfChannel = 1, dw_InterruptSequenceCounter = 8 => Number of acquisitions = 1 * 8 = 8 dw_NbrOfChannel = 2, dw_InterruptSequenceCounter = 5 => Number of acquisitions = 2 * 5 = 10

Dw_NbrOfChannel = 3, dw_InterruptSequenceCounter = 11 => Number of acquisitions = 3 * 11 = 33 dw_NbrOfChannel = 1, dw_InterruptSequenceCounter = 7 => Number of acquisitions = 1 * 7 = 7

Page 173: Addidata Handbuch

Analog inputs ADDIDRIVER

60

Table 2-3: Delay time mode

b_DelayTimeMode Mode description ADDIDATA_DELAY_NOT_USED The delay between two SCAN is not used ADDIDATA_DELAY_MODE1_USED The delay between two SCAN cycles is used. The delay is started after

the first acquisition. After this delay a new SCAN cycle is started ADDIDATA_DELAY_MODE2_USED The delay between two SCAN cycles is used. The delay is started after

the last SCAN channel acquisition. After this delay a new SCAN cycle is started

Table 2-4: Sequence mode

dw_SequenceCounter

Sequence description

> 0 A predefined number of sequences is started after calling up the function "b_ADDIDATA_StartAnalogInputSequenceAcquisition"

0 An undefined number of sequences is started after calling up the function "b_ADDIDATA_StartAnalogInputSequenceAcquisition"

Samples Sample 1 : dw_NbrOfChannel = 5 dw_SequenceChannelArray = 0,1,2,3,4 b_ConvertingTimeUnit = 1 (µs) b_DelayTimeMode = ADDIDATA_DELAY_NOT_USED dw_ConvertingTime = 10 dw_SequenceCounter = 3 dw_InterruptSequenceCounter = 1

0 1 2 3 4 0 1 2 3 4 0 1 2 3 4

10µs

End acquisitionInterrupt Interrupt Interrupt

Sequence 0 Sequence 1 Sequence 2

t

An interrupt occurs after each end of sequence (5 acquisitions) and the acquisition is stopped after 3 sequences. Sample 2 : dw_NbrOfChannel = 5 dw_SequenceChannelArray = 0,1,2,3,4 b_ConvertingTimeUnit = 1 (µs) b_DelayTimeMode = ADDIDATA_DELAY_NOT_USED dw_ConvertingTime = 10

Page 174: Addidata Handbuch

ADDIDRIVER Analog inputs

dw_SequenceCounter = 0 dw_InterruptSequenceCounter = 2

0 1 2 3 4 0 1 2 3 4 0 1 2 3 4

61

10µs

Interrupt

Sequence 0 Sequence 1 Sequence 2

t

An interrupt occurs after 2 end of sequence (10 acquisitions) and the acquisition is stopped via the function b_ADDIDATA_StopAnalogInputSequenceAcquisition Sample 3 : dw_NbrOfChannel = 5 dw_SequenceChannelArray = 0,1,2,3,4 b_ConvertingTimeUnit = 1 (µs) b_DelayTimeMode = ADDIDATA_DELAY_MODE2_USED b_DelayTimeUnit; = 1 (µs) dw_DelayTime = 20 dw_ConvertingTime = 10 dw_SequenceCounter = 2 dw_InterruptSequenceCounter = 2

0 1 2 3 4 0 1 2 3 4

10µs

Interrupt

Sequence 0 Sequence 1

t20µsdelay End acquisition

An interrupt occurs after 2 end of sequence (10 acquisitions) and the acquisition is stopped after 2 sequences. A delay from 20 µs is respected between 2 sequences.

Page 175: Addidata Handbuch

Analog inputs ADDIDRIVER

Sample 4 : dw_NbrOfChannel = 5 dw_SequenceChannelArray = 0,1,2,3,4 b_ConvertingTimeUnit = 1 (µs) b_DelayTimeMode = ADDIDATA_DELAY_MODE1_USED b_DelayTimeUnit; = 1 (µs) dw_DelayTime = 100 dw_ConvertingTime = 10 dw_SequenceCounter = 2 dw_InterruptSequenceCounter = 2

0 1 2 3 4 0 1 2 3 4

Interrupt

Sequence 0 Sequence 1

t10µs

100µsdelay

End acquisition

An interrupt occurs after 2 end of sequence (10 acquisitions) and the acquisition is stopped after 2 sequences. The sequence total time is 100 µs.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_Channel[10]; DWORD dw_SEQHandle; str_InitAnalogMeasureSequenceAcquisition s_InitParameters; b_ReturnValue = b_ADDIDATA_ InitAnalogInputSequenceAcquisition (dw_DriverHandle, 5, dw_Channel, s_InitParameters, sizeof (str_InitAnalogMeasureSequenceAcquisition), & dw_SEQHandle);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

62

Page 176: Addidata Handbuch

ADDIDRIVER Analog inputs

2) b_ADDIDATA_StartAnalogInputSequenceAcquisition (..)

Syntax: <Return value> = b_ADDIDATA_StartAnalogInputSequenceAcquisition (DWORD dw_DriverHandle, DWORD dw_SEQHandle)

Parameters: - Input: DWORD dw_DriverHandle Driver handle DWORD dw_SEQHandle Sequence handle. This handle is returned by the "b_ADDIDATA_InitAnalogInputSequenceAcquisition" function - Output: No output signal has occurred.

Task: Starts the selected sequence (dw_SEQHandle).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_SEQHandle; b_ReturnValue = b_ADDIDATA_StartAnalogInputSequenceAcquisition (dw_DriverHandle, dw_SEQHandle);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

63

Page 177: Addidata Handbuch

Analog inputs ADDIDRIVER

64

3) b_ADDIDATA_ConvertDigitalToRealAnalogValueSequence(..)

Syntax: <Return value> = b_ADDIDATA_ConvertDigitalToRealAnalogValueSequence (DWORD dw_DriverHandle, DWORD dw_SEQHandle, PDWORD pdw_DigitalValueArray, PDOUBLE pd_RealValueArray)

Parameters: - Input: DWORD dw_DriverHandle Driver handle DWORD dw_SEQHandle Sequence handle. This handle is returned by the "b_ADDIDATA_InitAnalogInputSequenceAcquisition" function PDWORD pdw_DigitalValueArray Digital value array for the analog input - Output: PDOUBLE pd_RealValueArray Real analog input value array

Task: Converts the digital analog input value array into a real analog input value array.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_SEQHandle; DWORD dw_DigitalValueArray [600]; DOUBLE d_RealValueArray [600]; b_ReturnValue = b_ADDIDATA_ConvertDigitalToRealAnalogValueSequenceAcquisition (dw_DriverHandle, dw_SEQHandle, dw_DigitalValueArray, d_RealValueArray);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 178: Addidata Handbuch

ADDIDRIVER Analog inputs

65

4) b_ADDIDATA_GetAnalogInputSequenceAcquisitionHandleStatus (..)

Syntax: <Return value> = b_ADDIDATA_GetAnalogInputSequenceAcquisitionHandleStatus (DWORD dw_DriverHandle, WORD w_Module, PBYTE pb_InitialisationStatus, PDWORD pdw_LastInitialisedSEQHandle, PBYTE pb_CurrentSEQStatus PDWORD pdw_CurrentSEQHandle)

Parameters: - Input: DWORD dw_DriverHandle Driver handle WORD w_Module AnalogInput module index DWORD dw_SEQHandle Sequence handle. This handle is returned by the "b_ADDIDATA_InitAnalogInputSequenceAcquisition" function -Output: PBYTE pb_InitialisationStatus : 0: No sequence initialised >0: Number of initialised sequence PDWORD pdw_LastInitialisedSEQ Handle: Last initialised sequence handle PBYTE pb_CurrentSEQStatus : Current sequence status 0: No sequence started 1: Sequence started 2: Sequence pause 3: Sequence ended PDWORD pdw_CurrentSEQHandle: Current sequence handle PDWORD pdw_SequenceCounter Returns the number of acquired sequences

Task: Gets the sequence handle status.

Returns the last initialised sequence status, the selected acquisition sequence handle and the status.

Returns the current number of acquired sequences.

Calling convention: ANSI C : BYTE b_ReturnValue; WORD w_Module; BYTE b_InitialisationStatus; DWORD dw_LastInitialisedSEQHandle; BYTE b_CurrentSEQStatus; DWORD dw_CurrentSEQHandle; b_ReturnValue = b_ADDIDATA_GetAnalogInputSequenceAcquisitionHandleStatus (dw_DriverHandle, w_Module,

Page 179: Addidata Handbuch

Analog inputs ADDIDRIVER

66

&b_InitialisationStatus, &dw_LastInitialisedSEQHandle, &b_CurrentSEQStatus &dw_CurrentSEQHandle);

Return Value: 1: No error 0: Error by calling up the function. Call the function "i_ADDIDATA_GetLastError", to find the error number.

Page 180: Addidata Handbuch

ADDIDRIVER Analog inputs

67

5) b_ADDIDATA_StopAnalogInputSequenceAcquisition (..)

Syntax: <Return value> = b_ADDIDATA_StopAnalogInputSequenceAcquisition (DWORD dw_DriverHandle, DWORD dw_SEQHandle)

Parameters: - Input: DWORD dw_DriverHandle Driver handle DWORD dw_SEQHandle Sequence handle. This handle is returned by the "b_ADDIDATA_InitAnalogInputSequenceAcquisition" function - Output: No output signal has occurred.

Task: Stops the selected sequence (dw_SEQHandle).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_SEQHandle; b_ReturnValue = b_ADDIDATA_StopAnalogInputSequenceAcquisition (dw_DriverHandle, dw_SEQHandle);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 181: Addidata Handbuch

Analog inputs ADDIDRIVER

68

6) b_ADDIDATA_ReleaseAnalogInputSequenceAcquisition (..)

Syntax: <Return value> = b_ADDIDATA_ReleaseAnalogInputSequenceAcquisition (DWORD dw_DriverHandle, DWORD dw_SEQHandle)

Parameters: - Input: DWORD dw_DriverHandle Driver handle DWORD dw_SEQHandle Sequence handle. This handle is returned by the "b_ADDIDATA_InitAnalogInputSequenceAcquisition" function - Output: No output signal has occurred.

Task: Releases the selected sequence (dw_SEQHandle) and lets the resources free for another process.

Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_SEQHandle; b_ReturnValue = b_ADDIDATA_ReleaseAnalogInputSequenceAcquisition (dw_DriverHandle, dw_SEQHandle);

Return Value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 182: Addidata Handbuch

ADDIDRIVER Analog inputs

69

2.7 Hardware trigger

1) b_ADDIDATA_GetAnalogInputHardwareTriggerInformation (...)

Syntax: <Return Value> = b_ADDIDATA_GetAnalogInputHardwareTriggerInformation (DWORD dw_DriverHandle, WORD w_Module, pstr_AnalogInputHardwareTriggerInformation ps_TriggerInformation, DWORD dw_StructSize)

Parameters: - Input:

DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_Module Index of the analog input module DWORD dw_StructSize Size of the structure. - Output: pstr_AnalogInputHardwareTriggerInformation

ps_TriggerInformation Hardware trigger information.

Returned structure: typedef struct { BYTE b_LowLevelTrigger; 0: Hardware low trigger level not available 1: Hardware low trigger level available BYTE b_HighLevelTrigger; 0: Hardware high trigger level not available 1: Hardware high trigger level available BYTE b_HardwareTriggerCount; 0: Hardware trigger counter not available 1: Hardware trigger counter available BYTE b_HardwareTriggerAutoRefreshAvailableMode; D3 to D0 XXX1 : One shot trigger available XX1X : Single auto refresh trigger available X1XX : X auto refresh trigger available BYTE b_HardwareTriggerSCANAvailableMode; XXX1 : One shot trigger available

Page 183: Addidata Handbuch

Analog inputs ADDIDRIVER

70

XX1X : Single scan trigger available X1XX : X scan trigger available BYTE b_HardwareTriggerSequenceAvailableMode; XXX1 : One shot trigger available XX1X : Single sequence trigger available X1XX : X sequence trigger available BYTE b_Reserverd1 [2]; DWORD dw_MaxTriggerCountValue; Max number of trigger pulses before the hardware trigger action occurs BYTE b_Reserverd2 [4]; } str_AnalogInputHardwareTriggerInformation, *pstr_AnalogInputHardwareTriggerInformation; Task: Return the hardware trigger available trigger actions and the available configuration mode Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; str_AnalogInputHardwareTriggerInformation s_TriggerInformation; b_ReturnValue = b_ADDIDATA_GetAnalogInputHardwareTriggerInformation (dw_DriverHandle, 0, & s_TriggerInformation, sizeof(s_TriggerInformation); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 184: Addidata Handbuch

ADDIDRIVER Analog inputs

71

2) b_ADDIDATA_EnableDisableAnalogInputHardwareTrigger (...) Syntax: <Return Value> = b_ADDIDATA_EnableDisableAnalogInputHardwareTrigger (DWORD dw_DriverHandle, WORD w_Module, BYTE b_HardwareTriggerFlag, BYTE b_HardwareTriggerLevel, BYTE b_HardwareTriggerAction, DWORD dw_HardwareTriggerCycleCount DWORD dw_HardwareTriggerCount, DWORD dw_TimeOut) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_Module Index of the module BYTE b_HardwareTriggerFlag ADDIDATA_ENABLE: Enables the hardware trigger. ADDIDATA_DISABLE: Hardware trigger disabled

by triggering the analog input module BYTE b_HardwareTriggerLevel ADDIDATA_LOW: If the hardware trigger is ued, it triggers from "1" to "0" ADDIDATA_HIGH: If the hardware trigger is used, it triggers from "0" to "1"

ADDIDATA_HIGH_LOW: If the hardware trigger is used, it triggers from "0" to "1" or from "1" to "0" BYTE b_HardwareTriggerAction Trigger action selection Refer to table 2-5 DWORD dw_HardwareTriggerCycleCount Define the number of sequences, auto refresh cycles or SCAN cycles to trigger Refer to table 2-5 DWORD dw_HardwareTriggerCount Hardware trigger counter. Define the number of trigger events before the action occur (> 0) DWORD dw_TimeOut Define the time out for the

ADDIDATA_TRIGGER_START_A_SINGLE_CONVERSION mode. Unit is ms. 0: no time out used

- Output: No output signal has occurred. Task: Releases or blocks the action of the hardware trigger.

Page 185: Addidata Handbuch

Analog inputs ADDIDRIVER

72

Table 2-5: Hardware trigger action

b_HardwareTriggerAction Mode description ADDIDATA_TRIGGER_START_A_SINGLE_CONVERSION After each dw_HardwareTriggerCount trigger a single

conversion is started ADDIDATA_ONE_SHOT_TRIGGER After the first dw_HardwareTriggerCount trigger the

conversion are started. All next trigger have not effect. The trigger are rearmed after the next call from the function ”b_ADDIDATA_StartAnalogInputSequenceAcquisition ” or”b_ADDIDATA_StartAnalogInputSCAN ” ”b_ADDIDATA_StartAnalogInputAutoRefreshAcquisition ”

ADDIDATA_TRIGGER_START_A_SINGLE_AUTO_REFRESH

After dw_HardwareTriggerCount trigger a single auto refresh cycle is started

ADDIDATA_TRIGGER_START_A_AUTO_REFRESH_SERIES After each dw_HardwareTriggerCount trigger a series of dw_HardwareTriggerCycleCount auto refresh cycles is started.

ADDIDATA_TRIGGER_START_A_SINGLE_SCAN After dw_HardwareTriggerCount trigger a single SCAN is started

ADDIDATA_TRIGGER_START_A_ SCAN_SERIES After each dw_HardwareTriggerCount trigger a series of dw_HardwareTriggerCycleCount SCAN is started.

ADDIDATA_TRIGGER_START_A_SINGLE_SEQUENCE After dw_HardwareTriggerCount trigger a single sequence is started

ADDIDATA_TRIGGER_START_A_SEQUENCE_SERIES After each dw_HardwareTriggerCount trigger a series of dw_HardwareTriggerCycleCount sequences is started.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableAnalogInputHardwareTrigger (dw_DriverHandle, 0, ADDIDATA_ENABLE, ADDIDATA_HIGH, ADDIDATA_TRIGGER_START_A_SINGLE_CONVERSION, 0, 1, 0); Return value: 1: No error 0:Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 186: Addidata Handbuch

ADDIDRIVER Analog inputs

73

3) b_ADDIDATA_GetAnalogInputHardwareTriggerStatus (...)

Syntax: <Return Value> = b_ADDIDATA_GetAnalogInputHardwareTriggerStatus (DWORD dw_DriverHandle, WORD w_Module, PBYTE pb_HardwareTriggerFlag, PBYTE pb_HardwareTriggerStatus, PDWORD pdw_HardwareTriggerCount, PBYTE pb_HardwareTriggerState)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_Module Index of the analog input module - Output: PBYTE pb_HardwareTriggerFlag ADDIDATA_ENABLE: The hardware trigger is enabled. ADDIDATA_DISABLE: The hardware trigger is disabled PBYTE pb_HardwareTriggerStatus 0: Hardware trigger did not occur 1: Hardware trigger occurred PDWORD pdw_HardwareTriggerCount Number of pulses that fail before the next trigger occurs PBYTE pb_HardwareTriggerState 0: Hardware trigger is not active (Low state) 1: Hardware trigger is active (High state)

Task: Returns the status (occur or not), the state from input (active or not) and the number of that fail before the next trigger occur.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_HardwareTriggerFlag; BYTE b_HardwareTriggerStatus; BYTE b_HardwareTriggerState; DWORD dw_HardwareTriggerCount;

b_ReturnValue = b_ADDIDATA_GetAnalogInputHardwareTriggerStatus (dw_DriverHandle, 0, &b_HardwareTriggerFlag, &b_HardwareTriggerStatus, &dw_HardwareTriggerCount, &b_HardwareTriggerState);

Page 187: Addidata Handbuch

Analog inputs ADDIDRIVER

74

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 188: Addidata Handbuch

ADDIDRIVER Analog inputs

75

2.8 Software trigger functions

1) b_ADDIDATA_GetAnalogInputSoftwareTriggerInformation (...) Syntax: <Return Value> = b_ADDIDATA_GetAnalogInputSoftwareTriggerInformation (DWORD dw_DriverHandle, WORD w_Module, pstr_AnalogInputSoftwareTriggerInformation ps_TriggerInformation, DWORD dw_StructSize)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_Module Index of the analog input module DWORD dw_StructSize Size of the structure. - Output: pstr_AnalogInputSoftwareTriggerInformation ps_TriggerInformation Software trigger information. Returned structure: typedef struct { BYTE b_SoftwareTriggerAutoRefreshAvailableMode; D3 to D0 XXX1 : One shot trigger available XX1X : Single auto refresh trigger available X1XX : X autorefresh trigger available BYTE b_SoftwareTriggerSCANAvailableMode; XXX1 : One shot trigger available XX1X : Single scan trigger available X1XX : X scan trigger available BYTE b_SoftwareTriggerSequenceAvailableMode; XXX1 : One shot trigger available XX1X : Single sequence trigger available X1XX : X sequence trigger available BYTE b_Reserverd1 [5];

Page 189: Addidata Handbuch

Analog inputs ADDIDRIVER

76

} str_AnalogInputSoftwareTriggerInformation, *pstr_AnalogInputSoftwareTriggerInformation; Task: Return the software trigger available actions. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; str_AnalogInputSoftwareTriggerInformation s_TriggerInformation; b_ReturnValue = b_ADDIDATA_GetAnalogInputSoftwareTriggerInformation (dw_DriverHandle, 0, & s_TriggerInformation, sizeof(s_TriggerInformation); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 190: Addidata Handbuch

ADDIDRIVER Analog inputs

77

2) b_ADDIDATA_EnableDisableAnalogInputSoftwareTrigger (...) Syntax: <Return Value> = b_ADDIDATA_EnableDisableAnalogInputSoftwareTrigger (DWORD dw_DriverHandle, WORD w_Module, BYTE b_SoftwareTriggerFlag, BYTE b_SoftwareTriggerAction) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_Module Index of the module BYTE b_SoftwareTriggerFlag ADDIDATA_ENABLE: Enables the Software trigger. ADDIDATA_DISABLE: Software trigger disabled by triggering the analog input module BYTE b_SoftwareTriggerAction Trigger action selection Refer to table 2-6 - Output: No output signal has occurred. Task: Releases or blocks the action of the Software trigger. The software trigger are making via the function “b_ADDIDATA_AnalogInputSoftwareTrigger”

Table 2-6: Software trigger action

b_HardwareTriggerAction Mode description

ADDIDATA_TRIGGER_START_A_SINGLE_CONVERSION After each software trigger a single conversion is startedADDIDATA_ONE_SHOT_TRIGGER After the first software trigger the conversion is started.

All next triggers have not effect. The trigger are read after the next call from the function ”b_ADDIDATA_StartAnalogInputSequenceAcquisition ” or”b_ADDIDATA_StartAnalogInputSCAN ” ”b_ADDIDATA_StartAnalogInputAutoRefreshAcquisition ”

ADDIDATA_TRIGGER_START_A_SINGLE_AUTO_REFRESH

After software trigger a single auto refresh cycle is started

ADDIDATA_TRIGGER_START_A_AUTO_REFRESH_SERIES After each software trigger a series of dw_HardwareTriggerCycleCount auto refresh cycles are started.

ADDIDATA_TRIGGER_START_A_SINGLE_SCAN After software trigger a single SCAN is started ADDIDATA_TRIGGER_START_A_ SCAN_SERIES After each software trigger a series of

dw_HardwareTriggerCycleCount SCAN are started. ADDIDATA_TRIGGER_START_A_SINGLE_SEQUENCE After software trigger a single sequence is started ADDIDATA_TRIGGER_START_A_SEQUENCE_SERIES After each software trigger a series of

dw_HardwareTriggerCycleCount sequence are started.

Page 191: Addidata Handbuch

Analog inputs ADDIDRIVER

78

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableAnalogInputSoftwareTrigger (dw_DriverHandle, 0, ADDIDATA_ENABLE, ADDIDATA_TRIGGER_START_A_SINGLE_CONVERSION); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 192: Addidata Handbuch

ADDIDRIVER Analog inputs

79

3) b_ADDIDATA_GetAnalogInputSoftwareTriggerStatus (...) Syntax: <Return Value> = b_ADDIDATA_GetAnalogInputSoftwareTriggerStatus (DWORD dw_DriverHandle, WORD w_Module, PBYTE pb_SoftwareTriggerFlag, PBYTE pb_SoftwareTriggerStatus)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_Module Index of the analog input module - Output: PBYTE pb_SoftwareTriggerFlag ADDIDATA_ENABLE: The software trigger is enabled. ADDIDATA_DISABLE: The software trigger is disabled PBYTE pb_SoftwareTriggerStatus 0: Software trigger did not occur 1: Software trigger occurred Task: Returns the status (occur or not) of the selected analog input software trigger. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_SoftwareTriggerFlag; BYTE b_SoftwareTriggerStatus; b_ReturnValue = b_ADDIDATA_GetAnalogInputSoftwareTriggerStatus (dw_DriverHandle, 0, &b_SoftwareTriggerFlag, &b_SoftwareTriggerStatus); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 193: Addidata Handbuch

Analog inputs ADDIDRIVER

80

4) b_ADDIDATA_AnalogInputSoftwareTrigger (...) Syntax: <Return Value> = b_ADDIDATA_AnalogInputSoftwareTrigger (DWORD dw_DriverHandle, WORD w_Module)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_Module Index of the analog input module - Output: No output signal has occurred. Task: Make a software trigger. The action depends from the initialisation. Refer to the function “b_ADDIDATA_EnableDisableAnalogInputSoftwareTrigger” Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_AnalogInputSoftwareTrigger (dw_DriverHandle, 0,); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 194: Addidata Handbuch

ADDIDRIVER Analog inputs

81

2.9 Other functions

1) b_ADDIDATA_TestAnalogInputAsynchronousFIFOFull

Syntax: <Return value> = b_ ADDIDATA_TestAnalogInputAsynchronousFIFOFull (DWORD dw_DriverHandle, PBYTE pb_Full)

Parameters: - Input: DWORD dw_DriverHandle Driver handle - Output: PBYTE pb_Full 0: Asynchronous interrupt FIFO memory not full 1: Asynchronous interrupt FIFO memory is full

Task: Tests if the asynchronous interrupt FIFO memory is full or not. The asynchronous interrupt FIFO memory is the FIFO memory in which the asynchronous events generated by the asynchronous interrupt are stored.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_FIFOFull b_ReturnValue = b_ ADDIDATA_TestAnalogInputAsynchronousFIFOFull (dw_DriverHandle, &b_FIFOFull);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 195: Addidata Handbuch

DIN EN ISO 9001:2000 certified

ADDI-DATA GmbHAirpark Business CenterAirport Boulevard B210

77836 RheinmünsterGermany

Phone: +49 7229 1847–0Fax: +49 7229 1847–222

E-mail: [email protected]

Software description

ADDIDRIVER

Digital output channels

Edition: 07.03 – 08/2010

Page 196: Addidata Handbuch

Table of contents ADDIDRIVER

I

1 INTRODUCTION...................................................................................1

2 DIGITAL OUTPUT CHANNELS.................................................................2

1) b_ADDIDATA_GetNumberOfDigitalOutputs(...) ................................................................ 2 2) b_ADDIDATA_GetDigitalOutputInformation (...) ............................................................... 3 3) b_ADDIDATA_SetDigitalOutputMemoryOn (...) ................................................................ 5 4)b_ADDIDATA_SetDigitalOutputMemoryOff (...) ................................................................ 6 4) b_ADDIDATA_SetDigitalOutputMemoryOnEx (...)............................................................ 6 5) b_ADDIDATA_Set1DigitalOutputOn (...)............................................................................ 8 6) b_ADDIDATA_Set1DigitalOutputOff (...) ........................................................................... 9 7) b_ADDIDATA_Set2DigitalOutputsOn (...) ........................................................................ 10 8) b_ADDIDATA_Set2DigitalOutputsOff (...)........................................................................ 11 9) b_ADDIDATA_Set4DigitalOutputsOn (...) ........................................................................ 12 10) b_ADDIDATA_Set4DigitalOutputsOff (...)...................................................................... 13 11) b_ADDIDATA_Set8DigitalOutputsOn (...) ...................................................................... 14 12) b_ADDIDATA_Set8DigitalOutputsOff (...)...................................................................... 16 13) b_ADDIDATA_Set16DigitalOutputsOn (...) .................................................................... 17 14) b_ADDIDATA_Set16DigitalOutputsOff (...).................................................................... 18 15) b_ADDIDATA_Set32DigitalOutputsOn (...) .................................................................... 19 16) b_ADDIDATA_Set32DigitalOutputsOff (...).................................................................... 20 17) b_ADDIDATA_Get1DigitalOutputStatus (...) .................................................................. 21 18) b_ADDIDATA_Get2DigitalOutputStatus (...) .................................................................. 22 19) b_ADDIDATA_Get4DigitalOutputStatus (...) .................................................................. 23 20) b_ADDIDATA_Get8DigitalOutputStatus (...) .................................................................. 24 21) b_ADDIDATA_Get16DigitalOutputStatus (...) ................................................................ 25 22) b_ADDIDATA_Get32DigitalOutputStatus (...) ................................................................ 26 23) b_ADDIDATA_InitDigitalOutputInterrupt (...) ................................................................ 27 24) b_ADDIDATA_ReleaseDigitalOutputInterrupt (...) ......................................................... 29 25) b_ADDIDATA_EnableDisableDigitalOutputInterrupt (...)............................................... 30

Tables

Table 1-1: Type Declaration for Windows 98/NT/2000/XP ........................................................1

Page 197: Addidata Handbuch

Introduction ADDIDRIVER

1

1 INTRODUCTION

IMPORTANT! Note the following conventions in the text:

Function: "b_ADDIDATA_GetNumberOfAnalogInputs" Variable dw_DriverHandle

Table 1-1: Type Declaration for Windows 98/NT/2000/XP

Borland C Microsoft C Borland Pascal

Microsoft Visual Basic

Windows VOID void void pointer any

BYTE unsigned char unsigned char byte integer

INT int int integer integer

WORD unsigned short int unsigned short int long long

DWORD long long longint long

PBYTE unsigned char * unsigned char * var byte integer

PINT int * int * var integer integer

PWORD unsigned short int * unsigned short int * var long long

PCHAR char * char * var string string

PDWORD long * long * var longint long

DOUBLE double double double double

Page 198: Addidata Handbuch

ADDIDRIVER Digital outputs

2

2 DIGITAL OUTPUT CHANNELS

1) b_ADDIDATA_GetNumberOfDigitalOutputs(...)

Syntax: <Return value> = b_ADDIDATA_GetNumberOfDigitalOutputs (DWORD dw_DriverHandle, PWORD pw_NumberOfChannels) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: PWORD pw_NumberOfChannels Number of digital output channels

Task: Returns the number of available digital output channels.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_NumberOfChannels; b_ReturnValue = b_ADDIDATA_GetNumberOfDigitalOutput (dw_DriverHandle, &w_NumberOfChannels);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 199: Addidata Handbuch

Digital outputs ADDIDRIVER

3

2) b_ADDIDATA_GetDigitalOutputInformation (...)

Syntax: <Return value> = b_ADDIDATA_ GetDigitalOutputInformation (DWORD dw_DriverHandle, WORD w_DigitalOutputNumber, PBYTE pb_DigitalOutputType PBYTE pb_DigitalOutputInterrupt) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_DigitalOutputNumber Number of the selected digital output - Output: PBYTE pb_DigitalOutputType Type of the selected input 0 Output type not defined.

1 – 15 5V Type 1 Differential RS485/422 2 Open drain, low-side, load at default voltage 3 TTL 16 – 31 12 Type 32 – 47 24 Type 32 High-side, load at ground 33 Open drain, low side, load at default voltage 34 24 V direct optocoupler output / drain source) 48 – 255 any other type 64-79 Relay 65 Relay 1C (change-over contacts)

PBYTE pb_DigitalOutputInterrupt Type of the possible interrupt 1 = Vcc diagnostic, 2 = CC-diagnostic.

Task: Returns information about the digital output channels.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_DigitalOutputType BYTE b_DigitalOutputInterrupt; b_ReturnValue = b_ADDIDATA_GetDigitalOutputInformation (dw_DriverHandle, 0, &b_DigitalOutputType &b_DigitalOutputInterrupt);

Return value: 1: No error

Page 200: Addidata Handbuch

ADDIDRIVER Digital outputs

4

0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 201: Addidata Handbuch

Digital outputs ADDIDRIVER

5

3) b_ADDIDATA_SetDigitalOutputMemoryOn (...)

Syntax: <Return value> = b_ADDIDATA_SetDigitalOutputMemoryOn (DWORD dw_DriverHandle)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: No output signal has occurred.

Task: Activates the digital output memory and sets all digital outputs off. After calling up this function, the outputs you have previously activated with the function "i_ADDIDATA_SetXDigitalOutputOn" are not reset. You can reset them with the function "i_ADDIDATA_SetXDigitalOutputOff".

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_SetDigitalOutputMemoryOn (dw_DriverHandle);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 202: Addidata Handbuch

ADDIDRIVER Digital outputs

6

4)b_ADDIDATA_SetDigitalOutputMemoryOff (...)

Syntax: <Return value> = b_ADDIDATA_SetDigitalOutputMemoryOff (DWORD dw_DriverHandle) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: No output signal has occurred.

Task: Deactivates the digital output memory.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_SetDigitalOutputMemoryOff (dw_DriverHandle); Return value: 1: No error 0: Error by calling up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

4) b_ADDIDATA_SetDigitalOutputMemoryOnEx (...)

Syntax: <Return value> = b_ADDIDATA_SetDigitalOutputMemoryOnEx (DWORD dw_DriverHandle)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: No output signal has occurred.

Task: Activates the digital output memory and save the state from all digital outputs. After calling up this function, the outputs you have previously activated with the function "i_ADDIDATA_SetXDigitalOutputOn" are not reset. You can reset them with the function "i_ADDIDATA_SetXDigitalOutputOff".

Page 203: Addidata Handbuch

Digital outputs ADDIDRIVER

7

!!! Attention The digital outputs state from the APCI-1500/APCI-3120/APCI-3001/APCI-3200/APCI-3300 can not be read. This function call set the outputs from this board to off.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_SetDigitalOutputMemoryOnEx (dw_DriverHandle);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 204: Addidata Handbuch

ADDIDRIVER Digital outputs

8

5) b_ADDIDATA_Set1DigitalOutputOn (...)

Syntax: <Return value> = b_ADDIDATA_Set1DigitalOutputOn (DWORD dw_DriverHandle, WORD w_Channel)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_Channel Number of the output to be set. - Output: No output signal has occurred.

Task: Sets the output which was passed through the variable b_Channel. Setting one output means setting the output to "High". If you have switched on the digital output memory (ON), the selected outputs channels are set to "1". The other channels hold their state. If you have switched off the digital output memory (OFF), the selected outputs are set to "1". The other channels are reset.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_Set1DigitalOutputOn (dw_DriverHandle,0);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 205: Addidata Handbuch

Digital outputs ADDIDRIVER

6) b_ADDIDATA_Set1DigitalOutputOff (...)

Syntax: <Return value> = b_ADDIDATA_Set1DigitalOutputOff (DWORD dw_DriverHandle, WORD w_Channel) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE w_Channel Number of the ouptut to be reset (0 to 31) - Output: No output signal has occurred.

Task: Resets the ouptut which was passed with the Variable w_Channel. Resetting an output means setting this ouptut to "Low".

IMPORTANT! You can use this function only if the digital output memory is ON. See function b_ADDIDATA_SetDigitalOutputMemoryOn (..).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_Set1DigitalOutputOff (dw_DriverHandle,1); Return value: 1: No error 0: Error by callup of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

9

Page 206: Addidata Handbuch

ADDIDRIVER Digital outputs

10

7) b_ADDIDATA_Set2DigitalOutputsOn (...)

Syntax: <Return value> = b_ADDIDATA_Set2DigitalOutputsOn (DWORD dw_DriverHandle, BYTE b_Port, BYTE b_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the output port BYTE b_PortValue Output value (0 to 3) - Output: No output signal has occurred.

Task: Sets one or several outputs of a port. Setting one output means setting the output to "High". If you have switched on the digital ouput memory (ON), the selected outputs channels are set to "1". The other channels hold their state. If you have switched off the digital output memory (OFF), the selected outputs are set to "1". The other channels are reset.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_Set2DigitalOutputsOn (dw_DriverHandle,0,3);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 207: Addidata Handbuch

Digital outputs ADDIDRIVER

8) b_ADDIDATA_Set2DigitalOutputsOff (...)

Syntax: <Return value> = b_ADDIDATA_Set2DigitalOutputsOff (DWORD dw_DriverHandle, BYTE b_Port, BYTE b_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the output port BYTE b_PortValue Output value (0 to 3) - Output: No output signal has occurred.

Task: Resets one or several outputs of a port. Resetting one output means setting the output to "Low" (0). The other channels hold their state.

IMPORTANT! You can use this function only if the digital output memory is ON. See function b_ADDIDATA_SetDigitalOutputMemoryOn (..).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_Set2DigitalOutputsOff (dw_DriverHandle,0,3);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

11

Page 208: Addidata Handbuch

ADDIDRIVER Digital outputs

12

9) b_ADDIDATA_Set4DigitalOutputsOn (...)

Syntax: <Return value> = b_ADDIDATA_Set4DigitalOutputsOn (DWORD dw_DriverHandle, BYTE b_Port, BYTE b_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the output port BYTE b_PortValue Output value (0 to 15) - Output: No output signal has occurred.

Task: Sets one or several outputs of a port. Setting one output means setting the output to "High". If you have switched on the digital output memory (ON), the selected outputs channels are set to "1". The other channels hold their state. If you have switched off the digital output memory (OFF), the selected outputs are set to "1". The other channels are reset.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_Set4DigitalOutputsOn (dw_DriverHandle,0,3);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 209: Addidata Handbuch

Digital outputs ADDIDRIVER

10) b_ADDIDATA_Set4DigitalOutputsOff (...)

Syntax: <Return value> = b_ADDIDATA_Set4DigitalOutputsOff (DWORD dw_DriverHandle, BYTE b_Port, BYTE b_PortValue) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the output port BYTE b_PortValue Output value (0 to 15) - Output: No output signal has occurred.

Task: Resets one or several outputs of a port. Resetting one output means setting the output to "Low" (0). The other channels hold their state.

IMPORTANT! You can use this function only if the digital output memory is ON. See function b_ADDIDATA_SetDigitalOutputMemoryOn (..).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_Set4DigitalOutputsOff (dw_DriverHandle,0,3);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

13

Page 210: Addidata Handbuch

ADDIDRIVER Digital outputs

11) b_ADDIDATA_Set8DigitalOutputsOn (...)

Syntax: <Return value> = b_ADDIDATA_Set8DigitalOutputsOn (DWORD dw_DriverHandle, BYTE b_Port, BYTE b_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the output port BYTE b_PortValue Output value (0 to 255) - Output: No output signal has occurred.

Task: Sets one or several outputs of a port. Setting one output means setting the output to "High". If you have switched on the digital output memory (ON), the selected outputs channels are set to "1". The other channels hold their state. If you have switched off the digital output memory (OFF), the selected outputs are set to "1". The other channels are reset.

Example:

Switching on the digital output memory (ON) see function "b_ ADDIDATA_SetDigitalOutputMemoryOn (...)

b_Port = 1 b_PortValue = 55 Hex

The outputs 1, 3, 5, 7 are set. The others outputs are hold their status.

Switching off the digital output memory (OFF) see function "b_ ADDIDATA _SetDigitalOutputMemoryOff (...)

b_Port = 1 b_PortValue = 55 Hex

14

Page 211: Addidata Handbuch

Digital outputs ADDIDRIVER

15

The outputs 1, 3, 5, 7 are set. The others are reset.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_Set8DigitalOutputsOn (dw_DriverHandle,1,1);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 212: Addidata Handbuch

ADDIDRIVER Digital outputs

12) b_ADDIDATA_Set8DigitalOutputsOff (...)

Syntax: <Return value> = b_ADDIDATA_Set8DigitalOutputsOff (DWORD dw_DriverHandle, BYTE b_Port, BYTE b_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the output port BYTE b_PortValue Output value (0 to 255) - Output: No output signal has occurred.

Task: Resets one or several outputs of a port. Resetting one output means setting the output to "Low" (0). The other channels hold their state.

IMPORTANT! You can use this function only if the digital output memory is ON. See function b_ADDIDATA_SetDigitalOutputMemoryOn (..).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_Set8DigitalOutputsOff (dw_DriverHandle,1,1);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

16

Page 213: Addidata Handbuch

Digital outputs ADDIDRIVER

17

13) b_ADDIDATA_Set16DigitalOutputsOn (...)

Syntax: <Return value> = b_ADDIDATA_Set16DigitalOutputsOn (DWORD dw_DriverHandle, BYTE b_Port, WORD w_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the output port WORD w_PortValue Output value (0 to 65535) - Output: No output signal has occurred.

Task: Sets one or several outputs of a port. Setting one output means setting the output to "High". If you have switched on the digital ouput memory (ON), the selected outputs channels are set to "1". The other channels hold their state. If you have switched off the digital output memory (OFF), the selected outputs are set to "1". The other channels are reset.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_Set16DigitalOutputsOn(dw_DriverHandle,0,1);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 214: Addidata Handbuch

ADDIDRIVER Digital outputs

14) b_ADDIDATA_Set16DigitalOutputsOff (...)

Syntax: <Return value> = b_ADDIDATA_Set16DigitalOutputsOff (DWORD dw_DriverHandle, BYTE b_Port, WORD w_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the output port WORD w_PortValue Output value (0 to 65535) - Output: No output signal has occurred.

Task: Resets one or several outputs of a port. Resetting one output means setting the output to "Low" (0). The other channels hold their state.

IMPORTANT! You can use this function only if the digital output memory is ON. See function b_ADDIDATA_SetDigitalOutputMemoryOn (..).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_Set16DigitalOutputsOff (dw_DriverHandle,1,1);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

18

Page 215: Addidata Handbuch

Digital outputs ADDIDRIVER

19

15) b_ADDIDATA_Set32DigitalOutputsOn (...)

Syntax: <Return value> = b_ADDIDATA_Set32DigitalOutputsOn (DWORD dw_DriverHandle, BYTE b_Port, DWORD dw_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the output port DWORD dw_PortValue Output value (0 to 232-1) - Output: No output signal has occurred.

Task: Sets one or several outputs of a port. Setting one output means setting the output to "High". If you have switched on the digital ouput memory (ON), the selected outputs channels are set to "1". The other channels hold their state. If you have switched off the digital output memory (OFF), the selected outputs are set to "1". The other channels are reset.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_Set32DigitalOutputsOn(dw_DriverHandle,0,1);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 216: Addidata Handbuch

ADDIDRIVER Digital outputs

16) b_ADDIDATA_Set32DigitalOutputsOff (...)

Syntax: <Return value> = b_ADDIDATA_Set32DigitalOutputsOff (DWORD dw_DriverHandle, BYTE b_Port, DWORD dw_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the output port DWORD dw_PortValue Output value (0 to 232-1) - Output: No output signal has occurred.

Task: Resets one or several outputs of a port. Resetting one output means setting the output to "Low" (0). The other channels hold their state.

IMPORTANT! You can use this function only if the digital output memory is ON. See function b_ADDIDATA_SetDigitalOutputMemoryOn (..).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_Set32DigitalOutputsOff(dw_DriverHandle,0,1);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

20

Page 217: Addidata Handbuch

Digital outputs ADDIDRIVER

21

17) b_ADDIDATA_Get1DigitalOutputStatus (...)

Syntax: <Return value> = b_ADDIDATA_Get1DigitalOutputStatus (DWORD dw_DriverHandle, WORD w_Channel, PBYTE pb_ChannelStatus)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_Channel Number of the output to be read - Output: PBYTE pb_ChannelStatus Status of the digital output 0 -> low 1 -> high

Task: Return the status of a digital output. The variable w_Channel passes the output to be read (0 to 31). A value is returned through the variable pb_ChannelStatus: 0 (low) or 1 (high).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_ChannelStatus; b_ReturnValue = b_ADDIDATA_Get1DigitalOutputStatus (dw_DriverHandle, 0, &b_ChannelStatus);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 218: Addidata Handbuch

ADDIDRIVER Digital outputs

22

18) b_ADDIDATA_Get2DigitalOutputStatus (...)

Syntax: <Return value> = b_ADDIDATA_Get2DigitalOutputStatus (DWORD dw_DriverHandle, BYTE b_Port, PBYTE pb_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the 2-bit output port to be read - Output: PBYTE pb_PortValue Status of the digital output port (0 to 3)

Task: Returns the status of a 2-bit port. The variable b_Port passes the port to be read. A value is returned through the variable pb_PortValue.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_PortValue; b_ReturnValue = b_ADDIDATA_Get2DigitalOutputStatus (dw_DriverHandle, 0, &b_PortValue);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 219: Addidata Handbuch

Digital outputs ADDIDRIVER

23

19) b_ADDIDATA_Get4DigitalOutputStatus (...)

Syntax: <Return value> = b_ADDIDATA_Get8DigitalOutputStatus (DWORD dw_DriverHandle, BYTE b_Port, PBYTE pb_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the 4-bit output port to be read - Output: PBYTE pb_PortValue Status of the digital output port (0 to 15)

Task: Returns the status of a 4-bit port. The variable b_Port passes the port to be read. A value is returned through the variable pb_PortValue.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_PortValue; b_ReturnValue = b_ADDIDATA_Get4DigitalOutputStatus (dw_DriverHandle, 1, &b_PortValue);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 220: Addidata Handbuch

ADDIDRIVER Digital outputs

24

20) b_ADDIDATA_Get8DigitalOutputStatus (...)

Syntax: <Return value> = b_ADDIDATA_Get8DigitalOutputStatus (DWORD dw_DriverHandle, BYTE b_Port, PBYTE pb_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_Port Number of the 8-bit output port to be read - Output: PBYTE pb_PortValue Status of the digital output port (0 to 255)

Task: Returns the status of an 8-bit port. The variable b_Port passes the port to be read. A value is returned through the variable pb_PortValue.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_PortValue; b_ReturnValue = b_ADDIDATA_Get8DigitalOutputStatus (dw_DriverHandle, 0, &b_PortValue);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 221: Addidata Handbuch

Digital outputs ADDIDRIVER

25

21) b_ADDIDATA_Get16DigitalOutputStatus (...)

Syntax: <Return value> = b_ADDIDATA_Get16DigitalOutputStatus (DWORD dw_DriverHandle, BYTE b_PortNbr, PWORD pw_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_PortNbr Number of the 16-bit output port to be read - Output: PWORD pw_InputValue Digital output status of a port (0 to 65535)

Task: Returns the status of a 16-bit port.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; WORD w_PortValue; b_ReturnValue = b_ADDIDATA_Get16DigitalOutputStatus (dw_DriverHandle, 0, &w_PortValue);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 222: Addidata Handbuch

ADDIDRIVER Digital outputs

26

22) b_ADDIDATA_Get32DigitalOutputStatus (...)

Syntax: <Return value> = b_ADDIDATA_Get32DigitalOutputStatus (DWORD dw_DriverHandle, BYTE b_PortNbr, PDWORD pdw_PortValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_PortNbr Number of the 32-bit output port to be read (1 or 2) - Output: PDWORD pdw_InputValue Digital output status of a port (0 to 232-1)

Task: Returns the status of a 32-bit port.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_PortValue; b_ReturnValue = b_ADDIDATA_Get32DigitalOutputStatus (dw_DriverHandle, 0, &dw_PortValue);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 223: Addidata Handbuch

Digital outputs ADDIDRIVER

27

23) b_ADDIDATA_InitDigitalOutputInterrupt (...)

Syntax: <Return value> = b_ADDIDATA_InitDigitalOutputInterrupt (DWORD dw_DriverHandle,

WORD w_FirstDigitalOutput, WORD w_LastDigitalOutput, BYTE b_CCInterruptFlag,

BYTE b_VCCInterruptFlag, PDWORD pdw_DigitalOutputArrayForInterruptCC, PDWORD pdw_DigitalOutputArrayForInterruptVCC); Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver

WORD w_FirstDigitalOutput Number of the first digital output to be initialised. WORD w_LastDigitalOutput Number of the last digital output to be initialised.

BYTE b_CCInterruptFlag Flag for the CC (short-circuit) Interrupt (0 or 1). BYTE b_VCCInterruptFlag Flag for the VCC (voltage drop) interrupt (0 or 1). - Output: PDWORD pdw_DigitalOutputArrayForInterruptCC Mask of the digital output set for the CC Interrupt (bits set to 1: enable, bit set to 0: disabled). PDWORD pdw_DigitalOutputArrayForInterruptVCC Mask of the digital output set for the VCC Interrupt (bits set to 1: enabled; bit set to 0: disabled).

Task: Initialises the digital output interrupt.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_DigitalOutputArrayForInterruptCC; DWORD dw_DigitalOutputArrayForInterruptVCC; b_ReturnValue = b_ADDIDATA_InitDigitalOutputInterrupt (dw_DriverHandle, 0, 15, ADDIDATA_ENABLE, ADDIDATA_ENABLE,

Page 224: Addidata Handbuch

ADDIDRIVER Digital outputs

28

&dw_DigitalOutputArrayForInterruptCC, &dw_DigitalOutputArrayForInterruptVCC); Return value: 1: No error 0: Error by calling up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 225: Addidata Handbuch

Digital outputs ADDIDRIVER

24) b_ADDIDATA_ReleaseDigitalOutputInterrupt (...)

Syntax: <Return value> = b_ADDIDATA_ReleaseDigitalOutputInterrupt (DWORD dw_DriverHandle, WORD w_FirstDigitalOutput, WORD w_LastDigitalOutput); Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver WORD w_FirstDigitalOutput Number of the first digital output to be released. WORD w_LastDigitalOutput Number of the last digital output to be released. - Output: No output signal has occurred.

Task: Releases the digital output interrupt.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_ReleaseDigitalOutputInterrupt (dw_DriverHandle, 0, 15);

Return value: 1: No error 0: Error by call-up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

IMPORTANT! The interrupt mask for the function is detailled in the "Interrupt" function description. (Tables 2-1 and 2-2).

29

Page 226: Addidata Handbuch

ADDIDRIVER Digital outputs

30

25) b_ADDIDATA_EnableDisableDigitalOutputInterrupt (...)

Syntax: <Return value> = b_ADDIDATA_EnableDisableDigitalOutputInterrupt (DWORD dw_DriverHandle,

WORD w_FirstDigitalOutput, WORD w_LastDigitalOutput, BYTE b_VCCInterruptFlag,

BYTE b_CCInterruptFlag); Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver

WORD w_FirstDigitalOutput Number of the first digital output to be enabled/disabled. WORD w_LastDigitalOutput Number of the last digital output to be enabled/disabled

BYTE b_VCCInterruptFlag Flag for the VCC Interrupt (0 or 1). BYTE b_CCInterruptFlag Flag for the CC Interrupt (0 or 1). - Output: No output signal has occurred.

Task: Enables or disables the digital output interrupt.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableDigitalOutputInterrupt (dw_DriverHandle, 0, 15, ADDIDATA_ENABLE, ADDIDATA_ENABLE); Return value: 1: No error 0: Error by calling up of the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 227: Addidata Handbuch

DIN EN ISO 9001:2000 certified

ADDI-DATA GmbHAirpark Business CenterAirport Boulevard B210

77836 RheinmünsterGermany

Phone: +49 7229 1847–0Fax: +49 7229 1847–222

E-mail: [email protected]

Software description

ADDIDRIVER

Watchdog

Edition: 07.04 – 08/2010

Page 228: Addidata Handbuch

Table of contents ADDIDRIVER

2

1 INTRODUCTION...................................................................................3

2 WATCHDOG ........................................................................................4

2.1 List of possible watchdog states ..........................................................................4

2.2 List of events that may change the state of the diagram ....................................4 2.2.2 ADDIPACK Application Programming Interface function calls .....................................4 2.2.3 Hardware Events..........................................................................................................4

2.3 Description ...........................................................................................................5 1) b_ADDIDATA_GetNumberOfWatchdogs (...) ..................................................................... 7 2) b_ADDIDATA_GetWatchdogInformation (...)..................................................................... 8 3) b_ADDIDATA_GetWatchdogInformationEx (...) .............................................................. 10 4) b_ADDIDATA_InitWatchdog (...) ...................................................................................... 12 5) b_ADDIDATA_EnableDisableWatchdogInterrupt (...) ...................................................... 13 6) b_ADDIDATA_StartWatchdog (...) .................................................................................... 14 7) b_ADDIDATA_StartAllWatchdogs (...) ............................................................................. 15 8) b_ADDIDATA_TriggerWatchdog (...)................................................................................ 16 9) b_ADDIDATA_TriggerAllWatchdogs (...) ......................................................................... 17 10) b_ADDIDATA_StopWatchdog (...) .................................................................................. 18 11) b_ADDIDATA_StopAllWatchdogs (...)............................................................................ 19 12) b_ADDIDATA_ReleaseWatchdog (...) ............................................................................. 20 13) b_ADDIDATA_ReadWatchdogStatus (...)........................................................................ 21 14) b_ADDIDATA_EnableDisableWatchdogHardwareGate (...) ........................................... 22 15) b_ADDIDATA_GetWatchdogHardwareGateStatus (...)................................................... 23 16) b_ADDIDATA_EnableDisableWatchdogHardwareTrigger (...)....................................... 24 17) b_ADDIDATA_GetWatchdogHardwareTriggerStatus (...) .............................................. 25 18) b_ADDIDATA_GetWarningDelayInformation (...).......................................................... 26 19) b_ADDIDATA_InitWarningDelay (...) ............................................................................. 27 20) b_ADDIDATA_EnableDisableWatchdogWarningRelay (...) ........................................... 28 21) b_ADDIDATA_EnableDisableWatchdogResetRelay (...) ................................................ 29 22) b_ADDIDATA_SetWatchdogResetRelayMode (...) ......................................................... 30 23) b_ADDIDATA_EnableDisableWatchdogOutput (...) ....................................................... 31 24) b_ADDIDATA_GetWatchdogHardwareOutputStatus (...) ............................................... 32 25) b_ADDIDATA_TestWatchdogAsynchronousFIFOFull ................................................... 33

Tables

Table 1-1: Type Declaration for Windows 98/NT/2000/XP ........................................................3 Table 2-1: Watchdog type......................................................................................................7 Table 2-2: Watchdog timer units.............................................................................................9 Table 2-3: Resolution ..............................................................................................................9

Page 229: Addidata Handbuch

ADDIDRIVER Introduction

1 INTRODUCTION

IMPORTANT! Note the following conventions in the text:

Function: "b_ADDIDATA_GetNumberOfAnalogInputs" Variable dw_DriverHandle

Table 1-1: Type Declaration for Windows 98/NT/2000/XP

Borland C Microsoft C Borland Pascal

Microsoft Visual Basic

Windows VOID void void pointer any

BYTE unsigned char unsigned char byte integer

INT int int integer integer

WORD unsigned short int unsigned short int long long

DWORD long long longint long

PBYTE unsigned char * unsigned char * var byte integer

PINT int * int * var integer integer

PWORD unsigned short int * unsigned short int * var long long

PCHAR char * char * var string string

PDWORD long * long * var longint long

DOUBLE double double double double

3

Page 230: Addidata Handbuch

Watchdog ADDIDRIVER

4

2 WATCHDOG

The watchdog is a downward counter, which resets the outputs after the reload value has run down (timeout). The watchdog status can be read back at any time through a function call.

This section describes how the watchdog functions in terms of states, events (ADDIPACK function calls or hardware events) and transitions between the states under the action of the events.

2.1 List of possible watchdog states

• UNINITIALISED – This is the default state. • INITIALISED – The software has configured the hardware, but the watchdog has no action on

the outputs yet. • ENABLED – The watchdog hardware is ready to start counting, but has no action on the

outputs yet. • RUNNING – The watchdog has been switched on by a trigger. It must be regularly triggered,

or the software will be considered faulty and a timeout event is generated. • ALARM – The watchdog has encountered a timeout and resets all the outputs.

2.2 List of events that may change the state of the diagram

2.2.2 ADDIPACK Application Programming Interface function calls

• b_ADDIDATA_InitWatchdog() • b_ADDIDATA_StartWatchdog () • b_ADDIDATA_TriggerWatchdog (), also named “software trigger” • b_ADDIDATA_StopWatchdog () • b_ADDIDATA_ReleaseWatchdog ()

2.2.3 Hardware Events

• The state of an output is changed, also named “hardware trigger”. • A watchdog timeout happens.

As the software and hardware trigger have the same effect, both events are referred to as “trigger” (trigger = software trigger or hardware trigger).

Page 231: Addidata Handbuch

ADDIDRIVER Watchdog

5

2.3 Description

The watchdog starts in the state UNINITIALISED.

The call b_ADDIDATA_InitWatchdog() changes its state into INITIALISED. From this moment on, only the process that called this function can change the initialisation of the watchdog. That is, the calls b_ADDIDATA_InitWatchdog() and b_ADDIDATA_ReleaseWatchdog() are restricted to the process – and the threads belonging to this process – that made the first call. All other watchdog-related calls are allowed for other processes.

The call b_ADDIDATA_StartWatchdog() changes the state of the watchdog to ENABLED.

In this state, the watchdog is not yet “started” and the value of the counter does not change. A trigger event must happen for the timeout count to begin.

Only in this state, the watchdog can be started by a hardware or software trigger. A hardware trigger happens when one of the outputs is set. A software trigger results from the call b_ADDIDATA_TriggerWatchdog(). The watchdog then goes in the state RUNNING.

As long as hardware or software triggers happen in the state RUNNING, the counter is reloaded and the count starts anew.

If a timeout happens (the counter reaches 0), the watchdog enters the state ALARM. The predefined action relating to the outputs is then executed by the board electronic, for example setting the outputs to 0 V.

The watchdog can re-enter the state RUNNING through a hardware or software trigger.

The states ENABLED, RUNNING and ALARM can be left with the function call b_ADDIDATA_StopWatchdog(). As a result, the watchdog goes back in the state INITIALISED.

Page 232: Addidata Handbuch

Watchdog ADDIDRIVER

6

Page 233: Addidata Handbuch

ADDIDRIVER Watchdog

7

1) b_ADDIDATA_GetNumberOfWatchdogs (...) Syntax: <Return value> = b_ADDIDATA_GetNumberOfWatchdogs (DWORD dw_DriverHandle, PBYTE pb_WatchdogNumber, PBYTE pb_WatchdogType) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: PBYTE pb_WatchdogNumber Number of watchdogs PBYTE pb_WatchdogType Returns the type of each watchdog. See table 2-1 pb_WatchdogType [0]: Type of the first watchdog pb_WatchdogType [1]: Type of the 2nd watchdog ... pb_WatchdogType [*pb_WatchdogNumber - 1]: Type of the last watchdog

Task: Returns the number of watchdogs and the type of each watchdog.

Table 2-1: Watchdog type

Constant Value Description ADDIDATA_DIGITAL_OUTPUT_WATCHDOG 1 Watchdog for the digital outputs

After running-down of the watchdog, the outputs are reset.

ADDIDATA_ANALOG_OUTPUT_WATCHDOG 2 Watchdog for the analog outputs After running-down of the watchdog, the outputs are reset.

ADDIDATA_ANA_DIG_OUTPUT_WATCHDOG 3 Watchdog for the digital/analog outputs. After running-down of the watchdog, the digital/analog outputs are reset.

ADDIDATA_SYSTEM_WATCHDOG 4 System watchdog. This watchdog can be used for the system control.

Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_WatchdogNumber; BYTE b_WatchdogType [12];

b_ReturnValue = b_ADDIDATA_GetNumberOfWatchdog (dw_DriverHandle, &b_WatchdogNumber, b_WatchdogType); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 234: Addidata Handbuch

Watchdog ADDIDRIVER

8

2) b_ADDIDATA_GetWatchdogInformation (...)

Syntax: <Return value> = b_ADDIDATA_GetWatchdogInformation (DOWRD dw_DriverHandle, BYTE b_WatchdogNumber, PBYTE pb_WatchdogTimeUnit, PBYTE pb_WatchdogTimeStep, PBYTE pb_Resolution, PDWORD pdw_HardwareGateAvailable, PDWORD pdw_HardwareTriggerAvailable, PDWORD pdw_WarningRelayAvailable, PDWORD pdw_ResetRelayAvailable, PDWORD pdw_WarningDelayAvailable) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. - Output: PBYTE pb_TimerTimeUnit Time units available. See table 2-2. PWORD pw_WatchdogTimeStep Possible time steps for the watchdog PBYTE pb_Resolution Selection of the resolution for the watchdog. See table 2-3. PDWORD pdw_HardwareGateAvailable 0: Hardware gate not available. 1: Hadrware gate available. PDWORD pdw_HardwareTriggerAvailable 0: Hardware trigger not available. 1: Hadrware trigger available. PDWORD pdw_WarningRelayAvailable 0: Warning relay not available 1: Warning relay available PDWORD pdw_ResetRelayAvailable 0: Reset relay not available 1: Reset relay available

PDWORD pdw_WarningDelayAvailable 0: Waiting time between the warning relay and the activation of the reset relay is not available

1: Waiting time between the warning relay and the activation of the reset relay is available. Task: Returns the time units (pb_WatchdogTimeUnit), the time steps (pw_WatchdogTimeStep) and the resolution (pb_Resolution) which can be used for the selected timer (b_TimerNumber).

Page 235: Addidata Handbuch

ADDIDRIVER Watchdog

9

Table 2-2: Watchdog timer units

Table 2-3: Resolution

Value Description Value Resolution 1 ns 8 8-bit 2 µs 12 12-bit 3 ns und µs 16 16-bit 4 ms 24 24-bit 5 ns und ms 32 32-bit 6 µs und ms 7 ns und µs und ms 8 s 9 ns und s 10 µs und s 11 ns und ms und s 12 ms und s 13 ns und ms und s 14 µs und ms und s 15 ns und µs und ms und s

Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_WatchdogTimeUnit; BYTE b_WatchdogTimeStep; BYTE b_Resolution; DWORD dw_HardwareGateAvailable; DWORD dw_HadwareTriggerAvailable; DWORD dw_WarningRelayAvailable; DWORD dw_ResetRelayAvailable; DWORD dw_WarningDelayAvailable; b_ReturnValue = b_ADDIDATA_GetWatchdogInformation (dw_DriverHandle, 0, &b_WatchdogTimeUnit, &b_WatchdogTimeStep, &b_Resolution, &dw_HardwareGateAvailable, &dw_HadwareTriggerAvailable, &dw_WarningRelayAvailable, &dw_ResetRelayAvailable, &dw_WarningDelayAvailable); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 236: Addidata Handbuch

Watchdog ADDIDRIVER

10

3) b_ADDIDATA_GetWatchdogInformationEx (...)

Syntax: <Return value> = b_ADDIDATA_GetWatchdogInformationEx (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, pstr_GetWatchdogInformation ps_WatchdogInformation, DWORD dw_StructSize) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. DWORD dw_StructSize Size of the structure. - Output: pstr_GetWatchdogInformation ps_WatchdogInformation Watchdog information. Returned structure: typedef struct { BYTE b_WatchdogTimeUnit; Available time unit BYTE b_Resolution; Watchdog resolution. See table 2-3 BYTE b_InterruptAvailable; FALSE: Interrupt not available TRUE: Interrupt available BYTE b_WatchdogType; Type of watchdog. See table 2-1 WORD w_WatchdogTimeStep; Time step of the watchdog BYTE b_Reserved1; reserved for alignment DWORD dw_HardwareGateAvailable; FALSE: Hardware gate not available TRUE: Hardware gate available DWORD dw_HardwareGateHighAvailable; FALSE: Hardware gate high not available TRUE: Hardware gate high available DWORD dw_HardwareGateLowAvailable; FALSE: Hardware gate low not available TRUE: Hardware gate low available DWORD dw_HardwareTriggerAvailable; FALSE: Hardware trigger not available TRUE: Hardware trigger available DWORD dw_HardwareTriggerHighAvailable; FALSE: Hardware trigger high not available TRUE: Hardware trigger high available DWORD dw_HardwareTriggerLowAvailable; FALSE: Hardware trigger low not available TRUE: Hardware trigger low available DWORD dw_WarningRelayAvailable; FALSE: Warning relay not available TRUE: Warning relay available DWORD dw_ResetRelayAvailable; FALSE: Reset relay not available TRUE: Reset relay available

Page 237: Addidata Handbuch

ADDIDRIVER Watchdog

11

BYTE b_ResetRelayModeConfigurable; 0: Reset mode cannot be configured 1: Reset mode can be configured BYTE b_Reserved2; BYTE b_Reserved3; DWORD dw_WarningDelayAvailable; FALSE: Warning for reset delay not available TRUE: Warning for reset delay available DWORD dw_HardwareOutputAvailable; FALSE: Output not available TRUE: Output available DWORD dw_HardwareOutputHighAvailable; FALSE: Output high not available TRUE: Output high available DWORD dw_HardwareOutputLowAvailable; FALSE: Output Low not available TRUE: Output Low available WORD w_Reserved4; }str_GetWatchdogInformation,*pstr_GetWatchdogInformation; Task: Returns the time units (pb_WatchdogTimeUnit), the time steps (pw_WatchdogTimeStep) and the resolution (pb_Resolution) which can be used for the selected watchdog (b_WatchdogNumber). Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; str_GetWatchdogInformation s_WatchdogInformation; b_ReturnValue = b_ADDIDATA_GetWatchdogInformation (dw_DriverHandle, 0, &s_WatchdogInformation, sizeof (str_GetWatchdogInformation)); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 238: Addidata Handbuch

Watchdog ADDIDRIVER

12

4) b_ADDIDATA_InitWatchdog (...)

Syntax: <Return value> = b_ADDIDATA_InitWatchdog (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, BYTE b_WatchdogTimeUnit, DWORD dw_DelayValue) Parameters: - Input: DOWRD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. BYTE b_DelayTimeUnit Selection of the time unit 0: ns 1: µs 2: ms 3: s 4: min DWORD dw_DelayValue Start value or watchdog time (depends from the used ADDI-DATA board) see function "b_ADDIDATA_GetWatchdogInformation" - Output: No output signal has occurred.

Task: Initialises the watchdog.

Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle;

b_ReturnValue = b_ADDIDATA_InitWatchdog (dw_DriverHandle, 0, 0, 1000 ); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 239: Addidata Handbuch

ADDIDRIVER Watchdog

5) b_ADDIDATA_EnableDisableWatchdogInterrupt (...)

Syntax: <Return value> = b_ADDIDATA_EnableDisableWatchdogInterrupt (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, BYTE b_InterruptFlag) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. BYTE b_InterruptFlag ADDIDATA_ENABLE or ADDIDATA_DISABLE - Output: No output signal has occurred.

Task: Activates or deactivates the IRQ for the watchdog process

Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableWatchdogInterrupt (dw_DriverHandle, 0, ADDIDATA_ENABLE); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

IMPORTANT! The interrupt mask for the function is detailed in the "Interrupt" function description. (Tables 2-1).

13

Page 240: Addidata Handbuch

Watchdog ADDIDRIVER

14

6) b_ADDIDATA_StartWatchdog (...)

Syntax: <Return value> = b_ADDIDATA_StartWatchdog (DWORD dw_DriverHandle, BYTE b_WatchdogNumber)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. - Output: No output signal has occurred. Task: Starts the watchdog. Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StartWatchdog (dw_DriverHandle, 0); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 241: Addidata Handbuch

ADDIDRIVER Watchdog

15

7) b_ADDIDATA_StartAllWatchdogs (...)

Syntax: <Return value> = b_ADDIDATA_StartAllWatchdogs (DWORD dw_DriverHandle)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: No output signal has occurred. Task: Start all watchdogs of all boards. Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StartAllWatchdogs (dw_DriverHandle); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 242: Addidata Handbuch

Watchdog ADDIDRIVER

16

8) b_ADDIDATA_TriggerWatchdog (...)

Syntax: <Return value> = b_ADDIDATA_TriggerWatchdog (DWORD dw_DriverHandle, BYTE b_WatchdogNumber)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. - Output: A trigger has occurred on the watchdog Task: Trigger the watchdog. Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_TriggerWatchdog (dw_DriverHandle, 0); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 243: Addidata Handbuch

ADDIDRIVER Watchdog

17

9) b_ADDIDATA_TriggerAllWatchdogs (...)

Syntax: <Return value> = b_ADDIDATA_TriggerAllWatchdogs (DWORD dw_DriverHandle) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: A trigger has occurred on the watchdog. Task: Triggert all watchdogs on all boards. Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_TriggerAllWatchdogs (dw_DriverHandle); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 244: Addidata Handbuch

Watchdog ADDIDRIVER

18

10) b_ADDIDATA_StopWatchdog (...)

Syntax: <Return value> = b_ADDIDATA_StopWatchdog (DWORD dw_DriverHandle, BYTE b_WatchdogNumber) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. - Output: No output signal has occurred. Task: Stops the watchdog. Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StopWatchdog (dw_DriverHandle, 0); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 245: Addidata Handbuch

ADDIDRIVER Watchdog

19

11) b_ADDIDATA_StopAllWatchdogs (...)

Syntax: <Return value> = b_ADDIDATA_StopAllWatchdogs (DWORD dw_DriverHandle) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: No output signal has occurred. Task: Stops all watchdogs on all boards. Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StopAllWatchdogs (dw_DriverHandle); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 246: Addidata Handbuch

Watchdog ADDIDRIVER

20

12) b_ADDIDATA_ReleaseWatchdog (...)

Syntax: <Return value> = b_ADDIDATA_ReleaseWatchdog (DWORD dw_DriverHandle, BYTE b_WatchdogNumber) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. - Output: No output signal has occurred. Task: Releases the watchdog for a new initialisation. Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_ReleaseWatchdog (dw_DriverHandle, 0); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 247: Addidata Handbuch

ADDIDRIVER Watchdog

21

13) b_ADDIDATA_ReadWatchdogStatus (...)

Syntax: <Return Value> = b_ADDIDATA_ReadWatchdogStatus (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, PBYTE pb_WatchdogStatus, PBYTE pb_SoftwareTriggerStatus, PBYTE pb_HardwareTriggerStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. - Output: PBYTE pb_WatchdogStatus 0: Watchdog has run down or did not start 1: Watchdog is running PBYTE pb_SoftwareTriggerStatus 0: Software trigger did not occur 1: Software trigger occurred When the status of the software trigger is read, it is automatically reset. By the next calling of the parameter, 0 is returned if no trigger occurred during this period. PBYTE pb_HardwareTriggerStatus 0: Hardware trigger did not occur 1: Hardware trigger occurred Task: Returns the status of the watchdog, the software trigger and the hardware trigger. Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_WatchdogStatus; BYTE b_SoftwareTriggerStatus; BYTE b_HardwareTriggerStatus; b_ReturnValue = b_ADDIDATA_ReadWatchdogStatus (dw_DriverHandle, 0, &b_WatchdogStatus, &b_SoftwareTriggerStatus, &b_HardwareTriggerStatus);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 248: Addidata Handbuch

Watchdog ADDIDRIVER

22

14) b_ADDIDATA_EnableDisableWatchdogHardwareGate (...)

Syntax: <Return Value> = b_ADDIDATA_EnableDisableWatchdogHardwareGate (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, BYTE b_HardwareGateFlag, BYTE b_HardwareGateLevel) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. BYTE b_ExternGateFlag ADDIDATA_ENABLE: enables the hardware gate. ADDIDATA_DISABLE: Hardware gate disabled by starting the watchdog BYTE b_HardwareGateLevel ADDIDATA_LOW: If the hardware gate is enabled, it is active at "0" ADDIDATA_HIGH: If the hardware gate is enabled, it is active at "1" - Output: No output signal has occurred. Task: Releases or blocks the action of the hardware gate.

Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableWatchdogHardwareGate (dw_DriverHandle, 0, ADDIDATA_ENABLE, ADDIDATA_HIGH); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 249: Addidata Handbuch

ADDIDRIVER Watchdog

23

15) b_ADDIDATA_GetWatchdogHardwareGateStatus (...)

Syntax: <Return Value> = b_ADDIDATA_GateWatchdogHardwareGateStatus (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, PBYTE pb_HardwareGateStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. - Output: PBYTE pb_HardwareGateStatus 0: Hardware gate is not active (low status) 1: Hardware gate is active (high status) Task: Returns the status of the watchdog hardware gate (active or not). Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_HardwareGateStatus; b_ReturnValue = b_ADDIDATA_GateWatchdogHardwareGateStatus (dw_DriverHandle, 0, &b_HardwareGateStatus); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 250: Addidata Handbuch

Watchdog ADDIDRIVER

24

16) b_ADDIDATA_EnableDisableWatchdogHardwareTrigger (...)

Syntax: <Return Value> = b_ADDIDATA_EnableDisableWatchdogHardwareTrigger (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, BYTE b_HardwareTriggerFlag, BYTE b_HardwareTriggerLevel) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. BYTE b_HardwareTriggerFlag ADDIDATA_ENABLE: Enables the hardware trigger. ADDIDATA_DISABLE: Hardware trigger disabled by triggering the watchdog BYTE b_HardwareTriggerLevel ADDIDATA_LOW: If the hardware trigger is used, it triggers from "1" to "0" ADDIDATA_HIGH: If the hardware trigger is used, it triggers from "0" to "1" ADDIDATA_HIGH_LOW: If the hardware trigger is used, it triggers from "0" to "1" and from "1" to "0" - Output: No output signal has occurred. Task: Releases or blocks the action of the hardware trigger. Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableWatchdogHardwareTrigger (dw_DriverHandle, 0, ADDIDATA_ENABLE, ADDIDATA_HIGH); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 251: Addidata Handbuch

ADDIDRIVER Watchdog

25

17) b_ADDIDATA_GetWatchdogHardwareTriggerStatus (...)

Syntax: <Return Value> = b_ADDIDATA_GateWatchdogHardwareTriggerStatus (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, PBYTE pb_HardwareTriggerStatus)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. - Output: PBYTE pb_HardwareTriggerStatus 0: Hardware trigger is not active (low status) 1: Hardware trigger is active (high status) Task: Returns the status of the watchdog hardware trigger (active or not). Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_HardwareTriggerStatus; b_ReturnValue = b_ADDIDATA_GateWatchdogHardwareTriggerStatus (dw_DriverHandle, 0, &b_HardwareTriggerStatus); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 252: Addidata Handbuch

Watchdog ADDIDRIVER

26

18) b_ADDIDATA_GetWarningDelayInformation (...)

Syntax: <Return value> = b_ADDIDATA_GetWarningDelayInformation (DWORD dw_DriverHandle,

BYTE b_WatchdogNumber, PBYTE pb_WarningDelayTimeUnit, PBYTE pb_WarningDelayTimeStep, PBYTE pb_WarningDelayResolution)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. - Output: PBYTE pb_WarningDelayTimeUnit Possible time units for the waiting time between the warning relay and the activation of the reset relay. See table 2-2. PBYTE pb_WarningDelayTimeStep Timer steps for the waiting time between the warning relay and the activation of the reset relay. PBYTE pb_WarningDelayResolution Resolution of the waiting time between the the warning relay and the activation of the reset relay. Task: Returns the time units (pb_WarningDelayTimeUnit)and the time steps (pb_WarningDelayTimeStep) which can be set for the waiting time between the warning relay and the activation of the reset relay for the selected watchdog (b_WatchdogNumber)

Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_WarningDelayTimeUnit; BYTE b_WarningDelayTimeStep; BYTE b_WarningDelayResolution; b_ReturnValue = b_ADDIDATA_GetWarningDelayInformation (dw_DriverHandle, 0, &b_WarningDelayTimeUnit, &b_WarningDelayTimeStep, &b_WarningDelayResolution); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 253: Addidata Handbuch

ADDIDRIVER Watchdog

27

19) b_ADDIDATA_InitWarningDelay (...)

Syntax: <Return value> = b_ADDIDATA_InitWarningDelay (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, BYTE b_DelayTimeUnit, DWORD dw_DelayValue)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. BYTE b_DelayTimeUnit Time unit 0: ns 1: µs 2: ms 3: s DWORD dw_DelayValue Start value or watchdog time between the warning relay and the activation of the reset delay (depends from the used ADDI-DATA board) see function "b_ADDIDATA_GetWatchdogInformation" - Output: No output signal has occurred.

Task: Initialises the waiting timer between the warning relay and the activation of the reset relay.

Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle;

b_ReturnValue = b_ADDIDATA_InitWarningDelay (dw_DriverHandle, 0, 0, 1000 ); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 254: Addidata Handbuch

Watchdog ADDIDRIVER

28

20) b_ADDIDATA_EnableDisableWatchdogWarningRelay (...)

Syntax: <Return Value> = b_ADDIDATA_EnableDisableWatchdogWarningRelay (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, BYTE b_WarningFlag)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. BYTE b_WarningFlag ADDIDATA_ENABLE: Enables the switching on of the warning relay after running down of the watchdog ADDIDATA_DISABLE: The warning relay is not activated after running down of the watchdog - Output: No output signal has occurred.

Task: Releases or blocks the activation of the warning relay after running down of the watchdog.

Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableWatchdogWarningRelay (dw_DriverHandle, ADDIDATA_ENABLE); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 255: Addidata Handbuch

ADDIDRIVER Watchdog

29

21) b_ADDIDATA_EnableDisableWatchdogResetRelay (...)

Syntax: <Return Value> = b_ADDIDATA_EnableDisableWatchdogResetRelay (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, BYTE b_ResetFlag)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. BYTE b_WarningFlag ADDIDATA_ENABLE: Enables the switching on of the reset relay after running down of the watchdog ADDIDATA_DISABLE: The reset relay is not activated after running down of the watchdog - Output: No output signal has occurred. Task: Releases or blocks the activation of the reset relay after running down of the watchdog. Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableWatchdogResetRelay (dw_DriverHandle, ADDIDATA_ENABLE); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 256: Addidata Handbuch

Watchdog ADDIDRIVER

30

22) b_ADDIDATA_SetWatchdogResetRelayMode (...)

Syntax: <Return Value> = b_ADDIDATA_SetWatchdogResetRelayMode (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, BYTE b_ResetRelayMode)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Watchdog number. The first watchdog begins from 0. BYTE b_ResetRelayMode ADDIDATA_ENABLE: Reset relay is set when watchdog has run down. ADDIDATA_DISABLE: Reset relay is reset when watchdog has run down. - Output: No output signal has occurred. Task: Sets the mode of the reset relay during and after the running down of the watchdog. Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableWatchdogResetRelay (dw_DriverHandle, 0, ADDIDATA_ENABLE); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 257: Addidata Handbuch

ADDIDRIVER Watchdog

31

23) b_ADDIDATA_EnableDisableWatchdogOutput (...)

Syntax: <Return value> = b_ADDIDATA_EnableDisableWatchdogOutput (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, BYTE b_OutputFlag, BYTE b_OutputLevel) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Number of the watchdog The first watchdog begins from 0. BYTE b_OutputFlag ADDIDATA_ENABLE or ADDIDATA_DISABLE BYTE b_OutputInverted ADDIDATA_DISABLE: the watchdog output is not inverted. ADDIDATA_ENABLE: The watchdog output is inverted. - Output: No output signal has occurred.

Task: Activates or deactivates the watchdog output.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableWatchdogOutput (dw_DriverHandle, 0, ADDIDATA_ENABLE, ADDIDATA_DISABLE); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 258: Addidata Handbuch

Watchdog ADDIDRIVER

32

24) b_ADDIDATA_GetWatchdogHardwareOutputStatus (...)

Syntax: <Return Value> = b_ADDIDATA_GateWatchdogHardwareOutputStatus (DWORD dw_DriverHandle, BYTE b_WatchdogNumber, PBYTE pb_HardwareOutputStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_WatchdogNumber Number of the watchdog The first watchdog begins from 0. - Output: PBYTE pb_HardwareOutputStatus 0: Hardware output is not active (low status) 1: Hardware output is active (high status)

Task: Returns the status of the watchdog hardware output (active or not).

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_HardwareOutputStatus; b_ReturnValue = b_ADDIDATA_GateWatchdogHardwareOutputStatus (dw_DriverHandle, 0, &b_HardwareOutputStatus); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 259: Addidata Handbuch

ADDIDRIVER Watchdog

33

25) b_ADDIDATA_TestWatchdogAsynchronousFIFOFull

Syntax: <Return value> = b_ ADDIDATA_TestWatchdogAsynchronousFIFOFull (DWORD dw_DriverHandle, PBYTE pb_Full)

Parameters: - Input: DWORD dw_DriverHandle Driver handle - Output: PBYTE pb_Full 0: Asynchronous interrupt FIFO memory not full 1: Asynchronous interrupt FIFO memory is full

Task: Tests if the asynchronous interrupt FIFO memory is full or not. The asynchronous interrupt FIFO memory is the FIFO memory in which the asynchronous events generated by the asynchronous interrupt are stored.

Calling convention: ANSI C: BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_FIFOFull b_ReturnValue = b_ ADDIDATA_TestWatchdogAsynchronousFIFOFull (dw_DriverHandle, &b_FIFOFull);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 260: Addidata Handbuch

DIN EN ISO 9001:2000 certified

ADDI-DATA GmbHAirpark Business CenterAirport Boulevard B210

77836 RheinmünsterGermany

Phone: +49 7229 1847–0Fax: +49 7229 1847–222

E-mail: [email protected]

Software description

ADDIDRIVER

Timer

Edition: 04.02 – 08/2010

Page 261: Addidata Handbuch

Table of contents ADDIDRIVER

I

1 INTRODUCTION...................................................................................1

2 SOFTWARE FUNCTIONS........................................................................2

1) b_ADDIDATA_GetNumberOfTimers(...) ....................................................................... 2 2) b_ADDIDATA_GetTimerInformation (...) ...................................................................... 3 3) b_ADDIDATA_GetTimerInformationEx (...).................................................................. 6 4) b_ADDIDATA_InitTimer (...).......................................................................................... 8 5) b_ADDIDATA_EnableDisableTimerInterrupt (...)........................................................ 11 6) b_ADDIDATA_StartTimer (...)...................................................................................... 12 7) b_ADDIDATA_StartAllTimers (...) ............................................................................... 13 8) b_ADDIDATA_TriggerTimer (...) ................................................................................. 14 9) b_ADDIDATA_TriggerAllTimers (...) .......................................................................... 15 10) b_ADDIDATA_StopTimer (...)...................................................................................... 16 11) b_ADDIDATA_StopAllTimers (...) ............................................................................... 17 12) b_ADDIDATA_ReleaseTimer (...)................................................................................. 18 13) b_ADDIDATA_ReadTimerValue .................................................................................. 19 14) b_ADDIDATA_ReadTimerStatus (...) ........................................................................... 20 15) b_ADDIDATA_EnableDisableTimerHardwareGate (...) .............................................. 21 16) b_ADDIDATA_GetTimerHardwareGateStatus (...) ...................................................... 22 17) b_ADDIDATA_EnableDisableTimerHardwareTrigger (...) .......................................... 23 18) b_ADDIDATA_GetTimerHardwareTriggerStatus (...).................................................. 24 19) b_ADDIDATA_EnableDisableHardwareTimerOutput (...) ........................................... 25 20) b_ADDIDATA_GetTimerHardwareOutputStatus (...)................................................... 26 21) b_ADDIDATA_TestTimerAsynchronousFIFOFull (...) ................................................ 27

Tables

Table 1-1: Type Declaration for Windows 98/NT/2000/XP ........................................................1 Table 2-1: Timer modes..........................................................................................................4 Table 2-2: Resolution ..............................................................................................................4 Table 2-3: Time units ...............................................................................................................5 Table 2-4: Timer mode description.........................................................................................9

Page 262: Addidata Handbuch

Introduction ADDIDRIVER

1

1 INTRODUCTION

IMPORTANT! Note the following conventions in the text:

Function: "b_ADDIDATA_GetNumberOfAnalogInputs" Variable dw_DriverHandle

Table 1-1: Type Declaration for Windows 98/NT/2000/XP

Borland C Microsoft C Borland Pascal

Microsoft Visual Basic

Windows VOID void void pointer any

BYTE unsigned char unsigned char byte integer

INT int int integer integer

WORD unsigned short int unsigned short int long long

DWORD long long longint long

PBYTE unsigned char * unsigned char * var byte integer

PINT int * int * var integer integer

PWORD unsigned short int * unsigned short int * var long long

PCHAR char * char * var string string

PDWORD long * long * var longint long

DOUBLE double double double double

Page 263: Addidata Handbuch

ADDIDRIVER Software functions

2

2 SOFTWARE FUNCTIONS

1) b_ADDIDATA_GetNumberOfTimers(...)

Syntax: <Return value> = b_ADDIDATA_GetNumberOfTimers (DWORD dw_DriverHandle, PBYTE pb_TimerNumber) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: PBYTE pb_TimerNumber Number of timers

Task: Returns the number of timers available on the board.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_TimerNumber; b_ReturnValue = b_ADDIDATA_GetNumberOfTimer (dw_DriverHandle, &b_TimerNumber);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 264: Addidata Handbuch

Software functions ADDIDRIVER

3

2) b_ADDIDATA_GetTimerInformation (...)

Syntax: <Return value> = b_ADDIDATA_GetTimerInformation (DWORD dw_DriverHandle,

BYTE b_TimerNumber, PBYTE pb_TimerMode, PBYTE pb_TimerTimeUnit, PWORD pw_TimerTimeStep, PBYTE pb_Resolution,

PDWORD pdw_HardwareGateAvailable, PDWORD pdw_HardwareTriggerAvailable, PDWORD pdw_OutputAvailable) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer. The first timer begins from 0. - Output: PBYTE pb_TimerMode Modes available for the timer See table 3-1. PBYTE pb_TimerTimeUnit Time units available. See table 3-3. PWORD pw_TimerTimeStep Possible time steps for the timer PBYTE pb_Resolution Selection of the resolution for the timer. See table 3-2. PDWORD pdw_HardwareGateAvailable 0: Hardware gate not available. 1: Hadrware gate available. PDWORD pdw_HardwareTriggerAvailable 0: Hardware trigger not available. 1: Hadrware trigger available. PDWORD pdw_OutputAvailable 0: Hardware output not available 1: Hardware output available

Task: Returns the time units (pb_TimerTimeUnit), the time steps (pw_TimerTimeStep) and the resolution (pb_Resolution) which can be used for the selected timer (b_TimerNumber)

Page 265: Addidata Handbuch

ADDIDRIVER Software functions

4

Table 2-1: Timer modes

Wert (Dec)

Wert (hex)

Selectable modes Wert (Dec)

Wert (hex)

Selectable modes

1 1 Mode 0 available 32 20 Mode 5 available 2 2 Mode 1 available 33 21 Mode 0, 5 available 3 3 Mode 0, 1 available 34 22 Mode 1, 5 available 4 4 Mode 2 available 35 23 Mode 0, 1, 5 available 5 5 Mode 0, 2 available 36 24 Mode 2, 5 available 6 6 Mode 1, 2 available 37 25 Mode 0, 2, 5 available 7 7 Mode 0,1,2 available 38 26 Mode 1, 2, 5 available 8 8 Mode 3 available 39 27 Mode 0,1,2,5 available 9 9 Mode 0, 3 available 40 28 Mode 3, 5 available 10 A Mode 1, 3 available 41 29 Mode 0, 3, 5 available 11 B Mode 0,1, 3 available 42 2A Mode 1, 3, 5 available 12 C Mode 2, 3 available 43 2B Mode 0,1, 3, 5 available 13 D Mode 0, 2, 3 available 44 2C Mode 2, 3, 5 available 14 E Mode 1, 2, 3 available 45 2D Mode 0, 2, 3, 5 available 15 F Mode 0, 1, 2, 3 available 46 2E Mode 1, 2, 3, 5 available 16 10 Mode 4 available 47 2F Mode 0, 1, 2, 3, 5 available 17 11 Mode 0, 4 available 48 30 Mode 4, 5 available 18 12 Mode 1, 4 available 49 31 Mode 0, 4, 5 available 19 13 Mode 0, 1, 4 available 50 32 Mode 1, 4, 5 available 20 14 Mode 2, 4 available 51 33 Mode 0, 1, 4, 5 available 21 15 Mode 0, 2, 4 available 52 34 Mode 2, 4, 5 available 22 16 Mode 1, 2, 4 available 53 35 Mode 0, 2, 4, 5 available 23 17 Mode 0, 1, 2, 4 available 54 36 Mode 1, 2, 4, 5 available 24 18 Mode 3, 4 available 55 37 Mode 0, 1, 2, 4, 5 available 25 19 Mode 0, 3, 4 available 56 38 Mode 3, 4, 5 available 26 1A Mode 1, 3, 4 available 57 39 Mode 0, 3, 4, 5 available 27 1B Mode 0, 1, 3, 4 available 58 3A Mode 1, 3, 4, 5 available 28 1C Mode 2, 3, 4 available 59 3B Mode 0, 1, 3, 4, 5 available 29 1D Mode 0, 2, 3, 4 available 60 3C Mode 2, 3, 4, 5 available 30 1E Mode 1, 2, 3, 4 available 61 3D Mode 0, 2, 3, 4, 5 available 31 1F Mode 0, 1, 2, 3, 4 available 62 3E Mode 1, 2, 3, 4, 5 available 63 3F Mode 0, 1, 2, 3, 4, 5

available

Table 2-2: Resolution

Value Resolution8 8-bit 12 12-bit 16 16-bit 24 24-bit 32 32-bit

Page 266: Addidata Handbuch

Software functions ADDIDRIVER

5

Table 2-3: Time units

Value Description 1 ns 2 µs 3 ns und µs 4 ms 5 ns und ms 6 µs und ms 7 ns und µs und ms 8 s 9 ns und s 10 µs und s 11 ns und ms und s 12 ms und s 13 ns und ms und s 14 µs und ms und s 15 ns und µs und ms und s

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_TimerMode; BYTE b_TimerTimeUnit; WORD w_TimerTimeStep; BYTE b_Resolution; DWORD dw_HardwareGateAvailable; DWORD dw_HardwareTriggerAvailable; DWORD dw_OutputAvailable; b_ReturnValue = b_ADDIDATA_GetTimerInformation (dw_DriverHandle, 0, &b_TimerMode, &b_TimerTimeUnit &w_TimerTimeStep,

&b_Resolution, &dw_HardwareGateAvailable,

&dw_HardwareTriggerAvailable, &dw_OutputAvailable); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 267: Addidata Handbuch

ADDIDRIVER Software functions

6

3) b_ADDIDATA_GetTimerInformationEx (...)

Syntax: <Return value> = b_ADDIDATA_GetTimerInformationEx (DWORD dw_DriverHandle, BYTE b_TimerNumber, pstr_GetTimerInformation ps_TimerInformation, DWORD dw_StructSize) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Timer number. The first timer begins from 0. DWORD dw_StructSize Size of the structure. - Output: pstr_GetTimerInformation ps_TimerInformation Timer information. structure returned : typedef struct { BYTE b_TimerMode; Available timer mode BYTE b_TimerTimeUnit; Available time unit BYTE b_Resolution; Timer resolution. See table 2-3 BYTE b_InterruptAvailable; FALSE : Interrupt not available TRUE : Interrupt available WORD w_TimerTimeStep; Time step of the timer WORD w_Reserved1; DWORD dw_HardwareGateAvailable; FALSE :Hardware gate not available TRUE : Hardware gate available DWORD dw_HardwareGateLowAvailable; FALSE :Hardware gate low not available TRUE : Hardware gate low available DWORD dw_HardwareGateHighAvailable; FALSE :Hardware gate high not available TRUE : Hardware gate high available DWORD dw_HardwareTriggerAvailable; FALSE :Hardware trigger not available TRUE : Hardware trigger available DWORD dw_HardwareTriggerLowAvailable; FALSE :Hardware trigger low not available TRUE : Hardware trigger low available DWORD dw_HardwareTriggerHighAvailable; FALSE :Hardware trigger high not available TRUE : Hardware trigger high available DWORD dw_HardwareOutputAvailable; FALSE :Hardware output not available TRUE : Hardware output available DWORD dw_HardwareOutputLowAvailable; FALSE :Hardware output low not available TRUE : Hardware output low available

Page 268: Addidata Handbuch

Software functions ADDIDRIVER

7

DWORD dw_HardwareOutputHighAvailable; FALSE :Hardware output high not available TRUE : Hardware output high available DWORD dw_Reserved3; }str_GetTimerInformation,*pstr_GetTimerInformation; Task: Returns the time units (pb_TimerTimeUnit), the time steps (pw_TimerTimeStep) and the resolution (pb_Resolution) which can be used for the selected timer (b_TimerNumber)

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; str_GetTimerInformation s_TimerInformation; b_ReturnValue = b_ADDIDATA_GetTimerInformation (dw_DriverHandle, 0, &s_TimerInformation, sizeof (str_GetTimerInformation)); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 269: Addidata Handbuch

ADDIDRIVER Software functions

8

4) b_ADDIDATA_InitTimer (...)

Syntax: <Return value> = b_ADDIDATA_InitTimer (DWORD dw_DriverHandle, BYTE b_TimerNumber, BYTE b_TimerMode, BYTE b_TimerTimeUnit, DWORD dw_ReloadValue) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer The first timer begins from 0. BYTE b_TimerMode Selection of the timer mode. See table 3-4 BYTE b_TimerTimeUnit Selection of the time unit 0: ns 1: µs 2: ms 3: s 4: min DWORD dw_ReloadValue Start value or time interval (depends from the used ADDI-DATA board) see function "b_ADDIDATA_GetTimerInformation" - Output: No output signal has occurred.

Task: Initialises the timer.

Page 270: Addidata Handbuch

Software functions ADDIDRIVER

9

Table 2-4: Timer mode description

Selected mode

Mode description dw_ReloadValue description

Hardware gate input action

0 Mode 0 is typically used for event counting. After the initialisation, OUT is initially low, and remains low until the counter reaches 0. OUT goes high and remains high until a new count is written. See "b_ADDIDATA_WriteTimerValue" function.

Start counting value

Hardware gate

1 Mode 1 is similar to mode 0 except for the gate input action. The gate input is not used to enable or disable the timer (like in Mode 0), but to trigger it.

Start counting value

Hardware trigger

2 This mode functions like a divide-by-ul_ReloadValue counter. It is used to generate a real time clock interrupt. OUT is initially high after the initialisation. When the initial count has decremented to 1, OUT goes low for one CLK pulse. OUT then goes high again, the counter reloads the initial count (ul_ReloadValue) and the process is repeated. This action can generate an interrupt. See function "b_ADDIDATA_SetFunctionalityIntRoutine" and "b_ADDIDATA_EnableDisableTimerInterrupt"

Divider factor Hardware gate

3 Mode 3 is typically used for baud rate generation. This mode is similar to mode 2 except for the duty cycle of OUT. OUT will initially be high after the initialisation. When half the initial count (ul_ReloadValue) has expired, OUT goes low for the remainder of the count. The mode is periodic; the sequence above is repeated indefinitely.

Divider factor Hardware gate

4 OUT is initially high after the initialisation. When the initial count expires, OUT will go low for one CLK pulse and then go high again. The counting sequence is triggered by writing a new value. See "i_ADDIDATA_WriteTimerValue" function. If a new count is written during counting, it will be loaded on the next CLK pulse.

Start counting value

Hardware gate

5 Mode 5 is similar to mode 4 except for the gate input action.

The gate input is not used to enable or disable the timer, but to trigger it.

Start counting value

Hardware trigger

Page 271: Addidata Handbuch

ADDIDRIVER Software functions

10

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle;

b_ReturnValue = b_ADDIDATA_InitTimer (dw_DriverHandle, 0, 0, 0, 1000 ); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 272: Addidata Handbuch

Software functions ADDIDRIVER

5) b_ADDIDATA_EnableDisableTimerInterrupt (...)

Syntax: <Return value> = b_ADDIDATA_EnableDisableTimerInterrupt (DWORD dw_DriverHandle, BYTE b_TimerNumber, BYTE b_InterruptFlag) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer The first timer begins from 0. BYTE b_InterruptFlag ADDIDATA_ENABLE or ADDIDATA_DISABLE - Output: No output signal has occurred.

Task: Enables or disables the IRQ for the timer process.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableTimerInterrupt (dw_DriverHandle, 0, ADDIDATA_ENABLE); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

IMPORTANT! The interrupt mask for the function is detailled in the "Interrupt" function description. (Tables 2-1 and 2-2).

11

Page 273: Addidata Handbuch

ADDIDRIVER Software functions

12

6) b_ADDIDATA_StartTimer (...)

Syntax: <Return value> = b_ADDIDATA_StartTimer (DWORD dw_DriverHandle, BYTE b_TimerNumber) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer The first timer begins from 0. - Output: No output signal has occurred.

Task: Starts the timer.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StartTimer (dw_DriverHandle, 0); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 274: Addidata Handbuch

Software functions ADDIDRIVER

13

7) b_ADDIDATA_StartAllTimers (...)

Syntax: <Return value> = b_ADDIDATA_StartAllTimers (DWORD dw_DriverHandle)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: No output signal has occurred.

Task: Starts all timers of the board.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StartAllTimers (dw_DriverHandle); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 275: Addidata Handbuch

ADDIDRIVER Software functions

14

8) b_ADDIDATA_TriggerTimer (...)

Syntax: <Return value> = b_ADDIDATA_TriggerTimer (DWORD dw_DriverHandle, BYTE b_TimerNumber)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer The first timer begins from 0. - Output: A trigger occurs on the timer.

Task: Triggers the timer.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_TriggerTimer (dw_DriverHandle, 0); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 276: Addidata Handbuch

Software functions ADDIDRIVER

15

9) b_ADDIDATA_TriggerAllTimers (...)

Syntax: <Return value> = b_ADDIDATA_TriggerAllTimers (DWORD dw_DriverHandle)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: A trigger occurs on the timer.

Task: Triggers all timers of all boards.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_TriggerAllTimers (dw_DriverHandle); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 277: Addidata Handbuch

ADDIDRIVER Software functions

16

10) b_ADDIDATA_StopTimer (...)

Syntax: <Return value> = b_ADDIDATA_StopTimer (DWORD dw_DriverHandle, BYTE b_TimerNumber) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer The first timer begins from 0. - Output: No output signal has occurred.

Task: Stops the timer.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StopTimer (dw_DriverHandle, 0); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 278: Addidata Handbuch

Software functions ADDIDRIVER

17

11) b_ADDIDATA_StopAllTimers (...)

Syntax: <Return value> = b_ADDIDATA_StopAllTimers (DWORD dw_DriverHandle) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: No output signal has occurred. Task: Stops all timers of all boards.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StopAllTimers (dw_DriverHandle); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 279: Addidata Handbuch

ADDIDRIVER Software functions

18

12) b_ADDIDATA_ReleaseTimer (...)

Syntax: <Return value> = b_ADDIDATA_ReleaseTimer (DWORD dw_DriverHandle, BYTE b_TimerNumber) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer The first timer begins from 0. - Output: No output signal has occurred. Task: Releases the timer for a new initialisation.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_ReleaseTimer (dw_DriverHandle, 0); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 280: Addidata Handbuch

Software functions ADDIDRIVER

19

13) b_ADDIDATA_ReadTimerValue

<Return value> = b_ADDIDATA_ReadTimerValue (DWORD dw_DriverHandle, BYTE b_TimerNumber, PDWORD pdw_TimerValue) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer The first timer begins from 0. - Output: PDWORD pdw_TimerValue Timer value. Task: Reads the timer value.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_TimerValue; b_ReturnValue = b_ADDIDATA_ReadTimerValue (dw_DriverHandle, 0, &dw_TimerValue);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 281: Addidata Handbuch

ADDIDRIVER Software functions

20

14) b_ADDIDATA_ReadTimerStatus (...)

Syntax: <Return Value> = b_ADDIDATA_ReadTimerStatus (DWORD dw_DriverHandle, BYTE b_TimerNumber, PBYTE pb_TimerStatus, PBYTE pb_SoftwareTriggerStatus, PBYTE pb_HardwareTriggerStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer. The first timer begins from 0. - Output: PBYTE pb_TimerStatus 0: Timer ran down or did not start 1: Timer is running PBYTE pb_SoftwareTriggerStatus 0: Software trigger did not occur 1: Software trigger occurred When the status of the software trigger is read, it is automatically reset. By the next calling of the parameter, 0 is returned if no trigger occurred during this period. PBYTE pb_HardwareTriggerStatus 0: Hardware trigger did not occur 1: Hardware trigger occurred

Task: Returns the status of the timer, the software trigger and the hardware trigger. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_TimerStatus; BYTE b_SoftwareTriggerStatus; BYTE b_HardwareTriggerStatus; b_ReturnValue = b_ADDIDATA_ReadTimerStatus (dw_DriverHandle, 0, &b_TimerStatus, &b_SoftwareTriggerStatus, &b_HardwareTriggerStatus); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 282: Addidata Handbuch

Software functions ADDIDRIVER

21

15) b_ADDIDATA_EnableDisableTimerHardwareGate (...)

Syntax: <Return Value> = b_ADDIDATA_EnableDisableTimerHardwareGate (DWORD dw_DriverHandle, BYTE b_TimerNumber, BYTE b_HardwareGateFlag, BYTE b_HardwareGateLevel) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer The first timer begins from 0. BYTE b_ExternGateFlag ADDIDATA_ENABLE: enables the Hardware Gate. ADDIDATA_DISABLE: Hardware Gate disabled by starting the timer BYTE b_HardwareGateLevel ADDIDATA_LOW: If the hardware gate is enabled, it is active at "0" ADDIDATA_HIGH: If the hardware gate is enabled, it is active at "1" - Output: No output signal has occurred Task: Releases or blocks the action of the hardware gate.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableTimerHardwareGate (dw_DriverHandle, 0, ADDIDATA_ENABLE, ADDIDATA_HIGH); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 283: Addidata Handbuch

ADDIDRIVER Software functions

22

16) b_ADDIDATA_GetTimerHardwareGateStatus (...)

Syntax: <Return Value> = b_ADDIDATA_GateTimerHardwareGateStatus (DWORD dw_DriverHandle, BYTE b_TimerNumber, PBYTE pb_HardwareGateStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer The first timer begins from 0. - Output: PBYTE pb_HardwareGateStatus 0: Hardware gate is not active (Low status) 1: Hardware gate is active (High status)

Task: Returns the status of the timer hardware gate (Active or not). Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_HardwareGateStatus; b_ReturnValue = b_ADDIDATA_GateTimerHardwareGateStatus (dw_DriverHandle, 0, &b_HardwareGateStatus); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 284: Addidata Handbuch

Software functions ADDIDRIVER

23

17) b_ADDIDATA_EnableDisableTimerHardwareTrigger (...)

Syntax: <Return Value> = b_ADDIDATA_EnableDisableTimerHardwareTrigger (DWORD dw_DriverHandle, BYTE b_TimerNumber, BYTE b_HardwareTriggerFlag, BYTE b_HardwareTriggerLevel) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer The first timer begins from 0. BYTE b_HardwareTriggerFlag ADDIDATA_ENABLE: Enables the hardware trigger. ADDIDATA_DISABLE: Hardware trigger disabled by triggering the timer BYTE b_HardwareTriggerLevel ADDIDATA_LOW: If the hardware trigger is used, it triggers from "1" to "0" ADDIDATA_HIGH: If the hardware trigger is used, it triggers from "0" to "1" ADDIDATA_HIGH_LOW: If the hardware trigger is used, it triggers from "0" to "1" and from "1" to "0" - Output: No output signal has occurred. Task: Releases or blocks the action of the hardware trigger. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableTimerHardwareTrigger (dw_DriverHandle, 0, ADDIDATA_ENABLE, ADDIDATA_HIGH); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 285: Addidata Handbuch

ADDIDRIVER Software functions

24

18) b_ADDIDATA_GetTimerHardwareTriggerStatus (...)

Syntax: <Return Value> = b_ADDIDATA_GateTimerHardwareTriggerStatus (DWORD dw_DriverHandle, BYTE b_TimerNumber, PBYTE pb_HardwareTriggerStatus)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer The first timer begins from 0. - Output: PBYTE pb_HardwareTriggerStatus 0: Hardware trigger is not active (Low status) 1: Hardware trigger is active (High status)

Task: Returns the status of the hardware trigger (Active or not). Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_HardwareTriggerStatus; b_ReturnValue = b_ADDIDATA_GateTimerHardwareTriggerStatus (dw_DriverHandle, 0, &b_HardwareTriggerStatus); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 286: Addidata Handbuch

Software functions ADDIDRIVER

25

19) b_ADDIDATA_EnableDisableHardwareTimerOutput (...)

Syntax: <Return value> = b_ADDIDATA_EnableDisableTimerHardwareOutput (DWORD dw_DriverHandle, BYTE b_TimerNumber, BYTE b_OutputFlag, BYTE b_OutputLevel) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer The first timer begins from 0. BYTE b_OutputFlag ADDIDATA_ENABLE or ADDIDATA_DISABLE BYTE b_OutputInverted ADDIDATA_DISABLE: the timer output is not inverted. ADDIDATA_ENABLE: The timer output is inverted. - Output: No output signal has occurred.

Task: Activates or deactivates the timer output.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableTimerHardwareOutput (dw_DriverHandle, 0, ADDIDATA_ENABLE, ADDIDATA_DISABLE); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 287: Addidata Handbuch

ADDIDRIVER Software functions

26

20) b_ADDIDATA_GetTimerHardwareOutputStatus (...)

Syntax: <Return Value> = b_ADDIDATA_GateTimerHardwareOutputStatus (DWORD dw_DriverHandle, BYTE b_TimerNumber, PBYTE pb_HardwareOutputStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_TimerNumber Number of the timer The first timer begins from 0. - Output: PBYTE pb_HardwareOutputStatus 0: Hardware output is not active (Low status) 1: Hardware output is acticve (High status)

Task: Returns the status of the timer hardware output (Active or not). Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_HardwareOutputStatus; b_ReturnValue = b_ADDIDATA_GateTimerHardwareOutputStatus (dw_DriverHandle, 0, &b_HardwareOutputStatus); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 288: Addidata Handbuch

Software functions ADDIDRIVER

27

21) b_ADDIDATA_TestTimerAsynchronousFIFOFull (...)

Syntax: <Return value> = b_ ADDIDATA_TestTimerAsynchronousFIFOFull (DWORD dw_DriverHandle, PBYTE pb_Full)

Parameters: - Input: DWORD dw_DriverHandle Driver handle - Output: PBYTE pb_Full 0: Asynchronous interrupt FIFO memory not full 1: Asynchronous interrupt FIFO memory is full

Task: Tests if the asynchronous interrupt FIFO memory is full or not. The asynchronous interrupt FIFO memory is the FIFO memory in which the asynchronous events generated by the asynchronous interrupt are stored.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_FIFOFull b_ReturnValue = b_ ADDIDATA_TestTimerAsynchronousFIFOFull (dw_DriverHandle, &b_FIFOFull);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 289: Addidata Handbuch

DIN EN ISO 9001:2000 certified

ADDI-DATA GmbHAirpark Business CenterAirport Boulevard B210

77836 RheinmünsterGermany

Phone: +49 7229 1847–0Fax: +49 7229 1847–222

E-mail: [email protected]

Software description

ADDIDRIVER

Counter

Edition: 05.02 - 08/2010

Page 290: Addidata Handbuch

Table of contents ADDIDRIVER

I

1 INTRODUCTION...................................................................................1

2 COUNTER FUNCTIONS.........................................................................2

1) b_ADDIDATA_GetNumberOfCounters(...) .................................................................... 2 2) b_ADDIDATA_GetCounterInformation (...) ................................................................... 3 3) b_ADDIDATA_GetCounterInformationEx (...)............................................................... 5 4) b_ADDIDATA_InitCounter (...) ...................................................................................... 7 5) b_ADDIDATA_SetCounterDirection (...)........................................................................ 8 6) b_ADDIDATA_EnableDisableCounterInterrupt (...)....................................................... 9 7) b_ADDIDATA_StartCounter (...) .................................................................................. 10 8) b_ADDIDATA_StartAllCounters (...)............................................................................ 11 9) b_ADDIDATA_ClearCounter (...) ................................................................................. 12 10) b_ADDIDATA_TriggerCounter (...) .............................................................................. 13 11) b_ADDIDATA_TriggerAllCounters (...) ....................................................................... 14 12) b_ADDIDATA_StopCounter (...)................................................................................... 15 13) b_ADDIDATA_StopAllCounters (...) ............................................................................ 16 14) b_ADDIDATA_ReleaseCounter (...).............................................................................. 17 15) b_ADDIDATA_ReadCounterValue............................................................................... 18 16) b_ADDIDATA_ReadCounterStatus (...) ........................................................................ 19 17) b_ADDIDATA_EnableDisableCounterHardwareGate (...) ........................................... 21 18) b_ADDIDATA_GetCounterHardwareGateStatus (...) ................................................... 22 19) b_ADDIDATA_EnableDisableCounterHardwareTrigger (...) ....................................... 23 20) b_ADDIDATA_GetCounterHardwareTriggerStatus (...)............................................... 24 21) b_ADDIDATA_EnableDisableCounterHardwareOutput (...)........................................ 25 22) b_ADDIDATA_GetCounterHardwareOutputStatus (...)................................................ 26 23) b_ADDIDATA_TestCounterAsynchronousFIFOFull (…)............................................ 27

Tables

Table 1-1: Type Declaration for Windows 98/NT/2000/XP ........................................................1 Table 2-1: Resolution ..............................................................................................................4

Page 291: Addidata Handbuch

Introduction ADDIDRIVER

1

1 INTRODUCTION

IMPORTANT! Note the following conventions in the text:

Function: "b_ADDIDATA_GetNumberOfAnalogInputs" Variable dw_DriverHandle

Table 1-1: Type Declaration for Windows 98/NT/2000/XP

Borland C Microsoft C Borland Pascal

Microsoft Visual Basic

Windows VOID void void pointer any

BYTE unsigned char unsigned char byte integer

INT int int integer integer

WORD unsigned short int unsigned short int long long

DWORD long long longint long

PBYTE unsigned char * unsigned char * var byte integer

PINT int * int * var integer integer

PWORD unsigned short int * unsigned short int * var long long

PCHAR char * char * var string string

PDWORD long * long * var longint long

DOUBLE double double double double

Page 292: Addidata Handbuch

ADDIDRIVER Counter

2

2 COUNTER FUNCTIONS

1) b_ADDIDATA_GetNumberOfCounters(...)

Syntax: <Return value> = b_ADDIDATA_GetNumberOfCounters (DWORD dw_DriverHandle, PBYTE pb_CounterNumber) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: PBYTE pb_CounterNumber Number of counters

Task: Returns the number of counters available on the board.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_CounterNumber; b_ReturnValue = b_ADDIDATA_GetNumberOfCounters (dw_DriverHandle, &b_CounterNumber);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 293: Addidata Handbuch

Counter ADDIDRIVER

3

2) b_ADDIDATA_GetCounterInformation (...)

Syntax: <Return value> = b_ADDIDATA_GetCounterInformation (DWORD dw_DriverHandle,

BYTE b_CounterNumber, PBYTE pb_Resolution, PBYTE pb_InterruptAvailable, PDWORD pdw_InputLevelSelection,

PDWORD pdw_HardwareGateAvailable, PDWORD pdw_HardwareTriggerAvailable, PDWORD pdw_OutputAvailable, PDWORD pdw_UpDownSelection) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter. The first counter begins from 0. - Output: PBYTE pb_Resolution Selection of the resolution for the counter. See table 2-1. PBYTE pb_InterruptAvailable 0 : Counter cannot generate an interrupt 1 : Counter can generate an interrupt PDWORD pdw_InputLevelSelection 1 : Counter only counts low pulses 2 : Counter only counts high pulses 3 : Counter can count low and high pulses PDWORD pdw_HardwareGateAvailable 0: Hardware gate not available. 1: Hadrware gate available. PDWORD pdw_HardwareTriggerAvailable 0: Hardware trigger not available. 1: Hadrware trigger available. PDWORD pdw_OutputAvailable 0: Hardware output not available 1: Hardware output available PDWORD pdw_UpDownSelection 0: Up/Down selection not available and counter counts down 1: Up/Down selection not available and counter counts upwards 2: Up/Down selection available

Page 294: Addidata Handbuch

ADDIDRIVER Counter

4

Task: Returns the hardware gate (pdw_HardwareGateAvailable), the hardware trigger (pdw_HardwareTriggerAvailable), the up/down selection (pdw_UpDownSelection) and the resolution (pb_Resolution) which can be used for the selected counter (b_CounterNumber).

Table 2-1: Resolution

Value Resolution 8 8-bit 12 12-bit 16 16-bit 24 24-bit 32 32-bit

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_Resolution; BYTE b_InterruptAvailable; DWORD dw_InputLevelSelection; DWORD dw_HardwareGateAvailable; DWORD dw_HardwareTriggerAvailable; DWORD dw_OutputAvailable; DWORD dw_UpDownSelection; b_ReturnValue = b_ADDIDATA_GetCounterInformation (dw_DriverHandle, 0, &b_Resolution, &b_InterruptAvailable, &dw_InputLevelSelection, &dw_HardwareGateAvailable, &dw_HardwareTriggerAvailable, &dw_OutputAvailable, &dw_UpDownSelection);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 295: Addidata Handbuch

Counter ADDIDRIVER

5

3) b_ADDIDATA_GetCounterInformationEx (...)

Syntax: <Return value> = b_ADDIDATA_GetCounterInformationEx (DWORD dw_DriverHandle, BYTE b_CounterNumber, pstr_GetCounterInformation ps_CounterInformation, DWORD dw_StructSize) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Counter number. The first counter begins from 0. DWORD dw_StructSize Size of the structure. - Output: pstr_GetCounterInformation ps_CounterInformation Counter information. structure returned : typedef struct { BYTE b_Resolution; Counter resolution. See table 2-3 BYTE b_InterruptAvailable; FALSE : Interrupt not available TRUE : Interrupt available WORD w_Reserved1; DWORD dw_InputLevelSelection; Level selection of the counter DWORD dw_HardwareGateAvailable; FALSE :Hardware gate not available TRUE : Hardware gate available DWORD dw_HardwareGateLowAvailable; FALSE :Hardware gate low not available TRUE : Hardware gate low available DWORD dw_HardwareGateHighAvailable; FALSE :Hardware gate high not available TRUE : Hardware gate high available DWORD dw_HardwareTriggerAvailable; FALSE :Hardware trigger not available TRUE : Hardware trigger available DWORD dw_HardwareTriggerLowAvailable; FALSE :Hardware trigger low not available TRUE : Hardware trigger low available DWORD dw_HardwareTriggerHighAvailable; FALSE :Hardware trigger high not available TRUE : Hardware trigger high available DWORD dw_HardwareOutputAvailable; FALSE :Hardware output not available TRUE : Hardware output available DWORD dw_HardwareOutputLowAvailable; FALSE :Hardware output low not available TRUE : Hardware output low available

Page 296: Addidata Handbuch

ADDIDRIVER Counter

6

DWORD dw_HardwareOutputHighAvailable; FALSE :Hardware output high not available TRUE : Hardware output high available DWORD dw_UpDownSelection; Up/down counting selection of the counter }str_GetCounterInformation,*pstr_GetCounterInformation; Task: Returns the time units (pb_CounterTimeUnit), the time steps (pw_CounterTimeStep) and the resolution (pb_Resolution) which can be used for the selected counter (b_CounterNumber)

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; str_GetCounterInformation s_CounterInformation; b_ReturnValue = b_ADDIDATA_GetCounterInformation (dw_DriverHandle, 0, &s_CounterInformation, sizeof (str_GetCounterInformation)); Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 297: Addidata Handbuch

Counter ADDIDRIVER

7

4) b_ADDIDATA_InitCounter (...)

Syntax: <Return value> = b_ADDIDATA_InitCounter (DWORD dw_DriverHandle, BYTE b_CounterNumber, BYTE b_LevelSelection DWORD dw_ReloadValue) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter The first counter begins from 0. BYTE b_LevelSelection ADDIDATA_LOW : Counter counts low levels ADDIDATA_HIGH : Counter counts high levels ADDIDATA_LOW_HIGH: Counter counts high and low levels This parameter has no influence if the selection of the counter direction is not possible. See the function “b_ADDIDATA_GetCounterInformation ” DWORD dw_ReloadValue Reload or overflow value (depends from the used ADDI-DATA board) see function "b_ADDIDATA_SetCounterDirection" - Output: No output signal has occurred.

Task: Initialises the counter.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle;

b_ReturnValue = b_ADDIDATA_InitCounter (dw_DriverHandle, 0, ADDIDATA_HIGH, 1000);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 298: Addidata Handbuch

ADDIDRIVER Counter

8

5) b_ADDIDATA_SetCounterDirection (...)

i IMPORTANT! The function b_ADDIDATA_SetCounterDirection must be called up before calling up the function b_ADDIDATA_StartCounter.

The function b_ADDIDATA_SetCounterDirection generates a software trigger which loads the initialisation values necessary for the function b_ADDIDATA_StartCounter.

Syntax: <Return value> = b_ADDIDATA_SetCounterDirection (DWORD dw_DriverHandle, BYTE b_CounterNumber, BYTE b_DirectionSelection) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter The first counter begins from 0. BYTE b_DirectionSelection ADDIDATA_UP: Selects the counter for up-counting ADDI_DATA_DOWN : Selects the counter for down-counting Output: No output signal has occurred.

Task: Sets the counting direction (upward or downward)

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_SetCounterDirection (dw_DriverHandle, 0, ADDIDATA_DOWN);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 299: Addidata Handbuch

Counter ADDIDRIVER

6) b_ADDIDATA_EnableDisableCounterInterrupt (...)

Syntax: <Return value> = b_ADDIDATA_EnableDisableCounterInterrupt (DWORD dw_DriverHandle, BYTE b_CounterNumber, BYTE b_InterruptFlag) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter The first counter begins from 0. BYTE b_InterruptFlag ADDIDATA_ENABLE or ADDIDATA_DISABLE - Output: No output signal has occurred.

Task: Enables or disables the IRQ for the counter process.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableCounterInterrupt (dw_DriverHandle, 0, ADDIDATA_ENABLE);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

IMPORTANT! The interrupt mask for the function is detailed in the "Interrupt" function description. (Tables 2-1 and 2-2).

9

Page 300: Addidata Handbuch

ADDIDRIVER Counter

10

7) b_ADDIDATA_StartCounter (...)

i IMPORTANT! The function b_ADDIDATA_SetCounterDirection must be called up before calling up the function b_ADDIDATA_StartCounter.

The function b_ADDIDATA_SetCounterDirection generates a software trigger which loads the initialisation values necessary for the function b_ADDIDATA_StartCounter. Syntax: <Return value> = b_ADDIDATA_StartCounter (DWORD dw_DriverHandle, BYTE b_CounterNumber) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter The first counter begins from 0. - Output: No output signal has occurred.

Task: Starts the counter.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StartCounter (dw_DriverHandle, 0);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 301: Addidata Handbuch

Counter ADDIDRIVER

11

8) b_ADDIDATA_StartAllCounters (...)

Syntax: <Return value> = b_ADDIDATA_StartAllCounters (DWORD dw_DriverHandle)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: No output signal has occurred.

Task: Starts all counters of the board.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StartAllCounters (dw_DriverHandle);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 302: Addidata Handbuch

ADDIDRIVER Counter

12

9) b_ADDIDATA_ClearCounter (...)

Syntax: <Return value> = b_ADDIDATA_ClearCounter (DWORD dw_DriverHandle, BYTE b_CounterNumber)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter The first counter begins from 0. - Output: A clear action occurs on the counter.

Task: Clear the counter.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_ClearCounter (dw_DriverHandle, 0);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 303: Addidata Handbuch

Counter ADDIDRIVER

13

10) b_ADDIDATA_TriggerCounter (...)

Syntax: <Return value> = b_ADDIDATA_TriggerCounter (DWORD dw_DriverHandle, BYTE b_CounterNumber)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter First counter begins from 0. - Output: A trigger action occurs on the counter.

Task: Trigger the counter. If you have selected ADDIDATA_DOWN for the function b_ADDIDATA_SetCounterDirection, the counter reloads the start value. If you have selected ADDIDATA_UP for the function b_ADDIDATA_SetCounterDirection, the counter is cleared.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_TriggerCounter (dw_DriverHandle, 0);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 304: Addidata Handbuch

ADDIDRIVER Counter

14

11) b_ADDIDATA_TriggerAllCounters (...)

Syntax: <Return value> = b_ADDIDATA_TriggerAllCounters (DWORD dw_DriverHandle)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: A trigger action occurs on the counter.

Task: Trigger all counters of the board.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_TriggerAllCounters (dw_DriverHandle);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 305: Addidata Handbuch

Counter ADDIDRIVER

15

12) b_ADDIDATA_StopCounter (...)

Syntax: <Return value> = b_ADDIDATA_StopCounter (DWORD dw_DriverHandle, BYTE b_CounterNumber) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter The first counter begins from 0. - Output: No output signal has occurred. Task: Stops the counter.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StopCounter (dw_DriverHandle, 0);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 306: Addidata Handbuch

ADDIDRIVER Counter

16

13) b_ADDIDATA_StopAllCounters (...)

Syntax: <Return value> = b_ADDIDATA_StopAllCounters (DWORD dw_DriverHandle) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver - Output: No output signal has occurred. Task: Stops all counters of the board.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_StopAllCounters(dw_DriverHandle);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 307: Addidata Handbuch

Counter ADDIDRIVER

17

14) b_ADDIDATA_ReleaseCounter (...)

Syntax: <Return value> = b_ADDIDATA_ReleaseCounter (DWORD dw_DriverHandle, BYTE b_CounterNumber) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter First counter begins from 0. - Output: No output signal has occurred. Task: Releases the counter for a new initialisation.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_ReleaseCounter (dw_DriverHandle, 0);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 308: Addidata Handbuch

ADDIDRIVER Counter

18

15) b_ADDIDATA_ReadCounterValue

Syntax: <Return value> = b_ADDIDATA_ReadCounterValue (DWORD dw_DriverHandle, BYTE b_CounterNumber, PDWORD pdw_CounterValue) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter The first counter begins from 0. - Output: PDWORD pdw_CounterValue Counter value. Task: Reads the counter value.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; DWORD dw_CounterValue; b_ReturnValue = b_ADDIDATA_ReadCounterValue (dw_DriverHandle, 0, &dw_CounterValue);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 309: Addidata Handbuch

Counter ADDIDRIVER

19

16) b_ADDIDATA_ReadCounterStatus (...)

Syntax: <Return Value> = b_ADDIDATA_ReadCounterStatus (DWORD dw_DriverHandle, BYTE b_CounterNumber, PBYTE pb_CounterStatus, PBYTE pb_SoftwareTriggerStatus, PBYTE pb_HardwareTriggerStatus, PBYTE pb_SoftwareClearStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter. The first counter begins from 0. - Output: PBYTE pb_CounterStatus 0: Counter ran down or did not start 1: Counter is running PBYTE pb_SoftwareTriggerStatus 0: Software trigger did not occur 1: Software trigger occurred When the status of the software trigger is read, it is automatically reset. By the next calling of the parameter, 0 is returned if no trigger occurred during this period. PBYTE pb_HardwareTriggerStatus 0: Hardware trigger did not occur 1: Hardware trigger occurred PBYTE pb_SoftwareClearStatus 0: Software clear did not occur 1: Software clear occurred

Task: Returns the status of the counter, the software trigger, the hardware trigger and the software clear. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_CounterStatus; BYTE b_SoftwareTriggerStatus; BYTE b_HardwareTriggerStatus; BYTE b_SoftwareClearStatus; b_ReturnValue = b_ADDIDATA_ReadCounterStatus (dw_DriverHandle, 0, &b_CounterStatus, &b_SoftwareTriggerStatus, &b_HardwareTriggerStatus, &b_SoftwareClearStatus);

Page 310: Addidata Handbuch

ADDIDRIVER Counter

20

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 311: Addidata Handbuch

Counter ADDIDRIVER

21

17) b_ADDIDATA_EnableDisableCounterHardwareGate (...)

Syntax: <Return Value> = b_ADDIDATA_EnableDisableCounterHardwareGate (DWORD dw_DriverHandle, BYTE b_CounterNumber, BYTE b_HardwareGateFlag, BYTE b_HardwareGateLevel) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter The first counter begins from 0. BYTE b_ExternGateFlag ADDIDATA_ENABLE: enables the hardware gate. ADDIDATA_DISABLE: Hardware gate disabled by starting the counter BYTE b_HardwareGateLevel ADDIDATA_LOW: If the hardware gate is enabled, it is active at "0" ADDIDATA_HIGH: If the hardware gate is enabled, it is active at "1" - Output: No output signal has occurred Task: Releases or blocks the action of the hardware gate.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableCounterHardwareGate (dw_DriverHandle, 0, ADDIDATA_ENABLE, ADDIDATA_HIGH);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 312: Addidata Handbuch

ADDIDRIVER Counter

22

18) b_ADDIDATA_GetCounterHardwareGateStatus (...)

Syntax: <Return Value> = b_ADDIDATA_GetCounterHardwareGateStatus (DWORD dw_DriverHandle, BYTE b_CounterNumber, PBYTE pb_HardwareGateStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter The first counter begins from 0. - Output: PBYTE pb_HardwareGateStatus 0: Hardware gate is not active (low status) 1: Hardware gate is active (high status)

Task: Returns the status of the counter hardware gate (Active or not). Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_HardwareGateStatus; b_ReturnValue = b_ADDIDATA_GetCounterHardwareGateStatus (dw_DriverHandle, 0, &b_HardwareGateStatus);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 313: Addidata Handbuch

Counter ADDIDRIVER

23

19) b_ADDIDATA_EnableDisableCounterHardwareTrigger (...)

Syntax: <Return Value> = b_ADDIDATA_EnableDisableCounterHardwareTrigger (DWORD dw_DriverHandle, BYTE b_CounterNumber, BYTE b_HardwareTriggerFlag, BYTE b_HardwareTriggerLevel) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter The first counter begins from 0. BYTE b_HardwareTriggerFlagADDIDATA_ENABLE: Enables the hardware trigger. ADDIDATA_DISABLE: Hardware trigger disabled by triggering the counter BYTE b_HardwareTriggerLevel ADDIDATA_LOW: If the hardware trigger is used, it triggers from "1" to "0" ADDIDATA_HIGH: If the hardware trigger is used, it triggers from "0" to "1" ADDIDATA_HIGH_LOW: If the hardware trigger is used, it triggers from "0" to "1" or from "1" to "0" - Output: No output signal has occurred. Task: Releases or blocks the action of the hardware trigger. Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableCounterHardwareTrigger (dw_DriverHandle, 0, ADDIDATA_ENABLE, ADDIDATA_HIGH);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 314: Addidata Handbuch

ADDIDRIVER Counter

24

20) b_ADDIDATA_GetCounterHardwareTriggerStatus (...)

Syntax: <Return Value> = b_ADDIDATA_GetCounterHardwareTriggerStatus (DWORD dw_DriverHandle, BYTE b_CounterNumber, PBYTE pb_HardwareTriggerStatus)

Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter First counter begins from 0. - Output: PBYTE pb_HardwareTriggerStatus 0: Hardware trigger is not active (low status) 1: Hardware trigger is active (high status)

Task: Returns the status of the hardware trigger (active or not). Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_HardwareTriggerStatus; b_ReturnValue = b_ADDIDATA_GetCounterHardwareTriggerStatus (dw_DriverHandle, 0, &b_HardwareTriggerStatus);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 315: Addidata Handbuch

Counter ADDIDRIVER

25

21) b_ADDIDATA_EnableDisableCounterHardwareOutput (...)

Syntax: <Return value> = b_ADDIDATA_EnableDisableCounterHardwareOutput (DWORD dw_DriverHandle, BYTE b_CounterNumber, BYTE b_OutputFlag, BYTE b_OutputLevel) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter The first counter begins from 0. BYTE b_OutputFlag ADDIDATA_DISABLE: the counter output is not used. ADDIDATA_ENABLE: The counter output is used. BYTE b_OutputLevel ADDIDATA_HIGH: If the counter overflows, output is set to high ADDIDATA_LOW: If the counter overflows the output is set to low - Output: No output signal has occurred.

Task: Activates or deactivates the counter output.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; b_ReturnValue = b_ADDIDATA_EnableDisableCounterHardwareOutput (dw_DriverHandle, 0, ADDIDATA_ENABLE, ADDIDATA_HIGH);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 316: Addidata Handbuch

ADDIDRIVER Counter

26

22) b_ADDIDATA_GetCounterHardwareOutputStatus (...)

Syntax: <Return Value> = b_ADDIDATA_GetCounterHardwareOutputStatus (DWORD dw_DriverHandle, BYTE b_CounterNumber, PBYTE pb_HardwareOutputStatus) Parameters: - Input: DWORD dw_DriverHandle Handle of the ADDI-DATA driver BYTE b_CounterNumber Number of the counter The first counter begins from 0. - Output: PBYTE pb_HardwareOutputStatus 0: Hardware output is not active (Low status) 1: Hardware output is active (High status)

Task: Returns the status of the counter hardware output (active or not). Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_HardwareOutputStatus; b_ReturnValue = b_ADDIDATA_GateCounterHardwareOutputStatus (dw_DriverHandle, 0, &b_HardwareOutputStatus);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.

Page 317: Addidata Handbuch

Counter ADDIDRIVER

27

23) b_ADDIDATA_TestCounterAsynchronousFIFOFull (…)

Syntax: <Return value> = b_ ADDIDATA_TestCounterAsynchronousFIFOFull (DWORD dw_DriverHandle, PBYTE pb_Full)

Parameters: - Input: DWORD dw_DriverHandle Driver handle - Output: PBYTE pb_Full 0: Asynchronous interrupt FIFO memory not full 1: Asynchronous interrupt FIFO memory is full

Task: Tests if the asynchronous interrupt FIFO memory is full or not. The asynchronous interrupt FIFO memory is the FIFO memory in which the asynchronous events generated by the asynchronous interrupt are stored.

Calling convention: ANSI C : BYTE b_ReturnValue; DWORD dw_DriverHandle; BYTE b_FIFOFull; b_ReturnValue = b_ ADDIDATA_TestCounterAsynchronousFIFOFull (dw_DriverHandle, &b_FIFOFull);

Return value: 1: No error 0: Error by calling up the function. Use the function "i_ADDIDATA_GetLastError", to find the error source.


Recommended