Thursday, March 23, 2017

ASCII Text, XML, SCL, Models, and Errors All Over

IEC 61850 makes use of ASCII text, XML, SCL, and comprehensive Information Models. At any level you may find errors. How to figure out, e.g., if a DataSet member references a FCDA that is not available in any Logical Node model?

I run through the following inconsistency:
There is a DOType "SPG_0" defined that contains a fc="SP"(bottom).
The DO "SetPt19" uses this DOType with fc="SP" (above)
The marked DataSet member FCDA refers to DO "SetPt19" with fc="ST".

This reference is not correct - there is no DO "SetPt19" with fc="ST" !! How does a stack react when it has to parse such a wrong model? Hmm!

It took me some time to figure out what the issue was when I loaded the file onto a HMS Gateway with WEB-PLC:

In the meantime I have checked the wrong file with six (well known) IEC 61850 tools - NONE of them complained about this inconsistency.
The SystemCorp stack complained, because it was not able to find the referenced object to implement the model! WOW!

This example confirms what I always tell people in my courses: Develop your own simple tools for finding errors in the "ASCII Text" - it is just a simple search you need ... I am not saying that the many tools on the market are useless!! No way! But many simple checks could be done with simple tools. Even tool developer may not have a clue what kind of checks would be helpful.
In this case it would have been quite easy to check (ASCII search and comparison) all members of all DataSets and check in the Logical Node models if there is a DataObject that matches with the reference in the DataSet. Such a ASCII text search would have resulted in something like: Did not find an fc="ST" for the object "SetPt19".

It is that easy! Believe me.

My experiences with this and many other issues are one of the core topics in my courses.
Click HERE for courses in German in Karlsruhe/Germany.

No comments: