mattsse / plcopen-xml-xcore

The PlcOpen Xml Standard implemented as Xcore model and with full gradle and maven support
Eclipse Public License 2.0
13 stars 3 forks source link

Dummy example doesn't validate against tc6_v201.xsd #1

Closed tkucic closed 4 years ago

tkucic commented 4 years ago

Hi, did you validate the file generated by PLC Open Editor?

I cannot validate the file against the schema. There is a lot of differences that dont match. Here are some: Element '{http://www.plcopen.org/xml/tc6_0201}fileHeader', attribute 'creationDateTime': '2018-02-25 15:28:29' is not a valid value of the atomic type 'xs:dateTime'., line 9

Element '{http://www.plcopen.org/xml/tc6_0201}content': Character content other than whitespace is not allowed because the content type is 'element-only'., line 175

I dont know what xsd PLC Open Editor is using but it ain't tc6_v201.

mattsse commented 4 years ago

Hi, thanks for raising this issue. I couldn't get to the plc open editor to work..., is this the one you used? creationDateTime: 2006-09-07 18:52:43 is not valid xs:dateTime, it is missing the T separator. creationDateTime is declared as String in the xcore schema and not as Datetime like the modificationDateTime, thats probably the issue.

Content element needs sub elements. It cannot hold text. Content is ppx:FormattedText that has a documentation element, which can hold text.

It seems that I misconfigured the content attribute as String. You're right, it should be ppx:FormattedText.

line 175

which file are you refering to?

I think this can be easily fixed be removing the ContentProvider and add a content field of FormattedText in the Error and Comment type.

I dont know what xsd PLC Open Editor is using but it ain't tc6_v201.

I checked thei editor's files, there is at least a tc6_xml_v201.xsd file, but I have no idea how they validate.

Would you like to try fixing this in the xcore schema? Otherwise I'll try to fix this within the next days.

tkucic commented 4 years ago

Hi, I was actually looking for tc6_v201 example projects and your repository has two of them here: https://github.com/mattsse/plcopen-xml-xcore/tree/master/examples But when i ran them through the python lxml scheme validator, these files don't validate.

I am building a plc open xml parser/documentation tool that works with tc6_v200, tc6_v201 and now the new iec61131-10. It is almost finished but now i am in testing so i need a lot of projects to test. Maybe you can generate some projects for me, and i can validate that the format is correct?

PLC Open Editor is now Beremiz I think which uses the tc6_v201. I tested my tool on it and it validates correctly. It seems they fixed this format issues in beremiz version.

mattsse commented 4 years ago

Sorry I can't help you with that currently. But if you need a bunch of examples I would suggest looking for sample PLC projects and export them via your IDE, I believe codesys provides various sample projects that you can download, open in codesys and export as PLCopen.

tkucic commented 4 years ago

It's no problem. Codesys exports in tc6_v200 format and it is not compliant fully on the standard so the data is not complete.

I'm looking for other manufacturers examples too.