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

Wrong type and signal class for ExternalInterface "Y" on "InputParameter" creates conflict with non-analogue constants definitions (eg, boolean TRUE/FALSE) #110

Open
Erik0x42 opened this issue Nov 6, 2024 · 1 comment · May be fixed by #111

Comments

@Erik0x42
Copy link
Collaborator

Erik0x42 commented Nov 6, 2024

Problem

InputParameter's terminal "Y" is of type "AnalogueOut" and has SignalClass restricted to "Analogue".
InputParameter may be boolean (eg, "TRUE") - this is defined by the wording "logical operands" in the standard.
The current implementation in NorsokSCDLibrary.aml will cause a conflict between terminal type/class and binary values.

XML with issue comments:

<SystemUnitClass Name="InputParameter" RefBaseClassPath="ElementaryFunctionLibrary/NorsokElementaryFunctionClass">
  <Description>process parameters, numbers and logical operands </Description>
  <Attribute Name="Parameter" AttributeDataType="xs:decimal">
    <Description />
    <DefaultValue />
    <Value />
  </Attribute>
  <ExternalInterface Name="Y" RefBaseClassPath="InterfaceClassLibrary/NorsokSignalClass/Out/AnalogueOut" ID="6b2117e3-8475-7e4b-9309-fed0ce98bac7">
    <!-- hidden lines  -->                                                                  ^^ wrong ^^
    <Attribute Name="SignalClass" AttributeDataType="xs:string">
      <Description />
      <DefaultValue />
      <Value>Analogue</Value>
      <Constraint Name="LegalValues">
        <NominalScaledType>
          <RequiredValue>Analogue</RequiredValue>    --   this is wrong (remove restriction)
        </NominalScaledType>
      </Constraint>
    </Attribute>

Proposed solution

  1. Change terminal "Y" type (RefBaseClassPath) to "Out" (one level higher in the interface class hierarchy)
  2. Allow also Binary as SignalClass

Applying these two fixes will align this output terminal with similarly data type agnostic terminals of Split, Opt and BlackBox.

References

  • IEC PAS 63131:2017 Figure B.12 - Fixed parameter label
  • IEC PAS 63131:2017 Table D.8 - Constant values
@Erik0x42 Erik0x42 linked a pull request Nov 6, 2024 that will close this issue
@cdenisey
Copy link
Collaborator

It is preferable to maintain same Terminal Y already established so as to disturb less SCD tools already established, Therefore suggestion to also allow Binary definition should be adopted. However, the "Parameter" attribute allows for AML export to correct values (Analogue or Bolean), so there should be alignment between them upon export.

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

Successfully merging a pull request may close this issue.

2 participants