-
-
Notifications
You must be signed in to change notification settings - Fork 3
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
Test the recovered IEC61850 model using ModelDesign Compiler (mdc.exe) Version: 3.0 #98
Comments
Hi @mpostol I am doing some testing with the last model compiler (the last one on the OPCF Members repository) and IEC61850/ The problem is the definition of the reference type HasDataAttribute which is a subclass of HasComponent as described in the IEC61850-7-3 NodeSet. The generated code looks like
but the compiler fails to solve the TargetId's
Obviously the generated code should use ObjectType -> Children -> Variable. But in this case the HasDataAttribute references will be changed to HasComponent. Looks like a conceptual issue.
what is your point of view on the subject? Regards |
…) Version: 3.0 #98 - added IEC61850 to the online documentation
Now available is version Rel 3.1.1 |
…) Version: 3.0 #98 Tested using the mdc Rel 3.1.1 - added empty *.csv files because the --cg i -g option doesn't work
…) Version: 3.0 #98 - compiled the recovered models using mdc Rel. 3.1.1. Previously the mdc Rel 3.0.0. was used. The compilation result is similar. - mdc has inconsistent compilation error warning generation. Some errors are signaled using exceptions but other writing message text directly to the console.
Hi @eoursel, Many thanks for the feedback. Recently I worked on this issue so I will try to answer your question. You will find general information about the project stage/progress and direct answer to your question. General stage and progress of the projectThi issue was reported as a result of the project Information Model Validation (IMV) conducted thanks to the Erasmus program (internship and two final projects). The Erasmus Programme is a European Union student exchange program established in 1987. Unfortunately, the program is over and not all issues have been resolved. To be honest, now all my activity targets my research related to the Object-Oriented Internet but not OPC UA. Still, OPC UA is a reference point and foundation for my research. Of course, in case of topics overlapping my findings could be useful also for the OPC UA community. Today I am closing work on this project so as the result this issue will also be closed after creating a new release to make a final checkpoint. My next step will be project Stand-alone Address Space conducted as a Master Thesis by @MichalSzczekocki. I will try to address this and other issues during this project if applicable. HasDataAttribute - ModelCompiler errorThe model IEC61850 has not been managed properly during the mentioned project for some reasons. It is a reason I reported this issue to:
Let me stress I am not using the ModelCompiler originated by OPC Foundation for many reasons. Instead, I am using forked from OPC Foundation ModelCompiler but it was modified. Therefore my results are different and it is hard to compare my results gathered in the folder ModelDesign. BTW, I am using the NuGet package OOI.ModelCompiler as compiler core. The main objective for defining the compiler part as the NuGet package is reusability. I am going to use the same package by ASMD and Address Space Prototyping Tool (asp.exe). It is hard to compare results but it is easy to state that HasDataAttribute can be derived from HasComponent (it is valid) and the ModelCompiler must be able to handle this. Because the Children element doesn't allow defining the reference type we must use the Reference element to accomplish it. As far as I remember my discussion with @randy-armstrong always we can use Reference instead of Children in case the reference is not the default for the members. BTW, I started working on a description of the Model Design - Domain-Specific Language. Hopefully there will be a point in time that I will return to polishing this documentation. My point is that this must be harmonized with the further development of the ModelCompiler. Hopefully, it helps. Let me know how it works for you. Best regards, |
<!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
h2
{mso-style-priority:9;
mso-style-link:"Heading 2 Char";
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:18.0pt;
font-family:"Calibri",sans-serif;
font-weight:bold;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
span.Heading2Char
{mso-style-name:"Heading 2 Char";
mso-style-priority:9;
mso-style-link:"Heading 2";
font-family:"Calibri",sans-serif;
font-weight:bold;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:1753162999;
mso-list-template-ids:-1;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->Hi Mariusz Honestly i am fighting to generate the C# code for IEC61850-7-3 and IEC61850-4. I have decided to change the HasDataAttribute and HasDataObject with HasComponent which is relatively easy in the NodeSet file. The problem is that we must generate a reference AND the variable as the target of the reference. The problem is that in the ModelDesign syntax the variable must be included in a object by a HasComponent reference… chicken and eggs problem. There are many others issues in IEC61850 Nodesets since they are defining many (several hundreds) fields inside enumerated data types. Unfortunately, the field names are using some special characters (space, - , parenthesis). The model compiler tries to generate C# identfiers for field names. Obvisouly, the C# compiler do not like it. After some manual fixes in the original nodeset IEC68150-7-3, the model compiler generates a correct C# code which can compiled by the C# compiler. I am always trying to understand why the model compiler fails on IEC61850-7-4, it is not able to find the included model design IEC61850-7-3. I initialized filePath XML attribute without success. I am playing with the modelcompiler from OPC Foundation (the last one from OPCF_Members) but i am also trying with your mdc tool to compare the results. It is late, i should be in vacation in theory. Thanks for the long answer and the work you have done since the beginning on this subject. The ASP tool is great, really. Good night. Eric From: MariuszSent: vendredi 15 juillet 2022 23:03To: mpostol/UA-NodesetCc: Eric OURSEL; MentionSubject: Re: [mpostol/UA-Nodeset] Test the recovered IEC61850 model using ModelDesign Compiler (mdc.exe) Version: 3.0 (Issue #98) Hi @eoursel, Many thanks for the feedback. Recently I worked on this issue so I will try to answer your question. You will find general information about the project stage/progress and direct answer to your question.General stage and progress of the projectThi issue was reported as a result of the project Information Model Validation (IMV) conducted thanks to the Erasmus program (internship and two final projects). The Erasmus Programme is a European Union student exchange program established in 1987. Unfortunately, the program is over and not all issues have been resolved.To be honest, now all my activity targets my research related to the Object-Oriented Internet but not OPC UA. Still, OPC UA is a reference point and foundation for my research. Of course, in case of topics overlapping my findings could be useful also for the OPC UA community. Today I am closing work on this project so as the result this issue will also be closed after creating a new release to make a final checkpoint. My next step will be project Stand-alone Address Space conducted as a Master Thesis by @MichalSzczekocki. I will try to address this and other issues during this project if applicable.HasDataAttribute - ModelCompiler errorThe model IEC61850 has not been managed properly during the mentioned project for some reasons. It is a reason I reported this issue to:test the recovered models against mpostol/UA-ModelCompilertest the recovered models against ASMD and generate missing online documentationLet me stress I am not using the ModelCompiler originated by OPC Foundation for many reasons. Instead, I am using forked from OPC Foundation ModelCompiler but it was modified.Therefore my results are different and it is hard to compare my results gathered in the folder ModelDesign.BTW, I am using the NuGet package OOI.ModelCompiler as compiler core. The main objective for defining the compiler part as the NuGet package is reusability. I am going to use the same package by ASMD and Address Space Prototyping Tool (asp.exe).It is hard to compare results but it is easy to state that HasDataAttribute can be derived from HasComponent (it is valid) and the ModelCompiler must be able to handle this. Because the Children element doesn't allow defining the reference type we must use the Reference element to accomplish it. As far as I remember my discussion with @randy-armstrong always we can use Reference instead of Children in case the reference is not the default for the members. BTW, I started working on a description of the Model Design - Domain-Specific Language. Hopefully there will be a point in time that I will return to polishing this documentation. My point is that this must be harmonized with the further development of the ModelCompiler.Hopefully, it helps. Let me know how it works for you.Best regards,Mariusz—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: ***@***.***>
|
…) Version: 3.0 #98 - added MS Word help documentation - contributes to contributes to mpostol/ASMD#264
The further work is postponed and will be covered by separate issues after commencing a new project. |
Describe the bug
Partially it contributes to mertyusaatag#14
Partially it contributes to mpostol/OPC-UA-OOI#653.
The text was updated successfully, but these errors were encountered: