M&M FDT 1.2.1 Online Specification
 FDTModbusCommunicationSchema definition


Interfaces and Methods   -   Schemas   -   FDT Specification   -   Quicklinks   -   Abbreviations

FDTModbusCommunicationSchema

Available since MODBUS Annex for FDT 1.2.1

Download Modbus Annex from FDT Group Homepage.

Available since FDT 1.2
Available since FDT 1.2.1
Available since FDT 1.2 and modified or extended in FDT 1.2.1
Specification description (mouse over)
dtmINSPECTOR related hint (mouse over)
Comment by M&M (mouse over)
Link to definition
<Schema name="FDTModbusCommunicationSchema"   xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:fdt="x-schema:FDTDataTypesSchema.xml" xmlns:mb="x-schema:FDTModbusAddressSchema.xml" >
     <AttributeType name="schemaVersion" dt:type="number" default="1.0" />
     <AttributeType name="communicationReference"
dt:type="uuid" />
      <!-- Modbus protocol parameters -->
      <!-- ModbusException response -->
     <AttributeType name="modbusService"
dt:type="enumeration" dt:values="ReadCoils ReadDiscreteInputs ReadHoldingRegisters ReadInputRegisters WriteSingleCoil WriteSingleRegister ReadExceptionStatus Diagnostics GetCommEventCounter GetCommEventLog WriteMultipleCoils WriteMultipleRegisters ReportSlaveID ReadFileRecord WriteFileRecord MaskWriteRegister ReadWriteRegisters ReadFifoQueue EncapsulatedInterfaceTransport ReadDeviceIdentification PrivateModbus" />
     <AttributeType name="modbusExceptionCode"
dt:type="bin.hex" dt:minLength="1" />
      <!-- Read/Write Data attributes -->
     <AttributeType name="outputAddress"
dt:type="ui2" />
     <AttributeType name="startAddress"
dt:type="ui2" />
     <AttributeType name="quantity"
dt:type="ui2" />
     <AttributeType name="multipleCoilValues"
dt:type="string" dt:minLength="1" dt:maxLength="2000" />
     <AttributeType name="discreteInputsStatus"
dt:type="string" dt:minLength="1" dt:maxLength="2000" />
     <AttributeType name="registerValues"
dt:type="bin.hex" dt:minLength="2" dt:maxLength="250" />
     <AttributeType name="singleCoilValue"
dt:type="boolean" />
     <AttributeType name="singleRegister"
dt:type="bin.hex" dt:maxLength="2" dt:minLength="2" />
      <!-- Diagnostic services attributes -->
     <AttributeType name="exceptionStatus"
dt:type="bin.hex" dt:maxLength="1" dt:minLength="1" />
     <AttributeType name="commStatus"
dt:type="bin.hex" dt:maxLength="2" dt:minLength="2" />
     <AttributeType name="diagnosticsSubFct"
dt:type="bin.hex" dt:maxLength="2" dt:minLength="2" />
     <AttributeType name="diagnosticsData"
dt:type="bin.hex" dt:maxLength="250" dt:minLength="2" />
     <AttributeType name="data"
dt:type="bin.hex" />
     <AttributeType name="eventCount"
dt:type="bin.hex" dt:maxLength="2" dt:minLength="2" />
     <AttributeType name="messageCount"
dt:type="bin.hex" dt:maxLength="2" dt:minLength="2" />
     <AttributeType name="events"
dt:type="bin.hex" />
      <!-- Read/Write File Record attributes -->
     <AttributeType name="referenceType"
dt:type="bin.hex" dt:maxLength="1" dt:minLength="1" />
     <AttributeType name="fileNumber"
dt:type="bin.hex" dt:maxLength="2" dt:minLength="2" />
     <AttributeType name="recordNumber"
dt:type="bin.hex" dt:maxLength="2" dt:minLength="2" />
     <AttributeType name="recordData"
dt:type="bin.hex" dt:minLength="2" />
      <!-- Mask Write Register attributes -->
     <AttributeType name="referenceAddress"
dt:type="ui2" />
     <AttributeType name="andMask"
dt:type="bin.hex" dt:maxLength="2" dt:minLength="2" />
     <AttributeType name="orMask"
dt:type="bin.hex" dt:maxLength="2" dt:minLength="2" />
      <!-- Read/Write Registers attributes -->
     <AttributeType name="readStartAddress"
dt:type="ui2" />
     <AttributeType name="readRegisterValues"
dt:type="bin.hex" dt:minLength="2" dt:maxLength="250" />
     <AttributeType name="readQuantity"
dt:type="ui2" />
     <AttributeType name="writeStartAddress"
