Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RSR-473] - Service to extract ExtRef signals with all their properties to bind automatically Active or Untested Bay Internal or External ExtRef signals - Part 2/2 #92

Open
DamienPERNET opened this issue Apr 14, 2022 · 0 comments

Comments

@DamienPERNET
Copy link
Contributor

DamienPERNET commented Apr 14, 2022

As a COMPAS service user, this US purpose is to create a COMPAS service that list all ExtRef signals from a SCD file.

 

As service user, I would like to have a service in order to list all ExtRef signals with their attributes from a SCD file according to input parameters. Each ExtRef is completed with its associated one or two DA.fc.

This US deals with the second part of the service

 

Prerequisites:

  • The first part of this service has already been developed via US RSR-398

 

The inputs of this service are:

 

US process description:

  • Exclude all ExtRef where ExtRef.serviceType="Report" because they are described into US RSR-608.
  • For each listed /IED/LDevice/LN0/Inputs/ExtRef, extract :
    • for each ExtRef, the physical range of the source IED i.e it is "Bay Internal" or "Bay External"
      • The physical range of the source IED i.e whether the signal source is physically "Bay Internal" or "Bay External":
        • To know the Bay ID to which an IED belongs, find the IED Private /IED/Private/compas:Bay@UUID
        • For this, compare the /IED/Private/compas:Bay@UUID of the IED.name where the ExtRef resides and the /IED/Private/compas:Bay@UUID of the ExtRef.iedName which is the source IED of the signal. If the 2 compas:Bay@UUID are different then the signal physical range is "Bay External" else it is "Bay Internal".
    • and for each ExtRef, all the functional constraints given by /DataTypeTemplates/LNodeType/DOType/DA @fc
      • All /DataTypeTemplates/LNodeType/DOType/DA @fc
        • Find into /ExtRef@iedName/ExtRef@ldInst/ExtRef@lnClass @Prefix (optional) @lnInst (optional), the associated /IED/LDevice/LN(0) @lntype
        • Find with @lnClass and @lntype in /DataTypeTemplates, the associated /DataTypeTemplates/LNodeType WHERE
          • /DataTypeTemplates/LNodeType @id = /IED/LDevice/LN(0) @lntype
          •  AND /DataTypeTemplates/LNodeType @lnClass = ExtRef@lnClass
        • Find into this /DataTypeTemplates/LNodeType, the associated /DataTypeTemplates/LNodeType/DO @type WHERE
          • /DataTypeTemplates/LNodeType/DO @name = ExtRef.doName
        • Find with /DataTypeTemplates/LNodeType/DO @type, the  associated /DataTypeTemplates/LNodeType/DOType WHERE
          • /DataTypeTemplates/LNodeType/DOType @id = /DataTypeTemplates/LNodeType/DO @type
        • Select into this /DataTypeTemplates/LNodeType/DOType, all DOType/DA WHERE
          • DOType/DA@name[.DAType/BDA@name]n = ExtRef.daName (if ExtRef.daName exists and is not null)
          • AND DOType/DA@fc = "MX" OR "ST"
          • But if ExtRef.daName is not provided as input, then select all distinct DOType/DA @name[.DAType/BDA@name]n and DOType/DA@fc = "MX" OR "ST" which exist into this /DataTypeTemplates/LNodeType/DOType section
        • With the help of a parameter file given in attachement and only for ExtRef@serviceType='GOOSE' OR 'SMV', check if each quadruplet (ExtRef@lnClass, ExtRef@doName, DOType/DA@name[.DAType/BDA@name]n, DOType/DA@fc) previously found exists in the parameter file where ExtRef@lnClass = FCDA.lnClass AND ExtRef@doName = FCDA.doName by not taking DO instance number into account, see US RSR-587 AND DOType/DA@name[.DAType/BDA@name]n = FCDA.daName AND DOType/DA@fc = FCDA.fc. If a quadruplet doesn't exist in the parameter file then reject it. Use only valid quadruplets (FCDA.lnClass, FCDA.doName, FCDA.daName, FCDA.fc) as data source in order to have a list of:
          •  ExtRef@serviceType, @iedName, @ldInst, @lnClass=FCDA.lnClass, @Prefix, @lnInst, @Doname=FCDA.doName, @daname if exists ELSE take FCDA.daName, DOType/DA@fc=FCDA.fc
        • For ExtRef@serviceType='Report', exclude Report source Control Block. This case is described into US RSR-608
    • and the XPath where the ExtRef signal resides
      • The XPath where the ExtRef signal resides i.e /IED@name/LDevice@inst/LN0

 

 Output:

  • All ExtRef where ExtRef.serviceType="Report" are excluded
  • As output, for each ExtRef signal found into whole SCD file or IED.name or IED.name/LDevice.inst, the following attributes are output:
    • IED/LDevice/LN0/Inputs/ExtRef @iedName @ldInst @lnClass @Prefix @lnInst @Doname @daname @intAddr @ServiceType @PLN @pdo @pda @pServT @srcLDInst @srcPrefix @srcLNClass @srcLNInst @srcCBName @desc
    • @FlowStatus (ACTIVE, INACTIVE or UNTESTED) attribute
    • All functional constraints DA@fc
    • The physical range of the source IED i.e whether the signal source is physically "Bay Internal" or "Bay External"
    • For 'GOOSE' AND 'SMV' signal source, each quadruplet (ExtRef@lnClass, @Doname, @daname if exists ELSE take DOType/DA@name=FCDA@daName, DOType/DA@fc=FCDA.fc) exists into the parameter file
    • The XPath where the ExtRef signal resides i.e /IED@name/LDevice@inst/LN0

 

