60
SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features 16 LVDS digital I/O channels 1 Gbps per channel Programable I/O direction per channel 4 MB, 128 MB or 1GB of RAM System: PXI Express & CompactPCI Express compatible 1 slot 350 MB/s (2.8 Gbps) transfer speed: PCIe x2 Included software: SDM: Signadyne Manager Programming libraries for VI. Nearly all lan- guages (C, C++, LabVIEW, Java, Python, For- tran, BASIC, MATLAB, Mathematica, Maple, etc.) VirtualKnob: Software Front Panels Compatible Signadyne software: ProcessFlow: HVI Programming Environment Applications Digital Waveform Generator Digital Delay Generator Pulse Generator Digital Waveform Analyzer ATE (Automatic Test Equipment) Sequencing / process control Application Fields Electronics & telecom Aerospace & defense Experimental physics Life sciences General Description The SD-PXE-DIO-H0003 is a high performance PXI Ex- press module with LVDS (Low-Voltage Differential Signaling) inputs/outputs. It can generate any digital pattern with any desired timing, and be used as a complex Digital Waveform Generator (DWG) or Digital Delay Generator. This module is ideal to generate trigger pulses or to control/test exter- nal devices digitally. In addition, its data acquisition (DAQ) capabilities makes it a powerful Digital Waveform Analyzer. The SD-PXE-DIO-H0003 can be controlled like a classical workbench instrument with Signadyne VirtualKnob [1]. For user-defined operation, the module can be controlled with Signadyne Programming Libraries [2] (Virtual Instrumenta- tion), or using Signadyne ProcessFlow [3] (Hard Virtual In- strumentation). Similar Products Product Number Description SD-PXE-DIO-H0001 32 Ch, 800 Mbps [4] SD-PXE-DIO-H0002 64 Ch, 800 Mbps [5] SD-PXE-DIO-H0004 32 Ch, 1 Gbps LVDS [6] Ordering Information Product Number Description RAM(MB) SD-PXE-DIO-H0003-4 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module 4 SD-PXE-DIO-H0003-128 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module 128 SD-PXE-DIO-H0003-1G 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module 1024 Rev. 1.4 (April 10, 2012) Specifications subject to change without notice. c 2012 Signadyne. All rights reserved.

SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

  • Upload
    dotruc

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module

Features

• 16 LVDS digital I/O channels

• 1 Gbps per channel

• Programable I/O direction per channel

• 4 MB, 128 MB or 1GB of RAM

• System:

• PXI Express & CompactPCI Express compatible• 1 slot• 350 MB/s (2.8 Gbps) transfer speed: PCIe x2

• Included software:

• SDM: Signadyne Manager• Programming libraries for VI. Nearly all lan-

guages (C, C++, LabVIEW, Java, Python, For-tran, BASIC, MATLAB, Mathematica, Maple, etc.)

• VirtualKnob: Software Front Panels

• Compatible Signadyne software:

• ProcessFlow: HVI Programming Environment

Applications

• Digital Waveform Generator

• Digital Delay Generator

• Pulse Generator

• Digital Waveform Analyzer

• ATE (Automatic Test Equipment)

• Sequencing / process control

Application Fields

• Electronics & telecom

• Aerospace & defense

• Experimental physics

• Life sciences

General Description

The SD-PXE-DIO-H0003 is a high performance PXI Ex-press module with LVDS (Low-Voltage Differential Signaling)inputs/outputs. It can generate any digital pattern with anydesired timing, and be used as a complex Digital WaveformGenerator (DWG) or Digital Delay Generator. This moduleis ideal to generate trigger pulses or to control/test exter-nal devices digitally. In addition, its data acquisition (DAQ)capabilities makes it a powerful Digital Waveform Analyzer.The SD-PXE-DIO-H0003 can be controlled like a classicalworkbench instrument with Signadyne VirtualKnob [1]. Foruser-defined operation, the module can be controlled withSignadyne Programming Libraries [2] (Virtual Instrumenta-tion), or using Signadyne ProcessFlow [3] (Hard Virtual In-strumentation).

Similar Products

Product Number Description

SD-PXE-DIO-H0001 32 Ch, 800 Mbps [4]

SD-PXE-DIO-H0002 64 Ch, 800 Mbps [5]

SD-PXE-DIO-H0004 32 Ch, 1 Gbps LVDS [6]

Ordering Information

Product Number Description RAM(MB)

SD-PXE-DIO-H0003-4 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module 4

SD-PXE-DIO-H0003-128 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module 128

SD-PXE-DIO-H0003-1G 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module 1024

Rev. 1.4 (April 10, 2012)Specifications subject to change without notice.

c© 2012 Signadyne. All rights reserved.

Page 2: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

Specifications

Parameter Min Typ Max Units Comments

General

Digital Lines 16 I/O Organized in 16-bit LVDS I/O Banks

16-Bit I/O Banks 1 I/O LVDS digital I/O lines

Data Clock / Bank 2 I/O Sampling clock for the digital I/O lines

Reference Clock / Bank 1 O Reference clock output

I/O Data System

16-Bit Fixed Ports 1 I/O One per I/O Bank

32-Bit Fixed Ports 0 I/O Fixed I/O Bank combinations

Input Buses 2 I Fully configurable with the Bus Matrices

Output Buses 2 O Fully configurable with the Bus Matrices

Bus Length 1 16 Bits Fully configurable with the Bus Matrices

Digital Waveform Generators 2 Blocks Connected to the Output Buses

Data Acquisition Blocks 2 Blocks Connected to the Input Buses

Digital Lines

VOH 1.875 V For DIO+ and DIO-, 100 Ω across them

VOL 0.715 V For DIO+ and DIO-, 100 Ω across them

VODIFF 350 820 mV Output DIO+ - DIO-, 100 Ω across them

VIDIFF 100 1000 V Input DIO+ - DIO-, for VICM =1.25V

VICM 0.3 1.2 2.2 V Input common-mode, for VIDIFF = +350mV

Input Impedance 100 Ω

Reference Clock Output

Voltage 1.6 Vpp On a 50 Ω load

Power 8 dBm On a 50 Ω load

Source Impedance 50 Ω AC coupled

Frequency 10 or 100 MHz Generated from the internal clock

Onboard Memory

Memory 4 1024 MBytes Product dependent, see Ordering Info. onpage 1

Points 2 512 MPoints For 16-bit points. Shared by all the ports

Sustainable Throughput 2000 MPoints/s For 16-bit points. Shared by all the ports

System Bus

Slots 1 Slot PXI Express or CompactPCI Express com-patible

PCI Express Link 1 2 4 Lanes Automatic negotiation, chassis dependent

PCI Express Speed 200 350 350 MBytes/s Automatic negotiation, chassis dependent

Sustainable Throughput 100 170 170 MPoints/s For 16-bit points. Automatic negotiation,chassis dependent

DMA Channels 32 Channels Number of simultaneous high-speed datatransfer transactions

Internal Clock

Accuracy and Stability 100 ppm Chassis dependent. This value correspondsto a chassis that fulfils the PXI Expressspecifications

2 / 60 Rev. 1.4 (April 10, 2012)

Page 3: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

Interface

Pin Line Name Direction Description

A.1..16 DIO A[0..7] I/O Differential digital input / output lines. They correspond to BankA.Low

A.17 RESERVED n/a System reserved, do not use

A.18 VCC 2.5V O Power supply 2.5V

A.19 DATACLK A.LO I/O Sampling clock for BankA.Low

A.20 VCC 2.5V O Power supply 2.5V

A.21..36 DIO A[8..15] I/O Differential digital input / output lines. They correspond to BankA.High

A.37 RESERVED n/a System reserved, do not use

A.38 VCC 5V O Power supply 5V

A.39 DATACLK A.HI I/O Sampling clock for BankA.High

A.40 CLK A O Output clock reference

Connector type: SAMTEC QSE-020-01-L-D-EM2

Figure 1: SD-PXE-DIO-H0003 front panel

Rev. 1.4 (April 10, 2012) 3 / 60

Page 4: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module

Contents