dt:type="ui2" />
     <AttributeType name="writeRegisterValues"
dt:type="bin.hex" dt:minLength="2" dt:maxLength="242" />
      <!-- Read FIFO Queue attributes -->
     <AttributeType name="fifoPointerAddress"
dt:type="ui2" />
     <AttributeType name="fifoRegisterValues"
dt:type="bin.hex" dt:minLength="2" dt:maxLength="62" />
      <!-- Encapsulated Interface Transport attributes -->
     <AttributeType name="meiType"
dt:type="bin.hex" dt:maxLength="1" dt:minLength="1" />
     <AttributeType name="meiData"
dt:type="bin.hex" dt:minLength="1" dt:maxLength="251" />
      <!-- Device identification attributes -->
     <AttributeType name="readDeviceIdCode"
dt:type="ui1" />
     <AttributeType name="objectId"
dt:type="bin.hex" dt:minLength="1" dt:maxLength=" 1" />
     <AttributeType name="conformityLevel"
dt:type="bin.hex" dt:maxLength="1" dt:minLength="1" />
     <AttributeType name="moreFollows"
dt:type="boolean" />
     <AttributeType name="nextObjectId"
dt:type="bin.hex" dt:minLength="1" dt:maxLength=" 1" />
     <AttributeType name="numberOfObjects"
dt:type="ui1" />
     <AttributeType name="objectValue"
dt:type="bin.hex" dt:minLength="1" dt:maxLength="244" />
      <!-- Private Request attributes -->
     <AttributeType name="privateRequest"
dt:type="bin.hex" />
     <AttributeType name="privateResponse"
dt:type="bin.hex" />
     <ElementType name="ConnectRequest"
