<Schema name="FDTSERCOSParameterSchema" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:fdt="x-schema:FDTDataTypesSchema.xml" xmlns:fdtpar="x-schema:DTMParameterSchema.xml">

	<!--Definition of Attributes-->
	<AttributeType name="schemaVersion" dt:type="number" default="1.0"/>
	<!-- 32 bits IDN -->
	<AttributeType name="idn" dt:type="ui4"/>
	<AttributeType name="tScyc" dt:type="ui4"/>
	<AttributeType name="tPcyc" dt:type="ui4"/>
	<!-- actionType for Parameter, WRITE, READ and CoMPare, EXECute a procedure command  -->
	<AttributeType name="actionType" dt:type="enumeration" dt:values="WR RDCMP EXEC"/>
	<AttributeType name="dbElement" dt:type="ui1"/>
	<AttributeType name="dataMask" dt:type="bin.hex"/>
	<AttributeType name="abortIfError" dt:type="boolean" default="1"/>
	<AttributeType name="gotoIfError" dt:type="i4"/>
	<!--Range of slaveIndex: 0 - 255 -->
	<AttributeType name="slaveIndex" dt:type="ui1"/>	
	<!--Range of slaveAddress: 0 - 511 -->
	<AttributeType name="sercosAddress" dt:type="ui2"/>	
	<AttributeType name="sercosAddresses" dt:type="string"/>	
	<AttributeType name="vendorCode" dt:type="ui2"/>
	<AttributeType name="deviceID" dt:type="string"/>	
	<!--SlaveFlags as defined in SCI SIIIbin Specification -->
	<AttributeType name="slaveFlags" dt:type="ui4"/>	
	<AttributeType name="connectionInstance" dt:type="ui1"/>	
	<AttributeType name="connectionSetup" dt:type="ui2"/>			
	<AttributeType name="actualLength" dt:type="ui2"/>		
	<AttributeType name="allowedDataLosses" dt:type="ui2"/>		
	
	<!--Network attributes-->
	<AttributeType name="ipAddress" dt:type="string"/>
	<AttributeType name="hostName" dt:type="string"/>
	<AttributeType name="port" dt:type="ui2"/>
	<AttributeType name="systemDelay" dt:type="ui4"/>

	<!--SCP type attributes-->
	<AttributeType name="profileID" dt:type="ui1"/>
	<AttributeType name="versionSCP"   dt:type="ui1"/>

		<!--Definition of Elements -->
	
	<ElementType name="ElectronicLabel" content="empty" model="closed">
		<attribute type="fdt:nodeId" required="no"/>
		<attribute type="vendorCode" required="yes"/> 
		<attribute type="deviceID" required="yes"/>
		<!--  all other optional ElectronicLabel attributes can be transferred via parameters -->
	</ElementType>

	<ElementType name="Connection" content="eltOnly" model="closed">	 
		<attribute type="connectionInstance" required="yes"/>
		<attribute type="connectionSetup" required="yes"/>
		<attribute type="actualLength" required="yes"/>
		<!-- In case of producer connection this attribute is mandatory tPcyc, S-0-1050.x.10 -->
		<attribute type="tPcyc" required="no"/>
		<!-- In case of consumer connection this attribute is mandatory -->
		<attribute type="allowedDataLosses" required="no"/>	
		<!-- Get IO/Drive signal info from process channel parameter xml -->
		<element type="fdt:ChannelReferences" minOccurs="1" maxOccurs="1"/>
	</ElementType>	

	<ElementType name="Connections" content="eltOnly" model="closed">
		<element type="Connection" minOccurs="0" maxOccurs="*"/>
	</ElementType>
		
	<ElementType name="Parameter" content="empty" model="closed">
		<attribute type="fdt:nodeId" required="no"/>	
		<attribute type="idn" required="yes"/> 	  
		<attribute type="dbElement" required="yes"/>
		<attribute type="actionType" required="yes"/> 	
		<!--  fdt:byteLength:  byteSize (defined in SIIICfg.xsd) -->	  
		<attribute type="fdt:byteLength" required="no"/>
		<!--  fdt:binData:  data (defined in SIIICfg.xsd) -->	  
		<attribute type="fdt:binData" required="no"/>
		<attribute type="dataMask" required="no"/>
		<attribute type="abortIfError" required="no"/>
		<attribute type="gotoIfError" required="no"/>
		<!--  fdt:descriptor:  comment (defined in SIIICfg.xsd) -->
		<attribute type="fdt:descriptor" required="no"/>
		<!--  fdt:languageId:  LcId (defined in SIIICfg.xsd) -->
		<attribute type="fdt:languageId" required="no"/>
	</ElementType>
	  
	<ElementType name="CP2ParameterList" content="eltOnly" model="open">   
		<element   type="Parameter" minOccurs="0" maxOccurs="*"/>	  
	</ElementType>
	
	<ElementType name="CP3ParameterList" content="eltOnly" model="open">   
		<element   type="Parameter" minOccurs="0" maxOccurs="*"/>	  
	</ElementType>
		
	<ElementType name="CP4ParameterList" content="eltOnly" model="open">   
		<element   type="Parameter" minOccurs="0" maxOccurs="*"/>	  
	</ElementType>
	
	<!-- Start-up parameters, CP2-4 -->
	<ElementType name="ParameterLists" content="eltOnly" model="open">   
		<element   type="CP2ParameterList" minOccurs="0" maxOccurs="1"/>	 
		<element   type="CP3ParameterList" minOccurs="0" maxOccurs="1"/>	 
		<element   type="CP4ParameterList" minOccurs="0" maxOccurs="1"/>	 
	</ElementType>

	<ElementType name="SCPclassification" content="eltOnly" model="open">   
		<attribute type="profileID" required="yes"/>
		<attribute type="versionSCP" required="no"/> 	
	</ElementType>
	
	<ElementType name="Slave" content="mixed" model="closed">	
		<attribute type="slaveIndex" required="yes"/>
		<attribute type="sercosAddress" required="yes"/>		
		<attribute type="slaveFlags" required="no"/>
		<element   type="SCPclassification" minOccurs="0" maxOccurs="*"/>	 
		<element   type="ElectronicLabel" minOccurs="0" maxOccurs="1"/>	
		<element   type="Connections" minOccurs="0" maxOccurs="1"/>		
		<element   type="ParameterLists" minOccurs="0" maxOccurs="1"/>	 
	</ElementType>
	
	<ElementType name="SlaveList" content="eltOnly" model="closed">		  
		<element   type="Slave" minOccurs="1" maxOccurs="*"/>	 
	</ElementType>
	  
	<ElementType name="NetworkAddress" content="empty" model="closed">
		<attribute type="ipAddress" required="no"/>
		<attribute type="hostName" required="no"/>
		<attribute type="port" required="no"/>
		<attribute type="systemDelay" required="no"/>
	</ElementType>	
	
	<ElementType name="SercosIIIDevice" content="eltOnly" model="closed">
		<attribute type="schemaVersion" required="no"/>
		<attribute type="fdt:nodeId" required="no"/>		
		<attribute type="sercosAddresses" required="no"/>		
		<attribute type="tScyc" required="no"/>	
		<element   type="ElectronicLabel" minOccurs="1" maxOccurs="1"/>	
		<element   type="SlaveList" minOccurs="1" maxOccurs="1"/>	    
		<element   type="NetworkAddress" minOccurs="0" maxOccurs="1"/>	    
	</ElementType>
</Schema>