Error messages:

  • All error messages from called services are returned

 

Acceptance criteria:

  • Check that US excludes all ExtRef@serviceType="Report"
  • Check that all error messages from called services are returned
  • Check that this service provides as output, for each ExtRef signal found into whole SCD file or IED.name or IED.name/LDevice.inst, the following attributes:
    • IED/LDevice/LN0/Inputs/ExtRef @iedName @ldInst @lnClass @Prefix @lnInst @Doname @daname @intAddr @ServiceType @PLN @pdo @pda @pServT @srcLDInst @srcPrefix @srcLNClass @srcLNInst @srcCBName @desc
    • @FlowStatus (ACTIVE, INACTIVE or UNTESTED) attributes
    • All functional constraints DA @fc
    • The physical range of the source IED i.e whether the signal source is physically "Bay Internal" or "Bay External"
    • (ExtRef@lnClass, @Doname, @daname if exists OR DOType/DA@name, DOType/DA@fc=FCDA.fc) that exists into the parameter file
    • The XPath where the ExtRef signal resides i.e /IED@name/LDevice@inst/LN0
  • In the case of GOOSE OR SMV source Control Block
    • check that the existence of quadruplet is verified into the parameter file
    • check that query inner join with the ExtRef@doName=FCDA.doName from parameter file is done without taking instance number into account

 

 

 

@DamienPERNET DamienPERNET changed the title COMPAS - Service to extract ExtRef signals with all their properties to bind automatically Active or Untested Bay Internal or External ExtRef signals - Part 2/2 [RSR-473] - COMPAS - Service to extract ExtRef signals with all their properties to bind automatically Active or Untested Bay Internal or External ExtRef signals - Part 2/2 Apr 14, 2022
@DamienPERNET DamienPERNET changed the title [RSR-473] - COMPAS - Service to extract ExtRef signals with all their properties to bind automatically Active or Untested Bay Internal or External ExtRef signals - Part 2/2 [RSR-473] - Service to extract ExtRef signals with all their properties to bind automatically Active or Untested Bay Internal or External ExtRef signals - Part 2/2 Apr 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant