DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Online data exchange between Diadem (DAC) and Labview

Does anybody know a way for a online Data exchange between Diadem and Labview via network ?

Details: One computer is controling a teststand with labview. A other computer in network should recive Data (low bandwith) from it an visualisize data online with Diadem VISUAL. The Diadem-computer should also send parameters to the Labview computer.  Is there any Interface for such a data exchage?
Can Labview build an OPC-server, so that Diadem can use its OPC-client?

Martin Bohm
bohm@a3m.com
0 Kudos
Message 1 of 10
(4,828 Views)
In my eyes, the most convenient way to do this is using the AcriveX server functionality of LabVIEW.
I lately wrote an example that is showing how it works. Here, the data is exchanged between a LabVIEW VI and a DIAdem DAC scheme making use of the script DAC driver. This Driver uses a VBS to access Control Values of the LabVIEW VI.
You dont need to use the DAC module to do the communication though - it works as well with a normal VBS.

Unpack the attatched ZIP to one folder, it is containing 3 files.
Open DIAdem and load the DAC scheme. In order to make this program work on your PC you have to do some minor modifications:
Inside the Script-In1 Block, change the Parameter1 to the corresponding path of the LabVIEW vi you unpacked and choose the LV.vbs as the script that is going to be called by the block.
Open LabVIEW and load the DACSteuerung.vi. You need the LabVIEW DIAdem connectivity toolkit to be installed. Start the VI. It will first start the DIAdem DAC scheme and then transmit the value of the loop counter as well as the stop button to DIAdem. While the loop counter is displayed, the stop button is used to stop the DAC scheme as the vi is stopped.

This is just a quick proove of concept - Have a look at the LabVIEW help to see which ActiveX methods and properties are supported by the server. You will see, it works much like VI server programming.
Ingo Schumacher
Systems Engineering Manager CEERNational Instruments Germany
0 Kudos
Message 2 of 10
(4,809 Views)
Thanks, I think, your example is exactly what I'm was looking for. But the VI requires LabView express 7.1. Is possible to downgrade the VI to LabView express 7.0 ?

Martin Bohm

0 Kudos
Message 3 of 10
(4,789 Views)
The VI is only containing vi.lib functions and, unfortunately, wont let me save it for LabVIEW 7.0.
Instead, i added a screenshot of the VI. You can reprogram it in a couple of minutes. you'll see - it does not contain a lot of functions.

Most of them are part of the LabVIEW DIadem connectivity toolkit: Getting a reference to DIAdem, checking the DAC scheme (make sure its allready loaded!) and starting it.

All it transferes to DAC is the loop counter and the stop button state. In order to make your VI work together with the example script, you will have to use the same control names. (Counter, Stopp).
Ingo Schumacher
Systems Engineering Manager CEERNational Instruments Germany
0 Kudos
Message 4 of 10
(4,786 Views)
Thank's, I could rebuild the VI. It works, and the problem is solved.
0 Kudos
Message 5 of 10
(4,780 Views)
Hi, hab's auch so probiert, funktioniert besstens. ist es auch möglich aus diesem vi ein exe file zu erzeugen, das dann auch noch funktioniert? hat bei mir leider nicht geklappt. was müsst ich dafür ändern, damit das funktioniert? vielen dank für die Hilfe.

0 Kudos
Message 6 of 10
(4,770 Views)
Doch, das geht auch mit einer EXE. Allerdings muss man da ein paar Sachen beachten.
  1. Beim Erstellen der EXE muss der ActiveX Server aktiviert werden. Über diesen werden nämlich die LabVIEW funktionen exportiert. Der Application Builder erzeugt dann ausser der EXE auch noch eine TLB Datei.
  2. Auf dem Zielsystem muss die EXE einmal von Hand gestartet werden - damit wird der Server angemeldet.
  3. Der Pfad, mit welchem man das VI referenziert, ändert sich. Aus Sicht des VBS liegt das VI nun in der EXE. Der Pfad muss dann also so aussehen: C:\ ... \ Name_der_EXE.exe\Name_des_VI.vi.
Wenn Sie diese Schritte beachten, sollte das eigentlich auch alles mit einer LabVIEW exe funktionieren. Eine weitere Voraussetzung ist natürlich, das die LabVIEW runtime engine auf dem Zielrechner installiert ist.
Ingo Schumacher
Systems Engineering Manager CEERNational Instruments Germany
0 Kudos
Message 7 of 10
(4,752 Views)
Ok, Dataexchange with ActiveX contols is very easy, if client and server running on same machine. But I'm looking for a network solution. In labview forum I found some hints (message ID 130150 and 122566).  Using DCOM seems to be difficult, if not using VI's on both sites of the connection.

Labview contains examples "TCP communicator - active.vi" and "TCP communicator - passive.vi" .  I could make a connection beetwen "TCP communicator - active.vi" and Diadem DAC "TCP/IP Server". Data will transmitted, but the Dataformat of DIAdem TCP/IP Server is unknown for me.

Is there a VI for "translating" this data into readable values?
Is there a documentation of the dataformat?
Is there a other way for online* Data-exchange beetwen Diadem(DAC) and Labview in network?

*) online means the time, when a DAC-schema is running.


0 Kudos
Message 8 of 10
(4,746 Views)
Unfortunately there is not such a VI. And the data format the packet processing block TCP/IP server uses is not documented. The server / client blocks are only designed to be used between DIAdem DAC schemes running on different computers.
I agree that the DCOM configuration is a pain. Maybe it is easiest to use two LabVIEW VIs to do the data exchange across the network and ActiveX to communicate between DIAdem and the local LabVIEW VI or EXE, respectively.
Ingo Schumacher
Systems Engineering Manager CEERNational Instruments Germany
Message 9 of 10
(4,739 Views)
Thanks, that's what I've expected.
0 Kudos
Message 10 of 10
(4,732 Views)