Df Pages Act As Opc Client?


Recommended Posts

Hello again message board!

 

Long time no visit!

 

Just curious, as I am further venturing new landmarks in my SCADA path, if DAQ Factory pages can act as an OPC client?

 

I have seen this in other HMIs and I am just wondering if DF has this capability...

 

Since I have moved on from my last place of employment, I can't "play" around in DF anymore without my key to see if this works or test it out!

 

Also, on a side topic, would there be a way to use indirect addressing to a channel within DF?

 

What I am using now is an item called "Tag Groups" in GE's iFIX software...

 

http://support.ge-ip.com/support/index?page=kbchannel&id=S:KB12688&actp=search

 

Pretty much I can make one screen pointing to "aliased" channels and "load a tag group in the screen" to point to the specific channel(s) on the fly...

 

It is rather nice using these for "templateized screens"...

 

I read your post here  --

 

http://www.azeotech.com/board/index.php?/topic/5249-some-basic-pointers/

 

-- and it seems that is probably what I am asking about...

 

Thanks again for indefinite help and guru advice!

 

Brandon

 

Link to comment
Share on other sites

First, you can always download a 25 day trial!  Also, you can always use Express even past 25 days.  Everything here will work in Express (subject to its limits, pages, # of channels, etc..)

 

Second, yes, DAQFactory is an OPC client and can read from pretty much any OPC DA server.

 

Finally, no, you can't address channels as pointers, however, you can get around it somewhat using a evalute() or perhaps execute(), or better yet use classes that store string references to channels.  For example:

 

class myClass

   local string pressureChannelName

 

   function getPressure()

      return evalute(pressureChannelName + "[0]")

   endfunction

endclass

 

Then you can instantiate this a few times:

 

global vessel1 = new(myClass)

vessel1.pressureChannelname = "pressureVessel1"

global vessel2 = new(myClass)

vessel2.pressureChannelName = "otherPressureVessel"

 

global currentVessel

 

Then, simply set currentVessel to the one you want to view, and have all the screen components access that object.  So, a variable value display of pressure might have as an expression:

 

currentVessel.getPressure()

 

You can then switch between them by doing something like:

 

currentVessel = vessel2

 

or

 

currentVessel = vessel1

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.