Jump to content

FCINTF Field Calibrator Interface


Recommended Posts

Hi,

I need to communicate with a Druck DPI615 field pressure calibrator, using labview 7.1

Druck offers drivers in the FCINTF format at

http://www.ge-intecal.com/support.htm

and ships as a DLL.

The specification of the FCINTF protocol are here:

http://www.isa.org/PrinterTemplate.cfm?Tem...8007&FuseFlag=1

I'm not confident with COM objects; I've tried the following:

1) using a "Call Library function node", I've tried to connect to the functions contained in the library, but the functions I've found don't seem to be useful

2) using an ActiveX container on the front panel and linking it to the DLL: no methods or properties were available.

Can someone have a very fast view at the pdf and/or the dll and tell me some directions to handle this poblem?

Thank you

Fabio

PS: find attached the DLL and the FCINTF Specification pdf file

Download File:post-3137-1131190731.zip

Link to comment

Some additions, hoping this will help others helping me

Labview show only the following functions inside the DLL driver:

DllCanUnloadNow

DllGetClassObject

DllRegisterServer

DllUnregisterServer

Using a third party tool (LibDump) I've extrapolated the atached file which contains the function prototypes contained in the DLL. This generated file is similar to the already posted .IDL file.

Take as example the DriverProperties function:

HRESULT _stdcall DriverProperties([out] tagFCISTATUS* pStatus);

it seems that this function is inside the DL, but the Call Library Function Dialog doesn't show this function in the scroll down menu.

Anyway, if I write the name "DriverProperties" in the "Function Name" field, LabView automatically generates the correct function prototype as follows:

long DriverProperties(VARIANT *pStatus);

meaning that LabView is somehow able to identify the function inside the DLL.

BUT, the "Run Arrow" remains broken with the Function Not Found error.

HEEEELLPPPPP!

Fabio

Hi,

I need to communicate with a Druck DPI615 field pressure calibrator, using labview 7.1

Druck offers drivers in the FCINTF format at

http://www.ge-intecal.com/support.htm

and ships as a DLL.

The specification of the FCINTF protocol are here:

http://www.isa.org/PrinterTemplate.cfm?Tem...8007&FuseFlag=1

I'm not confident with COM objects; I've tried the following:

1) using a "Call Library function node", I've tried to connect to the functions contained in the library, but the functions I've found don't seem to be useful

2) using an ActiveX container on the front panel and linking it to the DLL: no methods or properties were available.

Can someone have a very fast view at the pdf and/or the dll and tell me some directions to handle this poblem?

Thank you

Fabio

PS: find attached the DLL and the FCINTF Specification pdf file

Download File:post-3137-1131190731.zip

OOOPS, The Attachment!!

Some additions, hoping this will help others helping me

Labview show only the following functions inside the DLL driver:

DllCanUnloadNow

DllGetClassObject

DllRegisterServer

DllUnregisterServer

Using a third party tool (LibDump) I've extrapolated the atached file which contains the function prototypes contained in the DLL. This generated file is similar to the already posted .IDL file.

Take as example the DriverProperties function:

HRESULT _stdcall DriverProperties([out] tagFCISTATUS* pStatus);

it seems that this function is inside the DL, but the Call Library Function Dialog doesn't show this function in the scroll down menu.

Anyway, if I write the name "DriverProperties" in the "Function Name" field, LabView automatically generates the correct function prototype as follows:

long DriverProperties(VARIANT *pStatus);

meaning that LabView is somehow able to identify the function inside the DLL.

BUT, the "Run Arrow" remains broken with the Function Not Found error.

HEEEELLPPPPP!

Fabio

Download File:post-3137-1131271418.txt

Link to comment

Further Additions:

I've found the following phrase on internet:

"Furthermore INPROC COM objects are not listed among the exports, as pointers to

their exported functions are returned by the factory objects."

that probably is why I can't see the functions in labview.

Also in "Dependancy Walker" software I can't see the functions that I need.

Now the question is: How can I handle Inproc COM Objects with Labview?

Is it possible to use a C++ compiler to connect to this DLL and to be recompiled

as Labview friendly DLL? Can someone give me directions?

Thanks

---

Fabio

post-3137-1131286775.png?width=400

Link to comment
Further Additions:

I've found the following phrase on internet:

"Furthermore INPROC COM objects are not listed among the exports, as pointers to

their exported functions are returned by the factory objects."

that probably is why I can't see the functions in labview.

Also in "Dependancy Walker" software I can't see the functions that I need.

Now the question is: How can I handle Inproc COM Objects with Labview?

Is it possible to use a C++ compiler to connect to this DLL and to be recompiled

as Labview friendly DLL? Can someone give me directions?

This DLL is a COM DLL and therefore does not export functions to call directly. As such the Call Library Node won't work. If the DLL contains a so called type library or at least is installed with a type library you have a chance to use the Active X interface in LabVIEW.

However Active X comes in two flavours. One are Active X Controls which provide some form of user interface and can be inserted in the Active X Container in LabVIEW. The other flavour are Automation Objects without any UI component and they can not be put in an Active X container. Instead you place an Active X refnum on the front panel and then browse from there to the actual object you want to use. Then you wire that refnum to the Open Automation Refnum function which calls the OLE function to instantiate the desired object through the DLL proviced object factory in DllGetClassObject().

Once Open Automation Refnum returns successfully you should be able to wire it to the Property Node or Method Node to select the approriate property to access or method to execute. Don't forget to close the refnum at the end with Close Refnum to avoid memory leaks.

Rolf Kalbermatter

Link to comment

I've done it yesterday evening, I had no time to post the successful result :(

Anyway..... Yes, it works !! :-)

Thankyou very much for your help!

An additional question is: some methods of this COM DLL are Greyed Out (disabled)

Does it mean that it is not possible to use these methods?

I'm asking this because the most useful methods appear disabled and so all my efforts

in having this COM working are vain.

Bye Bye

This DLL is a COM DLL and therefore does not export functions to call directly. As such the Call Library Node won't work. If the DLL contains a so called type library or at least is installed with a type library you have a chance to use the Active X interface in LabVIEW.

However Active X comes in two flavours. One are Active X Controls which provide some form of user interface and can be inserted in the Active X Container in LabVIEW. The other flavour are Automation Objects without any UI component and they can not be put in an Active X container. Instead you place an Active X refnum on the front panel and then browse from there to the actual object you want to use. Then you wire that refnum to the Open Automation Refnum function which calls the OLE function to instantiate the desired object through the DLL proviced object factory in DllGetClassObject().

Once Open Automation Refnum returns successfully you should be able to wire it to the Property Node or Method Node to select the approriate property to access or method to execute. Don't forget to close the refnum at the end with Close Refnum to avoid memory leaks.

Rolf Kalbermatter

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.