1 Device Operation 61.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.1.1 Classical Instrument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.2 Virtual Instrument (VI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.3 Hard Virtual Instrument (HVI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2 Digital I/O System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.2.1 Physical Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.2.2 I/O Ports (Banks and Buses) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.3 Digital Waveform Generators (DWGs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.4 Data Acquisition Blocks (DAQs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.5 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.5.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.5.2 SD-PXE-DIO-H0003 Event List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2 VI / HVI Programming 182.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.2 SD-DIO Class Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2.1 IOdirectionConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2.2 BusConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.2.3 PortWrite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2.4 PortRead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2.5 WaveformLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.2.6 WaveformFlush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.7 DWG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262.2.8 DWGqueueWaveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.2.9 DWGflush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.2.10 DWGrun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.2.11 DWGstop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.2.12 DWGtrigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322.2.13 DAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332.2.14 DAQread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352.2.15 DAQconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362.2.16 DAQrun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372.2.17 DAQstop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382.2.18 DAQflush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392.2.19 DAQtrigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402.2.20 DAQcounterRead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412.2.21 DAQrelease . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422.2.22 MathAssign (D=S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432.2.23 MathArithmetics (R=A[+-*/]B) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442.2.24 MathMultAcc (R=A[+-]B[*/]C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452.2.25 Open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462.2.26 Close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.2.27 EventAddCallback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.2.28 EventRemoveCallback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.2.29 EventWaitFor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502.2.30 EventAcknowledge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.2.31 EventSetTimeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522.2.32 CallbackFunction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

2.3 SD-Wave Class Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.3.1 New . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.3.2 Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

2.4 DAQ Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562.4.1 DAQeventRun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562.4.2 DAQeventStop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562.4.3 DAQeventTrigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4 / 60 Rev. 1.4 (April 10, 2012)

Page 5: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.4.4 DAQeventDataReady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572.5 Error Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Rev. 1.4 (April 10, 2012) 5 / 60

Page 6: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

1 Device Operation

1.1 Overview

1.1.1 Classical Instrument

Any Signadyne module can be used as a classical workbench instrument using Signadyne VirtualKnob [1], our ready-to-use software front panels. They are designed to control the inputs and outputs of the modules in real time, making themideal for standard test and measurement applications.

1.1.2 Virtual Instrument (VI)

Virtual instrumentation is the use of customizable software to create user-defined control, test and measurement systems,called Virtual Instruments (VI). For this purpose, Signadyne delivers highly optimized programming libraries [2], allowingthe user to control all modules functionalities. In VIs, instructions are executed by the user computer (controller), and theI/O commands are transferred to the modules via the PXI Express bus (Figure 2). Therefore, the system can executeinstructions at a rate limited by the power and load of the user computer, and the PCI Express speed and latency perfor-mance.

Figure 2: Virtual Instrument (VI) operation. The user-defined software (VI) is executed in the system computer and thecommands are transferred to the modules.

ADVANCED:

Using advanced programming techniques -e.g. multithreading, callback functions, onboard waveform buffering, DMA,etc.- increases the performance of the system execution. Our libraries do make use of these advanced techniques.

NOTE:

Some manufacturers refer to some of these advanced techniques as ”hardware triggering”, but this concept must notbe confused with Signadyne’s Hard Virtual Instrument (HVI).

1.1.3 Hard Virtual Instrument (HVI)

The main drawback of virtual instrumentation is that, for many applications, the speed, the timing precision, and pre-dictability of normal computers and operating systems (even real-time ones) are not sufficient. Signadyne has developed atechnology where the user can write custom software directly to any Signadyne hardware modules, extending the conceptof virtual instrumentation to hard virtual instrumentation. The instructions of a Hard Virtual Instrument (HVI) are executedby the hardware modules, leaving the computer free for other VI tasks, e.g. complex processing and visualization (Figure 3on the next page). Unlike a normal VI, HVIs are time deterministic, and they run at maximum module speed independentlyof the PC. That means, for example, that a 1 GSPS (Gigasamples Per Second) analog output card can run amplitudeinstructions every 1 ns. HVIs are programmed with Signadyne ProcessFlow [3].

6 / 60 Rev. 1.4 (April 10, 2012)

Page 7: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

NOTE:

HVIs are programmed with Signadyne ProcessFlow [3], an HVI programming environment with a user-friendly flowchart-style interface, compatible with all Signadyne hardware modules.

Perfect synchronization: Each HVI is defined by a group of PXIe modules which work perfectly synchronized, and,therefore, can be effectively seen as a single integrated programmable hardware. In addition, a single system can rundifferent HVIs in parallel without any interference between them (Figure 3).

Figure 3: Hard Virtual Instrument (HVI) operation. The user HVI program is executed inside the Signadyne PXIe modules,and the computer is only occupied with other VI processes (e.g. data post-processing, visualization, etc.). All cards in anHVI work perfectly synchronized.

Ultra fast decisions and control: At HVI execution time, the PXIe modules can perform data processing and decisionmaking extremely fast (in tens of nanoseconds). This is very useful for process control where fast (and deterministic) re-sponse times are needed. If the decision requires more complex processing, the user can use our programming librariesto collect the data in the computer, process it at will, and then send the decision back to the modules (VI and HVI can becombined at will). The latency of the VI processing task will depend on the computer power and load, operating system,etc., and its minimum cannot be precisely determined (Figure 4).

Figure 4: An example of a purely HVI decision making, a VI decision making and a HVI & VI parallel execution.

Rev. 1.4 (April 10, 2012) 7 / 60

Page 8: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

1.2 Digital I/O System

Figure 5: Digital I/O system of the SD-PXE-DIO-H0003

1.2.1 Physical Interface

The Physical Interface Block is used to configure the direction of the digital lines. Each line can be independently configuredas input or output (function IOdirectionConfig, Section 2.2.1 on page 19). Regardless of this configuration, all lines can beread.

1.2.2 I/O Ports (Banks and Buses)

The access to the I/O lines is performed via two type of I/O Ports (Table 1 on the next page). BANKs have a fix I/O lineassignment determined by the module physical connector. Buses are configurable, by means of an interconnection matrix,to include any of the modules I/O lines with any ordering. For example, a Bus may be configured to have only four bits: thelines BankA.2, BankA.1, BankB.7, and BankA.5, in this specific order. Buses are unidirectional, either input or output.

The number of Buses available in the SD-PXE-DIO-H0003 is shown in Specifications in Page 2.

NOTE:

Digital Waveform Generation/Acquisition: Digital Waveform Generators (DWG) and Data Acquisition Blocks (DAQs)can only be used with Buses.

TIP:

Digital Delay Generator / Pulse Generator : Writing values to the I/O Ports using the VI Libraries (LabVIEW, C, C++,etc.) is not time deterministic, unless a Digital Waveform Generator (DWG) is used. However, this approach to performdigital delay generation or pulse generation is very inefficient. The best solution for these applications is to read/writethe I/O lines by means of an HVI (Section 1.1.1 on page 6), which can be programmed with Signadyne ProcessFlow[3].

8 / 60 Rev. 1.4 (April 10, 2012)

Page 9: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

Port port (const & value) Length (bits) Description

BANK A BANKA 0 16 Port to access BANK A

BANK B BANKB 1 16 Port to access BANK B

... ...

BUS IN 0 BUSIN0 1000 1..16 Port to access BUS IN number 0

BUS IN 1 BUSIN1 1001 1..16 Port to access BUS IN number 1

... ...

BUS OUT 0 BUSOUT0 2000 1..16 Port to access BUS OUT number 0

BUS OUT 1 BUSOUT1 2001 1..16 Port to access BUS OUT number 1

... ...

BANK A & BANK B BANKAB 3000 32 Port to access BANK A and BANK B at the same time

Table 1: List of Ports with their associated port numbers (the total number of Banks and Buses is module dependent)

Rev. 1.4 (April 10, 2012) 9 / 60

Page 10: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

1.3 Digital Waveform Generators (DWGs)

A Digital Waveform Generator (DWG) is a powerful and flexible block designed to generate arbitrary digital waveforms(Figure 6). The number of DWGs available in the SD-PXE-DIO-H0003 is shown in Specifications on Page 2.

Figure 6: Digital Waveform Generators (DWGs) in the SD-PXE-DIO-H0003

Each DWG has a queue system that allows the user to configure simple generation sequences, choosing many param-eters such as the trigger method (Table 2), the start delay, the number of cycles, etc. Figure 7 on the next page showssome generation examples.

Function triggerMode (const & value) Trigger Type Description

Auto AUTOTRIG 0 (default) Hardware Triggers are generated continuously in an automaticway

VI/HVITrigger

VIHVITRIG 1 Software (VI)Hardware (HVI)

The DWG is triggered by the function DWGtrigger(Section 2.2.12 on page 32) provided that the DWG isrunning. DWGtrigger can be executed from a VI or anHVI (see HVI and VI details, Section 1.1.1 on page 6)

ExternalTrigger

EXTTRIG 2 Hardware The DWG waits for an external trigger (hardware trig-ger input is only available in some hardware modules)

Table 2: Trigger methods for the waveforms queued in a DWG (function DWG, Section 2.2.7 on page 26, or DWGqueue-Waveform, Section 2.2.8 on page 28)

Digital waveform generation can performed using two methods:

a) DWG function: This function provides a one step solution to load, queue and run a single waveform directly from afile or an array in memory, as shown in Figure 6.

b) Step by step programming: DWG simplifies the setup of a single waveform, but does not allow the user to controlimportant aspects of the waveform generation:

• The precise moment when waveforms are transferred from file to the PC RAM and to the onboard RAM. Thismay be important for long waveforms and time-critical applications.

• The possibility to have a variety of waveforms in the PC RAM or in the onboard RAM in order to queue themrepeatedly in the DWGs in an efficient way.

• The possibility to prepare the DWG queue with multiple waveforms in advance before starting the generation.This is important to create more complex generation sequences and control the start time precisely (Figure 7on the next page).

Signadyne Programming Libraries allow the user to control every aspect of the digital waveform generation (Figure 8on the facing page):

1) Create waveforms in the PC RAM with the SD-Wave Class (function New).

2) Transfer the waveforms to the onboard RAM with WaveformLoad.

3) Queue the waveforms in any DWG to create the desired generation pattern (function DWGqueueWaveform).

4) Start the generation with DWGrun and provide triggers if required.

