Showing results 1 to 6 of 6

Thread: If then - Conditions

  1. #1
    Join Date
    29.04.2014
    Posts
    26

    Default If then - Conditions

    Hi all,

    I want to use "IF" "then" conditions with 61850 tags where and How can I ?

    Thanks in advance

  2. #2
    Join Date
    28.02.2013
    Posts
    157

    Default Re: If then - Conditions

    Hello,

    for creating highly sofisticated logics you can use zenon Logic, our integrated soft PLC.
    What goal do you want to achieve? Can you please describe your scenario?

    Regards,
    Felix



  3. #3
    Join Date
    29.04.2014
    Posts
    26

    Default Re: If then - Conditions

    Hello Felix,

    This is for issuing alarm - whenever the software version of PLC gets changed.

    I am reading the version from PLC variable directly in 850 - let it be "A1" at this case i dont need any alarm.

    If this is changing to any value, it should issue an alarm and once it is acknowledged it should go from alarm.

    Interested to know if anything more required from me.

    thanks


  4. #4
    Join Date
    01.07.2008
    Location
    Salzburg, AT
    Posts
    801

    Default Re: If then - Conditions

    I suppose you want to implement in your project an alarm caused - but only once - by changes of "configuration revision" of IED, is it?
    You want probably to have an alarm each time when value of iec850 variable */configRev[DC] or */swRev[DC] (STRING) changes, only if changes, and whatever the previous value was. And not by Runtime restart.

    1. create a Reaction Matrix (type "String") configured to detect "Any" value change as alarm; activate check-box 'Treat each change of value as new limit violation'.
    2. create an additional INTERN variable: STRING with suitable length, Calculation="Network", Remanence="Remanent".
    3. link reaction matrix with this internal variable
    4. create an Allocation where the variable */configRev[DC] is the source and the internal variable - the target

    Only by first start of the Runtime there will be a waste alarm because of change from empty string to value from IED. Then the internal variable - as remanent - will keep the last value received from IED also during communication loss or restart. Thus the next Runtime restart will not cause alarms anymore.
    Last edited by ursulak : 17th May 2017 at 09:59 Reason: typo

  5. #5
    Join Date
    29.04.2014
    Posts
    26

    Default Re: If then - Conditions

    Hi ursula,
    Thanks the same I want.
    But I want the alarm to be cleared once it is acknowledged.
    Is it possible?

    Thanks again for your support

  6. #6
    Join Date
    01.07.2008
    Location
    Salzburg, AT
    Posts
    801

    Default Re: If then - Conditions

    I suppose to simply filter out acknowledged alarms is not what you want?

    There is a nice feature in variable settings 'Alarm handling' - a possibility to link a BOOL variable which gets the value 0 (or 1) when the user acknowledges the alarm. This could be the same variable as causing this alarm.

    Basing on this feature the possible solution (starting from the beginning) would be:

    0. in your project there is already an iec850 variable, STRING, e.g. */LLN0/NamPlt/swRev[DC]
    1. create 2 variables - INTERN, Network, Remanent:
    - swRev_remanent          : STRING
    - swRev_alarm_indicator : BOOL
    2. by variable swRev_alarm_indicator configure
    a) in  'Alarm handling':
    - 'Acknowledgement variable' = swRev_alarm_indicator
    - 'Acknowledgement value'  = 0
    b) in limits of variable: 
    - for value 0: the 'limit text' = "update of IED's software acknowledged by operator",  activate check-boxes: 'In Chronological Event List'
    - for value 1: activate check-boxes 'In Alarm Message List' and 'To acknowledge'
    hint: in 'limit text' you may write a dynamical limit text to display in AML/CEL column 'text' also the value of your STRING variable,
    e.g. 'limit text' = $software version of the IED changed to: ;%swRev_remanent
    3. create zenon function swRev_comes: type 'write set value', for variable swRev_alarm_indicator, value 'On', 'direct to the hardware'
    4. create reaction matrix swRev_value_detection, 'string', value 'any', 'treat each change of value as new limit violation', not in AML but calling function swRev_comes
    5. link variable swRev_remanent with rema swRev_value_detection
    6. create an Allocation where the variable */swRev[DC] is the source and the internal variable swRev_remanent - the target

    The alternative would be - like Felix already mentioned - the use of zenon Logic (small program in integrated soft PLC). Or VBA/VSTA. Or maybe some other way "pure" in zenon.

Similar Threads

  1. creating interlocking conditions and actions
    By nikabena in forum zenon Supervisor
    Replies: 2
    Last Post: 27th March 2015, 20:06

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •