﻿<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://www.plcopen.org/xml/tc6_0200">
  <fileHeader companyName="Rexroth" productName="ctrlX PLC Engineering" productVersion="ctrlX PLC 3.6.3" creationDateTime="2026-03-19T17:09:35.8229365" />
  <contentHeader name="ENIP_Explicit_Ctrlx.project" modificationDateTime="2026-03-19T17:08:50.9530789">
    <coordinateInfo>
      <fbd>
        <scaling x="1" y="1" />
      </fbd>
      <ld>
        <scaling x="1" y="1" />
      </ld>
      <sfc>
        <scaling x="1" y="1" />
      </sfc>
    </coordinateInfo>
    <addData>
      <data name="http://www.3s-software.com/plcopenxml/projectinformation" handleUnknown="implementation">
        <ProjectInformation />
      </data>
    </addData>
  </contentHeader>
  <types>
    <dataTypes />
    <pous>
      <pou name="CipObjectDintArray10" pouType="functionBlock">
        <interface>
          <outputVars>
            <variable name="Value">
              <type>
                <array>
                  <dimension lower="0" upper="9" />
                  <baseType>
                    <DINT />
                  </baseType>
                </array>
              </type>
            </variable>
          </outputVars>
          <localVars>
            <variable name="_dwInstance">
              <type>
                <DWORD />
              </type>
              <initialValue>
                <simpleValue value="1" />
              </initialValue>
            </variable>
            <variable name="_wClassID">
              <type>
                <WORD />
              </type>
              <initialValue>
                <simpleValue value="16#64" />
              </initialValue>
            </variable>
            <variable name="_strEPath">
              <type>
                <derived name="CIP_Object.UnpackedEPATH" />
              </type>
              <initialValue>
                <structValue>
                  <value member="wClassValue">
                    <simpleValue value="_wClassID" />
                  </value>
                  <value member="dwInstanceValue">
                    <simpleValue value="_dwInstance" />
                  </value>
                </structValue>
              </initialValue>
            </variable>
          </localVars>
          <addData>
            <data name="http://www.3s-software.com/plcopenxml/pouinheritance" handleUnknown="implementation">
              <Inheritance>
                <Extends>LAT.Element</Extends>
                <Implements>CIP_Object.ICIP2</Implements>
              </Inheritance>
            </data>
          </addData>
        </interface>
        <body>
          <ST>
            <xhtml xmlns="http://www.w3.org/1999/xhtml" />
          </ST>
        </body>
        <addData>
          <data name="http://www.3s-software.com/plcopenxml/method" handleUnknown="implementation">
            <Method name="ServiceRequest" ObjectId="779f829a-360f-4202-b604-edc95c4bec09">
              <interface>
                <returnType>
                  <derived name="CIP_Object.ERROR_CODE" />
                </returnType>
                <inputVars>
                  <variable name="uiServiceCode">
                    <type>
                      <UINT />
                    </type>
                  </variable>
                  <variable name="dwInstanceID">
                    <type>
                      <DWORD />
                    </type>
                  </variable>
                  <variable name="pData">
                    <type>
                      <pointer>
                        <baseType>
                          <BYTE />
                        </baseType>
                      </pointer>
                    </type>
                  </variable>
                  <variable name="uiDataSize">
                    <type>
                      <UINT />
                    </type>
                  </variable>
                  <variable name="pRequest">
                    <type>
                      <pointer>
                        <baseType>
                          <derived name="CIP_ENC.EncapsulationPacket" />
                        </baseType>
                      </pointer>
                    </type>
                    <documentation>
                      <xhtml xmlns="http://www.w3.org/1999/xhtml"> Inputs for response callback - only use fir calling the ServiceResponse. </xhtml>
                    </documentation>
                  </variable>
                  <variable name="itfCallback">
                    <type>
                      <derived name="CIP_Object.ICIPCallback" />
                    </type>
                  </variable>
                </inputVars>
                <localVars>
                  <variable name="byteBuffer">
                    <type>
                      <derived name="MEMUtils.ByteBuffer" />
                    </type>
                  </variable>
                  <variable name="bAttributeSegment">
                    <type>
                      <BYTE />
                    </type>
                  </variable>
                  <variable name="wAttributeID">
                    <type>
                      <WORD />
                    </type>
                  </variable>
                  <variable name="pAttData">
                    <type>
                      <pointer>
                        <baseType>
                          <BYTE />
                        </baseType>
                      </pointer>
                    </type>
                  </variable>
                  <variable name="uiAttDataSize">
                    <type>
                      <UINT />
                    </type>
                  </variable>
                </localVars>
              </interface>
              <body>
                <ST>
                  <xhtml xmlns="http://www.w3.org/1999/xhtml">IF dwInstanceID = _dwInstance THEN
	CASE uiServiceCode OF
	CIP_Object.CIP_CommonService.Set_Attribute_Single,
	CIP_Object.CIP_CommonService.Get_Attribute_Single:
		IF pData &lt;&gt; 0 THEN
			(* parse the request data for the required attribute id *)
			byteBuffer(pbyBuffer := pData, udiBufferSize := uiDataSize, eByteOrder := MEMUtils.ByteOrder.LITTLE_ENDIAN);
			bAttributeSegment := byteBuffer.GetByte();
			IF (bAttributeSegment = CIP_Object.LogicalSegment.AttributeID) THEN
				wAttributeID := TO_WORD(byteBuffer.GetByte());
			ELSIF (bAttributeSegment = (CIP_Object.LogicalSegment.AttributeID OR 1)) THEN
				wAttributeID := byteBuffer.GetWord();
			ELSE
				ServiceRequest.GENERAL_STATUS := CIP_Object.GeneralStatus.PATH_SEGMENT_ERROR;
			END_IF 
			IF ServiceRequest.GENERAL_STATUS = CIP_Object.GeneralStatus.SUCCESS THEN
				IF wAttributeID = 3 THEN
					(* set the required attribute *)
					IF uiServiceCode = CIP_Object.CIP_CommonService.Set_Attribute_Single THEN
						//Verify that the array size is the same
						IF byteBuffer.udiBytesRemaining = SIZEOF(Value) THEN
							//Move Buffer to Value
							bytebuffer.GetNBytes(pbyTarget := ADR(Value), nBytes := TO_UINT(byteBuffer.udiBytesRemaining));
						END_IF
					(* get the required attribute *)
					ELSE
						pAttData := ADR(Value);
						uiAttDataSize := SIZEOF(Value);
					END_IF
				END_IF
			END_IF
		ELSE
			ServiceRequest.GENERAL_STATUS := CIP_Object.GeneralStatus.INVALID_PARAMETER;
		END_IF
	ELSE
		ServiceRequest.GENERAL_STATUS := CIP_Object.GeneralStatus.SERVICE_NOT_SUPPORTED;
	END_CASE