10 / 60 Rev. 1.4 (April 10, 2012)

Page 11: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

Figure 7: Examples of the DWGs queue configuration

Figure 8: Process to prepare and run digital waveforms

TIP:

HVI Generation Sequences: The queue system of the Digital Waveform Generators (DWGs) provides a way to createsimple generation sequences. For more complex sequences, the best solution is the use of a Hard Virtual Instrument(HVI) programmed with Signadyne ProcessFlow [3]. HVIs are time deterministic with nanosecond resolution (Sec-tion 1.1 on page 6), and ProcessFlow provides a user-friendly flowchart programming environment.

Rev. 1.4 (April 10, 2012) 11 / 60

Page 12: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

TIP:

Pausing and Resuming a DWG: The function DWGstop pauses the DWG operation, leaving the last waveform pointat the output. The waveform generation can be resumed calling DWGrun.

Note: After a call to DWG, the selected DWG is running, because this function performs a DWGrun automatically.

Prescaler: Each queued waveform can have a sampling clock prescaler associated with it. This prescaler divides theeffective waveform sampling rate providing a way to reduce waveform sizes.

ADVANCED:

Prescaler and aliasing: Note that reducing the effective sampling rate produces aliasing inside the module reconstruc-tion filter bandwidth. This unfiltered alias appears in the output.

12 / 60 Rev. 1.4 (April 10, 2012)

Page 13: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

1.4 Data Acquisition Blocks (DAQs)

The Data Acquisition (DAQ) is a powerful and flexible block which acquires incoming digital words and sends them to theuser PC at the PXIe maximum transfer speed using dedicated DMA channels (Figure 9). The number of DAQ Blocksavailable in the SD-PXE-DIO-H0003 is shown in Specifications on page 2.

Figure 9: SD-PXE-DIO-H0003 digital words acquisition operation

The digital words acquisition requires two easy steps:

1) Setup: A call to the function DAQ (Section 2.2.13 on page 33) allows the user to configure, among others, the triggermethod (Table 3), the number of DAQ cycles to perform (number of triggers), the number of acquired digital wordsper cycle (DAQpointsPerCycle), and the number of digital words that must be acquired before interrupting the PC(DAQpoints). Figure 10 on the next page illustrates the flexibility of the DAQ block operation.

2) Data read:

a) Using DAQread (Section 2.2.14 on page 35): a blocking function that returns the array of acquired digital words(DAQdata).

b) Using a callback function (Section 2.2.32 on page 53): a user function that is automatically called when theconfigured amount of data is available.

Function triggerMode (const & value) Trigger Type Repetition Description

Auto DAQ AUTOTRIG 0 (default) Hardware Continuous Triggers are generated continuously inan automatic way

VI/HVITrigger

DAQ VIHVITRIG 1 Software (VI)Hardware (HVI)

On demand Data acquisition is triggered by thefunction DAQtrigger (Section 2.2.19 onpage 40), provided the DAQ is running.DAQtrigger can be executed from a VIor an HVI (see HVI and VI details, Sec-tion 1.1.1 on page 6)

ExternalTrigger

DAQ EXTTRIG 2 Hardware On demand Data acquisition waits for an externaltrigger (hardware trigger input is onlyavailable in some hardware modules)

Table 3: SD-PXE-DIO-H0003 trigger methods for the DAQ process (function DAQ, Section 2.2.13 on page 33, or DAQcon-fig, 2.2.15 on page 36)

ADVANCED:

Programming with events: The DAQ operation makes use of the event DAQeventDataReady (see Events, Section 1.5on page 16), but its operation is simplified with the functions DAQ and DAQread. The same functionality can beachieved calling the functions DAQconfig (Section 2.2.15 on page 36), DAQflush (Section 2.2.18 on page 39), DAQrun(Section 2.2.16 on page 37) and EventWaitFor (Section 2.2.29 on page 50) for a DAQeventDataReady event.

Rev. 1.4 (April 10, 2012) 13 / 60

Page 14: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

Figure 10: Examples of the DAQ operation (not all trigger methods are available in all modules, see Table 3 on theprevious page)

TIP:

Pausing and Resuming the DAQ: The function DAQstop (Section 2.2.17 on page 38) pauses the DAQ operation(triggers are discarded). The acquisition can be resumed calling DAQrun (Section 2.2.16 on page 37).

Note: After a call to the function DAQ, the acquisition is running, because this function performs a DAQrun automatically.A DAQstop is also performed automatically when the DAQ block reaches the specified number of acquisition cycles.

ADVANCED:

Onboard memory and DAQpoints selection: The acquired digital words are first stored in a DAQ buffer located in themodule onboard RAM and then sent to the PC RAM via the ultra fast PXI Express bus (Figure 9 on the previous page)using dedicated DMA channels. This DAQ buffer, and therefore the minimum amount of onboard RAM needed for anapplication, is directly the size of the data array the user wants to receive in each DAQread or callback function call(DAQeventDataReady event). This data array, called DAQdata, contains DAQpoints digital words. Therefore, its size isDAQpoints x 4 bytes/digital word (in the case of the SD-PXE-DIO-H0003). The size of this DAQ buffer must be chosenaccording to two criteria:

• High speed transients: the DAQ onboard buffer can store bursts of digital words at higher rates than the PXIe andthe computer can handle. Larger buffers allow handling longer high speed bursts.

• PC load: The DAQ buffer must be chosen to allow the PC enough time to process each DAQ buffer (DAQdata) andto handle interrupts and process-context switching tasks. For example, if a computer requires 500 ms to processDAQdata, the buffer size must be such that it can store more than 500 ms of input timestamps without interruptingthe computer (DAQeventDataReady event). The DAQ block facilitates the task of adjusting the PC processing ratewith the introduction of the DAQ cycles (Figure 10).

Note: The amount of required PC RAM is double the amount of required onboard RAM.

14 / 60 Rev. 1.4 (April 10, 2012)

Page 15: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

Prescaler: The DAQ block has an input prescaler which can be configured to discard digital words, reducing the effectiveacquisition data rate (function DAQ, Section 2.2.13 on page 33, or DAQconfig, 2.2.15 on page 36).

DAQ counter: The DAQ block has a dedicated counter to store the number of acquired digital words since the last call toDAQ or DAQflush. This counter can be read with DAQcounterRead (Section 2.2.20 on page 41).

Rev. 1.4 (April 10, 2012) 15 / 60

Page 16: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

1.5 Events

1.5.1 Overview

Events are signals sent by a device (a hardware module, an HVI, etc.) to the PC, which can be captured in VIs usingSignadyne Programming Libraries [2], e.g. from C/C++, LabVIEW, MATLAB, etc. Thus, the user can write specific codethat is executed only when the event is signaled.

There are two methods to capture an event (Figure 11): using a callback function (Section 2.2.32 on page 53), a user-defined function executed whenever the event is signaled; or using the function EventWaitFor (Section 2.2.29 on page 50),a blocking call that sends the program/thread to sleep until the event is signaled. Both methods cannot be used with thesame event at the same time.

ADVANCED:

Blocking functions and threads: The user can emulate the behaviour of the callback function method by creating auser thread that calls the EventWaitFor blocking function.

Some events require an acknowledgement from the user, performed with the function EventAcknowledge (Section 2.2.30on page 51).

Figure 11: Event capture using a callback function (left), and using the blocking function EventWaitFor (right). Both methodscannot be concurrently used with the same event.

NOTE:

Device-specific Events: Each Signadyne device (a hardware module, an HVI, etc.) has its own events. Check thecorresponding datasheet to see the events available a specific device.

NOTE:

Callback and EventWaitFor Function Parameters: Some input parameters in the callback function (Section 2.2.32on page 53) and some output parameters in the EventWaitFor function (Section 2.2.29 on page 50) are defined in ageneric format, but they take a specific form for each particular event. For instance, the generic buffer in the dataacquisition event becomes the DAQ buffer.

