Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

3. Configuration packet

The PacketHandler function is:

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 &amp; 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 &amp; 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>