END_IF 

IF itfCallback &lt;&gt; 0 THEN
	itfCallback.ServiceResponse(uiServiceCode := uiServiceCode, pData := pAttData, uiDataSize := uiAttDataSize, pRequest := pRequest, strStatus := ServiceRequest);
END_IF</xhtml>
                </ST>
              </body>
              <addData />
            </Method>
          </data>
          <data name="http://www.3s-software.com/plcopenxml/method" handleUnknown="implementation">
            <Method name="Service" ObjectId="778705e9-2958-4cf9-8114-88f3693e68c1">
              <interface>
                <returnType>
                  <derived name="CIP_Object.ERROR_CODE" />
                </returnType>
                <inputVars>
                  <variable name="uiServiceCode">
                    <type>
                      <UINT />
                    </type>
                  </variable>
                  <variable name="usiInstanceNumber">
                    <type>
                      <USINT />
                    </type>
                  </variable>
                  <variable name="pby_Data">
                    <type>
                      <pointer>
                        <baseType>
                          <BYTE />
                        </baseType>
                      </pointer>
                    </type>
                  </variable>
                  <variable name="uiSizeOfData">
                    <type>
                      <UINT />
                    </type>
                  </variable>
                </inputVars>
                <outputVars>
                  <variable name="pby_ResponseData">
                    <type>
                      <pointer>
                        <baseType>
                          <BYTE />
                        </baseType>
                      </pointer>
                    </type>
                  </variable>
                  <variable name="uiSizeofResponseData">
                    <type>
                      <UINT />
                    </type>
                  </variable>
                </outputVars>
              </interface>
              <body>
                <ST>
                  <xhtml xmlns="http://www.w3.org/1999/xhtml" />
                </ST>
              </body>
              <addData />
            </Method>
          </data>
          <data name="http://www.3s-software.com/plcopenxml/property" handleUnknown="implementation">
            <Property name="ClassID" ObjectId="022dad96-3432-49bb-baea-2160ec903a9f">
              <interface>
                <returnType>
                  <WORD />
                </returnType>
              </interface>
              <GetAccessor>
                <interface />
                <body>
                  <ST>
                    <xhtml xmlns="http://www.w3.org/1999/xhtml">ClassID := _wClassID;</xhtml>
                  </ST>
                </body>
                <addData />
              </GetAccessor>
              <addData />
            </Property>
          </data>
          <data name="http://www.3s-software.com/plcopenxml/property" handleUnknown="implementation">
            <Property name="InstanceID" ObjectId="6af88db9-6caa-4b91-896a-5516333deec2">
              <interface>
                <returnType>
                  <DWORD />
                </returnType>
              </interface>
              <GetAccessor>
                <interface />
                <body>
                  <ST>
                    <xhtml xmlns="http://www.w3.org/1999/xhtml">InstanceID := _dwInstance;</xhtml>
                  </ST>
                </body>
                <addData />
              </GetAccessor>
              <addData />
            </Property>
          </data>
          <data name="http://www.3s-software.com/plcopenxml/property" handleUnknown="implementation">
            <Property name="UnpackedEPATH" ObjectId="9132208e-ba5b-4709-88be-95093ff72f61">
              <interface>
                <returnType>
                  <derived name="CIP_Object.UnpackedEPATH" />
                </returnType>
              </interface>
              <GetAccessor>
                <interface />
                <body>
                  <ST>
                    <xhtml xmlns="http://www.w3.org/1999/xhtml">UnpackedEPATH := _strEPath;</xhtml>
                  </ST>
                </body>
                <addData />
              </GetAccessor>
              <addData />
            </Property>
          </data>
          <data name="http://www.3s-software.com/plcopenxml/property" handleUnknown="implementation">
            <Property name="ClassCode" ObjectId="51a09ab9-3992-48e8-81e9-d57aeb20a8aa">
              <interface>
                <returnType>
                  <USINT />
                </returnType>
              </interface>
              <GetAccessor>
                <interface />
                <body>
                  <ST>
                    <xhtml xmlns="http://www.w3.org/1999/xhtml" />
                  </ST>
                </body>
                <addData />
              </GetAccessor>
              <addData />
            </Property>
          </data>
          <data name="http://www.3s-software.com/plcopenxml/property" handleUnknown="implementation">
            <Property name="EPATH" ObjectId="11d9a6d8-5bed-45f7-9653-4f36b5336ee3">
              <interface>
                <returnType>
                  <derived name="CIP_Object.LogicalEPATH" />
                </returnType>
              </interface>
              <GetAccessor>
                <interface />
                <body>
                  <ST>
                    <xhtml xmlns="http://www.w3.org/1999/xhtml" />
                  </ST>
                </body>
                <addData />
              </GetAccessor>
              <addData />
            </Property>
          </data>
          <data name="http://www.3s-software.com/plcopenxml/property" handleUnknown="implementation">
            <Property name="InstanceNumber" ObjectId="8e24af57-f94b-492a-84c7-5b49961e2c18">
              <interface>
                <returnType>
                  <USINT />
                </returnType>
              </interface>
              <GetAccessor>
                <interface />
                <body>
                  <ST>
                    <xhtml xmlns="http://www.w3.org/1999/xhtml" />
                  </ST>
                </body>
                <addData />
              </GetAccessor>
              <addData />
            </Property>
          </data>
          <data name="http://www.3s-software.com/plcopenxml/objectid" handleUnknown="discard">
            <ObjectId>5e58ca10-a24b-4d80-abd7-a2450a6b9bab</ObjectId>
          </data>
        </addData>
      </pou>
    </pous>
  </types>
  <instances>
    <configurations />
  </instances>
  <addData>
    <data name="http://www.3s-software.com/plcopenxml/projectstructure" handleUnknown="discard">
      <ProjectStructure>
        <Object Name="CipObjectDintArray10" ObjectId="5e58ca10-a24b-4d80-abd7-a2450a6b9bab">
          <Object Name="ServiceRequest" ObjectId="779f829a-360f-4202-b604-edc95c4bec09" />
          <Object Name="ClassID" ObjectId="022dad96-3432-49bb-baea-2160ec903a9f" />
          <Object Name="InstanceID" ObjectId="6af88db9-6caa-4b91-896a-5516333deec2" />
          <Object Name="UnpackedEPATH" ObjectId="9132208e-ba5b-4709-88be-95093ff72f61" />
          <Folder Name="{obsolete}">
            <Object Name="Service" ObjectId="778705e9-2958-4cf9-8114-88f3693e68c1" />
            <Object Name="ClassCode" ObjectId="51a09ab9-3992-48e8-81e9-d57aeb20a8aa" />
            <Object Name="EPATH" ObjectId="11d9a6d8-5bed-45f7-9653-4f36b5336ee3" />
            <Object Name="InstanceNumber" ObjectId="8e24af57-f94b-492a-84c7-5b49961e2c18" />
          </Folder>
        </Object>
      </ProjectStructure>
    </data>
  </addData>
</project>