OPC Mirror - Deadband

According to the OPC Mirror Help, in pipe properties, one can specify a deadband in % EU (Engineering Units). They even give an example where if you set 5% for your deadband and the value is 0 - 200 GPM, then it must change by 10 GPM to trigger an update.

I am not sure how OPC Mirror could have any knowledge of EU's unless it is specifically dealing with certain parameters in the DeltaV side like AI/OUT, which barely any SCADA systems would.

So I decided to test a little bit. I created a 2-way pipe with deadband at 10% on both sides. And I started sending ALM1/OUT to a third party OPC server. My out_scale is 0-500. Aside from the fact that I am casting to an integer register on the third party side, I started changing my value slighly and any change no matter how small was going through instantly. 200.5 to 200.505 was enough change to cause the OPC mirror update and my integer on the other opc server went from 200 to 201.

Curious now, I enabled scaling in the mapping options with one end of the mapping ranged 0 - 500 and the other end 500 - 0. It shoudl have caused an output of 500 to yield a 0 in the other system and 0 to yiled 500. However, this appeared to have absolutely no effect, even after a restart of OPC mirror.

While scaling is not something we will use in all likeliness, the deadband could be an important part of the behaviour and performance of our SCADA system. But my experience is that the mapping options are not working. Does anyone have experience with OPC Mirror and could let me know if I am missing something here? DeltaV version 12.3.

Thanks

3 Replies

  • A similar question has been already asked. Maybe you find something helpful here: community.emerson.com/.../2642.aspx

  • In reply to István Orbán:

    I don't think that other discussion addresses the OPC Mirror deadband behavior.  That discussion focused on how DeltaV sets exception flags.

    The deadband function is typically applied to a floating point number.  You said you were casting an Integer, but reading a scaled floating point?  

    My understanding is that the exception deadband is a property of the OPC Server group in which the item is configured.  OPC Mirror configures these groups based on what you define in OPC Mirror.  I'm wondering if the behavior you are seeing is a function of the OPC Server providing the data?  

    As a test, can you create a couple of DeltaV modules in the App Station and place a floating point parameter in each.  Maybe connect a Signal Generator block to an OUT parameter in one module and a simple Float in the other module.  Then create a pipe in OPC mirror to move data by exception from the out parameter to the float IN parameter.  Use the Signal Generator to create a square wave and adjust the amplitude.

    Set the Pipe exception to a value and see if DeltaV OPC Server processes the data by exception.

    Although OPC is a standard, not all features are mandatory, and not all OPC Servers implement all the features.  If this works with DeltaV data, you at least know that OPC Mirror is able to define exception deadband in groups.  If it doesn't, you might want to file a call with the GSC.

    Andre Dicaire

  • In reply to Andre Dicaire:

    Thanks Andre. I will post results as soon as I can test.

    Just to explain what I meant about casting. It was not a scaled integer. Because my other system was dealing in integers and rounding my DeltaV value up or down. I was playing with a floating value of 200.5 and testing that 200.4999 would round down to 200, and 200.50001 would round up to 201.

    Reading some more on OPC in general, I think the Synchronous OPC communication may not use the group deadband property. If it is only an Asynchronous feature at the OPC Group level, then my 30 second polling may read all the latest values regardless of deadband.