16 / 60 Rev. 1.4 (April 10, 2012)

Page 17: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

1.5.2 SD-PXE-DIO-H0003 Event List

The events of the SD-PXE-DIO-H0003 are listed in Table 4.

Event eventNumber Description

DAQeventRun 1024+(n*10) DAQ n has started or resumed acquisition

DAQevenStop 1024+(n*10)+1 DAQ n has been paused

DAQeventTrigger 1024+(n*10)+2 DAQ n starts digital words acquisition as a result of a trigger

DAQeventDataReady 1024+(n*10)+3 DAQ n has a new digital words buffer available

Table 4: List of SD-PXE-DIO-H0003 events

Rev. 1.4 (April 10, 2012) 17 / 60

Page 18: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2 VI / HVI Programming

2.1 Overview

As described in Section 1.1.2 on page 6, virtual instrumentation is the use of customizable software to create user-definedcontrol, test and measurement systems, called Virtual Instruments (VI). For this purpose, Signadyne delivers highly opti-mized static and dynamic programming libraries [2].

a) Static Libraries

Ready-to-use static libraries are supplied for the following programming languages and compilers:

Language Compiler Files

C Any C compiler *.h, *.lib

MinGW (Qt), GCC *.h, *.a

C++ Microsoft Visual Studio *.h, *.lib

MinGW (Qt), GCC *.h, *.a

LabVIEW National Instruments LabVIEW *.vi

b) Dynamic Libraries

Dynamic libraries are compatible with any programming language that has a compiler capable of performing dynamiclinking. Here are some examples:

∙ C++ compilers not listed above.

∙ Other programming languages: Java, Python, Visual Basic, C#, PHP, Perl, Fortran, Pascal, etc.

∙ Computer Algebra Systems (CAS): MathWorks MATLAB, Wolfram Mathematica, Maplesoft Maple, etc.

Dynamic libraries available:

Exported Functions Language Operating System Files

C Microsoft Windows *.dll

NOTE:

DLL function prototypes: The exported functions of the dynamic libraries have the same prototype as their counter-parts of the static libraries.

NOTE:

Function Parameters: Some of the parameters of the library functions are language dependent. The table of inputs andoutputs parameters for each function is a conceptual description, therefore, the user must check the specific languagefunction to see how to use it. One example are the ID parameters (moduleID, etc.), which identify objects in non object-oriented languages. In object-oriented languages the objects are identified by their instances, and therefore the ID arenot present.

Function Names: Some programming languages like C++ or LabVIEW have a feature called function overloadingor polymorphism, that allows creating several functions with the same name but different input/output parameters. Inlanguages without this feature, functions with different parameters must have different names.

NOTE:

Event Parameters: Some input parameters in the callback function (Section 2.2.32 on page 53) and some outputparameters in the EventWaitFor function (Section 2.2.29 on page 50) are defined in a generic format, but they take aspecific form for each particular event. For instance, the generic buffer0 in the data acquisition event becomes the DAQbuffer.

18 / 60 Rev. 1.4 (April 10, 2012)

Page 19: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2 SD-DIO Class Functions

2.2.1 IOdirectionConfig

This function configures the direction (input/output) of the digital I/O lines (Figure 5 on page 8).

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

lineMask long long long long - Mask to select the digital lines to configure (LSBis DIO A[0], bit 1 is DIO A[1] and so forth). Ifthe module has two Banks, line DIO B[0] comesafter DIO A[31]. ’0’ to modify and ’1’ to leaveuntouched

direction long long long long - ’0’ for input and ’1’ for output. Each bit representsone digital line (LSB is DIO A[0], bit 1 is DIO A[1]and so forth). If the module has two Banks, lineDIO B[0] comes after DIO A[31]

errorIn - - - If it contains an error, the function will not be ex-ecuted and errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module IOdirectionConfig(int moduleID, long long lineMask, long long direction);

C++ Function

int SD DIO::IOdirectionConfig(long long lineMask, long long direction);

LabVIEW

SD Module IOdirectionConfig.vi

Rev. 1.4 (April 10, 2012) 19 / 60

Page 20: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.2 BusConfig

This function configures the I/O line assignment and ordering of a Bus (Section 1.2.2 on page 8).

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

port int int - Bus port to configure (Table 1 on page 9)

length int int - The number of digital lines in the Bus

lines int* int* - Array containing the list of digital lines in the Bus

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module BusConfig(int moduleID, int port, int length, int* lines);

C++ Function

int SD DIO::BusConfig(int port, int length, int* lines);

LabVIEW

SD Module BusConfig.vi

20 / 60 Rev. 1.4 (April 10, 2012)

Page 21: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.3 PortWrite

This function writes values in a digital output Bank or Bus (Section 1.2.2 on page 8). The user has the options to: write thefull port; write the full port with a mask to select which digital lines are modified and which ones left untouched; or changea single digital line (Banks only).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Signadyne ProcessFlow

Execution Latency: 10 ns

Timing resolution: 1 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

port int int selection list Output port (Table 1 on page 9). For singlelines only Banks are valid

portValue long long long long - ’0’ or ’1’ for logic levels low or high. Each bitrepresents one digital line (LSB is PORT[0], bit1 is PORT[1] and so forth)

- - - constant[format] Constant in the specified format (Decimal, Bi-nary, Hexadecimal, etc.)

- - - variable Local variable

lineMask long long long long - Mask to selects the digital lines to modify (LSBis PORT[0], bit 1 is PORT[1] and so forth). ’0’to modify and ’1’ to leave untouched

- - - constant[format] Constant in the specified format (Decimal, Bi-nary, Hexadecimal, etc.)

line int int - Digital line number within the Bank

lineValue int int - ’0’ or ’1’ for logic levels low or high

errorIn - - - If it contains an error, the function will not beexecuted and errorIn will be passed to erro-rOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module PortWrite(int moduleID, int port, long long portValue);int SD Module PortWriteWithMask(int moduleID, int port, long long portValue, long long lineMask);int SD Module PortWriteSingleLine(int moduleID, int port, int line, int lineValue);

C++ Function

int SD DIO::PortWrite(int port, long long portValue);int SD DIO::PortWrite(int port, long long portValue, long long lineMask);int SD DIO::PortWriteSingleLine(int port, int line, int lineValue);

ProcessFlow

PortWritePortPort Value

TypeValue

Line MaskTypeValue

LabVIEW

SD Module PortWrite.vi

Rev. 1.4 (April 10, 2012) 21 / 60

Page 22: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

LabVIEW

SD Module PortWriteWithMask.vi

LabVIEW

SD Module PortWriteSingleLine.vi

22 / 60 Rev. 1.4 (April 10, 2012)

Page 23: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.4 PortRead

This function reads the value of a digital input Bank or Bus (Section 1.2.2 on page 8). The user has the options to read thefull port or a single digital line (Banks only).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

port int int selection list Input port (Table 1 on page 9)

line int int - Digital line number within the Bank

errorIn - - - If it contains an error, the function will not beexecuted and errorIn will be passed to erro-rOut

Outputs

moduleIDOut - - - A copy of moduleID

portValue long long* long long* - ’0’ or ’1’ for logic levels low or high. Each bitrepresents one digital line (LSB is PORT[0],bit 1 is PORT[1] and so forth)

destination - - - selection list Destination variable to store the port value

lineValue int int - ’0’ or ’1’ for logic levels low or high, negativevalues for errors (see error codes in Table 9on page 58)

- - - constant[format] Constant in the specified format (Decimal,Binary, Hexadecimal, etc.)

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module PortRead(int moduleID, int port, long long* portValue);int SD Module PortReadSingleLine(int moduleID, int port, int line);

C++ Function

int SD DIO::PortRead(int port, long long* portValue);int SD DIO::PortReadSingleLine(int port, int line);

ProcessFlow

PortReadPortDestination

LabVIEW

SD Module PortRead.vi

LabVIEW

SD Module PortReadSingleLine.vi

Rev. 1.4 (April 10, 2012) 23 / 60

Page 24: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.5 WaveformLoad

This function loads the specified waveform into the module onboard RAM. Waveforms must be created first with the SD-Wave class (Section 2.3 on page 54).

ADVANCED:

Memory usage: When a waveform is replaced (same waveformNumber used more than once) and the new waveformhas a different size than the old one, the module’s RAM memory has to be defragmented. In this case the process takesmore time to be accomplished.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

waveformID int - - Waveform identifier (see SD-Wave Class, Sec-tion 2.3 on page 54)

waveformObject - SD Wave* - - Pointer to the waveform object (see SD-WaveClass, Section 2.3 on page 54)

waveformNumber int int - Waveform number to identify the waveform in sub-sequent related function calls. This value must bein the [0..n] range, and in order to optimized on-board memory usage, it should as low as possible

