You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2019/05/08 20:32:18 UTC
[plc4x] 01/02: - Refactored the S7 spec to be used easier in the
code-generators
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch feature/code-gen
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 4e437ff7cabfc29a3a45edc343e59cf6cc16577f
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Wed May 8 12:59:19 2019 +0200
- Refactored the S7 spec to be used easier in the code-generators
---
protocols/s7/src/main/java/.keepMe | 20 -
.../apache/plc4x/protocols/s7/protocol.dfdl.xsd | 1346 ++++++++++----------
.../apache/plc4x/protocols/s7/protocol.scxml.xml | 86 +-
.../org/apache/plc4x/protocols/s7/ManualTest.java | 1 +
.../org/apache/plc4x/protocols/s7/protocol.tdml | 592 ++++-----
5 files changed, 1022 insertions(+), 1023 deletions(-)
diff --git a/protocols/s7/src/main/java/.keepMe b/protocols/s7/src/main/java/.keepMe
deleted file mode 100644
index 97c6314..0000000
--- a/protocols/s7/src/main/java/.keepMe
+++ /dev/null
@@ -1,20 +0,0 @@
-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-This file is required to force the existence of the src/main/java directory
-which activates the "java-module" maven profile.
-
-PLEASE DO NOT DELETE ... it will break the build.
\ No newline at end of file
diff --git a/protocols/s7/src/main/resources/org/apache/plc4x/protocols/s7/protocol.dfdl.xsd b/protocols/s7/src/main/resources/org/apache/plc4x/protocols/s7/protocol.dfdl.xsd
index 1cb2922..5d46c8d 100644
--- a/protocols/s7/src/main/resources/org/apache/plc4x/protocols/s7/protocol.dfdl.xsd
+++ b/protocols/s7/src/main/resources/org/apache/plc4x/protocols/s7/protocol.dfdl.xsd
@@ -20,6 +20,7 @@
xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/"
xmlns:s7="http://plc4x.apache.org/s7"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
+ xmlns:plc4x="http://plc4x.apache.org/schemas/dfdl"
targetNamespace="http://plc4x.apache.org/s7">
<xs:annotation>
@@ -79,15 +80,24 @@
<xs:complexType name="TpktMessageType">
<xs:sequence>
<!-- TPKT Magic Byte always 0x03 -->
- <xs:element name="magicByte" type="s7:byte">
+ <xs:element name="magicByte" type="s7:byte" fixed="3">
<xs:annotation>
+ <xs:appinfo source="http://plc4x.apache.org/dfdl">
+ <plc4x:noProperty/>
+ </xs:appinfo>
<xs:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:assert message="Magic number was not 0x03."
test="{. eq 3}"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
- <xs:element name="reserved" type="s7:byte"/>
+ <xs:element name="reserved" type="s7:byte">
+ <xs:annotation>
+ <xs:appinfo source="http://plc4x.apache.org/dfdl">
+ <plc4x:noProperty/>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
<xs:element name="length" type="s7:short"/>
<xs:element name="userData" type="s7:CotpMessageType"/>
</xs:sequence>
@@ -170,12 +180,16 @@
<xs:element name="headerLength" type="s7:byte"/>
<xs:element name="type" type="s7:CotpTpduType"/>
<xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
- <xs:element dfdl:choiceBranchKey="224" ref="s7:CotpTpduConnectionRequest"/>
- <xs:element dfdl:choiceBranchKey="208" ref="s7:CotpTpduConnectionResponse"/>
- <xs:element dfdl:choiceBranchKey="128" ref="s7:CotpTpduDisconnectRequest"/>
- <xs:element dfdl:choiceBranchKey="192" ref="s7:CotpTpduDisconnectResponse"/>
- <xs:element dfdl:choiceBranchKey="112" ref="s7:CotpTpduError"/>
- <xs:element dfdl:choiceBranchKey="240" ref="s7:CotpTpduData"/>
+ <xs:element dfdl:choiceBranchKey="224" name="cotpTpduConnectionRequest"
+ type="s7:CotpTpduConnectionRequest"/>
+ <xs:element dfdl:choiceBranchKey="208" name="cotpTpduConnectionResponse"
+ type="s7:CotpTpduConnectionResponse"/>
+ <xs:element dfdl:choiceBranchKey="128" name="cotpTpduDisconnectRequest"
+ type="s7:CotpTpduDisconnectRequest"/>
+ <xs:element dfdl:choiceBranchKey="192" name="cotpTpduDisconnectResponse"
+ type="s7:CotpTpduDisconnectResponse"/>
+ <xs:element dfdl:choiceBranchKey="112" name="cotpTpduError" type="s7:CotpTpduError"/>
+ <xs:element dfdl:choiceBranchKey="240" name="cotpTpduData" type="s7:CotpTpduData"/>
</xs:choice>
<xs:element name="userData" type="s7:S7MessageType" minOccurs="0"
dfdl:occursCountKind="expression"
@@ -183,149 +197,149 @@
</xs:sequence>
</xs:complexType>
- <xs:element name="CotpTpduConnectionRequest">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="destinationReference" type="s7:short"/>
- <xs:element name="sourceReference" type="s7:short"/>
- <xs:element name="protocolClass" type="s7:byte"/>
- <xs:element ref="s7:parameters" minOccurs="0"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../../headerLength - 6}"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../../headerLength gt 6) then 1 else 0}"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="CotpTpduConnectionResponse">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="destinationReference" type="s7:short"/>
- <xs:element name="sourceReference" type="s7:short"/>
- <xs:element name="protocolClass" type="s7:byte"/>
- <xs:element ref="s7:parameters" minOccurs="0"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../../headerLength - 6}"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../../headerLength gt 6) then 1 else 0}"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="CotpTpduDisconnectRequest">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="destinationReference" type="s7:short"/>
- <xs:element name="sourceReference" type="s7:short"/>
- <xs:element name="disconnectReason" type="s7:byte"/>
- <xs:element ref="s7:parameters" minOccurs="0"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../../headerLength - 6}"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../../headerLength gt 6) then 1 else 0}"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="CotpTpduDisconnectResponse">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="destinationReference" type="s7:short"/>
- <xs:element name="sourceReference" type="s7:short"/>
- <xs:element ref="s7:parameters" minOccurs="0"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../../headerLength - 5}"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../../headerLength gt 5) then 1 else 0}"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="CotpTpduError">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="destinationReference" type="s7:short"/>
- <xs:element name="rejectCause" type="s7:byte"/>
- <xs:element ref="s7:parameters" minOccurs="0"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../../headerLength - 4}"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../../headerLength gt 4) then 1 else 0}"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="CotpTpduData">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="endOfTransmission" type="xs:unsignedInt"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bits" dfdl:length="1"/>
- <xs:element name="tpduRef" type="xs:unsignedInt"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bits" dfdl:length="7"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="parameters">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="parameter" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="type" type="s7:CotpParameterType"/>
- <xs:element name="parameterLength" type="s7:byte"/>
- <xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
- <xs:element dfdl:choiceBranchKey="192" ref="s7:CotpParameterTpduSize"/>
- <xs:element dfdl:choiceBranchKey="193" ref="s7:CotpParameterCallingTsap"/>
- <xs:element dfdl:choiceBranchKey="194" ref="s7:CotpParameterCalledTsap"/>
- <xs:element dfdl:choiceBranchKey="195" ref="s7:CotpParameterChecksum"/>
- <xs:element dfdl:choiceBranchKey="224"
- ref="s7:CotpParameterDisconnectAdditionalInformation"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="CotpParameterTpduSize">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="tpduSize" type="s7:byte"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="CotpParameterCallingTsap">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="tsapId" type="s7:short"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="CotpParameterCalledTsap">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="tsapId" type="s7:short"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="CotpParameterChecksum">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="checksum" type="s7:byte"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="CotpParameterDisconnectAdditionalInformation">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="data" type="xs:hexBinary"
- dfdl:byteOrder="bigEndian" dfdl:lengthUnits="bytes" dfdl:lengthKind="explicit"
- dfdl:length="{../../parameterLength}"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
+ <xs:complexType name="CotpTpduConnectionRequest">
+ <xs:sequence>
+ <xs:element name="destinationReference" type="s7:short"/>
+ <xs:element name="sourceReference" type="s7:short"/>
+ <xs:element name="protocolClass" type="s7:byte"/>
+ <xs:element name="parameters" minOccurs="0"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../../headerLength - 6}"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../../headerLength gt 6) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="parameter" type="s7:Parameter" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CotpTpduConnectionResponse">
+ <xs:sequence>
+ <xs:element name="destinationReference" type="s7:short"/>
+ <xs:element name="sourceReference" type="s7:short"/>
+ <xs:element name="protocolClass" type="s7:byte"/>
+ <xs:element name="parameters" minOccurs="0"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../../headerLength - 6}"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../../headerLength gt 6) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="parameter" type="s7:Parameter" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CotpTpduDisconnectRequest">
+ <xs:sequence>
+ <xs:element name="destinationReference" type="s7:short"/>
+ <xs:element name="sourceReference" type="s7:short"/>
+ <xs:element name="disconnectReason" type="s7:byte"/>
+ <xs:element name="parameters" minOccurs="0"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../../headerLength - 6}"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../../headerLength gt 6) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="parameter" type="s7:Parameter" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CotpTpduDisconnectResponse">
+ <xs:sequence>
+ <xs:element name="destinationReference" type="s7:short"/>
+ <xs:element name="sourceReference" type="s7:short"/>
+ <xs:element name="parameters" minOccurs="0"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../../headerLength - 5}"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../../headerLength gt 5) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="parameter" type="s7:Parameter" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CotpTpduError">
+ <xs:sequence>
+ <xs:element name="destinationReference" type="s7:short"/>
+ <xs:element name="rejectCause" type="s7:byte"/>
+ <xs:element name="parameters" minOccurs="0"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../../headerLength - 4}"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../../headerLength gt 4) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="parameter" type="s7:Parameter" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CotpTpduData">
+ <xs:sequence>
+ <xs:element name="endOfTransmission" type="xs:unsignedInt"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bits" dfdl:length="1"/>
+ <xs:element name="tpduRef" type="xs:unsignedInt"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bits" dfdl:length="7"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Parameter">
+ <xs:sequence>
+ <xs:element name="type" type="s7:CotpParameterType"/>
+ <xs:element name="parameterLength" type="s7:byte"/>
+ <xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
+ <xs:element dfdl:choiceBranchKey="192" name="cotpParameterTpduSize" type="s7:CotpParameterTpduSize"/>
+ <xs:element dfdl:choiceBranchKey="193" name="cotpParameterCallingTsap" type="s7:CotpParameterCallingTsap"/>
+ <xs:element dfdl:choiceBranchKey="194" name="cotpParameterCalledTsap" type="s7:CotpParameterCalledTsap"/>
+ <xs:element dfdl:choiceBranchKey="195" name="cotpParameterChecksum" type="s7:CotpParameterChecksum"/>
+ <xs:element dfdl:choiceBranchKey="224" name="cotpParameterDisconnectAdditionalInformation"
+ type="s7:CotpParameterDisconnectAdditionalInformation"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CotpParameterTpduSize">
+ <xs:sequence>
+ <xs:element name="tpduSize" type="s7:byte"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CotpParameterCallingTsap">
+ <xs:sequence>
+ <xs:element name="tsapId" type="s7:short"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CotpParameterCalledTsap">
+ <xs:sequence>
+ <xs:element name="tsapId" type="s7:short"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CotpParameterChecksum">
+ <xs:sequence>
+ <xs:element name="checksum" type="s7:byte"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CotpParameterDisconnectAdditionalInformation">
+ <xs:sequence>
+ <xs:element name="data" type="xs:hexBinary"
+ dfdl:byteOrder="bigEndian" dfdl:lengthUnits="bytes" dfdl:lengthKind="explicit"
+ dfdl:length="{../../parameterLength}"/>
+ </xs:sequence>
+ </xs:complexType>
<!--
@@ -352,227 +366,229 @@
we map to strings and use that as choice-key.
-->
<xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
- <xs:element dfdl:choiceBranchKey="1" ref="s7:S7RequestMessage"/>
- <xs:element dfdl:choiceBranchKey="3" ref="s7:S7ResponseMessage"/>
- <xs:element dfdl:choiceBranchKey="7" ref="s7:S7UserDataMessage"/>
+ <xs:element dfdl:choiceBranchKey="1" name="s7RequestMessage" type="s7:S7RequestMessage"/>
+ <xs:element dfdl:choiceBranchKey="3" name="s7ResponseMessage" type="s7:S7ResponseMessage"/>
+ <xs:element dfdl:choiceBranchKey="7" name="s7UserDataMessage" type="s7:S7UserDataMessage"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
- <xs:element name="S7RequestMessage">
- <xs:complexType>
- <xs:sequence>
- <!-- Reserved value always 0x0000 -->
- <xs:element name="reserved" type="s7:short" fixed="0"/>
- <xs:element name="tpduReference" type="s7:short"/>
- <xs:element name="parametersLength" type="s7:short"/>
- <xs:element name="payloadsLength" type="s7:short"/>
- <xs:element name="parameters" minOccurs="0"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../parametersLength}"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../parametersLength gt 0) then 1 else 0}">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="parameter" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="type" type="s7:byte"/>
- <xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
- <xs:element dfdl:choiceBranchKey="240"
- ref="s7:S7GeneralParameterSetupCommunication"/>
- <xs:element dfdl:choiceBranchKey="4" ref="s7:S7RequestParameterReadVar"/>
- <xs:element dfdl:choiceBranchKey="5" ref="s7:S7RequestParameterWriteVar"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!--
- As we might be outputting an empty payload block for a parameter that might not have a payload,
- we have to output this element if the parameters are not empty. The case that the payloads are
- not empty but the parameters are can't happen during normal operation.
- -->
- <xs:element name="payloads" minOccurs="0"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../payloadsLength}"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../parametersLength gt 0) then 1 else 0}">
- <xs:complexType>
- <xs:sequence>
- <!--
- For every parameter we'll be outputting a payload block, even if this might be empty.
- This is required in order to find the matching parameter for every payload we might
- be having. We need to match these as otherwise we couldn't determine the type of a
- payload as this has no type information and we need to be able to access the number
- of items for a read/write request in order to process the correct number of items in
- the payload.
- -->
- <xs:element name="payload" maxOccurs="unbounded"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{fn:count(../../parameters[1]/parameter)}">
- <xs:complexType>
- <xs:sequence>
- <xs:choice
- dfdl:choiceDispatchKey="{xs:string(../../parameters[1]/parameter[dfdl:occursIndex()]/type)}">
- <xs:element dfdl:choiceBranchKey="240"
- ref="s7:S7GeneralPayloadSetupCommunication"/>
- <xs:element dfdl:choiceBranchKey="4" ref="s7:S7RequestPayloadReadVar"/>
- <xs:element dfdl:choiceBranchKey="5" ref="s7:S7RequestPayloadWriteVar"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="S7ResponseMessage">
- <xs:complexType>
- <xs:sequence>
- <!-- Reserved value always 0x0000 -->
- <xs:element name="reserved" type="s7:short" fixed="0"/>
- <xs:element name="tpduReference" type="s7:short"/>
- <xs:element name="parametersLength" type="s7:short"/>
- <xs:element name="payloadsLength" type="s7:short"/>
- <!-- UserData (type 7) responses don't have the error class and code -->
- <xs:element name="errorClass" type="s7:byte" minOccurs="0"
- dfdl:occursCountKind="expression" dfdl:occursCount="{if(../../type eq 3) then 1 else 0}"/>
- <xs:element name="errorCode" type="s7:byte" minOccurs="0"
- dfdl:occursCountKind="expression" dfdl:occursCount="{if(../../type eq 3) then 1 else 0}"/>
- <xs:element name="parameters" minOccurs="0"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../parametersLength}"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../parametersLength gt 0) then 1 else 0}">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="parameter" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="type" type="s7:byte"/>
- <xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
- <xs:element dfdl:choiceBranchKey="240"
- ref="s7:S7GeneralParameterSetupCommunication"/>
- <xs:element dfdl:choiceBranchKey="4" ref="s7:S7ResponseParameterReadVar"/>
- <xs:element dfdl:choiceBranchKey="5" ref="s7:S7ResponseParameterWriteVar"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!--
- As we might be outputting an empty payload block for a parameter that might not have a payload,
- we have to output this element if the parameters are not empty. The case that the payloads are
- not empty but the parameters are can't happen during normal operation.
- -->
- <xs:element name="payloads" minOccurs="0"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../payloadsLength}"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../parametersLength gt 0) then 1 else 0}">
- <xs:complexType>
- <xs:sequence>
- <!--
- For every parameter we'll be outputting a payload block, even if this might be empty.
- This is required in order to find the matching parameter for every payload we might
- be having. We need to match these as otherwise we couldn't determin the type of a
- payload as this has no type information and we need to be able to access the number
- of items for a read/write request in order to process the correct number of items in
- the payload.
- -->
- <xs:element name="payload" maxOccurs="unbounded"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{fn:count(../../parameters[1]/parameter)}">
- <xs:complexType>
- <xs:sequence>
- <xs:choice
- dfdl:choiceDispatchKey="{xs:string(../../parameters[1]/parameter[dfdl:occursIndex()]/type)}">
- <xs:element dfdl:choiceBranchKey="240"
- ref="s7:S7GeneralPayloadSetupCommunication"/>
- <xs:element dfdl:choiceBranchKey="4" ref="s7:S7ResponsePayloadReadVar"/>
- <xs:element dfdl:choiceBranchKey="5" ref="s7:S7ResponsePayloadWriteVar"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
-
- <xs:element name="S7UserDataMessage">
- <xs:complexType>
- <xs:sequence>
- <!-- Reserved value always 0x0000 -->
- <xs:element name="reserved" type="s7:short" fixed="0"/>
- <xs:element name="tpduReference" type="s7:short"/>
- <xs:element name="parametersLength" type="s7:short"/>
- <xs:element name="payloadsLength" type="s7:short"/>
- <xs:element name="parameters" minOccurs="0"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../parametersLength}"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../parametersLength gt 0) then 1 else 0}">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="parameter" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="type" type="s7:byte"/>
- <xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
- <xs:element dfdl:choiceBranchKey="0"
- ref="s7:S7UserDataParameterCPUService"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!--
- As we might be outputting an empty payload block for a parameter that might not have a payload,
- we have to output this element if the parameters are not empty. The case that the payloads are
- not empty but the parameters are can't happen during normal operation.
- -->
- <xs:element name="payloads" minOccurs="0"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../payloadsLength}"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../parametersLength gt 0) then 1 else 0}">
- <xs:complexType>
- <xs:sequence>
- <!--
- For every parameter we'll be outputting a payload block, even if this might be empty.
- This is required in order to find the matching parameter for every payload we might
- be having. We need to match these as otherwise we couldn't determine the type of a
- payload as this has no type information and we need to be able to access the number
- of items for a read/write request in order to process the correct number of items in
- the payload.
- -->
- <xs:element name="payload" maxOccurs="unbounded"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{fn:count(../../parameters[1]/parameter)}">
- <xs:complexType>
- <xs:sequence>
- <xs:choice
- dfdl:choiceDispatchKey="{xs:string(../../parameters[1]/parameter[dfdl:occursIndex()]/type)}">
- <xs:element dfdl:choiceBranchKey="0"
- ref="s7:S7UserDataPayloadCpuServices"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
+ <xs:complexType name="S7RequestMessage">
+ <xs:sequence>
+ <!-- Reserved value always 0x0000 -->
+ <xs:element name="reserved" type="s7:short" fixed="0"/>
+ <xs:element name="tpduReference" type="s7:short"/>
+ <xs:element name="parametersLength" type="s7:short"/>
+ <xs:element name="payloadsLength" type="s7:short"/>
+ <xs:element name="parameters" minOccurs="0"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../parametersLength}"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../parametersLength gt 0) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="parameter" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="type" type="s7:byte"/>
+ <xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
+ <xs:element dfdl:choiceBranchKey="240" name="s7GeneralParameterSetupCommunication"
+ type="s7:S7GeneralParameterSetupCommunication"/>
+ <xs:element dfdl:choiceBranchKey="4" name="s7RequestParameterReadVar"
+ type="s7:S7RequestParameterReadVar"/>
+ <xs:element dfdl:choiceBranchKey="5" name="s7RequestParameterWriteVar"
+ type="s7:S7RequestParameterWriteVar"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ As we might be outputting an empty payload block for a parameter that might not have a payload,
+ we have to output this element if the parameters are not empty. The case that the payloads are
+ not empty but the parameters are can't happen during normal operation.
+ -->
+ <xs:element name="payloads" minOccurs="0"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../payloadsLength}"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../parametersLength gt 0) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <!--
+ For every parameter we'll be outputting a payload block, even if this might be empty.
+ This is required in order to find the matching parameter for every payload we might
+ be having. We need to match these as otherwise we couldn't determine the type of a
+ payload as this has no type information and we need to be able to access the number
+ of items for a read/write request in order to process the correct number of items in
+ the payload.
+ -->
+ <xs:element name="payload" maxOccurs="unbounded"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{fn:count(../../parameters[1]/parameter)}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice
+ dfdl:choiceDispatchKey="{xs:string(../../parameters[1]/parameter[dfdl:occursIndex()]/type)}">
+ <xs:element dfdl:choiceBranchKey="240" name="s7GeneralPayloadSetupCommunication"
+ type="s7:S7GeneralPayloadSetupCommunication"/>
+ <xs:element dfdl:choiceBranchKey="4" name="s7RequestPayloadReadVar"
+ type="s7:S7RequestPayloadReadVar"/>
+ <xs:element dfdl:choiceBranchKey="5" name="s7RequestPayloadWriteVar"
+ type="s7:S7RequestPayloadWriteVar"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7ResponseMessage">
+ <xs:sequence>
+ <!-- Reserved value always 0x0000 -->
+ <xs:element name="reserved" type="s7:short" fixed="0"/>
+ <xs:element name="tpduReference" type="s7:short"/>
+ <xs:element name="parametersLength" type="s7:short"/>
+ <xs:element name="payloadsLength" type="s7:short"/>
+ <!-- UserData (type 7) responses don't have the error class and code -->
+ <xs:element name="errorClass" type="s7:byte" minOccurs="0"
+ dfdl:occursCountKind="expression" dfdl:occursCount="{if(../../type eq 3) then 1 else 0}"/>
+ <xs:element name="errorCode" type="s7:byte" minOccurs="0"
+ dfdl:occursCountKind="expression" dfdl:occursCount="{if(../../type eq 3) then 1 else 0}"/>
+ <xs:element name="parameters" minOccurs="0"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../parametersLength}"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../parametersLength gt 0) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="parameter" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="type" type="s7:byte"/>
+ <xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
+ <xs:element dfdl:choiceBranchKey="240" name="s7GeneralParameterSetupCommunication"
+ type="s7:S7GeneralParameterSetupCommunication"/>
+ <xs:element dfdl:choiceBranchKey="4" name="s7ResponseParameterReadVar"
+ type="s7:S7ResponseParameterReadVar"/>
+ <xs:element dfdl:choiceBranchKey="5" name="s7ResponseParameterWriteVar"
+ type="s7:S7ResponseParameterWriteVar"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ As we might be outputting an empty payload block for a parameter that might not have a payload,
+ we have to output this element if the parameters are not empty. The case that the payloads are
+ not empty but the parameters are can't happen during normal operation.
+ -->
+ <xs:element name="payloads" minOccurs="0"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../payloadsLength}"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../parametersLength gt 0) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <!--
+ For every parameter we'll be outputting a payload block, even if this might be empty.
+ This is required in order to find the matching parameter for every payload we might
+ be having. We need to match these as otherwise we couldn't determin the type of a
+ payload as this has no type information and we need to be able to access the number
+ of items for a read/write request in order to process the correct number of items in
+ the payload.
+ -->
+ <xs:element name="payload" maxOccurs="unbounded"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{fn:count(../../parameters[1]/parameter)}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice
+ dfdl:choiceDispatchKey="{xs:string(../../parameters[1]/parameter[dfdl:occursIndex()]/type)}">
+ <xs:element dfdl:choiceBranchKey="240" name="s7GeneralPayloadSetupCommunication"
+ type="s7:S7GeneralPayloadSetupCommunication"/>
+ <xs:element dfdl:choiceBranchKey="4" name="s7ResponsePayloadReadVar"
+ type="s7:S7ResponsePayloadReadVar"/>
+ <xs:element dfdl:choiceBranchKey="5" name="s7ResponsePayloadWriteVar"
+ type="s7:S7ResponsePayloadWriteVar"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="S7UserDataMessage">
+ <xs:sequence>
+ <!-- Reserved value always 0x0000 -->
+ <xs:element name="reserved" type="s7:short" fixed="0"/>
+ <xs:element name="tpduReference" type="s7:short"/>
+ <xs:element name="parametersLength" type="s7:short"/>
+ <xs:element name="payloadsLength" type="s7:short"/>
+ <xs:element name="parameters" minOccurs="0"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../parametersLength}"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../parametersLength gt 0) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="parameter" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="type" type="s7:byte"/>
+ <xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
+ <xs:element dfdl:choiceBranchKey="0" name="s7UserDataParameterCPUService"
+ type="s7:S7UserDataParameterCPUService"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!--
+ As we might be outputting an empty payload block for a parameter that might not have a payload,
+ we have to output this element if the parameters are not empty. The case that the payloads are
+ not empty but the parameters are can't happen during normal operation.
+ -->
+ <xs:element name="payloads" minOccurs="0"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="{../payloadsLength}"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../parametersLength gt 0) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <!--
+ For every parameter we'll be outputting a payload block, even if this might be empty.
+ This is required in order to find the matching parameter for every payload we might
+ be having. We need to match these as otherwise we couldn't determine the type of a
+ payload as this has no type information and we need to be able to access the number
+ of items for a read/write request in order to process the correct number of items in
+ the payload.
+ -->
+ <xs:element name="payload" maxOccurs="unbounded"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{fn:count(../../parameters[1]/parameter)}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice
+ dfdl:choiceDispatchKey="{xs:string(../../parameters[1]/parameter[dfdl:occursIndex()]/type)}">
+ <xs:element dfdl:choiceBranchKey="0" name="s7UserDataPayloadCpuServices"
+ type="s7:S7UserDataPayloadCpuServices"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
<!--
@@ -580,162 +596,146 @@
-->
- <xs:element name="S7GeneralParameterSetupCommunication">
- <xs:complexType>
- <xs:sequence>
- <!-- Reserved value always 0x00 -->
- <xs:element name="reserved" type="s7:byte" fixed="0"/>
- <xs:element name="maxAmqCaller" type="s7:short"/>
- <xs:element name="maxAmqCallee" type="s7:short"/>
- <xs:element name="pduLength" type="s7:short"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="S7UserDataParameterCPUService">
- <xs:complexType>
- <xs:sequence>
- <!-- Fixed header 0x0112 274 -> -->
- <xs:element name="header" type="s7:short"/><!-- fixed="274"-->
- <xs:element name="paramLength" type="s7:byte"/><!-- fixed="4"-->
- <!-- Request: 0x11 -> 17 -->
- <xs:element name="typeCode" type="s7:byte"/><!-- fixed="17"-->
- <xs:element name="type" type="xs:unsignedByte" dfdl:lengthKind="explicit" dfdl:lengthUnits="bits"
- dfdl:length="4"/>
- <!-- First 4 bits: Request 0x40, last 4 bits: Function Group 0x04 = 0x44 -> 68 -->
- <xs:element name="functionGroup" type="xs:unsignedByte" dfdl:lengthKind="explicit"
- dfdl:lengthUnits="bits" dfdl:length="4"/><!-- fixed="68"-->
- <!-- READ SSL = 0x01 -->
- <xs:element name="subFunctionGroup" type="s7:byte"/><!-- fixed="1"-->
- <xs:element name="sequenceNumber" type="s7:byte"/>
- <xs:element name="dataUnitReferenceNumber" type="s7:byte" minOccurs="0"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../sequenceNumber eq 2) then 1 else 0}"/>
- <xs:element name="lastDataUnit" type="s7:byte" minOccurs="0"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../sequenceNumber eq 2) then 1 else 0}"/>
- <xs:element name="errorCode" type="s7:short" minOccurs="0"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../sequenceNumber eq 2) then 1 else 0}"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="S7RequestParameterReadVar">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="numItems" type="s7:byte"/>
- <xs:element name="items" minOccurs="0"
- dfdl:occursCountKind="expression" dfdl:occursCount="{if(../numItems gt 0) then 1 else 0}">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="item" minOccurs="0" maxOccurs="unbounded"
- dfdl:occursCountKind="expression" dfdl:occursCount="{../../numItems}">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="type" type="s7:byte"/>
- <xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
- <xs:element dfdl:choiceBranchKey="18"
- ref="s7:S7RequestParameterReadVarAnyItem"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="S7RequestParameterReadVarAnyItem">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="paramLength" type="s7:byte"/><!-- fixed="10"-->
- <!-- Addressing Mode: Any 0x10 -> 16 -->
- <xs:element name="addressingMode" type="s7:byte"/><!-- fixed="16"-->
- <xs:element name="dataType" type="s7:byte"/>
- <xs:element name="numElements" type="s7:short"/>
- <xs:element name="dataBlockNumber" type="s7:short"/>
- <xs:element name="memoryArea" type="s7:byte"/>
- <!--
- The next 3 bytes (24 bits) contain the byte- and bit-offset,
- were the last byte contains the bit-offset in the last 3 bits
- and the byteOffset is encoded in the higher level 21 bits
- -->
- <xs:element name="byteOffset" type="xs:unsignedInt"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bits" dfdl:length="21"/>
- <xs:element name="bitOffset" type="xs:unsignedInt"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bits" dfdl:length="3"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="S7ResponseParameterReadVar">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="numItems" type="s7:byte"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="S7RequestParameterWriteVar">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="numItems" type="s7:byte"/>
- <xs:element name="items" minOccurs="0"
- dfdl:occursCountKind="expression" dfdl:occursCount="{if(../numItems gt 0) then 1 else 0}">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="item" minOccurs="0" maxOccurs="unbounded"
- dfdl:occursCountKind="expression" dfdl:occursCount="{../../numItems}">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="type" type="s7:byte"/>
- <xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
- <xs:element dfdl:choiceBranchKey="18"
- ref="s7:S7RequestParameterWriteVarAnyItem"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="S7RequestParameterWriteVarAnyItem">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="itemLength" type="s7:byte"/><!-- fixed="10"-->
- <!-- Addressing Mode: Any 0x10 -> 16 -->
- <xs:element name="addressingMode" type="s7:byte"/><!-- fixed="16"-->
- <xs:element name="dataType" type="s7:byte"/>
- <xs:element name="numElements" type="s7:short"/>
- <xs:element name="dataBlockNumber" type="s7:short"/>
- <xs:element name="memoryArea" type="s7:byte"/>
- <!--
- The next 3 bytes (24 bits) contain the byte- and bit-offset,
- were the last byte contains the bit-offset in the last 3 bits
- and the byteOffset is encoded in the higher level 21 bits
- -->
- <xs:element name="byteOffset" type="xs:unsignedInt"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bits" dfdl:length="21"/>
- <xs:element name="bitOffset" type="xs:unsignedInt"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bits" dfdl:length="3"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="S7ResponseParameterWriteVar">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="numItems" type="s7:byte"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
+ <xs:complexType name="S7GeneralParameterSetupCommunication">
+ <xs:sequence>
+ <!-- Reserved value always 0x00 -->
+ <xs:element name="reserved" type="s7:byte" fixed="0"/>
+ <xs:element name="maxAmqCaller" type="s7:short"/>
+ <xs:element name="maxAmqCallee" type="s7:short"/>
+ <xs:element name="pduLength" type="s7:short"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7UserDataParameterCPUService">
+ <xs:sequence>
+ <!-- Fixed header 0x0112 274 -> -->
+ <xs:element name="header" type="s7:short"/><!-- fixed="274"-->
+ <xs:element name="paramLength" type="s7:byte"/><!-- fixed="4"-->
+ <!-- Request: 0x11 -> 17 -->
+ <xs:element name="typeCode" type="s7:byte"/><!-- fixed="17"-->
+ <xs:element name="type" type="xs:unsignedByte" dfdl:lengthKind="explicit" dfdl:lengthUnits="bits"
+ dfdl:length="4"/>
+ <!-- First 4 bits: Request 0x40, last 4 bits: Function Group 0x04 = 0x44 -> 68 -->
+ <xs:element name="functionGroup" type="xs:unsignedByte" dfdl:lengthKind="explicit"
+ dfdl:lengthUnits="bits" dfdl:length="4"/><!-- fixed="68"-->
+ <!-- READ SSL = 0x01 -->
+ <xs:element name="subFunctionGroup" type="s7:byte"/><!-- fixed="1"-->
+ <xs:element name="sequenceNumber" type="s7:byte"/>
+ <xs:element name="dataUnitReferenceNumber" type="s7:byte" minOccurs="0"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../sequenceNumber eq 2) then 1 else 0}"/>
+ <xs:element name="lastDataUnit" type="s7:byte" minOccurs="0"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../sequenceNumber eq 2) then 1 else 0}"/>
+ <xs:element name="errorCode" type="s7:short" minOccurs="0"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../sequenceNumber eq 2) then 1 else 0}"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7RequestParameterReadVar">
+ <xs:sequence>
+ <xs:element name="numItems" type="s7:byte"/>
+ <xs:element name="items" minOccurs="0"
+ dfdl:occursCountKind="expression" dfdl:occursCount="{if(../numItems gt 0) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="item" minOccurs="0" maxOccurs="unbounded"
+ dfdl:occursCountKind="expression" dfdl:occursCount="{../../numItems}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="type" type="s7:byte"/>
+ <xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
+ <xs:element dfdl:choiceBranchKey="18" name="s7RequestParameterReadVarAnyItem"
+ type="s7:S7RequestParameterReadVarAnyItem"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7RequestParameterReadVarAnyItem">
+ <xs:sequence>
+ <xs:element name="paramLength" type="s7:byte"/><!-- fixed="10"-->
+ <!-- Addressing Mode: Any 0x10 -> 16 -->
+ <xs:element name="addressingMode" type="s7:byte"/><!-- fixed="16"-->
+ <xs:element name="dataType" type="s7:byte"/>
+ <xs:element name="numElements" type="s7:short"/>
+ <xs:element name="dataBlockNumber" type="s7:short"/>
+ <xs:element name="memoryArea" type="s7:byte"/>
+ <!--
+ The next 3 bytes (24 bits) contain the byte- and bit-offset,
+ were the last byte contains the bit-offset in the last 3 bits
+ and the byteOffset is encoded in the higher level 21 bits
+ -->
+ <xs:element name="byteOffset" type="xs:unsignedInt"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bits" dfdl:length="21"/>
+ <xs:element name="bitOffset" type="xs:unsignedInt"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bits" dfdl:length="3"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7ResponseParameterReadVar">
+ <xs:sequence>
+ <xs:element name="numItems" type="s7:byte"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7RequestParameterWriteVar">
+ <xs:sequence>
+ <xs:element name="numItems" type="s7:byte"/>
+ <xs:element name="items" minOccurs="0"
+ dfdl:occursCountKind="expression" dfdl:occursCount="{if(../numItems gt 0) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="item" minOccurs="0" maxOccurs="unbounded"
+ dfdl:occursCountKind="expression" dfdl:occursCount="{../../numItems}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="type" type="s7:byte"/>
+ <xs:choice dfdl:choiceDispatchKey="{xs:string(type)}">
+ <xs:element dfdl:choiceBranchKey="18" name="s7RequestParameterWriteVarAnyItem"
+ type="s7:S7RequestParameterWriteVarAnyItem"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7RequestParameterWriteVarAnyItem">
+ <xs:sequence>
+ <xs:element name="itemLength" type="s7:byte"/><!-- fixed="10"-->
+ <!-- Addressing Mode: Any 0x10 -> 16 -->
+ <xs:element name="addressingMode" type="s7:byte"/><!-- fixed="16"-->
+ <xs:element name="dataType" type="s7:byte"/>
+ <xs:element name="numElements" type="s7:short"/>
+ <xs:element name="dataBlockNumber" type="s7:short"/>
+ <xs:element name="memoryArea" type="s7:byte"/>
+ <!--
+ The next 3 bytes (24 bits) contain the byte- and bit-offset,
+ were the last byte contains the bit-offset in the last 3 bits
+ and the byteOffset is encoded in the higher level 21 bits
+ -->
+ <xs:element name="byteOffset" type="xs:unsignedInt"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bits" dfdl:length="21"/>
+ <xs:element name="bitOffset" type="xs:unsignedInt"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bits" dfdl:length="3"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7ResponseParameterWriteVar">
+ <xs:sequence>
+ <xs:element name="numItems" type="s7:byte"/>
+ </xs:sequence>
+ </xs:complexType>
<!--
@@ -743,167 +743,167 @@
-->
- <xs:element name="S7GeneralPayloadSetupCommunication"
- type="xs:hexBinary" dfdl:lengthKind="explicit" dfdl:length="0"/>
-
- <xs:element name="S7UserDataPayloadCpuServices">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="returnCode" type="s7:byte"/>
- <xs:element name="transportSize" type="s7:byte"/><!-- fixed="9"-->
- <xs:element name="length" type="s7:short"/>
- <xs:element name="sslId" type="s7:short" minOccurs="0"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../returnCode eq 255) then 1 else 0}"/>
- <xs:element name="sslIndex" type="s7:short" minOccurs="0"
- dfdl:occursCountKind="expression"
- dfdl:occursCount="{if(../returnCode eq 255) then 1 else 0}"/>
- <xs:element name="partialList" minOccurs="0"
- dfdl:occursCountKind="expression" dfdl:occursCount="{if((../returnCode eq 255) and (../length gt 4)) then 1 else 0}">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="partialListLengthInBytes" type="s7:short"/>
- <xs:element name="partialListCount" type="s7:short"/>
- <xs:element name="sslDataRecords">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="sslDataRecord" maxOccurs="unbounded"
- dfdl:occursCountKind="expression" dfdl:occursCount="{../../partialListCount}">
- <xs:complexType>
- <xs:sequence>
- <xs:choice dfdl:choiceDispatchKey="{xs:string(../../../sslId[1])}">
- <xs:element dfdl:choiceBranchKey="17"
- ref="s7:S7ResponsePayloadCpuServicesSslDataRecordModuleIdentification"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="S7ResponsePayloadCpuServicesSslDataRecordModuleIdentification">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="index" type="s7:short"/>
- <xs:element name="articleNumber" type="xs:string" dfdl:textTrimKind="none" dfdl:alignmentUnits="bytes"
- dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="20"/>
- <xs:element name="bgType" type="s7:short"/>
- <xs:element name="moduleOrOsVersion" type="s7:short"/>
- <xs:element name="pgDescriptionFileVersion" type="s7:short"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="S7RequestPayloadReadVar"
- type="xs:hexBinary" dfdl:lengthKind="explicit" dfdl:length="0"/>
-
- <xs:element name="S7ResponsePayloadReadVar">
- <xs:complexType>
- <xs:sequence>
- <!-- The number of items which should be read is transmitted in the matching parameter -->
- <xs:element name="numItems" type="s7:byte"
- dfdl:inputValueCalc="{
- ../../../../parameters[1]/parameter[dfdl:occursIndex()]/s7:S7ResponseParameterReadVar/numItems
+ <xs:complexType name="S7GeneralPayloadSetupCommunication">
+ <xs:sequence>
+ <xs:element name="data" type="xs:hexBinary" dfdl:lengthKind="explicit" dfdl:length="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7UserDataPayloadCpuServices">
+ <xs:sequence>
+ <xs:element name="returnCode" type="s7:byte"/>
+ <xs:element name="transportSize" type="s7:byte"/><!-- fixed="9"-->
+ <xs:element name="length" type="s7:short"/>
+ <xs:element name="sslId" type="s7:short" minOccurs="0"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../returnCode eq 255) then 1 else 0}"/>
+ <xs:element name="sslIndex" type="s7:short" minOccurs="0"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if(../returnCode eq 255) then 1 else 0}"/>
+ <xs:element name="partialList" minOccurs="0"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{if((../returnCode eq 255) and (../length gt 4)) then 1 else 0}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="partialListLengthInBytes" type="s7:short"/>
+ <xs:element name="partialListCount" type="s7:short"/>
+ <xs:element name="sslDataRecords">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="sslDataRecord" maxOccurs="unbounded"
+ dfdl:occursCountKind="expression"
+ dfdl:occursCount="{../../partialListCount}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice dfdl:choiceDispatchKey="{xs:string(../../../sslId[1])}">
+ <xs:element dfdl:choiceBranchKey="17"
+ name="s7ResponsePayloadCpuServicesSslDataRecordModuleIdentification"
+ type="s7:S7ResponsePayloadCpuServicesSslDataRecordModuleIdentification"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7ResponsePayloadCpuServicesSslDataRecordModuleIdentification">
+ <xs:sequence>
+ <xs:element name="index" type="s7:short"/>
+ <xs:element name="articleNumber" type="xs:string" dfdl:textTrimKind="none" dfdl:alignmentUnits="bytes"
+ dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:length="20"/>
+ <xs:element name="bgType" type="s7:short"/>
+ <xs:element name="moduleOrOsVersion" type="s7:short"/>
+ <xs:element name="pgDescriptionFileVersion" type="s7:short"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7RequestPayloadReadVar">
+ <xs:sequence>
+ <xs:element name="data"
+ type="xs:hexBinary" dfdl:lengthKind="explicit" dfdl:length="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7ResponsePayloadReadVar">
+ <xs:sequence>
+ <!-- The number of items which should be read is transmitted in the matching parameter -->
+ <xs:element name="numItems" type="s7:byte"
+ dfdl:inputValueCalc="{
+ ../../../../parameters[1]/parameter[dfdl:occursIndex()]/s7ResponseParameterReadVar/numItems
}"/>
- <xs:element name="item" minOccurs="0" maxOccurs="unbounded"
- dfdl:occursCountKind="expression" dfdl:occursCount="{../numItems}">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="returnCode" type="s7:byte"/>
- <xs:element name="transportSize" type="s7:byte"/>
- <xs:element name="rawLength" type="s7:short"/>
- <!--
- For some reason the types BIT, BYTE_WORD_DWORD and INTEGER are transferred in "bits",
- the rest is transferred in "bytes"
- -->
- <xs:element name="lengthInBytes" type="s7:short" dfdl:inputValueCalc="{
+ <xs:element name="item" minOccurs="0" maxOccurs="unbounded"
+ dfdl:occursCountKind="expression" dfdl:occursCount="{../numItems}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="returnCode" type="s7:byte"/>
+ <xs:element name="transportSize" type="s7:byte"/>
+ <xs:element name="rawLength" type="s7:short"/>
+ <!--
+ For some reason the types BIT, BYTE_WORD_DWORD and INTEGER are transferred in "bits",
+ the rest is transferred in "bytes"
+ -->
+ <xs:element name="lengthInBytes" type="s7:short" dfdl:inputValueCalc="{
xs:unsignedShort(if((../transportSize eq 3) or (../transportSize eq 4) or (../transportSize eq 5))
then fn:ceiling(xs:double(../rawLength div 8))
else ../rawLength)}"/>
- <xs:element name="data" type="xs:hexBinary"
- dfdl:byteOrder="bigEndian" dfdl:lengthUnits="bytes" dfdl:lengthKind="explicit"
- dfdl:length="{../lengthInBytes}"/>
- <!--
- Transport sizes: BIT, BYTE_WORD_DWORD and OCTET_STRING require a blank byte.
- However only if this is not the last item in the result.
- -->
- <xs:element name="fillByte" type="s7:byte" minOccurs="0"
- dfdl:occursCountKind="expression" dfdl:occursCount="{
+ <xs:element name="data" type="xs:hexBinary"
+ dfdl:byteOrder="bigEndian" dfdl:lengthUnits="bytes" dfdl:lengthKind="explicit"
+ dfdl:length="{../lengthInBytes}"/>
+ <!--
+ Transport sizes: BIT, BYTE_WORD_DWORD and OCTET_STRING require a blank byte.
+ However only if this is not the last item in the result.
+ -->
+ <xs:element name="fillByte" type="s7:byte" minOccurs="0"
+ dfdl:occursCountKind="expression" dfdl:occursCount="{
if(((../lengthInBytes mod 2) eq 1) and
(dfdl:occursIndex() ne ../../numItems)) then 1 else 0}"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="S7RequestPayloadWriteVar">
- <xs:complexType>
- <xs:sequence>
- <!-- The number of items which should be read is transmitted in the matching parameter -->
- <xs:element name="numItems" type="s7:byte"
- dfdl:inputValueCalc="{
- ../../../../parameters[1]/parameter[dfdl:occursIndex()]/s7:S7RequestParameterWriteVar/numItems
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7RequestPayloadWriteVar">
+ <xs:sequence>
+ <!-- The number of items which should be read is transmitted in the matching parameter -->
+ <xs:element name="numItems" type="s7:byte"
+ dfdl:inputValueCalc="{
+ ../../../../parameters[1]/parameter[dfdl:occursIndex()]/s7RequestParameterWriteVar/numItems
}"/>
- <xs:element name="item" minOccurs="0" maxOccurs="unbounded"
- dfdl:occursCountKind="expression" dfdl:occursCount="{../numItems}">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="returnCode" type="s7:byte"/>
- <xs:element name="transportSize" type="s7:byte"/>
- <xs:element name="rawLength" type="s7:short"/>
- <!--
- For some reason the types BIT, BYTE_WORD_DWORD and INTEGER are transferred in "bits",
- the rest is transferred in "bytes"
- -->
- <xs:element name="lengthInBytes" type="s7:short" dfdl:inputValueCalc="{
+ <xs:element name="item" minOccurs="0" maxOccurs="unbounded"
+ dfdl:occursCountKind="expression" dfdl:occursCount="{../numItems}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="returnCode" type="s7:byte"/>
+ <xs:element name="transportSize" type="s7:byte"/>
+ <xs:element name="rawLength" type="s7:short"/>
+ <!--
+ For some reason the types BIT, BYTE_WORD_DWORD and INTEGER are transferred in "bits",
+ the rest is transferred in "bytes"
+ -->
+ <xs:element name="lengthInBytes" type="s7:short" dfdl:inputValueCalc="{
xs:unsignedShort(if((../transportSize eq 3) or (../transportSize eq 4) or (../transportSize eq 5))
then fn:ceiling(../rawLength div 8)
else ../rawLength)}"/>
- <xs:element name="data" type="xs:hexBinary"
- dfdl:byteOrder="bigEndian" dfdl:lengthUnits="bytes" dfdl:lengthKind="explicit"
- dfdl:length="{../lengthInBytes}"/>
- <!--
- It seems that the item payload must always be an even number of bytes. So if it's
- not an even number, add a fill byte.
- -->
- <xs:element name="fillByte" type="s7:byte" minOccurs="0"
- dfdl:occursCountKind="expression" dfdl:occursCount="{
+ <xs:element name="data" type="xs:hexBinary"
+ dfdl:byteOrder="bigEndian" dfdl:lengthUnits="bytes" dfdl:lengthKind="explicit"
+ dfdl:length="{../lengthInBytes}"/>
+ <!--
+ It seems that the item payload must always be an even number of bytes. So if it's
+ not an even number, add a fill byte.
+ -->
+ <xs:element name="fillByte" type="s7:byte" minOccurs="0"
+ dfdl:occursCountKind="expression" dfdl:occursCount="{
if(((../lengthInBytes mod 2) eq 1) and
(dfdl:occursIndex() ne ../../numItems)) then 1 else 0}"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="S7ResponsePayloadWriteVar">
- <xs:complexType>
- <xs:sequence>
- <!-- The number of items which should be read is transmitted in the matching parameter -->
- <xs:element name="numItems" type="s7:byte"
- dfdl:inputValueCalc="{
- ../../../../parameters[1]/parameter[dfdl:occursIndex()]/s7:S7ResponseParameterWriteVar/numItems
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="S7ResponsePayloadWriteVar">
+ <xs:sequence>
+ <!-- The number of items which should be read is transmitted in the matching parameter -->
+ <xs:element name="numItems" type="s7:byte"
+ dfdl:inputValueCalc="{
+ ../../../../parameters[1]/parameter[dfdl:occursIndex()]/s7ResponseParameterWriteVar/numItems
}"/>
- <xs:element name="item" minOccurs="0" maxOccurs="unbounded"
- dfdl:occursCountKind="expression" dfdl:occursCount="{../numItems}">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="returnCode" type="s7:byte"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
+ <xs:element name="item" minOccurs="0" maxOccurs="unbounded"
+ dfdl:occursCountKind="expression" dfdl:occursCount="{../numItems}">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="returnCode" type="s7:byte"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
</xs:schema>
\ No newline at end of file
diff --git a/protocols/s7/src/main/resources/org/apache/plc4x/protocols/s7/protocol.scxml.xml b/protocols/s7/src/main/resources/org/apache/plc4x/protocols/s7/protocol.scxml.xml
index da741d4..0f8e98f 100644
--- a/protocols/s7/src/main/resources/org/apache/plc4x/protocols/s7/protocol.scxml.xml
+++ b/protocols/s7/src/main/resources/org/apache/plc4x/protocols/s7/protocol.scxml.xml
@@ -98,7 +98,7 @@
<userData>
<headerLength>17</headerLength>
<type>224</type>
- <s7:CotpTpduConnectionRequest>
+ <cotpTpduConnectionRequest>
<destinationReference>0</destinationReference>
<!-- Insert the value for "cotpLocalReference" as short here -->
<sourceReference>${cotpLocalReference}</sourceReference>
@@ -107,26 +107,26 @@
<parameter>
<type>194</type>
<parameterLength>2</parameterLength>
- <s7:CotpParameterCalledTsap>
+ <cotpParameterCalledTsap>
<tsapId>${cotpCalledTsap}</tsapId>
- </s7:CotpParameterCalledTsap>
+ </cotpParameterCalledTsap>
</parameter>
<parameter>
<type>193</type>
<parameterLength>2</parameterLength>
- <s7:CotpParameterCallingTsap>
+ <cotpParameterCallingTsap>
<tsapId>${cotpCallingTsap}</tsapId>
- </s7:CotpParameterCallingTsap>
+ </cotpParameterCallingTsap>
</parameter>
<parameter>
<type>192</type>
<parameterLength>1</parameterLength>
- <s7:CotpParameterTpduSize>
+ <cotpParameterTpduSize>
<tpduSize>${cotpTpduSize}</tpduSize>
- </s7:CotpParameterTpduSize>
+ </cotpParameterTpduSize>
</parameter>
</s7:parameters>
- </s7:CotpTpduConnectionRequest>
+ </cotpTpduConnectionRequest>
</userData>
</s7:TpktMessage>
</plc4x:send>
@@ -171,14 +171,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>1</type>
- <s7:S7RequestMessage>
+ <s7RequestMessage>
<reserved>0</reserved>
<tpduReference>0</tpduReference>
<parametersLength>8</parametersLength>
@@ -186,20 +186,22 @@
<parameters>
<parameter>
<type>240</type>
- <s7:S7GeneralParameterSetupCommunication>
+ <s7GeneralParameterSetupCommunication>
<reserved>0</reserved>
<maxAmqCaller>${s7MaxAmqCaller}</maxAmqCaller>
<maxAmqCallee>${s7MaxAmqCallee}</maxAmqCallee>
<pduLength>${s7PduLength}</pduLength>
- </s7:S7GeneralParameterSetupCommunication>
+ </s7GeneralParameterSetupCommunication>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7GeneralPayloadSetupCommunication/>
+ <s7GeneralPayloadSetupCommunication>
+ <data/>
+ </s7GeneralPayloadSetupCommunication>
</payload>
</payloads>
- </s7:S7RequestMessage>
+ </s7RequestMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -250,14 +252,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>7</type>
- <s7:S7UserDataMessage>
+ <s7UserDataMessage>
<reserved>0</reserved>
<tpduReference>1</tpduReference>
<parametersLength>8</parametersLength>
@@ -265,7 +267,7 @@
<parameters>
<parameter>
<type>0</type>
- <s7:S7UserDataParameterCPUService>
+ <s7UserDataParameterCPUService>
<header>274</header>
<paramLength>4</paramLength>
<typeCode>17</typeCode>
@@ -273,21 +275,21 @@
<functionGroup>4</functionGroup>
<subFunctionGroup>1</subFunctionGroup>
<sequenceNumber>0</sequenceNumber>
- </s7:S7UserDataParameterCPUService>
+ </s7UserDataParameterCPUService>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7UserDataPayloadCpuServices>
+ <s7UserDataPayloadCpuServices>
<returnCode>255</returnCode>
<transportSize>9</transportSize>
<length>4</length>
<sslId>17</sslId>
<sslIndex>0</sslIndex>
- </s7:S7UserDataPayloadCpuServices>
+ </s7UserDataPayloadCpuServices>
</payload>
</payloads>
- </s7:S7UserDataMessage>
+ </s7UserDataMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -346,14 +348,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>1</type>
- <s7:S7RequestMessage>
+ <s7RequestMessage>
<reserved>0</reserved>
<tpduReference>${requestId}</tpduReference>
<parametersLength>14</parametersLength>
@@ -361,12 +363,12 @@
<parameters>
<parameter>
<type>4</type>
- <s7:S7RequestParameterReadVar>
+ <s7RequestParameterReadVar>
<numItems>1</numItems>
<items>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>${container.request.fields[0].dataType.typeCode}</dataType><!--8 ${s7ReadDataType}-->
@@ -375,18 +377,18 @@
<memoryArea>${container.request.fields[0].memoryArea.code}</memoryArea><!--131 ${s7ReadMemoryArea}-->
<byteOffset>${container.request.fields[0].byteOffset}</byteOffset><!--16 ${s7ReadByteOffset}-->
<bitOffset>${container.request.fields[0].bitOffset}</bitOffset><!--0 ${s7ReadBitOffset}-->
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
</items>
- </s7:S7RequestParameterReadVar>
+ </s7RequestParameterReadVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7RequestPayloadReadVar/>
+ <s7RequestPayloadReadVar/>
</payload>
</payloads>
- </s7:S7RequestMessage>
+ </s7RequestMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -423,14 +425,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>1</type>
- <s7:S7RequestMessage>
+ <s7RequestMessage>
<reserved>0</reserved>
<tpduReference>${requestId}</tpduReference>
<parametersLength>14</parametersLength>
@@ -438,12 +440,12 @@
<parameters>
<parameter>
<type>5</type>
- <s7:S7RequestParameterWriteVar>
+ <s7RequestParameterWriteVar>
<numItems>1</numItems>
<items>
<item>
<type>18</type>
- <s7:S7RequestParameterWriteVarAnyItem>
+ <s7RequestParameterWriteVarAnyItem>
<itemLength>10</itemLength>
<addressingMode>16</addressingMode>
<dataType>8</dataType><!--8 ${s7WriteDataType}-->
@@ -452,15 +454,15 @@
<memoryArea>131</memoryArea><!--131 ${s7WriteMemoryArea}-->
<byteOffset>16</byteOffset><!--16 ${s7WriteByteOffset}-->
<bitOffset>0</bitOffset><!--0 ${s7WriteBitOffset}-->
- </s7:S7RequestParameterWriteVarAnyItem>
+ </s7RequestParameterWriteVarAnyItem>
</item>
</items>
- </s7:S7RequestParameterWriteVar>
+ </s7RequestParameterWriteVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7RequestPayloadWriteVar>
+ <s7RequestPayloadWriteVar>
<numItems>1</numItems>
<item>
<returnCode>0</returnCode>
@@ -469,10 +471,10 @@
<lengthInBytes>4</lengthInBytes><!--4 ${s7WriteLengthInBytes}-->
<data>79E9F642</data><!--79E9F642 ${s7WriteData}-->
</item>
- </s7:S7RequestPayloadWriteVar>
+ </s7RequestPayloadWriteVar>
</payload>
</payloads>
- </s7:S7RequestMessage>
+ </s7RequestMessage>
</userData>
</userData>
</s7:TpktMessage>
diff --git a/protocols/s7/src/test/java/org/apache/plc4x/protocols/s7/ManualTest.java b/protocols/s7/src/test/java/org/apache/plc4x/protocols/s7/ManualTest.java
index f95251d..c671787 100644
--- a/protocols/s7/src/test/java/org/apache/plc4x/protocols/s7/ManualTest.java
+++ b/protocols/s7/src/test/java/org/apache/plc4x/protocols/s7/ManualTest.java
@@ -42,6 +42,7 @@ public class ManualTest {
if (schemaUrl != null) {
URI schemaUri = schemaUrl.toURI();
ProcessorFactory pf = c.compileSource(schemaUri);
+ logDiagnosticInformation(pf);
DataProcessor dp = pf.onPath("/");
logDiagnosticInformation(dp);
diff --git a/protocols/s7/src/test/resources/org/apache/plc4x/protocols/s7/protocol.tdml b/protocols/s7/src/test/resources/org/apache/plc4x/protocols/s7/protocol.tdml
index 49e4a71..2a8c108 100644
--- a/protocols/s7/src/test/resources/org/apache/plc4x/protocols/s7/protocol.tdml
+++ b/protocols/s7/src/test/resources/org/apache/plc4x/protocols/s7/protocol.tdml
@@ -62,34 +62,34 @@
<userData>
<headerLength>17</headerLength>
<type>208</type>
- <s7:CotpTpduConnectionResponse>
+ <cotpTpduConnectionResponse>
<destinationReference>1</destinationReference>
<sourceReference>2</sourceReference>
<protocolClass>0</protocolClass>
- <s7:parameters>
+ <parameters>
<parameter>
<type>192</type>
<parameterLength>1</parameterLength>
- <s7:CotpParameterTpduSize>
+ <cotpParameterTpduSize>
<tpduSize>9</tpduSize>
- </s7:CotpParameterTpduSize>
+ </cotpParameterTpduSize>
</parameter>
<parameter>
<type>193</type>
<parameterLength>2</parameterLength>
- <s7:CotpParameterCallingTsap>
+ <cotpParameterCallingTsap>
<tsapId>256</tsapId>
- </s7:CotpParameterCallingTsap>
+ </cotpParameterCallingTsap>
</parameter>
<parameter>
<type>194</type>
<parameterLength>2</parameterLength>
- <s7:CotpParameterCalledTsap>
+ <cotpParameterCalledTsap>
<tsapId>258</tsapId>
- </s7:CotpParameterCalledTsap>
+ </cotpParameterCalledTsap>
</parameter>
- </s7:parameters>
- </s7:CotpTpduConnectionResponse>
+ </parameters>
+ </cotpTpduConnectionResponse>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -166,11 +166,11 @@
<userData>
<headerLength>6</headerLength>
<type>224</type>
- <s7:CotpTpduConnectionRequest>
+ <cotpTpduConnectionRequest>
<destinationReference>1</destinationReference>
<sourceReference>2</sourceReference>
<protocolClass>0</protocolClass>
- </s7:CotpTpduConnectionRequest>
+ </cotpTpduConnectionRequest>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -194,11 +194,11 @@
<userData>
<headerLength>6</headerLength>
<type>208</type>
- <s7:CotpTpduConnectionResponse>
+ <cotpTpduConnectionResponse>
<destinationReference>1</destinationReference>
<sourceReference>2</sourceReference>
<protocolClass>0</protocolClass>
- </s7:CotpTpduConnectionResponse>
+ </cotpTpduConnectionResponse>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -224,11 +224,11 @@
<userData>
<headerLength>6</headerLength>
<type>128</type>
- <s7:CotpTpduDisconnectRequest>
+ <cotpTpduDisconnectRequest>
<destinationReference>1</destinationReference>
<sourceReference>2</sourceReference>
<disconnectReason>0</disconnectReason>
- </s7:CotpTpduDisconnectRequest>
+ </cotpTpduDisconnectRequest>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -254,10 +254,10 @@
<userData>
<headerLength>5</headerLength>
<type>192</type>
- <s7:CotpTpduDisconnectResponse>
+ <cotpTpduDisconnectResponse>
<destinationReference>1</destinationReference>
<sourceReference>2</sourceReference>
- </s7:CotpTpduDisconnectResponse>
+ </cotpTpduDisconnectResponse>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -283,10 +283,10 @@
<userData>
<headerLength>4</headerLength>
<type>112</type>
- <s7:CotpTpduError>
+ <cotpTpduError>
<destinationReference>1</destinationReference>
<rejectCause>2</rejectCause>
- </s7:CotpTpduError>
+ </cotpTpduError>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -312,10 +312,10 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>0</endOfTransmission>
<tpduRef>2</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -341,10 +341,10 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>2</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -389,20 +389,20 @@
<userData>
<headerLength>9</headerLength>
<type>224</type>
- <s7:CotpTpduConnectionRequest>
+ <cotpTpduConnectionRequest>
<destinationReference>1</destinationReference>
<sourceReference>2</sourceReference>
<protocolClass>0</protocolClass>
- <s7:parameters>
+ <parameters>
<parameter>
<type>192</type>
<parameterLength>1</parameterLength>
- <s7:CotpParameterTpduSize>
+ <cotpParameterTpduSize>
<tpduSize>9</tpduSize>
- </s7:CotpParameterTpduSize>
+ </cotpParameterTpduSize>
</parameter>
- </s7:parameters>
- </s7:CotpTpduConnectionRequest>
+ </parameters>
+ </cotpTpduConnectionRequest>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -428,20 +428,20 @@
<userData>
<headerLength>10</headerLength>
<type>224</type>
- <s7:CotpTpduConnectionRequest>
+ <cotpTpduConnectionRequest>
<destinationReference>1</destinationReference>
<sourceReference>2</sourceReference>
<protocolClass>0</protocolClass>
- <s7:parameters>
+ <parameters>
<parameter>
<type>193</type>
<parameterLength>2</parameterLength>
- <s7:CotpParameterCallingTsap>
+ <cotpParameterCallingTsap>
<tsapId>9</tsapId>
- </s7:CotpParameterCallingTsap>
+ </cotpParameterCallingTsap>
</parameter>
- </s7:parameters>
- </s7:CotpTpduConnectionRequest>
+ </parameters>
+ </cotpTpduConnectionRequest>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -467,20 +467,20 @@
<userData>
<headerLength>10</headerLength>
<type>224</type>
- <s7:CotpTpduConnectionRequest>
+ <cotpTpduConnectionRequest>
<destinationReference>1</destinationReference>
<sourceReference>2</sourceReference>
<protocolClass>0</protocolClass>
- <s7:parameters>
+ <parameters>
<parameter>
<type>194</type>
<parameterLength>2</parameterLength>
- <s7:CotpParameterCalledTsap>
+ <cotpParameterCalledTsap>
<tsapId>9</tsapId>
- </s7:CotpParameterCalledTsap>
+ </cotpParameterCalledTsap>
</parameter>
- </s7:parameters>
- </s7:CotpTpduConnectionRequest>
+ </parameters>
+ </cotpTpduConnectionRequest>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -506,20 +506,20 @@
<userData>
<headerLength>9</headerLength>
<type>224</type>
- <s7:CotpTpduConnectionRequest>
+ <cotpTpduConnectionRequest>
<destinationReference>1</destinationReference>
<sourceReference>2</sourceReference>
<protocolClass>0</protocolClass>
- <s7:parameters>
+ <parameters>
<parameter>
<type>195</type>
<parameterLength>1</parameterLength>
- <s7:CotpParameterChecksum>
+ <cotpParameterChecksum>
<checksum>9</checksum>
- </s7:CotpParameterChecksum>
+ </cotpParameterChecksum>
</parameter>
- </s7:parameters>
- </s7:CotpTpduConnectionRequest>
+ </parameters>
+ </cotpTpduConnectionRequest>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -545,20 +545,20 @@
<userData>
<headerLength>14</headerLength>
<type>224</type>
- <s7:CotpTpduConnectionRequest>
+ <cotpTpduConnectionRequest>
<destinationReference>1</destinationReference>
<sourceReference>2</sourceReference>
<protocolClass>0</protocolClass>
- <s7:parameters>
+ <parameters>
<parameter>
<type>224</type>
<parameterLength>6</parameterLength>
- <s7:CotpParameterDisconnectAdditionalInformation>
+ <cotpParameterDisconnectAdditionalInformation>
<data>010203040506</data>
- </s7:CotpParameterDisconnectAdditionalInformation>
+ </cotpParameterDisconnectAdditionalInformation>
</parameter>
- </s7:parameters>
- </s7:CotpTpduConnectionRequest>
+ </parameters>
+ </cotpTpduConnectionRequest>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -603,34 +603,34 @@
<userData>
<headerLength>17</headerLength>
<type>224</type>
- <s7:CotpTpduConnectionRequest>
+ <cotpTpduConnectionRequest>
<destinationReference>1</destinationReference>
<sourceReference>2</sourceReference>
<protocolClass>0</protocolClass>
- <s7:parameters>
+ <parameters>
<parameter>
<type>193</type>
<parameterLength>2</parameterLength>
- <s7:CotpParameterCallingTsap>
+ <cotpParameterCallingTsap>
<tsapId>256</tsapId>
- </s7:CotpParameterCallingTsap>
+ </cotpParameterCallingTsap>
</parameter>
<parameter>
<type>194</type>
<parameterLength>2</parameterLength>
- <s7:CotpParameterCalledTsap>
+ <cotpParameterCalledTsap>
<tsapId>258</tsapId>
- </s7:CotpParameterCalledTsap>
+ </cotpParameterCalledTsap>
</parameter>
<parameter>
<type>192</type>
<parameterLength>1</parameterLength>
- <s7:CotpParameterTpduSize>
+ <cotpParameterTpduSize>
<tpduSize>10</tpduSize>
- </s7:CotpParameterTpduSize>
+ </cotpParameterTpduSize>
</parameter>
- </s7:parameters>
- </s7:CotpTpduConnectionRequest>
+ </parameters>
+ </cotpTpduConnectionRequest>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -656,34 +656,34 @@
<userData>
<headerLength>17</headerLength>
<type>208</type>
- <s7:CotpTpduConnectionResponse>
+ <cotpTpduConnectionResponse>
<destinationReference>1</destinationReference>
<sourceReference>2</sourceReference>
<protocolClass>0</protocolClass>
- <s7:parameters>
+ <parameters>
<parameter>
<type>192</type>
<parameterLength>1</parameterLength>
- <s7:CotpParameterTpduSize>
+ <cotpParameterTpduSize>
<tpduSize>9</tpduSize>
- </s7:CotpParameterTpduSize>
+ </cotpParameterTpduSize>
</parameter>
<parameter>
<type>193</type>
<parameterLength>2</parameterLength>
- <s7:CotpParameterCallingTsap>
+ <cotpParameterCallingTsap>
<tsapId>256</tsapId>
- </s7:CotpParameterCallingTsap>
+ </cotpParameterCallingTsap>
</parameter>
<parameter>
<type>194</type>
<parameterLength>2</parameterLength>
- <s7:CotpParameterCalledTsap>
+ <cotpParameterCalledTsap>
<tsapId>258</tsapId>
- </s7:CotpParameterCalledTsap>
+ </cotpParameterCalledTsap>
</parameter>
- </s7:parameters>
- </s7:CotpTpduConnectionResponse>
+ </parameters>
+ </cotpTpduConnectionResponse>
</userData>
</s7:TpktMessage>
</tdml:dfdlInfoset>
@@ -710,14 +710,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>1</type>
- <s7:S7RequestMessage>
+ <s7RequestMessage>
<reserved>0</reserved>
<tpduReference>1</tpduReference>
<parametersLength>14</parametersLength>
@@ -725,12 +725,12 @@
<parameters>
<parameter>
<type>4</type>
- <s7:S7RequestParameterReadVar>
+ <s7RequestParameterReadVar>
<numItems>1</numItems>
<items>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>1</dataType>
@@ -739,18 +739,20 @@
<memoryArea>130</memoryArea>
<byteOffset>0</byteOffset>
<bitOffset>4</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
</items>
- </s7:S7RequestParameterReadVar>
+ </s7RequestParameterReadVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7RequestPayloadReadVar/>
+ <s7RequestPayloadReadVar>
+ <data/>
+ </s7RequestPayloadReadVar>
</payload>
</payloads>
- </s7:S7RequestMessage>
+ </s7RequestMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -776,14 +778,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>1</type>
- <s7:S7RequestMessage>
+ <s7RequestMessage>
<reserved>0</reserved>
<tpduReference>0</tpduReference>
<parametersLength>8</parametersLength>
@@ -791,20 +793,22 @@
<parameters>
<parameter>
<type>240</type>
- <s7:S7GeneralParameterSetupCommunication>
+ <s7GeneralParameterSetupCommunication>
<reserved>0</reserved>
<maxAmqCaller>1</maxAmqCaller>
<maxAmqCallee>1</maxAmqCallee>
<pduLength>480</pduLength>
- </s7:S7GeneralParameterSetupCommunication>
+ </s7GeneralParameterSetupCommunication>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7GeneralPayloadSetupCommunication/>
+ <s7GeneralPayloadSetupCommunication>
+ <data/>
+ </s7GeneralPayloadSetupCommunication>
</payload>
</payloads>
- </s7:S7RequestMessage>
+ </s7RequestMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -830,14 +834,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>3</type>
- <s7:S7ResponseMessage>
+ <s7ResponseMessage>
<reserved>0</reserved>
<tpduReference>0</tpduReference>
<parametersLength>8</parametersLength>
@@ -847,20 +851,22 @@
<parameters>
<parameter>
<type>240</type>
- <s7:S7GeneralParameterSetupCommunication>
+ <s7GeneralParameterSetupCommunication>
<reserved>0</reserved>
<maxAmqCaller>1</maxAmqCaller>
<maxAmqCallee>1</maxAmqCallee>
<pduLength>240</pduLength>
- </s7:S7GeneralParameterSetupCommunication>
+ </s7GeneralParameterSetupCommunication>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7GeneralPayloadSetupCommunication/>
+ <s7GeneralPayloadSetupCommunication>
+ <data/>
+ </s7GeneralPayloadSetupCommunication>
</payload>
</payloads>
- </s7:S7ResponseMessage>
+ </s7ResponseMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -887,14 +893,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>7</type>
- <s7:S7UserDataMessage>
+ <s7UserDataMessage>
<reserved>0</reserved>
<tpduReference>256</tpduReference>
<parametersLength>8</parametersLength>
@@ -902,7 +908,7 @@
<parameters>
<parameter>
<type>0</type>
- <s7:S7UserDataParameterCPUService>
+ <s7UserDataParameterCPUService>
<header>274</header>
<paramLength>4</paramLength>
<typeCode>17</typeCode>
@@ -910,21 +916,21 @@
<functionGroup>4</functionGroup>
<subFunctionGroup>1</subFunctionGroup>
<sequenceNumber>0</sequenceNumber>
- </s7:S7UserDataParameterCPUService>
+ </s7UserDataParameterCPUService>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7UserDataPayloadCpuServices>
+ <s7UserDataPayloadCpuServices>
<returnCode>255</returnCode>
<transportSize>9</transportSize>
<length>4</length>
<sslId>17</sslId>
<sslIndex>0</sslIndex>
- </s7:S7UserDataPayloadCpuServices>
+ </s7UserDataPayloadCpuServices>
</payload>
</payloads>
- </s7:S7UserDataMessage>
+ </s7UserDataMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -952,14 +958,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>7</type>
- <s7:S7UserDataMessage>
+ <s7UserDataMessage>
<reserved>0</reserved>
<tpduReference>256</tpduReference>
<parametersLength>12</parametersLength>
@@ -967,7 +973,7 @@
<parameters>
<parameter>
<type>0</type>
- <s7:S7UserDataParameterCPUService>
+ <s7UserDataParameterCPUService>
<header>274</header>
<paramLength>8</paramLength>
<typeCode>18</typeCode>
@@ -978,12 +984,12 @@
<dataUnitReferenceNumber>0</dataUnitReferenceNumber>
<lastDataUnit>0</lastDataUnit>
<errorCode>0</errorCode>
- </s7:S7UserDataParameterCPUService>
+ </s7UserDataParameterCPUService>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7UserDataPayloadCpuServices>
+ <s7UserDataPayloadCpuServices>
<returnCode>255</returnCode>
<transportSize>9</transportSize>
<length>120</length>
@@ -994,47 +1000,47 @@
<partialListCount>4</partialListCount>
<sslDataRecords>
<sslDataRecord>
- <s7:S7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
+ <s7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
<index>1</index>
<articleNumber><![CDATA[6ES7 315-2EH14-0AB0 ]]></articleNumber>
<bgType>192</bgType>
<moduleOrOsVersion>3</moduleOrOsVersion>
<pgDescriptionFileVersion>1</pgDescriptionFileVersion>
- </s7:S7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
+ </s7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
</sslDataRecord>
<sslDataRecord>
- <s7:S7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
+ <s7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
<index>6</index>
<articleNumber><![CDATA[6ES7 315-2EH14-0AB0 ]]></articleNumber>
<bgType>192</bgType>
<moduleOrOsVersion>3</moduleOrOsVersion>
<pgDescriptionFileVersion>1</pgDescriptionFileVersion>
- </s7:S7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
+ </s7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
</sslDataRecord>
<sslDataRecord>
- <s7:S7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
+ <s7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
<index>7</index>
<articleNumber><![CDATA[ ]]></articleNumber>
<bgType>192</bgType>
<moduleOrOsVersion>22019</moduleOrOsVersion>
<pgDescriptionFileVersion>519</pgDescriptionFileVersion>
- </s7:S7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
+ </s7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
</sslDataRecord>
<sslDataRecord>
- <s7:S7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
+ <s7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
<index>129</index>
<articleNumber><![CDATA[Boot Loader ]]></articleNumber>
<bgType>0</bgType>
<moduleOrOsVersion>16672</moduleOrOsVersion>
<pgDescriptionFileVersion>2313</pgDescriptionFileVersion>
- </s7:S7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
+ </s7ResponsePayloadCpuServicesSslDataRecordModuleIdentification>
</sslDataRecord>
</sslDataRecords>
</partialList>
- </s7:S7UserDataPayloadCpuServices>
+ </s7UserDataPayloadCpuServices>
</payload>
</payloads>
- </s7:S7UserDataMessage>
+ </s7UserDataMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -1061,14 +1067,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>1</type>
- <s7:S7RequestMessage>
+ <s7RequestMessage>
<reserved>0</reserved>
<tpduReference>6400</tpduReference>
<parametersLength>14</parametersLength>
@@ -1076,12 +1082,12 @@
<parameters>
<parameter>
<type>4</type>
- <s7:S7RequestParameterReadVar>
+ <s7RequestParameterReadVar>
<numItems>1</numItems>
<items>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>8</dataType>
@@ -1090,18 +1096,20 @@
<memoryArea>131</memoryArea>
<byteOffset>16</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
</items>
- </s7:S7RequestParameterReadVar>
+ </s7RequestParameterReadVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7RequestPayloadReadVar/>
+ <s7RequestPayloadReadVar>
+ <data/>
+ </s7RequestPayloadReadVar>
</payload>
</payloads>
- </s7:S7RequestMessage>
+ </s7RequestMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -1128,14 +1136,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>3</type>
- <s7:S7ResponseMessage>
+ <s7ResponseMessage>
<reserved>0</reserved>
<tpduReference>6400</tpduReference>
<parametersLength>2</parametersLength>
@@ -1145,14 +1153,14 @@
<parameters>
<parameter>
<type>4</type>
- <s7:S7ResponseParameterReadVar>
+ <s7ResponseParameterReadVar>
<numItems>1</numItems>
- </s7:S7ResponseParameterReadVar>
+ </s7ResponseParameterReadVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7ResponsePayloadReadVar>
+ <s7ResponsePayloadReadVar>
<numItems>1</numItems>
<item>
<returnCode>255</returnCode>
@@ -1161,10 +1169,10 @@
<lengthInBytes>4</lengthInBytes>
<data>00000000</data>
</item>
- </s7:S7ResponsePayloadReadVar>
+ </s7ResponsePayloadReadVar>
</payload>
</payloads>
- </s7:S7ResponseMessage>
+ </s7ResponseMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -1191,14 +1199,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>1</type>
- <s7:S7RequestMessage>
+ <s7RequestMessage>
<reserved>0</reserved>
<tpduReference>1</tpduReference>
<parametersLength>86</parametersLength>
@@ -1206,12 +1214,12 @@
<parameters>
<parameter>
<type>4</type>
- <s7:S7RequestParameterReadVar>
+ <s7RequestParameterReadVar>
<numItems>7</numItems>
<items>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>6</dataType>
@@ -1220,11 +1228,11 @@
<memoryArea>132</memoryArea>
<byteOffset>44</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>2</dataType>
@@ -1233,11 +1241,11 @@
<memoryArea>132</memoryArea>
<byteOffset>52</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>1</dataType>
@@ -1246,11 +1254,11 @@
<memoryArea>132</memoryArea>
<byteOffset>53</byteOffset>
<bitOffset>1</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>5</dataType>
@@ -1259,11 +1267,11 @@
<memoryArea>132</memoryArea>
<byteOffset>42</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>2</dataType>
@@ -1272,11 +1280,11 @@
<memoryArea>132</memoryArea>
<byteOffset>51</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>4</dataType>
@@ -1285,11 +1293,11 @@
<memoryArea>132</memoryArea>
<byteOffset>40</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>2</dataType>
@@ -1298,18 +1306,20 @@
<memoryArea>132</memoryArea>
<byteOffset>50</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
</items>
- </s7:S7RequestParameterReadVar>
+ </s7RequestParameterReadVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7RequestPayloadReadVar/>
+ <s7RequestPayloadReadVar>
+ <data/>
+ </s7RequestPayloadReadVar>
</payload>
</payloads>
- </s7:S7RequestMessage>
+ </s7RequestMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -1336,14 +1346,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>3</type>
- <s7:S7ResponseMessage>
+ <s7ResponseMessage>
<reserved>0</reserved>
<tpduReference>1</tpduReference>
<parametersLength>2</parametersLength>
@@ -1353,14 +1363,14 @@
<parameters>
<parameter>
<type>4</type>
- <s7:S7ResponseParameterReadVar>
+ <s7ResponseParameterReadVar>
<numItems>7</numItems>
- </s7:S7ResponseParameterReadVar>
+ </s7ResponseParameterReadVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7ResponsePayloadReadVar>
+ <s7ResponsePayloadReadVar>
<numItems>7</numItems>
<item>
<returnCode>255</returnCode>
@@ -1414,10 +1424,10 @@
<lengthInBytes>1</lengthInBytes>
<data>00</data>
</item>
- </s7:S7ResponsePayloadReadVar>
+ </s7ResponsePayloadReadVar>
</payload>
</payloads>
- </s7:S7ResponseMessage>
+ </s7ResponseMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -1444,14 +1454,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>3</type>
- <s7:S7ResponseMessage>
+ <s7ResponseMessage>
<reserved>0</reserved>
<tpduReference>1</tpduReference>
<parametersLength>2</parametersLength>
@@ -1461,14 +1471,14 @@
<parameters>
<parameter>
<type>4</type>
- <s7:S7ResponseParameterReadVar>
+ <s7ResponseParameterReadVar>
<numItems>3</numItems>
- </s7:S7ResponseParameterReadVar>
+ </s7ResponseParameterReadVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7ResponsePayloadReadVar>
+ <s7ResponsePayloadReadVar>
<numItems>3</numItems>
<item>
<returnCode>255</returnCode>
@@ -1493,10 +1503,10 @@
<lengthInBytes>1</lengthInBytes>
<data>00</data>
</item>
- </s7:S7ResponsePayloadReadVar>
+ </s7ResponsePayloadReadVar>
</payload>
</payloads>
- </s7:S7ResponseMessage>
+ </s7ResponseMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -1523,14 +1533,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>1</type>
- <s7:S7RequestMessage>
+ <s7RequestMessage>
<reserved>0</reserved>
<tpduReference>1</tpduReference>
<parametersLength>38</parametersLength>
@@ -1538,12 +1548,12 @@
<parameters>
<parameter>
<type>4</type>
- <s7:S7RequestParameterReadVar>
+ <s7RequestParameterReadVar>
<numItems>3</numItems>
<items>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>6</dataType>
@@ -1552,11 +1562,11 @@
<memoryArea>132</memoryArea>
<byteOffset>44</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>5</dataType>
@@ -1565,11 +1575,11 @@
<memoryArea>132</memoryArea>
<byteOffset>42</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>4</dataType>
@@ -1578,18 +1588,20 @@
<memoryArea>132</memoryArea>
<byteOffset>40</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
</items>
- </s7:S7RequestParameterReadVar>
+ </s7RequestParameterReadVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7RequestPayloadReadVar/>
+ <s7RequestPayloadReadVar>
+ <data/>
+ </s7RequestPayloadReadVar>
</payload>
</payloads>
- </s7:S7RequestMessage>
+ </s7RequestMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -1616,14 +1628,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>3</type>
- <s7:S7ResponseMessage>
+ <s7ResponseMessage>
<reserved>0</reserved>
<tpduReference>1</tpduReference>
<parametersLength>2</parametersLength>
@@ -1633,14 +1645,14 @@
<parameters>
<parameter>
<type>4</type>
- <s7:S7ResponseParameterReadVar>
+ <s7ResponseParameterReadVar>
<numItems>3</numItems>
- </s7:S7ResponseParameterReadVar>
+ </s7ResponseParameterReadVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7ResponsePayloadReadVar>
+ <s7ResponsePayloadReadVar>
<numItems>3</numItems>
<item>
<returnCode>255</returnCode>
@@ -1663,10 +1675,10 @@
<lengthInBytes>2</lengthInBytes>
<data>0000</data>
</item>
- </s7:S7ResponsePayloadReadVar>
+ </s7ResponsePayloadReadVar>
</payload>
</payloads>
- </s7:S7ResponseMessage>
+ </s7ResponseMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -1693,14 +1705,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>1</type>
- <s7:S7RequestMessage>
+ <s7RequestMessage>
<reserved>0</reserved>
<tpduReference>1</tpduReference>
<parametersLength>50</parametersLength>
@@ -1708,12 +1720,12 @@
<parameters>
<parameter>
<type>4</type>
- <s7:S7RequestParameterReadVar>
+ <s7RequestParameterReadVar>
<numItems>4</numItems>
<items>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>2</dataType>
@@ -1722,11 +1734,11 @@
<memoryArea>132</memoryArea>
<byteOffset>42</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>1</dataType>
@@ -1735,11 +1747,11 @@
<memoryArea>132</memoryArea>
<byteOffset>43</byteOffset>
<bitOffset>1</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>2</dataType>
@@ -1748,11 +1760,11 @@
<memoryArea>132</memoryArea>
<byteOffset>41</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>2</dataType>
@@ -1761,18 +1773,20 @@
<memoryArea>132</memoryArea>
<byteOffset>40</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
</items>
- </s7:S7RequestParameterReadVar>
+ </s7RequestParameterReadVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7RequestPayloadReadVar/>
+ <s7RequestPayloadReadVar>
+ <data/>
+ </s7RequestPayloadReadVar>
</payload>
</payloads>
- </s7:S7RequestMessage>
+ </s7RequestMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -1799,14 +1813,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>3</type>
- <s7:S7ResponseMessage>
+ <s7ResponseMessage>
<reserved>0</reserved>
<tpduReference>1</tpduReference>
<parametersLength>2</parametersLength>
@@ -1816,14 +1830,14 @@
<parameters>
<parameter>
<type>4</type>
- <s7:S7ResponseParameterReadVar>
+ <s7ResponseParameterReadVar>
<numItems>4</numItems>
- </s7:S7ResponseParameterReadVar>
+ </s7ResponseParameterReadVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7ResponsePayloadReadVar>
+ <s7ResponsePayloadReadVar>
<numItems>4</numItems>
<item>
<returnCode>255</returnCode>
@@ -1856,10 +1870,10 @@
<lengthInBytes>1</lengthInBytes>
<data>00</data>
</item>
- </s7:S7ResponsePayloadReadVar>
+ </s7ResponsePayloadReadVar>
</payload>
</payloads>
- </s7:S7ResponseMessage>
+ </s7ResponseMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -1887,14 +1901,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>1</type>
- <s7:S7RequestMessage>
+ <s7RequestMessage>
<reserved>0</reserved>
<tpduReference>6144</tpduReference>
<parametersLength>14</parametersLength>
@@ -1902,12 +1916,12 @@
<parameters>
<parameter>
<type>5</type>
- <s7:S7RequestParameterWriteVar>
+ <s7RequestParameterWriteVar>
<numItems>1</numItems>
<items>
<item>
<type>18</type>
- <s7:S7RequestParameterWriteVarAnyItem>
+ <s7RequestParameterWriteVarAnyItem>
<itemLength>10</itemLength>
<addressingMode>16</addressingMode>
<dataType>8</dataType>
@@ -1916,15 +1930,15 @@
<memoryArea>131</memoryArea>
<byteOffset>16</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterWriteVarAnyItem>
+ </s7RequestParameterWriteVarAnyItem>
</item>
</items>
- </s7:S7RequestParameterWriteVar>
+ </s7RequestParameterWriteVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7RequestPayloadWriteVar>
+ <s7RequestPayloadWriteVar>
<numItems>1</numItems>
<item>
<returnCode>0</returnCode>
@@ -1933,10 +1947,10 @@
<lengthInBytes>4</lengthInBytes>
<data>79E9F642</data>
</item>
- </s7:S7RequestPayloadWriteVar>
+ </s7RequestPayloadWriteVar>
</payload>
</payloads>
- </s7:S7RequestMessage>
+ </s7RequestMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -1962,14 +1976,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>3</type>
- <s7:S7ResponseMessage>
+ <s7ResponseMessage>
<reserved>0</reserved>
<tpduReference>6144</tpduReference>
<parametersLength>2</parametersLength>
@@ -1979,22 +1993,22 @@
<parameters>
<parameter>
<type>5</type>
- <s7:S7ResponseParameterWriteVar>
+ <s7ResponseParameterWriteVar>
<numItems>1</numItems>
- </s7:S7ResponseParameterWriteVar>
+ </s7ResponseParameterWriteVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7ResponsePayloadWriteVar>
+ <s7ResponsePayloadWriteVar>
<numItems>1</numItems>
<item>
<returnCode>255</returnCode>
</item>
- </s7:S7ResponsePayloadWriteVar>
+ </s7ResponsePayloadWriteVar>
</payload>
</payloads>
- </s7:S7ResponseMessage>
+ </s7ResponseMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -2022,14 +2036,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>1</type>
- <s7:S7RequestMessage>
+ <s7RequestMessage>
<reserved>0</reserved>
<tpduReference>6912</tpduReference>
<parametersLength>62</parametersLength>
@@ -2037,12 +2051,12 @@
<parameters>
<parameter>
<type>4</type>
- <s7:S7RequestParameterReadVar>
+ <s7RequestParameterReadVar>
<numItems>5</numItems>
<items>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>2</dataType>
@@ -2051,11 +2065,11 @@
<memoryArea>131</memoryArea>
<byteOffset>0</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>2</dataType>
@@ -2064,11 +2078,11 @@
<memoryArea>129</memoryArea>
<byteOffset>0</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>2</dataType>
@@ -2077,11 +2091,11 @@
<memoryArea>130</memoryArea>
<byteOffset>0</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>29</dataType>
@@ -2090,11 +2104,11 @@
<memoryArea>29</memoryArea>
<byteOffset>0</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterReadVarAnyItem>
+ <s7RequestParameterReadVarAnyItem>
<paramLength>10</paramLength>
<addressingMode>16</addressingMode>
<dataType>28</dataType>
@@ -2103,18 +2117,20 @@
<memoryArea>28</memoryArea>
<byteOffset>0</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterReadVarAnyItem>
+ </s7RequestParameterReadVarAnyItem>
</item>
</items>
- </s7:S7RequestParameterReadVar>
+ </s7RequestParameterReadVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7RequestPayloadReadVar/>
+ <s7RequestPayloadReadVar>
+ <data/>
+ </s7RequestPayloadReadVar>
</payload>
</payloads>
- </s7:S7RequestMessage>
+ </s7RequestMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -2142,14 +2158,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>3</type>
- <s7:S7ResponseMessage>
+ <s7ResponseMessage>
<reserved>0</reserved>
<tpduReference>6912</tpduReference>
<parametersLength>2</parametersLength>
@@ -2159,14 +2175,14 @@
<parameters>
<parameter>
<type>4</type>
- <s7:S7ResponseParameterReadVar>
+ <s7ResponseParameterReadVar>
<numItems>5</numItems>
- </s7:S7ResponseParameterReadVar>
+ </s7ResponseParameterReadVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7ResponsePayloadReadVar>
+ <s7ResponsePayloadReadVar>
<numItems>5</numItems>
<item>
<returnCode>255</returnCode>
@@ -2203,10 +2219,10 @@
<lengthInBytes>16</lengthInBytes>
<data>00110000000000000000000000000000</data>
</item>
- </s7:S7ResponsePayloadReadVar>
+ </s7ResponsePayloadReadVar>
</payload>
</payloads>
- </s7:S7ResponseMessage>
+ </s7ResponseMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -2234,14 +2250,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>1</type>
- <s7:S7RequestMessage>
+ <s7RequestMessage>
<reserved>0</reserved>
<tpduReference>6656</tpduReference>
<parametersLength>62</parametersLength>
@@ -2249,12 +2265,12 @@
<parameters>
<parameter>
<type>5</type>
- <s7:S7RequestParameterWriteVar>
+ <s7RequestParameterWriteVar>
<numItems>5</numItems>
<items>
<item>
<type>18</type>
- <s7:S7RequestParameterWriteVarAnyItem>
+ <s7RequestParameterWriteVarAnyItem>
<itemLength>10</itemLength>
<addressingMode>16</addressingMode>
<dataType>4</dataType>
@@ -2263,11 +2279,11 @@
<memoryArea>131</memoryArea>
<byteOffset>0</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterWriteVarAnyItem>
+ </s7RequestParameterWriteVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterWriteVarAnyItem>
+ <s7RequestParameterWriteVarAnyItem>
<itemLength>10</itemLength>
<addressingMode>16</addressingMode>
<dataType>2</dataType>
@@ -2276,11 +2292,11 @@
<memoryArea>129</memoryArea>
<byteOffset>0</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterWriteVarAnyItem>
+ </s7RequestParameterWriteVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterWriteVarAnyItem>
+ <s7RequestParameterWriteVarAnyItem>
<itemLength>10</itemLength>
<addressingMode>16</addressingMode>
<dataType>2</dataType>
@@ -2289,11 +2305,11 @@
<memoryArea>130</memoryArea>
<byteOffset>0</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterWriteVarAnyItem>
+ </s7RequestParameterWriteVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterWriteVarAnyItem>
+ <s7RequestParameterWriteVarAnyItem>
<itemLength>10</itemLength>
<addressingMode>16</addressingMode>
<dataType>29</dataType>
@@ -2302,11 +2318,11 @@
<memoryArea>29</memoryArea>
<byteOffset>0</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterWriteVarAnyItem>
+ </s7RequestParameterWriteVarAnyItem>
</item>
<item>
<type>18</type>
- <s7:S7RequestParameterWriteVarAnyItem>
+ <s7RequestParameterWriteVarAnyItem>
<itemLength>10</itemLength>
<addressingMode>16</addressingMode>
<dataType>28</dataType>
@@ -2315,15 +2331,15 @@
<memoryArea>28</memoryArea>
<byteOffset>0</byteOffset>
<bitOffset>0</bitOffset>
- </s7:S7RequestParameterWriteVarAnyItem>
+ </s7RequestParameterWriteVarAnyItem>
</item>
</items>
- </s7:S7RequestParameterWriteVar>
+ </s7RequestParameterWriteVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7RequestPayloadWriteVar>
+ <s7RequestPayloadWriteVar>
<numItems>5</numItems>
<item>
<returnCode>0</returnCode>
@@ -2360,10 +2376,10 @@
<lengthInBytes>16</lengthInBytes>
<data>FECAFECAFECAFECAFECAFECAFECAFECA</data>
</item>
- </s7:S7RequestPayloadWriteVar>
+ </s7RequestPayloadWriteVar>
</payload>
</payloads>
- </s7:S7RequestMessage>
+ </s7RequestMessage>
</userData>
</userData>
</s7:TpktMessage>
@@ -2389,14 +2405,14 @@
<userData>
<headerLength>2</headerLength>
<type>240</type>
- <s7:CotpTpduData>
+ <cotpTpduData>
<endOfTransmission>1</endOfTransmission>
<tpduRef>0</tpduRef>
- </s7:CotpTpduData>
+ </cotpTpduData>
<userData>
<magicByte>50</magicByte>
<type>3</type>
- <s7:S7ResponseMessage>
+ <s7ResponseMessage>
<reserved>0</reserved>
<tpduReference>6656</tpduReference>
<parametersLength>2</parametersLength>
@@ -2406,14 +2422,14 @@
<parameters>
<parameter>
<type>5</type>
- <s7:S7ResponseParameterWriteVar>
+ <s7ResponseParameterWriteVar>
<numItems>5</numItems>
- </s7:S7ResponseParameterWriteVar>
+ </s7ResponseParameterWriteVar>
</parameter>
</parameters>
<payloads>
<payload>
- <s7:S7ResponsePayloadWriteVar>
+ <s7ResponsePayloadWriteVar>
<numItems>5</numItems>
<item>
<returnCode>255</returnCode>
@@ -2430,10 +2446,10 @@
<item>
<returnCode>3</returnCode>
</item>
- </s7:S7ResponsePayloadWriteVar>
+ </s7ResponsePayloadWriteVar>
</payload>
</payloads>
- </s7:S7ResponseMessage>
+ </s7ResponseMessage>
</userData>
</userData>
</s7:TpktMessage>