3. Configuration packet
The Diagnostic functions are:
void AppPNS_HandleAppAddChannelDiagnosisReq( uint16_t usSlot , uint16_t usSubslot, APP_DATA_T* ptAppData)
{
/* use global packet buffer */
PNS_IF_ADD_CHANNEL_DIAG_REQ_T *ptReq = ( PNS_IF_ADD_CHANNEL_DIAG_REQ_T*) &(ptAppData->tPacket);
memset(ptReq, 0x00, sizeof(*ptReq));
ptReq->tHead.ulDest = 0x20;
ptReq->tHead.ulCmd = PNS_IF_ADD_CHANNEL_DIAG_REQ;
ptReq->tHead.ulLen = sizeof(ptReq->tData);
ptReq->tData.ulApi = 0;
ptReq->tData.ulSlot = usSlot;
ptReq->tData.ulSubslot = usSubslot;
ptReq->tData.usChannelNum = 0x8000;
ptReq->tData.usChannelProp = 0x0000;
ptReq->tData.usChannelErrType = 2;
(void)Pkt_SendPacket(ptAppData->hChannel[0], &ptAppData->tPacket, TX_TIMEOUT);
}
void AppPNS_HandleAddChannelDiagnosisCnf( APP_DATA_T* ptAppData)
{
PNS_IF_ADD_CHANNEL_DIAG_CNF_T* ptAddChannelDiagCnf=( PNS_IF_ADD_CHANNEL_DIAG_CNF_T*) &(ptAppData->tPacket);
s_abDiagHandle = ptAddChannelDiagCnf->tData.hDiagHandle;
return;
}
void AppPNS_HandleRemoveDiagnosisReq( APP_DATA_T* ptAppData)
{
/* use global packet buffer */
PNS_IF_REMOVE_DIAG_REQ_T *ptReq = ( PNS_IF_REMOVE_DIAG_REQ_T*) &(ptAppData->tPacket);
memset(ptReq, 0x00, sizeof(*ptReq));
ptReq->tHead.ulDest = 0x20;
ptReq->tHead.ulCmd = PNS_IF_REMOVE_DIAG_REQ;
ptReq->tHead.ulLen = 4;//sizeof(ptReq->tData);
ptReq->tData.hDiagHandle=s_abDiagHandle;
(void)Pkt_SendPacket(ptAppData->hChannel[0], &ptAppData->tPacket, TX_TIMEOUT);
}
<?xml version="1.0" encoding="iso-8859-1"?>
<ISO15745Profile xmlns="http://www.profibus.com/GSDML/2003/11/DeviceProfile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.profibus.com/GSDML/2003/11/DeviceProfile ..\xsd\GSDML-DeviceProfile-V2.34.xsd">
<ProfileHeader>
<ProfileIdentification>PROFINET Device Profile</ProfileIdentification>
<ProfileRevision>1.00</ProfileRevision>
<ProfileName>Device Profile for PROFINET Devices</ProfileName>
<ProfileSource>PROFIBUS Nutzerorganisation e. V. (PNO)</ProfileSource>
<ProfileClassID>Device</ProfileClassID>
<ISO15745Reference>
<ISO15745Part>4</ISO15745Part>
<ISO15745Edition>1</ISO15745Edition>
<ProfileTechnology>GSDML</ProfileTechnology>
</ISO15745Reference>
</ProfileHeader>
<ProfileBody>
<DeviceIdentity DeviceID="0x1003" VendorID="0x011E">
<InfoText TextId="DeviceDescription_InfoText"/>
<VendorName Value="Hilscher Gesellschaft für Systemautomation mbH"/>
</DeviceIdentity>
<DeviceFunction>
<Family MainFamily="I/O" ProductFamily="PNS"/>
</DeviceFunction>
<ApplicationProcess>
<DeviceAccessPointList>
<DeviceAccessPointItem CheckDeviceID_Allowed="true" DNS_CompatibleName="netxv5repns" DeviceAccessSupported="true" FixedInSlots="0" ID="DIM 31" ImplementationType="netX" LLDP_NoD_Supported="true" MinDeviceInterval="8" ModuleIdentNumber="0x00003011" MultipleWriteSupported="true" NameOfStationNotTransferable="true" NumberOfDeviceAccessAR="1" ObjectUUID_LocalIndex="1" PNIO_Version="V2.34" PhysicalSlots="0..32" PowerOnToCommReady="10000" PrmBeginPrmEndSequenceSupported="false" ResetToFactoryModes="2" SharedDeviceSupported="true" SharedInputSupported="false">
<ModuleInfo>
<Name TextId="NETX RE/PNS V5.1.0 Host Example"/>
<InfoText TextId="DIM 31_InfoText"/>
<VendorName Value="Hilscher Gesellschaft für Systemautomation mbH"/>
<OrderNumber Value="1234.567"/>
<HardwareRelease Value="3"/>
<SoftwareRelease Value="V5.1.0"/>
</ModuleInfo>
<CertificationInfo ApplicationClass="" ConformanceClass="C" NetloadClass="II"/>
<SubslotList>
<SubslotItem SubslotNumber="32768" TextId="X1"/>
<SubslotItem SubslotNumber="32769" TextId="X1P1"/>
<SubslotItem SubslotNumber="32770" TextId="X1P2"/>
</SubslotList>
<IOConfigData MaxInputLength="1440" MaxOutputLength="1440"/>
<UseableModules>
<ModuleItemRef FixedInSlots="1" ModuleItemTarget="10byteinput"/>
<ModuleItemRef FixedInSlots="2" ModuleItemTarget="6byteoutput"/>
</UseableModules>
<VirtualSubmoduleList>
<VirtualSubmoduleItem ID="DIM 31" IM5_Supported="false" MayIssueProcessAlarm="false" SubmoduleIdentNumber="0x00003010" Writeable_IM_Records="1 2 3">
<IOData/>
<ModuleInfo CategoryRef="DAP Module">
<Name TextId="NETX RE/PNS V5.1.0 Host Example"/>
<InfoText TextId="DIM 31_InfoText"/>
</ModuleInfo>
</VirtualSubmoduleItem>
</VirtualSubmoduleList>
<SystemDefinedSubmoduleList>
<InterfaceSubmoduleItem DCP_BoundarySupported="true" DCP_HelloSupported="true" DelayMeasurementSupported="true" ID="DIM 31 Interfacesubmodule" NetworkComponentDiagnosisSupported="false" PTP_BoundarySupported="true" SubmoduleIdentNumber="0x00003011" SubslotNumber="32768" SupportedProtocols="SNMP;LLDP" SupportedRT_Classes="RT_CLASS_1;RT_CLASS_3" TextId="PN-IO" >
<RT_Class3Properties ForwardingMode="Relative" MaxBridgeDelay="5500" MaxNumberIR_FrameData="256" MaxRetentionTime="20000" StartupMode="Advanced;Legacy"/>
<SynchronisationMode MaxLocalJitter="50" SupportedRole="SyncSlave" SupportedSyncProtocols="PTCP" T_PLL_MAX="1000"/>
<ApplicationRelations NumberOfAR="2" StartupMode="Advanced;Legacy">
<TimingProperties ReductionRatio="1 2 4 8 16 32 64 128 256 512" SendClock="32 64 128"/>
<RT_Class3TimingProperties ReductionRatio="1 2 4 8 16" SendClock="8 16 32 64 128"/>
</ApplicationRelations>
<MediaRedundancy SupportedRole="Client"/>
</InterfaceSubmoduleItem>
<PortSubmoduleItem CheckMAUTypeDifferenceSupported="true" CheckMAUTypeSupported="true" ID="DIM 31 Portsubmodule 1" IsDefaultRingport="true" LinkStateDiagnosisCapability="Up+Down" MAUTypes="16" MaxPortRxDelay="220" MaxPortTxDelay="116" PortDeactivationSupported="true" SubmoduleIdentNumber="0x00003012" SubslotNumber="32769" TextId="Port1">
<MAUTypeList>
<MAUTypeItem AdjustSupported="true" Value="16"/>
</MAUTypeList>
</PortSubmoduleItem>
<PortSubmoduleItem CheckMAUTypeDifferenceSupported="true" CheckMAUTypeSupported="true" ID="DIM 31 Portsubmodule 2" IsDefaultRingport="true" LinkStateDiagnosisCapability="Up+Down" MAUTypes="16" MaxPortRxDelay="220" MaxPortTxDelay="116" PortDeactivationSupported="true" SubmoduleIdentNumber="0x00003013" SubslotNumber="32770" TextId="Port2">
<MAUTypeList>
<MAUTypeItem AdjustSupported="true" Value="16"/>
</MAUTypeList>
</PortSubmoduleItem>
</SystemDefinedSubmoduleList>
<Graphics>
<GraphicItemRef GraphicItemTarget="1" Type="DeviceSymbol"/>
<GraphicItemRef GraphicItemTarget="1" Type="DeviceIcon"/>
</Graphics>
</DeviceAccessPointItem>
</DeviceAccessPointList>
<ModuleList>
<ModuleItem ID="10byteinput" ModuleIdentNumber="0x00000001">
<ModuleInfo CategoryRef="Input Module">
<Name TextId="Module_10byteinput_Name"/>
<InfoText TextId="Module_10byteinput_InfoText"/>
</ModuleInfo>
<VirtualSubmoduleList>
<VirtualSubmoduleItem ID="10byteinput" MayIssueProcessAlarm="false" SubmoduleIdentNumber="0x00000001">
<IOData>
<Input>
<DataItem DataType="OctetString" Length="10" TextId="DataItem_10byteinput_inputdata_0_Name"/>
</Input>
</IOData>
<RecordDataList>
<ParameterRecordDataItem Index="1" Length="2">
<Name TextId="Submodule_10byteinput_ParameterName"/>
<Const Data="0x01,0x01"/>
<Ref ValueItemTarget="ExampleParameter" TextId="IDT_InputExampleParameter1" DataType="Unsigned8" ByteOffset="0" BitOffset="0" DefaultValue="1" AllowedValues="1 2" Changeable="true" />
<Ref ValueItemTarget="ExampleParameter" TextId="IDT_InputExampleParameter2" DataType="Unsigned8" ByteOffset="1" BitOffset="0" DefaultValue="1" AllowedValues="1 2" Changeable="true" />
</ParameterRecordDataItem>
</RecordDataList>
<ModuleInfo>
<Name TextId="Submodule_10byteinput_Name"/>
<InfoText TextId="Submodule_10byteinput_InfoText"/>
</ModuleInfo>
</VirtualSubmoduleItem>
</VirtualSubmoduleList>
</ModuleItem>
<ModuleItem ID="6byteoutput" ModuleIdentNumber="0x00000002">
<ModuleInfo CategoryRef="Output Module">
<Name TextId="Module_6byteoutput_Name"/>
<InfoText TextId="Module_6byteoutput_InfoText"/>
</ModuleInfo>
<VirtualSubmoduleList>
<VirtualSubmoduleItem ID="6byteoutput" MayIssueProcessAlarm="false" SubmoduleIdentNumber="0x00000001">
<IOData>
<Output>
<DataItem DataType="OctetString" Length="6" TextId="DataItem_6byteoutput_outputdata_0_Name"/>
</Output>
</IOData>
<RecordDataList>
<ParameterRecordDataItem Index="2" Length="2">
<Name TextId="Submodule_6byteoutput_ParameterName"/>
<Const Data="0x02,0x02"/>
<Ref ValueItemTarget="ExampleParameter" TextId="IDT_OutputExampleParameter1" DataType="Unsigned8" ByteOffset="0" BitOffset="0" DefaultValue="2" AllowedValues="1 2" Changeable="true" />
<Ref ValueItemTarget="ExampleParameter" TextId="IDT_OutputExampleParameter2" DataType="Unsigned8" ByteOffset="1" BitOffset="0" DefaultValue="2" AllowedValues="1 2" Changeable="true" />
</ParameterRecordDataItem>
</RecordDataList>
<ModuleInfo>
<Name TextId="Submodule_6byteoutput_Name"/>
<InfoText TextId="Submodule_6byteoutput_InfoText"/>
</ModuleInfo>
</VirtualSubmoduleItem>
</VirtualSubmoduleList>
</ModuleItem>
</ModuleList>
<ValueList>
<ValueItem ID="ExampleParameter">
<Assignments>
<Assign Content="1" TextId="ExampleParameterValue1" />
<Assign Content="2" TextId="ExampleParameterValue2" />
</Assignments>
</ValueItem>
</ValueList>
<ChannelDiagList>
<!--User Diagnosis - Example-->
<ChannelDiagItem ErrorType="256">
<Name TextId="IDT_DIAG_EXAMPLE" />
<Help TextId="IDT_DIAG_HELP_EXAMPLE" />
</ChannelDiagItem>
</ChannelDiagList>
<GraphicsList>
<GraphicItem GraphicFile="GSDML-011E-0x1003-NETX90REPNS" ID="1"/>
</GraphicsList>
<CategoryList>
<CategoryItem ID="DAP Module" TextId="DAP Module_CategoryName"/>
<CategoryItem ID="Input Module" TextId="Input Module_CategoryName"/>
<CategoryItem ID="Output Module" TextId="Output Module_CategoryName"/>
</CategoryList>
<ExternalTextList>
<PrimaryLanguage>
<Text TextId="DAP Module_CategoryName" Value="Device Access Point Modules"/>
<Text TextId="DIM 31_InfoText" Value="Firmware version V5.1.0 Identification & Maintenance 1-3, Shared Device, RT and IRT Communication."/>
<Text TextId="DataItem_10byteinput_inputdata_0_Name" Value="Inputs"/>
<Text TextId="DataItem_6byteoutput_outputdata_0_Name" Value="Outputs"/>
<Text TextId="DeviceDescription_InfoText" Value="PROFINET IO-Device"/>
<Text TextId="Input Module_CategoryName" Value="Input Modules"/>
<Text TextId="Module_10byteinput_InfoText" Value="10 Bytes Input Module"/>
<Text TextId="Module_10byteinput_Name" Value="10 Bytes Input"/>
<Text TextId="Module_6byteoutput_InfoText" Value="6 Bytes Output Module"/>
<Text TextId="Module_6byteoutput_Name" Value="6 Bytes Output"/>
<Text TextId="NETX RE/PNS V5.1.0 Host Example" Value="NETX RE/PNS V5.1.0 Host Example"/>
<Text TextId="Output Module_CategoryName" Value="Output Modules"/>
<Text TextId="PN-IO" Value="PN-IO"/>
<Text TextId="Port1" Value="Port 1"/>
<Text TextId="Port2" Value="Port 2"/>
<Text TextId="Submodule_10byteinput_InfoText" Value="10 Bytes Input Submodule"/>
<Text TextId="Submodule_10byteinput_Name" Value="10 Bytes Input"/>
<Text TextId="Submodule_6byteoutput_InfoText" Value="6 Byte Output Submodule"/>
<Text TextId="Submodule_6byteoutput_Name" Value="6 Bytes Output"/>
<Text TextId="X1" Value="X1"/>
<Text TextId="X1P1" Value="X1 P1"/>
<Text TextId="X1P2" Value="X1 P2"/>
<Text TextId="IDT_OutputExampleParameter1" Value="Output example parameter 1"/>
<Text TextId="IDT_OutputExampleParameter2" Value="Output example parameter 2"/>
<Text TextId="IDT_InputExampleParameter1" Value="Input example parameter 1"/>
<Text TextId="IDT_InputExampleParameter2" Value="Input example parameter 2"/>
<Text TextId="ExampleParameterValue1" Value="Parameter 1"/>
<Text TextId="ExampleParameterValue2" Value="Parameter 2"/>
<Text TextId="Submodule_10byteinput_ParameterName" Value="Example Record for 10 byteinput submodule"/>
<Text TextId="Submodule_6byteoutput_ParameterName" Value="Example Record for 6 byteoutput submodule"/>
<!--Generic Diagnosis-->
<!--#256-->
<Text TextId="IDT_DIAG_EXAMPLE" Value="Diagnosis is active" />
<Text TextId="IDT_DIAG_HELP_EXAMPLE" Value="Dip 3 in NXHX 90 Board is switched on" />
</PrimaryLanguage>
<Language xml:lang="de">
<Text TextId="DAP Module_CategoryName" Value="Device Access Point Module"/>
<Text TextId="DIM 31_InfoText" Value="Firmware version V5.1.0 Identification & Maintenance 1-3, Shared Device, RT und IRT Betrieb."/>
<Text TextId="DataItem_10byteinput_inputdata_0_Name" Value="Eingänge"/>
<Text TextId="DataItem_6byteoutput_outputdata_0_Name" Value="Ausgänge"/>
<Text TextId="DeviceDescription_InfoText" Value="PROFINET IO-Device"/>
<Text TextId="Input Module_CategoryName" Value="Eingangsmodule"/>
<Text TextId="Module_10byteinput_InfoText" Value="10 Byte Eingangsmodul"/>
<Text TextId="Module_10byteinput_Name" Value="10 Byte Eingang"/>
<Text TextId="Module_6byteoutput_InfoText" Value="6 Byte Ausgangsmodul"/>
<Text TextId="Module_6byteoutput_Name" Value="6 Byte Ausgang"/>
<Text TextId="NETX RE/PNS V5.1.0 Host Example" Value="NETX RE/PNS V5.1.0 Host Example"/>
<Text TextId="Output Module_CategoryName" Value="Ausgangsmodule"/>
<Text TextId="PN-IO" Value="PN-IO"/>
<Text TextId="Port1" Value="Port 1"/>
<Text TextId="Port2" Value="Port 2"/>
<Text TextId="Submodule_10byteinput_InfoText" Value="10 Byte Eingangssubmodul"/>
<Text TextId="Submodule_10byteinput_Name" Value="10 Byte Eingang"/>
<Text TextId="Submodule_6byteoutput_InfoText" Value="6 Byte Ausgangssubmodul"/>
<Text TextId="Submodule_6byteoutput_Name" Value="6 Byte Ausgang"/>
<Text TextId="X1" Value="X1"/>
<Text TextId="X1P1" Value="X1 P1"/>
<Text TextId="X1P2" Value="X1 P2"/>
<Text TextId="IDT_OutputExampleParameter1" Value="Ausgang Beispiel Parameter 1"/>
<Text TextId="IDT_OutputExampleParameter2" Value="Ausgang Beispiel Parameter 2"/>
<Text TextId="IDT_InputExampleParameter1" Value="Eingang Beispiel Parameter 1"/>
<Text TextId="IDT_InputExampleParameter2" Value="Eingang Beispiel Parameter 2"/>
<Text TextId="ExampleParameterValue1" Value="Parameter 1"/>
<Text TextId="ExampleParameterValue2" Value="Parameter 2"/>
<Text TextId="Submodule_10byteinput_ParameterName" Value="Beispiel Parameter für 10 byteinput Submodul"/>
<Text TextId="Submodule_6byteoutput_ParameterName" Value="Beispiel Parameter für 6 byteoutput Submodul"/>
<!--Generic Diagnosis-->
<!--#256-->
<Text TextId="IDT_DIAG_EXAMPLE" Value="Diagnose ist aktiv"/>
<Text TextId="IDT_DIAG_HELP_EXAMPLE" Value="Dip 3 im NXHX 90 Board ist eingeschaltet"/>
</Language>
</ExternalTextList>
</ApplicationProcess>
</ProfileBody>
</ISO15745Profile>