Citect Version V8.1 - NEW OPC device added and slow performance. - Now Resolved

i have Citect Version V8.1 which has been communicating with a Bailey INFI 90 DCS via serial comms since 1995 without issue.

we recently upgrade the serial comms on the DCS to ethernet with a Rovisys OPC90 interface. all is working well except 1 faceplate which has many variables.

this faceplate takes approx 6 seconds to populate all the variables. i have approached Rovisys support and they seem to think its a citect issue.

OPC90 server looks to be communicating well to the Bailey DCS.  citect as the OPC Client should read these variables in much faster than the serial link. the belwo is what Rovisys support has advised.

If Citect supports cached displays, verify the display is setup as a cached display. My suspicion is the 6 second delay isn’t related with getting values but rather with Citect setting up the OPC tags with OPC90 each time the display is called up. OPC90 is collecting the exception reported values for all the blocks in its database, regardless if those values are on display in Citect or not. If Citect supports definition of OPC tag group update time, verify the group update time for this display is not larger than 1000 ms.

are there any parameters i need to add to my .ini file to improve performance? 

i see in the I/O device for Rovisys.OPC90Server that there is a field for Cache and update time, do i need to add some parameters to this ?

Parents
  • I don't think that cache setting will help much since Citect is not communicating directly with the DCS.

    With OPC, Citect subscribes to all tags when it connects to the server, but the subscriptions are inactive. As you go from page to page, Citect activates all the tags it needs for that page (and deactivates the tags it no longer needs). Some OPC servers are not designed to handle that kind of activity. If that's the problem, you can set Citect to leave all tags active all the time. That puts more load on the OPC server and the DCS, but gives better performance in some cases.

    See the Citect driver help page:

    OPC Driver > Advanced Configuration and Maintenance > Customizing a Project using Citect.ini Parameters > Driver-specific Citect.ini Parameters

    LeaveTagsActive

    0 - Do not leave tags active.

    1 - Leave tags active.

    1

    Determines whether OPC tags remain active even though Plant SCADA is no longer requesting them from the driver. Normally tags are made inactive 5 seconds after the last time they are requested.

    Some OPC servers take a long time to return a call to activate/inactivate tags, or doing so slows them down, therefore leaving tags active can sometimes improve performance.

    The global LeaveTagsActive parameter can be individually overridden by an Active parameter.

    See ItemLifeTime parameter (above).

    Note: This parameter minimizes the likelihood of deactivation of tags on the currently active unit only.  Tags on units that have become inactive (standby) will still deactivate

  • Thanks for the reply Eric, i have checked the ini file and can confirm this parameter already existed

  • Try [OPC]UseOPC2=1 since Rovisys OPC90 supports v1.0, v2 and v2.05 OPC DA interfaces.

    Also consider creating multiple OPC DA IO devices with different scan rates (fast<1s, normal=1s and slow > 1s) to improve the performance. A status tag should be created for IO redundancy.

  • Hi Jacky,

     Do you mean place this in the .ini file as per below ?

     

    [OPC]

    AddItemAsVTEmpty = 1

    DBUGCATEGORY = TAG

    DBUGLEVEL = ERROR

    LeaveTagsActive = 1

    UseArrays = 1

    UseOPC2=1

  • Correct! This is for global settings. You could also set it in IO device level. For more information, check "OPC Device-specific Parameters" in OPC.chm located in .\Bin directory.

  • Jacky,

    can you help with the below for OPC device specific parameters for my I/O device placement in the Ini file.

    my IO server name  = PrimaryIOServer1

    my Device name = Rovisys_OPC90

    so do i add the following - is the syntax correct?

    [OPC]

    AddItemAsVTEmpty = 1

    DBUGCATEGORY = TAG

    DBUGLEVEL = ERROR

    LeaveTagsActive = 1

    UseArrays = 1

    <PrimaryIOServer1>.<Rovisys_OPC90>.<UseOPC2>.<1>

  • Sure, no problem Alan.

    From the help, if you see the same parameters documented in both Driver-specific Citect.ini Parameters and Device specific parameters, you can set the parameters in the driver (global) level, which will applies to all IO devices. In your case, you have only one OPC DA IO device, using the following setting should be fine.

    [OPC]

    UserOPC2 = 1

    To set this parameter in the device level, in your case

    [OPC]

    PrimaryIOServer1.Rovisys_OPC90.UseOPC2 = 1

    The device level parameters will override the driver (global) ones.

    Hope this would help

    Regards,

    Jacky

  • thank you so much Jacky, appreciated.

Reply Children
No Data