Closed IgorMundstein closed 6 years ago
Hi, the IedModel is for server side only. To know the structure of the received data the only way is to explore the MmsVariableSpecification. I will check for the missing functions in C# API. Unfortunately the get name list result cannot be used for this purpose because the MMS standard requires the get name list to be alphabetically ordered while the transmitted data structures are not.
I see. I will continue with my implementation. Can you do a general scan and check if there are more unpublished methods?
That would be very useful. Thanks!
Michael @mzillgith
I want to find out the CDC reading point structure by MmsVariableSpecification. I need this to validate the point mapping and know what are the attributes of value, quality and timestamp.
When I try to map points like: Integer status (INS) and Enumerated status (ENS). I can not get the difference because you convert the DataAttributeType to MmsType enumerator. Consequently, it causes me to get two equal structures.
Integer status (INS) use DataAttributeType IEC61850_INT32 Integer status (INS) use MmsType MMS_INTEGER
Enumerated status (ENS) use DataAttributeType IEC61850_ENUMERATED Enumerated status (ENS) use MmsType MMS_INTEGER
Structure
stVal MMS_INTEGER ST q MMS_BIT_STRING ST t MMS_UTC_TIME ST subEna MMS_BOOLEAN SV subVal MMS_INTEGER SV subQ MMS_BIT_STRING SV subID MMS_VISIBLE_STRING SV blkEna MMS_BOOLEAN BL d MMS_VISIBLE_STRING DC dU MMS_STRING DC cdcNs MMS_VISIBLE_STRING EX cdcName MMS_VISIBLE_STRING EX dataNs MMS_VISIBLE_STRING EX
This problem should appear for more points. Would you have any suggestions?
There is no difference between ENS and INS on MMS level. So you cannot decide this based on the information of MmsVariableSpecification. One possibility would be to have a mapping list of standard DO names and the corresponding CDC.
Hi @mzillgith
I have visualized the cdc class in C ++, which you have created for Common Data Classes.
If I want to mount the named list, with data like the data object type (CDC), its attributes and indexes. I realized that you created the IedModel, but I do not see how to build it reading from the IED, rather than an SCL file. I also missed some unpublished methods like: MmsVariableSpecification_getNamedVariableRecursive, MmsVariableSpecification_getChildValue, etc. When I use MMSVariableSpecification to read variables spec.
Basically, this would be to create a model, which I will use to identify the values received from points, since values only come in an array without the name of the data object or date attribute.
I have created an algorithm to create this structure, but it is not very well. I'm looking at your code in C ++ and wondering if there is an easier way to do or if it is missing methods published in the C # wrapper to make this easier.
Could you give some examples or tips?