TANGO collaboration meeting F.Epaud – ESRF/CS/SEG Date:
Daq server (version 1) : NIDaq Very trivial TANGO server: Features: Support of NI cards: Analog & Digital IO (No CT) Autoconfiguration according to the card type Single channel, single point Dynamic generation of Scalar attributs for each channel Problems NI cards oriented No classes design No multiples channels, no several samples, no triggers Only -10/+10 Voltage measurement
Daq server (version 2): AIAODIOCTAIAODIOCTAIAODIOCT NIDAQmx TANGO C++ classes TACOEPICS Futur TANGO C++ prog (Labs) HW adaptor ADLink driver(s)WAGO/Modbus HW adaptor AIAODIOCT ICV150/712/…. HW adaptor
Daq Channel C++ Classes. AnalogChannel: -MeasurementType - Units -MinimalValue -MaximalValue Daq Channel: -PhysicalChannelName - type - Direction -NumberOfSamples -SamplingFrequency -FillingMode -StartTriggerSource -- StopTriggerSource -NbOfSamplesPostTrigger -Status - Error DigitalChannel: AnalogInputChannel -ShuntResistor -ThermoCoupleType AnalogOutputChannel DigitalInputChannel DigitalOutputChannel
Physical Device C++ Classe. physicalDevice: -Phys_device_name - type -- nbofAI, nbOfIO, nbOfDI, NbOfDO -AnalogInputChannel --AnalogOutputChannel -DigitalIputChannel - DigitalOutputChannel AnalogInputChannel AnalogOutputChannel DigitalInputChannel DigitalOutputChannel AnalogInputChannel AnalogOutputChannel DigitalInputChannel DigitalOutputChannel Linked channels: Channels “of the same type” can be linked together and uses the setting of the master channel.
TANGO device server TANGO device is a list of physical devices defined by a properties For each devices, the server asks the capabilities of the physical device to the Hardware layer then instantiates all the corresponding classes. Get the channels properties from the SDB (Static Data Base). Properties should have the form ClassType - /PropertyName Where XX is the logical device [1-n] and YYY the logical channels [0-m] Example: AnalogInput02-004/Name, AnalogInput02-004/MinValue Linked channel are recognized with the string “link to # in the name property. Ex: AnalogInput02-004/Name = “ai7 linked to #6” Need a configuration tool Creates an attribut per channel. Attribut type depends of the number of channels and the number of samples: 1 channel, 1 sample -> Scalar type N channels or N samples -> Spectrum type N channels and N samples -> Image type (X and Y assignement depend of the fillingMode property). Read_ClassType_attr(attribut_name) redirected to the hardware layer. Finally requests the hardware layer to initialize according to the settings
Hardware adaptors: Simulation: Written at the same time as the TANGO server Only Analog Input and Output implemented. Only single and finite acquisition implemented (not continious) Multi channels implemented. NIDAQmx: The first hardware to connect ADLink Wago ICVxxx
NIDAQmx Handles all the NI data acquisition cards Handles: Analog IO, Digital IO, counter/timer Hardware: PCI, PXI, USB, cRIO, … Operating systems: Windows, Mac, Linux Task oriented: - Task creation - Specifications of channels and channels parameters - Channels should be of the same types
Daq server (version 1): NIDaq AIAODIOCTAIAODIOCTAIAODIOCT NIDAQmx driver (Windows, Linux) LABViewLABWindow/CVI NIDaqmx TANGO ds NIDaqmx TANGO ds NIDaqmx TANGO ds CTRM clients - A card can handle different types of IO - The NIDAQmx driver handles all the NI data acquisition cards
Needs Platform independent: PCI/PXI, Linux/Windows Plug and Play system Automatic configuration according to detected cards: Automatic generation of attributs: AnalogInputs - AnalogOutputs - DigitalInputs - DigitalOutputs - Combination of channels Benefit of harware capabilities: External clock External trigger Internal buffering Continuous acquisition
Implementation What is the device ? A set of cards (current proposal) A cards A group of functionnalities: AnalogInputs, AnalogOutputs, …. SOLEIL ASL (Adlink Soleil Librarie) A set of classes (AnalogInputSingle, AnalogInputContinuous, etc…) Can be combined to make a ‘dedicated’ server (multiple heritances) Problem: Adlink hardware dependant Solution: They are interested to make them hardware independent