errorIn - - - If it contains an error, the function will not be exe-cuted and errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

availableRAM int int - Available onboard RAM in waveform points, or anegative number for errors (see error codes in Ta-ble 9 on page 58)

errorOut - - - See error codes in Table 9 on page 58

C Function

int SD Module WaveformLoad(int moduleID, int waveformID, int waveformNumber);

C++ Function

int SD DIO::WaveformLoad(SD Wave* waveformObject, int waveformNumber)

LabVIEW

SD Module WaveformLoad.vi

24 / 60 Rev. 1.4 (April 10, 2012)

Page 25: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.6 WaveformFlush

This function deletes all the waveforms from the module onboard RAM and flushes all DWG queues (DWGflush, Sec-tion 2.2.9 on page 29).

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module WaveformFlush(int moduleID);

C++ Function

int SD DIO::WaveformFlush()

LabVIEW

SD Module WaveformFlush.vi

Rev. 1.4 (April 10, 2012) 25 / 60

Page 26: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.7 DWG

This function provides a one-step method to load, queue and run a single waveform in one of the module Digital WaveformGenerators (DWGs) (Section 1.3 on page 10). The waveform can be loaded from an array of points in memory or from a file.

ADVANCED:

Step by step programming: This function is equivalent to create a waveform with new (SD-Wave class, Section 2.3on page 54), and to call WaveformLoad, DWGqueueWaveform and DWGrun. With these functions, the user hascomplete control of the memory usage, data transfer times between the PC and the module, and the possibility tocreate generation sequences and to control the generation start time precisely (Section 1.3 on page 10).

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DWG int int - DWG number where the waveform is queued.DWG n is associated with BUS OUT n

waveformData void* int* - Array with waveform points. Digital waveformsare defined by integers, whose bits correspondto the digital lines/channels in the BUS

waveformFile char* char* - File containing the waveform points

fileType int int - 0 for binary file, 1 for text file (one value per line)

waveformPoints int int - Number of points of the waveform

sampleRate double double - Sample rate of waveformData in samples/s

triggerMode int int - Trigger method to launch the waveform (Table 2on page 10)

startDelay int int - Defines the delay between the trigger and thewaveform launch in tens of ns

cycles int int - Number of times the waveform is repeated oncelaunched (negative means infinite)

prescaler int int - Prescaler value (1..65,535). The DWG clock isdivided by ”prescaler value”, reducing the wave-form sampling rate

errorIn - - - If it contains an error, the function will not be ex-ecuted and errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

availableRAM int int - Available onboard RAM in waveform points, ornegative number for errors (see error codes inTable 9 on page 58)

errorOut - - - See error codes in Table 9 on page 58

26 / 60 Rev. 1.4 (April 10, 2012)

Page 27: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

C Function

int SD Module DWGfromArray(int moduleID, int DWG, void* waveformData, int waveformPoints, double sampleRate,int triggerMode, int startDelay, int cycles, int prescaler);

int SD Module DWGfromFile(int moduleID, int DWG, char* waveformFile, int fileType, int waveformPoints,double sampleRate, int triggerMode, int startDelay, int cycles, int prescaler);

C++ Function

int SD DIO::DWG(int DWG, int* waveformData, int waveformPoints, double sampleRate,int triggerMode, int startDelay, int cycles, int prescaler);

int SD DIO::DWG(int DWG, char* waveformFile, int fileType, int waveformPoints, double sampleRate, int triggerMode,int startDelay, int cycles, int prescaler);

LabVIEW

SD Module DWGfromArray.vi SD Module DWGfromFile.vi

Rev. 1.4 (April 10, 2012) 27 / 60

Page 28: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.8 DWGqueueWaveform

This function queues the specified waveform in one of the Digital Waveform Generators (DWGs) of the module (Section 1.3on page 10). The waveform must be already loaded in the module onboard RAM (function WaveformLoad, Section 2.2.5on page 24).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DWG int int - DWG number where the waveform is queued. DWG nis associated with BUS OUT n

waveformNumber int int constant Waveform to be queued into the DWG. It must be al-ready loaded with WaveformLoad

triggerMode int int - Trigger method to launch the waveform (Table 2 onpage 10)

startDelay int int - Defines the delay between the trigger and the waveformlaunch in tens of ns

cycles int int - Number of times the waveform is repeated oncelaunched (negative means infinite)

prescaler int int - Prescaler value (1..65,535). The DWG clock is dividedby ”prescaler value”, reducing the waveform samplingrate

errorIn - - - If it contains an error, the function will not be executedand errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module DWGqueueWaveform(int moduleID, int DWG, int waveformNumber, int triggerMode, int startDelay,int cycles, int prescaler);

C++ Function

int SD DIO::DWGqueueWaveform(int DWG, int waveformNumber, int triggerMode, int startDelay, int cycles, int prescaler);

ProcessFlow

DWGqueueWaveformDWGWaveform numberTrigger modeStart delay

TypeValue

Cycles

LabVIEW

SD Module DWGqueueWaveform.vi

28 / 60 Rev. 1.4 (April 10, 2012)

Page 29: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.9 DWGflush

This function empties the queue of the selected Digital Waveform Generators (DWGs) (Section 1.3 on page 10). Wave-forms are not removed from the module onboard RAM.

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DWGmask int int - Mask to selects the DWGs to flush (LSB is DWG 0, bit 1 isDWG 1 and so forth)

DWG - - - selection list DWG to flush

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module DWGflush(int moduleID, int DWGmask);

C++ Function

int SD DIO::DWGflush(int DWGmask);

ProcessFlow

DWGflushDWG

LabVIEW

SD Module DWGflush.vi

Rev. 1.4 (April 10, 2012) 29 / 60

Page 30: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.10 DWGrun

This function starts or resumes the selected Digital Waveform Generators (DWGs) (Section 1.3 on page 10). The gen-eration will start when a trigger is received, provided that at least one waveform is queued in these DWGs (functionsDWGqueueWaveform, or DWG).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DWGmask int int - Mask to select the DWGs to be started (LSB is DWG 0, bit 1is DWG 1 and so forth)

DWG - - - selection list DWG to be started

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module DWGrun(int moduleID, int DWGmask);

C++ Function

int SD DIO::DWGrun(int DWGmask);

ProcessFlow

DWGrunDWG

LabVIEW

SD Module DWGrun.vi

30 / 60 Rev. 1.4 (April 10, 2012)

Page 31: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.11 DWGstop

This function pauses the selected Digital Waveform Generators (DWGs) (Section 1.3 on page 10), leaving the last wave-form point at the output, and ignoring all incoming triggers. The waveform generation can be resumed calling DWGrun.

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DWGmask int int - Mask to select the DWGs to be stopped (LSB is DWG 0, bit1 is DWG 1 and so forth)

DWG - - - selection list DWG to be stopped

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module DWGstop(int moduleID, int DWGmask);

C++ Function

int SD DIO::DWGstop(int DWGmask);

ProcessFlow

DWGstopDWG

LabVIEW

SD Module DWGstop.vi

Rev. 1.4 (April 10, 2012) 31 / 60

Page 32: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.12 DWGtrigger

This function triggers the selected Digital Waveform Generators (DWGs) (Section 1.3 on page 10). The waveform waitingin the first position of the queue is launched provided it is configured with VI/HVI Trigger.

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DWGmask int int - Mask to select the DWGs to be triggered (LSB is DWG 0, bit1 is DWG 1 and so forth)

DWG - - - selection list DWG to be triggered

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module DWGtrigger(int moduleID, int DWGmask);

C++ Function

int SD DIO::DWGtrigger(int DWGmask);

ProcessFlow

DWGtriggerDWG

LabVIEW

SD Module DWGtrigger.vi

32 / 60 Rev. 1.4 (April 10, 2012)

Page 33: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.13 DAQ

This function configures and starts the Data Acquisition (DAQ, Section 1.4 on page 13) in two possible reading modes:

• Blocking: Using the function DAQread (Section 2.2.14 on page 35) to read the digital words. DAQread is a blockingfunction that is released when the amount of digital words specified in DAQpoints is acquired (DAQeventDataReadyevent is signaled) or when timeout elapses. This mode is enabled when a callback function is not specified (null).

• Non-blocking: The user specifies a callback function which is called whenever the DAQeventDataReady event issignaled or when timeout elapses. In the latter condition, there may be digital words available, but less than theamount specified in DAQpoints.

NOTE:

LabVIEW: In LabVIEW, the callBack function method cannot be used, the only option is to use DAQread.

ADVANCED:

Programming with events: This function is equivalent to call DAQconfig, program a callback with EventAddCallbackfor the DAQeventDataReady event, call DAQflush and finally call DAQrun.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DAQ int int - DAQ to use

triggerMode int int - Trigger mode (Table 3 on page 13)

DAQpoints int int - Number of digital words to acquiredbefore DAQeventDataReady is gener-ated, i.e. DAQread is released or thecallback function is called

DAQpointsPerCycle int int - Number of digital words to acquire pertrigger

cycles int int - Number of acquisition cycles. Eachcycle requires a trigger specified bytriggerMode. A negative numbermeans continuous

prescaler int int - Prescaler value (1..65,535), 1 out of”prescaler value” digital words is ac-quired

callbackFunction callbackPtr callbackPtr - - User callback (Section 2.2.32 onpage 53)

callbackUserObject void* void* - - Optional parameter returned to theuser in the callback

timeout int int - Timeout in ms for the DAQevent-DataReady event. Negative meansforever

errorIn - - - If it contains an error, the function willnot be executed and errorIn will bepassed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

Rev. 1.4 (April 10, 2012) 33 / 60

Page 34: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

C Function

int SD Module DAQ(int moduleID, int DAQ, int triggerMode, int DAQpoints, int DAQpointsPerCycle, int cycles,int prescaler, callbackPtr callbackFunction, void* callbackUserObject, int timeout);

C++ Function

int SD DIO::DAQ(int DAQ, int triggerMode, int DAQpoints, int DAQpointsPerCycle, int cycles, int prescaler,callbackPtr callbackFunction, void* callbackUserObject, int timeout);

LabVIEW

SD Module DAQ.vi

34 / 60 Rev. 1.4 (April 10, 2012)

Page 35: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.14 DAQread

This function reads the digital words acquired with the selected DAQ (Section 1.4 on page 13). It can be used only whena callback function is not programmed. DAQread is a blocking function released when the configured amount of digitalwords is acquired, or when the timeout elapses. In the latter condition, there may be digital words available, but less thanthe configured amount.

ADVANCED:

LabVIEW multithreading: LabVIEW allows the user to create multiple threads very easily, e.g. by creating independentWhile Loop Structures. It may be useful to create a different thread that calls DAQread, obtaining the same behaviouras programming with a callback function.

ADVANCED:

Programming with events: This function is equivalent to EventWaitFor for a DAQeventDataReady event.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DAQ int int - DAQ to be read

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

DAQdata int* int* - Array with acquired digital words

DAQpoints int* int* - - Number of acquired digital words

status int int - ”1” if DAQpoints is equal to the amount of digital words con-figured with DAQ or DAQconfig, ”0” in case of timeout, ornegative numbers for errors (See error codes in Table 9 onpage 58)

errorOut - - - See error codes in Table 9 on page 58

C Function

int SD Module DAQread(int moduleID, int DAQ, int* DAQdata, int* DAQpoints);

C++ Function

int SD DIO::DAQread(int DAQ, int* DAQdata, int* DAQpoints);

LabVIEW

SD Module DAQread.vi

Rev. 1.4 (April 10, 2012) 35 / 60

Page 36: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.15 DAQconfig

This function configures the acquisition of digital words (Data Acquisition, Section 1.4 on page 13).

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DAQ int int - DAQ to configure

triggerMode int int - Trigger mode (Table 3 on page 13)

DAQpoints int int - Number of digital words to acquired before DAQevent-DataReady is generated, i.e. DAQread is released orthe callback function is called

DAQpointsPerCycle int int - Number of digital words to acquire per trigger

cycles int int - Number of acquisition cycles. Each cycle requires atrigger specified by triggerMode. A negative numbermeans continuous

prescaler int int - Prescaler value (1..65,535), 1 out of ”prescaler value”digital words is acquired

errorIn - - - If it contains an error, the function will not be executedand errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module DAQconfig(int moduleID, int DAQ, int triggerMode, int DAQpoints, int DAQpointsPerCycle, int cycles,int prescaler);

C++ Function

int SD DIO::DAQconfig(int DAQ, int triggerMode, int DAQpoints, int DAQpointsPerCycle, int cycles, int prescaler);

LabVIEW

SD Module DAQconfig.vi

36 / 60 Rev. 1.4 (April 10, 2012)

Page 37: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.16 DAQrun

This function starts or resumes acquisition on the selected DAQs (Section 1.4 on page 13). Acquisition will start when atrigger is received, see trigger modes in Table 3 on page 13.

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DAQmask int int - Mask to select which DAQs are started or resumed (LSB isDAQ 0, bit 1 is DAQ 1 and so forth). DAQ n is connected toBUS IN n

DAQ - - - selection list DAQ to be started or resumed. DAQ n is connected to BUSIN n

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module DAQrun(int moduleID, int DAQmask);

C++ Function

int SD DIO::DAQrun(int DAQmask);

ProcessFlow

DAQrunDAQ

LabVIEW

SD Module DAQrun.vi

Rev. 1.4 (April 10, 2012) 37 / 60

Page 38: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.17 DAQstop

This function pauses the digital words acquisition (Section 1.4 on page 13). Acquisition can be resumed using DAQrun(Section 2.2.16 on the preceding page).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DAQmask int int - Mask to select which DAQs are paused (LSB is DAQ 0, bit 1is DAQ 1 and so forth). DAQ n is connected to BUS IN n

DAQ - - - selection list DAQ to be paused. DAQ n is connected to BUS IN n

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module DAQstop(int moduleID, int DAQmask);

C++ Function

int SD DIO::DAQstop(int DAQmask);

ProcessFlow

DAQstopDAQ

LabVIEW

SD Module DAQstop.vi

38 / 60 Rev. 1.4 (April 10, 2012)

Page 39: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.18 DAQflush

This function flushes the acquisition buffers and resets the acquisition counter included in a Data Acquisition block (Sec-tion 1.4 on page 13).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DAQmask int int - Mask to select which DAQs are reset (LSB is DAQ 0, bit 1 isDAQ 1 and so forth). DAQ n is connected to BUS IN n

DAQ - - - selection list DAQ to be reset. DAQ n is connected to BUS IN n

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module DAQflush(int moduleID, int DAQmask);

C++ Function

int SD DIO::DAQflush(int DAQmask);

ProcessFlow

DAQflushDAQ

LabVIEW

SD Module DAQflush.vi

Rev. 1.4 (April 10, 2012) 39 / 60

Page 40: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.19 DAQtrigger

This function triggers the acquisition of digital words in the selected DAQs (Section 1.4 on page 13) provided that they areconfigured for VI/HVI Trigger (Table 3 on page 13).

Compatibility

Programming Libraries v0.9 or newerSignadyne ProcessFlow v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DAQmask int int - Mask to select which DAQs are triggered (LSB is DAQ 0, bit1 is DAQ 1 and so forth). DAQ n is connected to BUS IN n

DAQ - - - selection list DAQ to be triggered. DAQ n is connected to BUS IN n

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module DAQtrigger(int moduleID, int DAQmask);

C++ Function

int SD DIO::DAQtrigger(int DAQmask);

ProcessFlow

DAQtriggerDAQ

LabVIEW

SD Module DAQtrigger.vi

40 / 60 Rev. 1.4 (April 10, 2012)

Page 41: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.20 DAQcounterRead

This function reads the number of digital words acquired by the selected DAQ (Section 1.4 on page 13) since the last callto DAQflush or DAQ.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DAQ int int - DAQ whose counter is read

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

counter int int - Value of the DAQ counter or a negative number for errors(See error codes in Table 9 on page 58)

errorOut - - - See error codes in Table 9 on page 58

C Function

int SD Module DAQcounterRead(int moduleID, int DAQ);

C++ Function

int SD DIO::DAQcounterRead(int DAQ);

LabVIEW

SD Module DAQcounterRead.vi

Rev. 1.4 (April 10, 2012) 41 / 60

Page 42: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.21 DAQrelease

This function finishes the DAQ operation, and releases all the memory buffers associated with the DAQ (onboard and PCbuffers).

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

DAQ int int - DAQ to be closed

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut - - - See error codes in Table 9 on page 58

C Function

int SD Module DAQrelease(int moduleID, int DAQ);

C++ Function

int SD DIO::DAQrelease(int DAQ);

LabVIEW

SD Module DAQrelease.vi

42 / 60 Rev. 1.4 (April 10, 2012)

Page 43: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.22 MathAssign (D=S)

This function copies the value of the source parameter (S) into the destination variable (D).

Compatibility

Signadyne ProcessFlow v0.9 or newerSignadyne ProcessFlow

Execution Latency: 50 ns

Timing resolution: 1 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

destination - - - variable Destination local variable

source - - - constant[format] Constant in the specified format (Decimal, Binary, Hexadeci-mal, etc.)

- - - variable Source local variable

- - - port Input port (Section 1.2.2 on page 8)

ProcessFlow

MathAssign (D=S)DestinationSource

TypeValue

Rev. 1.4 (April 10, 2012) 43 / 60

