Hallo zusammen, habe ein Problem festgestellt für das ich keine Lösung finde.
Erst mal zu meiner Hard- und Software:
Habe die Steuerung SIMATIC S7-1500, CPU 1511-1 PN Firmware Version 1.6
Nutze TIA Portal V13 + Update 4
Habe ein Profinet IO-Device an die Steuerung angeschlossen und über das TIA Portal die entsprechende GSDML Version 2.3 installiert.
Das hat auch problemlos funktioniert. Habe danach meine benötigten Module ins Gerät gezogen, die Software übersetzt und geladen.
Auch das hat funktioniert.
Jedoch habe ich festgestellt, dass sich das IO-Device nicht so verhält, wie es sich verhalten sollte.
Ich habe mir dann mal über Wireshark die übertragenen Pakete vom Controller zum IO-Device angeschaut.
Dabei habe ich festgestellt, dass in einem Modul die übertragenen Baugruppenparameter nicht mit denen übereinstimmen, die ich im TIA-Portal eingestellt habe.
Man muss dazu sagen, dass das Gerät mit der GSD erfolgreich Zertifiziert wurde. Darüber hinaus, hat es bisher also mit der Step 7 V5.5 problemlos funktioniert.
Habe die GSDML auch mal auf die Version 2.31 upgedatet aber auch danach hatte ich das gleiche Problem.
Hier mal ein auszug aus der GSD Datei

Code:
  1. <ModuleItem ID="ID_MOD_DataFormatting" ModuleIdentNumber="0x00000406">
  2. <ModuleInfo CategoryRef="IDC_Result-Format">
  3. <Name TextId="IDT_MODULE_NAME_DataFormatting" />
  4. <InfoText TextId="IDT_INFO_DataFormatting" />
  5. </ModuleInfo>
  6. <VirtualSubmoduleList>
  7. <VirtualSubmoduleItem ID="ID_SUB_DataFormatting" SubmoduleIdentNumber="0x00000001">
  8. <IOData />
  9. <RecordDataList>
  10. <ParameterRecordDataItem Index="0" Length="23">
  11. <Name TextId="IDT_RECORD_NAME_GeneralParameter" />
  12. <Const Data="0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30" ByteOffset="0" />
  13. <Ref DataType="VisibleString" Length="20" ByteOffset="0" DefaultValue="?" AllowedValues="1..20" TextId="PARAM_REF_NAME_MisreadingText" />
  14. <Ref ValueItemTarget="PARAM_REF_VALUE_DecodingResultRG" DataType="Bit" ByteOffset="20" BitOffset="5" DefaultValue="0" AllowedValues="0..1" TextId="PARAM_REF_NAME_DecodingResultRG" />
  15. <Ref ValueItemTarget="PARAM_REF_VALUE_DataAlignment" DataType="Bit" ByteOffset="21" BitOffset="0" DefaultValue="0" AllowedValues="0..1" TextId="PARAM_REF_NAME_DataAlignment" />
  16. <Ref ValueItemTarget="PARAM_REF_VALUE_FillMode" DataType="BitArea" ByteOffset="21" BitOffset="4" BitLength="4" DefaultValue="3" AllowedValues="0 3" TextId="PARAM_REF_NAME_FillMode" />
  17. <Ref DataType="Unsigned8" ByteOffset="22" DefaultValue="0" AllowedValues="0..255" TextId="PARAM_REF_NAME_FillCharacter" />
  18. </ParameterRecordDataItem>
  19. </RecordDataList>
  20. <ModuleInfo CategoryRef="IDC_Result-Format">
  21. <Name TextId="IDT_MODULE_NAME_DataFormatting" />
  22. <InfoText TextId="IDT_INFO_DataFormatting" />
  23. </ModuleInfo>
  24. </VirtualSubmoduleItem>
  25. </VirtualSubmoduleList>
  26. </ModuleItem>
Der Parameter "PARAM_REF_NAME_MisreadingText" in der Zeile 14 besitzt als Default das Zeichen "?". Dasselbe ist auch in den Const Data definiert. Habe über TIA den Default Wert auch nicht geändert.
Aber im Wireshark kann man sehen, dass zwei ? übertragen werden. Und wenn die anderen Parameter verändert werden, dann kann es passieren, dass etwas in einen Adressbereich geschrieben wird wo dieser Wert keinen Sinn macht
und dadurch die Übertragung fehlschlägt.

3f 3f ........ ......??
00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
00e0 00 00 00 00 30 ....0

Interessanterweise, ist der Fehler behoben, wenn ich die Zeile 13 auskommentiere. Jedoch ist die GSD-Datei so zertifiziert und sollte eigentlich auch mit der Zeile 13 funktionieren.
Hat jemand ähnliche Erfahrungen gemacht, oder kann mir erklären warum die Übertragung fehlerhaft ist?
Übrigens tritt der gleiche Fehler auch bei einem Kunden von uns auf, der auch TIA V13 nutzt, aber eine andere Steuerung.
Danke im Voraus.