content="eltOnly" model="closed" >
          <attribute type="fdt:systemTag"
  required="yes" />
          <group order="one" maxOccurs="1" minOccurs="1" >
               <element type="mb:ModbusSerial"   />
               <element type="mb:ModbusTCP"   />
          </group>
     </ElementType>
     <ElementType name="ConnectResponse" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
     <ElementType name="DisconnectRequest" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
     <ElementType name="DisconnectResponse" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
     <ElementType name="Abort" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="no" />
     </ElementType>
      <!-- Modbus Exception response -->
     <ElementType name="ModbusExceptionRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Applied Modbus service, which failed -->
          <attribute type="modbusService"   required="yes" />
           <!-- Modbus Exception code -->
          <attribute type="modbusExceptionCode"   required="yes" />
     </ElementType>
      <!-- Definition of Modbus services -->
      <!-- 0x01 Read Coils -->
     <ElementType name="ReadCoilsReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Starting address: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="startAddress"   required="yes" />
           <!-- Quantity of coils: 0x0001 to 0x07D0 (2 bytes) -->
          <attribute type="quantity"   required="yes" />
     </ElementType>
     <ElementType name="ReadCoilsRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Coil status: ASCII string with each coil state coded in one character ("1"==TRUE; "0"==FALSE) -->
          <attribute type="multipleCoilValues"   required="yes" />
     </ElementType>
      <!-- 0x02 Read Discrete Inputs -->
     <ElementType name="ReadDiscreteInputsReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Starting address: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="startAddress"   required="yes" />
           <!-- Quantity of Inputs: 0x0001 to 0x07D0 (2 bytes) -->
          <attribute type="quantity"   required="yes" />
     </ElementType>
     <ElementType name="ReadDiscreteInputsRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Input status: ASCII string with each discrete input state coded in one character ("1"==TRUE; "0"==FALSE) -->
          <attribute type="discreteInputsStatus"   required="yes" />
     </ElementType>
      <!-- 0x03 Read Holding Registers -->
     <ElementType name="ReadHoldingRegistersReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Starting address: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="startAddress"   required="yes" />
           <!-- Quantity of registers: 0x0001 to 0x007D (2 bytes) -->
          <attribute type="quantity"   required="yes" />
     </ElementType>
     <ElementType name="ReadHoldingRegistersRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Register value: read holding register values -->
          <attribute type="registerValues"   required="yes" />
     </ElementType>
      <!-- 0x04 Read Input Registers -->
     <ElementType name="ReadInputRegistersReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Starting address: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="startAddress"   required="yes" />
           <!-- Quantity of Input registers: 0x0001 to 0x007D (2 bytes) -->
          <attribute type="quantity"   required="yes" />
     </ElementType>
     <ElementType name="ReadInputRegistersRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Input registers: read input register values -->
          <attribute type="registerValues"   required="yes" />
     </ElementType>
      <!-- 0x05 Write Single Coil -->
     <ElementType name="WriteSingleCoilReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Output address: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="outputAddress"   required="yes" />
           <!-- Output value: boolean (1="true", 0=="false") -->
          <attribute type="singleCoilValue"   required="yes" />
     </ElementType>
     <ElementType name="WriteSingleCoilRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
      <!-- 0x06 Write Single Register -->
     <ElementType name="WriteSingleRegisterReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Register address: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="outputAddress"   required="yes" />
           <!-- Register value: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="singleRegister"   required="yes" />
     </ElementType>
     <ElementType name="WriteSingleRegisterRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
      <!-- 0x07 Read Exception Status (serial line only!!) -->
     <ElementType name="ReadExceptionStatusReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
     <ElementType name="ReadExceptionStatusRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Output data: 0x00 to 0xFF (1 byte) -->
          <attribute type="exceptionStatus"   required="yes" />
     </ElementType>
      <!-- 0x08 Diagnostics (serial line only!!) -->
     <ElementType name="DiagnosticsReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Sub-function -->
          <attribute type="diagnosticsSubFct"   required="yes" />
           <!-- Data: Nx2 bytes -->
          <attribute type="diagnosticsData"   required="yes" />
     </ElementType>
     <ElementType name="DiagnosticsRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Sub-function -->
          <attribute type="diagnosticsSubFct"   required="yes" />
           <!-- Data: Nx2 bytes -->
          <attribute type="diagnosticsData"   required="no" />
     </ElementType>
      <!-- 0x0B Get Comm Event Counter (serial line only!!) -->
     <ElementType name="GetCommEventCounterReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
     <ElementType name="GetCommEventCounterRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Status: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="commStatus"   required="yes" />
           <!-- Event count: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="eventCount"   required="yes" />
     </ElementType>
      <!-- 0x0C Get Comm Event Log (serial line only!!) -->
     <ElementType name="GetCommEventLogReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
     <ElementType name="GetCommEventLogRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Status: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="commStatus"   required="yes" />
           <!-- Event count: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="eventCount"   required="yes" />
           <!-- Message count: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="messageCount"   required="yes" />
           <!-- Events: (N-6) x 1 byte (2 bytes) -->
          <attribute type="events"   required="no" />
     </ElementType>
      <!-- 0x0F Write Multiple Coils -->
     <ElementType name="WriteMultipleCoilsReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Starting address: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="outputAddress"   required="yes" />
           <!-- Outputs value: ASCII string with each coil state coded in one character ("1"==TRUE; "0"==FALSE) -->
          <attribute type="multipleCoilValues"   required="yes" />
     </ElementType>
     <ElementType name="WriteMultipleCoilsRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
      <!-- 0x10 Write Multiple Registers -->
     <ElementType name="WriteMultipleRegistersReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Starting address: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="outputAddress"   required="yes" />
           <!-- Register value: register values to write -->
          <attribute type="registerValues"   required="yes" />
     </ElementType>
     <ElementType name="WriteMultipleRegistersRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
      <!-- 0x11 Report Slave ID (serial line only!!) -->
     <ElementType name="ReportSlaveIDReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
     <ElementType name="ReportSlaveIDRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- data: This attribute contains the Slave ID, the Run Indicator Status and -->
           <!-- the additional device specific data -->
           <!-- in the same format and order as defined in the Modbus specification -->
          <attribute type="data"   required="yes" />
     </ElementType>
      <!-- 0x14/0x06 Read File Record -->
      <!-- Definition of sub-request structure -->
     <ElementType name="ReadFileSubRequest" content="empty" model="closed" >
           <!-- Sub-request x. reference type: must be 0x06 (1 byte) -->
          <attribute type="referenceType"
  default="06" required="yes" />
           <!-- Sub-request x. File Number: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="fileNumber"   required="yes" />
           <!-- Sub-request x. Record Number: 0x0000 to 0x270F (2 bytes) -->
          <attribute type="recordNumber"   required="yes" />
           <!-- Sub-request x. Register Length: N= 2 bytes (number of registers = record length) -->
          <attribute type="quantity"   required="yes" />
     </ElementType>
      <!-- Definition of main request structure -->
     <ElementType name="ReadFileRecordReq" content="eltOnly" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Sub-request: see ReadFileSubRequest -->
          <element type="ReadFileSubRequest"   minOccurs="1" maxOccurs="*" />
     </ElementType>
      <!-- Definition of sub-response structure -->
     <ElementType name="ReadFileSubResponse" content="empty" model="closed" >
           <!-- Sub-request x. Record Data: Nx2 bytes -->
          <attribute type="recordData"
  required="yes" />
     </ElementType>
      <!-- Definition of main response structure -->
     <ElementType name="ReadFileRecordRsp" content="eltOnly" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Sub-request: see ReadFileSubResponse -->
          <element type="ReadFileSubResponse"   minOccurs="1" maxOccurs="*" />
     </ElementType>
      <!-- 0x15/0x06 Write File Record -->
      <!-- Definition of sub-request structure -->
     <ElementType name="WriteFileSubRequest" content="empty" model="closed" >
           <!-- Sub-request x. Reference Type: must be 0x06 (1 byte) -->
          <attribute type="referenceType"
  default="06" required="yes" />
           <!-- Sub-request x. File Number: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="fileNumber"   required="yes" />
           <!-- Sub-request x. Record Number: 0x0000 to 0x270F (2 bytes) -->
          <attribute type="recordNumber"   required="yes" />
           <!-- Sub-request x. Record Data: Nx2 bytes -->
          <attribute type="recordData"   required="yes" />
     </ElementType>
      <!-- Definition of main request structure -->
     <ElementType name="WriteFileRecordReq" content="eltOnly" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Sub-request: see WriteFileSubRequest -->
          <element type="WriteFileSubRequest"   minOccurs="1" maxOccurs="*" />
     </ElementType>
      <!-- Definition of main response structure -->
     <ElementType name="WriteFileRecordRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
      <!-- 0x16 Mask Write Register -->
     <ElementType name="MaskWriteRegisterReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Reference address: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="referenceAddress"   required="yes" />
           <!-- AND_Mask: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="andMask"   required="yes" />
           <!-- OR_Mask: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="orMask"   required="yes" />
     </ElementType>
     <ElementType name="MaskWriteRegisterRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
      <!-- 0x17 Read/Write Registers -->
     <ElementType name="ReadWriteRegistersReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Read starting address: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="readStartAddress"   required="yes" />
           <!-- Quantity to read: 0x0001 to 0x007D (2 bytes) -->
          <attribute type="readQuantity"   required="yes" />
           <!-- Write starting address: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="writeStartAddress"   required="yes" />
           <!-- Write register values: register values to write -->
          <attribute type="writeRegisterValues"   required="yes" />
     </ElementType>
     <ElementType name="ReadWriteRegistersRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Read register values: read register values -->
          <attribute type="readRegisterValues"   required="yes" />
     </ElementType>
      <!-- 0x17 Read Fifo Queue -->
     <ElementType name="ReadFifoQueueReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- FIFO pointer address: 0x0000 to 0xFFFF (2 bytes) -->
          <attribute type="fifoPointerAddress"   required="yes" />
     </ElementType>
     <ElementType name="ReadFifoQueueRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- FIFO register values -->
          <attribute type="fifoRegisterValues"   required="yes" />
     </ElementType>
      <!-- 0x2B Encapsulated Interface Transport -->
     <ElementType name="EncapsulatedInterfaceTransportReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- MEI type: (1 byte) -->
          <attribute type="meiType"   required="yes" />
           <!-- MEI type specific data: n bytes -->
          <attribute type="meiData"   required="yes" />
     </ElementType>
     <ElementType name="EncapsulatedInterfaceTransportRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- MEI type: (1 byte) -->
          <attribute type="meiType"   required="yes" />
           <!-- MEI type specific data: n bytes -->
          <attribute type="meiData"   required="yes" />
     </ElementType>
      <!-- 0x2B/0x0E Read Device Identification -->
      <!-- Definition of identification object structure -->
     <ElementType name="IdentificationObject" content="empty" model="closed" >
           <!-- Object ID: (1 byte) -->
          <attribute type="objectId"
  required="yes" />
           <!-- Object Value -->
          <attribute type="objectValue"   required="yes" />
     </ElementType>
      <!-- Definition of main request structure -->
     <ElementType name="ReadDeviceIdentificationReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Read device ID code: 01 / 02/ 03 / 04 (1 byte) -->
          <attribute type="readDeviceIdCode"   required="yes" />
           <!-- Object ID: first object to read (1 byte) -->
          <attribute type="objectId"   required="yes" />
     </ElementType>
      <!-- Definition of main response structure -->
     <ElementType name="ReadDeviceIdentificationRsp" content="eltOnly" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Read device ID code: 01 / 02/ 03 / 04 (1 byte) -->
          <attribute type="readDeviceIdCode"   required="yes" />
           <!-- Conformity level: (1 byte) -->
          <attribute type="conformityLevel"   required="yes" />
           <!-- More follows: boolean (1="true", 0=="false") -->
          <attribute type="moreFollows"   required="yes" />
           <!-- Next object ID: (1 byte) -->
          <attribute type="nextObjectId"   required="yes" />
           <!-- Number of objects: number of identification objects returned in the response (1 byte) -->
          <attribute type="numberOfObjects"   required="yes" />
           <!-- Identification object: see IdentificationObject -->
          <element type="IdentificationObject"   minOccurs="1" maxOccurs="*" />
     </ElementType>
      <!-- Private Modbus Request -->
     <ElementType name="PrivateModbusReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Private Modbus request coded as hexadecimal byte-array -->
          <attribute type="privateRequest"   required="yes" />
     </ElementType>
     <ElementType name="PrivateModbusRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Private Modbus response coded as hexadecimal byte-array -->
          <attribute type="privateResponse"   required="yes" />
     </ElementType>
      <!-- Unconfirmed Private Modbus Request -->
     <ElementType name="UnconfirmedPrivateModbusReq" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
           <!-- Private Modbus request coded as hexadecimal byte-array -->
          <attribute type="privateRequest"   required="yes" />
     </ElementType>
     <ElementType name="UnconfirmedPrivateModbusRsp" content="empty" model="closed" >
          <attribute type="communicationReference"
  required="yes" />
     </ElementType>
      <!-- Main FDT element -->
     <ElementType name="FDT" content="eltOnly" order="one" model="closed" >
          <attribute type="schemaVersion"
  />
          <attribute type="fdt:nodeId"   />
          <group order="one" maxOccurs="1" minOccurs="1" >
               <element type="ConnectRequest"   />
               <element type="ConnectResponse"   />
               <element type="DisconnectRequest"   />
               <element type="DisconnectResponse"   />
               <element type="Abort"   />
               <element type="ModbusExceptionRsp"   />
               <element type="ReadCoilsReq"   />
               <element type="ReadCoilsRsp"   />
               <element type="ReadDiscreteInputsReq"   />
               <element type="ReadDiscreteInputsRsp"   />
               <element type="ReadHoldingRegistersReq"   />
               <element type="ReadHoldingRegistersRsp"   />
               <element type="ReadInputRegistersReq"   />
               <element type="ReadInputRegistersRsp"   />
               <element type="WriteSingleCoilReq"   />
               <element type="WriteSingleCoilRsp"   />
               <element type="WriteSingleRegisterReq"   />
               <element type="WriteSingleRegisterRsp"   />
               <element type="ReadExceptionStatusReq"   />
               <element type="ReadExceptionStatusRsp"   />
               <element type="DiagnosticsReq"   />
               <element type="DiagnosticsRsp"   />
               <element type="GetCommEventCounterReq"   />
               <element type="GetCommEventCounterRsp"   />
               <element type="GetCommEventLogReq"   />
               <element type="GetCommEventLogRsp"   />
               <element type="WriteMultipleCoilsReq"   />
               <element type="WriteMultipleCoilsRsp"   />
               <element type="WriteMultipleRegistersReq"   />
               <element type="WriteMultipleRegistersRsp"   />
               <element type="ReportSlaveIDReq"   />
               <element type="ReportSlaveIDRsp"   />
               <element type="ReadFileRecordReq"   />
               <element type="ReadFileRecordRsp"   />
               <element type="WriteFileRecordReq"   />
               <element type="WriteFileRecordRsp"   />
               <element type="MaskWriteRegisterReq"   />
               <element type="MaskWriteRegisterRsp"   />
               <element type="ReadWriteRegistersReq"   />
               <element type="ReadWriteRegistersRsp"   />
               <element type="ReadFifoQueueReq"   />
               <element type="ReadFifoQueueRsp"   />
               <element type="EncapsulatedInterfaceTransportReq"   />
               <element type="EncapsulatedInterfaceTransportRsp"   />
               <element type="ReadDeviceIdentificationReq"   />
               <element type="ReadDeviceIdentificationRsp"   />
               <element type="PrivateModbusReq"   />
               <element type="PrivateModbusRsp"   />
               <element type="UnconfirmedPrivateModbusReq"   />
               <element type="UnconfirmedPrivateModbusRsp"   />
               <element type="fdt:CommunicationError"   />
          </group>
     </ElementType>
</Schema>

© by M&M Software GmbH, parts of this website taken from FDT Interface Specification Version 1.2.1, © by FDT Group, AISBL.
This website is published for support of M&M products as granted in license conditions, chapter 2.1.
Last updated 2015-02-05 15:18
Email: FDT Technical Support Line.