Page 44: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.23 MathArithmetics (R=A[+-*/]B)

This function subtracts, adds, multiplies or divides the values of the operands A and B, writing the result in R.

Compatibility

Signadyne ProcessFlow v0.9 or newerSignadyne ProcessFlow

Execution Latency: 50 ns

Timing resolution: 1 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

Result - - - variable Destination local variable

A - - - constant[format] Constant in the specified format (Decimal, Binary, Hexadeci-mal, etc.)

- - - variable Local variable

- - - port Input port (Section 1.2.2 on page 8)

Operation - - - selection list Arithmetic operation (+, -, *, /)

B - - - constant[format] Constant in the specified format (Decimal, Binary, Hexadeci-mal, etc.)

- - - variable Local variable

- - - port Input port (Section 1.2.2 on page 8)

ProcessFlow

MathArithmetics (R=A[+-*/]B)ResultA

TypeValue

OperationB

TypeValue

44 / 60 Rev. 1.4 (April 10, 2012)

Page 45: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.24 MathMultAcc (R=A[+-]B[*/]C)

This function performs a Multiplication and Accumulation (MAC) operation, widely used in digital signal processing.

Compatibility

Signadyne ProcessFlow v0.9 or newerSignadyne ProcessFlow

Execution Latency: 50 ns

Timing resolution: 1 ns

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

Result - - - variable Destination local variable

A - - - constant[format] Constant in the specified format (Decimal, Binary, Hexadeci-mal, etc.)

- - - variable Local variable

- - - port Input port (Section 1.2.2 on page 8)

Operation - - - selection list Arithmetic operation for the Accumulation (+ or -)

B - - - constant[format] Constant in the specified format (Decimal, Binary, Hexadeci-mal, etc.)

- - - variable Local variable

- - - port Input port (Section 1.2.2 on page 8)

Operation - - - selection list Arithmetic operation for the Multiplication (* or /)

C - - - constant[format] Constant in the specified format (Decimal, Binary, Hexadeci-mal, etc.)

- - - variable Local variable

- - - port Input port (Section 1.2.2 on page 8)

ProcessFlow

MathMultAcc (R=A[+-]B[*/]C)ResultA

TypeValue

OperationB

TypeValue

OperationC

TypeValue

Rev. 1.4 (April 10, 2012) 45 / 60

Page 46: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.25 Open

This function initializes a hardware module, therefore it must be called before using any other module-related function. Amodule can be opened using the serial number or the chassis and slot number. The first option ensures the same moduleis always opened regardless its chassis or slot location.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

partNumber char* char* - Complete module part number (e.g. ”SD-PXE-DIO-H0003-1G”)

serialNumber char* char* - Module Serial Number (e.g. ”ND23G86A”). This infor-mation can be found on the product, in Signadyne Man-ager (SDM), or in nearly any Signadyne software

chassis int int - Chassis number where the device is located. This infor-mation can be found in Signadyne Manager (SDM)

slot int int - Slot number where the device is plugged in

errorIn - - - If it contains an error, the function will not be executedand errorIn will be passed to errorOut

Outputs

moduleID int int - Module identifier or negative numbers for errors (see er-ror codes in Table 9 on page 58)

errorOut - - - See error codes in Table 9 on page 58

C Function

int SD Module OpenWithSerialNumber(char* partNumber, char* serialNumber);int SD Module OpenWithSlot(char* partNumber, int chassis, int slot);

C++ Function

int SD DIO::Open(char* partNumber, char* serialNumber);int SD DIO::Open(char* partNumber, int chassis, int slot);

LabVIEW

SD Module OpenWithSerialNumber.vi SD Module OpenWithSlot.vi

46 / 60 Rev. 1.4 (April 10, 2012)

Page 47: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.26 Close

This function releases all the resources allocated for the module instance. It must be always called before exiting theapplication.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

errorIn - - - If it contains an error, the function will not be executed and er-rorIn will be passed to errorOut

Outputs

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module Close(int moduleID);

C++ Function

int SD DIO::Close();

LabVIEW

SD Module Close.vi

Rev. 1.4 (April 10, 2012) 47 / 60

Page 48: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.27 EventAddCallback

This function programs an event to execute a user callback function (Section 1.5.1 on page 16). This callback function iscalled whenever the event is signaled or the callbackTimeout is reached. If the callback function is programmed for anevent, the EventWaitFor function cannot be used, both methods cannot coexist for the same event.

NOTE:

LabVIEW: In LabVIEW, the callback function method cannot be used, the only option is to use EventWaitFor.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - - Module identifier (returned by Open)

eventNumber int int - - Identifies the event (see Table 4 onpage 17)

callbackFunction callbackPtr callbackPtr - - Specifies the user callback function

callbackUserObject void* void* - - Optional parameter that will be re-turned to the user in the callback

Outputs

errorOut int int - - See error codes in Table 9 on page 58

C Function

int SD Module EventAddCallback(int moduleID, int eventNumber, callbackPtr callbackFunction, void* callbackUserOb-ject);

C++ Function

int SD DIO::EventAddCallback(int eventNumber, callbackPtr callbackFunction, void* callbackUserObject);

48 / 60 Rev. 1.4 (April 10, 2012)

Page 49: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.28 EventRemoveCallback

This function detaches the callback function previously attached to an event using EventAddCallback (Section 2.2.27 onthe preceding page).

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - - Module identifier (returned by Open)

eventNumber int int - - Identifies the event (see Table 4 onpage 17)

callbackFunction callbackPtr callbackPtr - - Pointer to the user callback function to bedetached from the event

Outputs

errorOut int int - - See error codes in Table 9 on page 58

C Function

int SD Module EventRemoveCallback(int moduleID, int eventNumber, callbackPtr callbackFunction);

C++ Function

int SD DIO::EventRemoveCallback(int eventNumber, callbackPtr callbackFunction);

Rev. 1.4 (April 10, 2012) 49 / 60

Page 50: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.29 EventWaitFor

This is a blocking function that waits until the specified event is signaled, or until the timeout specified with EventSetTimeout(Section 2.2.31 on page 52) elapses (see Events, Section 1.5 on page 16).

ADVANCED:

LabVIEW multithreading: LabVIEW allows the user to create multiple threads very easily, e.g. by creating indepen-dent While Loop Structures. It may be useful to create a different thread that calls EventWaitFor, obtaining the samebehaviour as programming with a callback function.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

eventNumber int int - Identifies the event (see Table 4 on page 17)

errorIn - - - If it contains an error, the function will not be exe-cuted and errorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

buffer0 void* void* event-dependent - ∗1

buffer0Points int* int* - - Number of data points contained in buffer0

buffer1 void* void* event-dependent - ∗1

buffer1Points int* int* - - Number of data points contained in buffer1

status int int - ”1” if the event was signaled, ”0” if there was atimeout, or negative numbers for errors (See errorcodes in Table 9 on page 58)

errorOut - - - See error codes in Table 9 on page 58

∗1 These parameters are event-specific (see Section 1.5 on page 16)

C Function

int SD Module EventWaitFor(int moduleID, int eventNumber, void* buffer0, int* buffer0Points, void* buffer1, int* buffer1Points);

C++ Function

int SD DIO::EventWaitFor(int eventNumber, void* buffer0, int* buffer0Points, void* buffer1, int* buffer1Points);

LabVIEW

SD Module EventWaitFor.vi

50 / 60 Rev. 1.4 (April 10, 2012)

Page 51: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.30 EventAcknowledge

This function sends an event acknowledge to the module which generated the event (Section 1.5 on page 16).

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

eventNumber int int - Identifies the event (see Table 4 on page 17)

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module EventAcknowledge(int moduleID, int eventNumber);

C++ Function

int SD DIO::EventAcknowledge(int eventNumber);

LabVIEW

SD Module EventAcknowledge.vi

Rev. 1.4 (April 10, 2012) 51 / 60

Page 52: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.31 EventSetTimeout

This function sets the timeout for the specified event. Both the release of the function EventWaitFor and the call to the usercallback function, are performed when the corresponding event is signaled or when the timeout elapses.

NOTE:

Default timeout: The default timeout for all the events is -1 (∞)

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int - - Module identifier (returned by Open)

eventNumber int int - Identifies the event (see Table 4 on page 17)

timeout int int - Timeout in ms (-1 for ∞)

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

moduleIDOut - - - A copy of moduleID

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Module EventSetTimeout(int moduleID, int eventNumber);

C++ Function

int SD DIO::EventSetTimeout(int eventNumber);

LabVIEW

SD Module EventSetTimeout.vi

52 / 60 Rev. 1.4 (April 10, 2012)

Page 53: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.2.32 CallbackFunction

This is not a function of Signadyne Programming Libraries, it is a user function that can be called by the system when anevent is signaled or when the timeout specified with EventSetTimeout elapses (see Events, Section 1.5 on page 16). Thisfunction must be attached to an event using EventAddCallback. A callback function can be shared among multiple events.

TIP:

Type definitions: callbackPtr is a pointer that identifies the callback function with the following type definitions:

C: typedef void (*callbackPtr)(int, int, void*, int, void*, int, void*, int);

C++: typedef void (*callbackPtr)(SD Device*, int, void*, int, void*, int, void*, int);

ADVANCED:

C++ Static: In an object-oriented language like C++, a callback function cannot be a member of a class unless it isdeclared as static.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

deviceID int - - - Identifier of the device that generated theevent (module, HVI, etc.). The user may callgetDeviceType to know which type of deviceit is

deviceObject - SD Device* - - Device that generated the event (module,HVI, etc.). The user may call getDeviceTypeto know which type of device it is and to per-form the corresponding cast

eventNumber int int - - Identifies the event (Table 4 on page 17).For other devices, check their correspond-ing datasheets

buffer0 void* void* - - ∗1

buffer0Points int int - - Number of data points contained in buffer0

buffer1 void* void* - - ∗1

buffer1Points int int - - Number of data points contained in buffer1

callBackUserObject void* void* - - Optional parameter that was passed by theuser in the function eventAddCallback

status int int - - ”1” if the event was signaled, ”0” if there wasa timeout, or negative numbers for errors(see error codes in Table 9 on page 58)

∗1 These parameters are event-specific (see Section 1.5 on page 16)

C Function

void CallbackFunction(int deviceID, int eventNumber, void* buffer0, int buffer0Points, void* buffer1, int buffer1Points,void *callBackUserObject, int status);

C++ Function

void CallbackFunction(SD Device* deviceObject, int eventNumber, void* buffer0, int buffer0Points, void* buffer1,int buffer1Points, void *callBackUserObject, int status);

Rev. 1.4 (April 10, 2012) 53 / 60

Page 54: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.3 SD-Wave Class Functions

2.3.1 New

This function creates a waveform object from data points contained in an array in memory or in a file.

NOTE:

Sample Rate: This function accepts a waveform with any sample rate, and it translates it automatically to the samplerate of the specified hardware module.

ADVANCED:

Memory usage: Waveforms created with New are stored in the PC RAM, not in the module onboard RAM. Therefore,the limitation in the number of waveforms and their sizes is given by the amount of PC RAM.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

moduleID int int - Hardware module identifier (returned by Open).It specifies the waveform destination module

waveformData void* int* - Array with waveform points. Digital waveformsare defined by integers, whose bits correspondto the digital lines/channels in the BUS

waveformFile char* char* - File containing the waveform points

fileType int int - 0 for binary file, 1 for text file (one value per line)

waveformPoints int int - Number of points of the waveform

sampleRate double double - Sample rate of waveformData in samples/s

errorIn - - - If it contains an error, the function will not be ex-ecuted and errorIn will be passed to errorOut

Outputs

waveformID int - - Waveform identifier, or a negative number for er-rors (see error codes in Table 9 on page 58)

errorOut - int - See error codes in Table 9 on page 58

C Function

int SD Wave NewFromArray(int moduleID, void* waveformData, int waveformPoints, double sampleRate);int SD Wave NewFromFile(int moduleID, char* waveformFile, int fileType, int waveformPoints, double sampleRate);

C++ Function

int SD Wave::New(int moduleID, int* waveformData, int waveformPoints, double sampleRate);int SD Wave::New(int moduleID, char* waveformFile, int fileType, int waveformPoints, double sampleRate);

LabVIEW

SD Wave NewFromArray.vi SD Wave NewFromFile.vi

54 / 60 Rev. 1.4 (April 10, 2012)

Page 55: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.3.2 Delete

This function removes a waveform created with the New function.

ADVANCED:

Onboard waveforms: Waveforms are removed from the PC RAM only, not from the module onboard RAM.

Compatibility

Programming Libraries v0.9 or newer

Parameters

NameType

DescriptionC C++ LabVIEW ProcessFlow

Inputs

waveformID int - - Waveform identifier (returned by New)

errorIn - - - If it contains an error, the function will not be executed anderrorIn will be passed to errorOut

Outputs

errorOut int int - See error codes in Table 9 on page 58

C Function

int SD Wave Delete(int waveformID);

C++ Function

int SD Wave::Delete()

LabVIEW

SD Wave Delete.vi

Rev. 1.4 (April 10, 2012) 55 / 60

Page 56: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.4 DAQ Events

2.4.1 DAQeventRun

This event is signaled when the Data Acquisition Block n (Section 1.4 on page 13) has started or resumed acquisition.

eventNumber

1024+(n*10) where n is the DAQ number

Parameters

GenericName

Event-specificName

TypeDescriptionC C++ LabVIEW

buffer0 - void* void* Not used in this event

buffer1 - void* void* Not used in this event

Table 5: EventWaitFor and Callback function parameters (Section 2.2.29 on page 50, Section 2.2.32 on page 53) for aDAQeventRun event

2.4.2 DAQeventStop

This event is signaled when the Data Acquisition Block n (Section 1.4 on page 13) has been paused.

eventNumber

1024+(n*10)+1 where n is the DAQ number

Parameters

GenericName

Event-specificName

TypeDescriptionC C++ LabVIEW

buffer0 - void* void* Not used in this event

buffer1 - void* void* Not used in this event

Table 6: EventWaitFor and Callback function parameters (Section 2.2.29 on page 50, Section 2.2.32 on page 53) for aDAQeventStop event

2.4.3 DAQeventTrigger

This event is signaled when the Data Acquisition Block n (Section 1.4 on page 13) starts digital words acquisition as aresult of a trigger.

eventNumber

1024+(n*10)+2 where n is the DAQ number

Parameters

GenericName

Event-specificName

TypeDescriptionC C++ LabVIEW

buffer0 - void* void* Not used in this event

buffer1 - void* void* Not used in this event

Table 7: EventWaitFor and Callback function parameters (Section 2.2.29 on page 50, Section 2.2.32 on page 53) for aDAQeventTrigger event

56 / 60 Rev. 1.4 (April 10, 2012)

Page 57: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.4.4 DAQeventDataReady

This event is signaled when the Data Acquisition Block n (Section 1.4 on page 13) has a new digital words buffer available.

eventNumber

1024+(n*10)+3 where n is the DAQ number

Parameters

GenericName

Event-specificName

TypeDescriptionC C++ LabVIEW

buffer0 DAQdata int* int* Array that contains the captured digital words

buffer1 - void* void* Not used in this event

Table 8: EventWaitFor and Callback function parameters (Section 2.2.29 on page 50, Section 2.2.32 on page 53) for aDAQeventDataReady event

Rev. 1.4 (April 10, 2012) 57 / 60

Page 58: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

2.5 Error Codes

error errorDescription

-1 Wrong module slot

-2 Wrong module chassis

-2 Wrong serial number

-3 Wrong devicesID

-4 Wrong channel

-5 Wrong clock configuration

others No error

Table 9: Software error codes

58 / 60 Rev. 1.4 (April 10, 2012)

Page 59: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

References

[1] Signadyne VirtualKnob, Software Front Panels. Product Website.

[2] Signadyne Programming Libraries for Virtual Instrumentation. Product Website.

[3] Signadyne ProcessFlow, Hard Virtual Instrument (HVI) Programming Environment. Product Website.

[4] SD-PXE-DIO-H0001, 32 Channels, 800 Mbps, Digital I/O PXI Express Module. Product Website.

[5] SD-PXE-DIO-H0002, 64 Channels, 800 Mbps, Digital I/O PXI Express Module. Product Website.

[6] SD-PXE-DIO-H0004, 32 Channels, 1 Gbps, Differential Digital I/O PXIe Module. Product Website.

Rev. 1.4 (April 10, 2012) 59 / 60

Page 60: SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital ... · SD-PXE-DIO-H0003 16 Channels, 1 Gbps, Differential Digital I/O PXI Express Module Features •16 LVDS digital I/O

SD-PXE-DIO-H0003

SD-PXE-DIO-H000316 Channels, 1 Gbps, Differential Digital I/O PXI Express Module

Rev. 1.4 (April 10, 2012)

Signadyne and its subsidiaries reserve the right to makecorrections, modifications, enhancements, improvements,and other changes to its products and services at any time.

Information delivered by Signadyne is believed to be ac-curate and reliable. However, no responsibility is assumedby Signadyne for its use, nor for any infringements of patentsor other rights of third parties that may result from its use.

No license is granted by implication or otherwise underany patent or patent rights of Signadyne.

Trademarks and registered trademarks are the propertyof their respective owners.

c©2012 Signadyne. All rights reserved.

www.signadyne.com

60 / 60 Rev. 1.4 (April 10, 2012)