<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--Take raw process data and convert it to usable values. -->
<RSLogix5000Content SchemaRevision="1.0" SoftwareRevision="33.00" TargetName="Banner_T30R_Q90R_KU_PD_v4" TargetType="AddOnInstructionDefinition" TargetRevision="4.0 " TargetLastEdited="2024-06-06T18:16:27.910Z" ContainsContext="true" ExportDate="Thu Jun 06 13:18:19 2024" ExportOptions="References NoRawData L5KData DecoratedData Context Dependencies ForceProtectedEncoding AllProjDocTrans">
<Controller Use="Context" Name="Test">
<DataTypes Use="Context">
<DataType Name="Banner_T30R_Q90R_KU_PDI0_v4" Family="NoFamily" Class="User">
<Description>
<![CDATA[Process Data for a T30R or Q90R sensors. Digital Measurement Sensor data set.]]>
</Description>
<Members>
<Member Name="Measurement" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Scale" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Stability" DataType="SINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = No target or marginal 1 = Valid]]>
</Description>
</Member>
<Member Name="BDC1_State" DataType="SINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = Inactive 1 = Active]]>
</Description>
</Member>
<Member Name="AO1_State" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = Inactive 1 = Active]]>
</Description>
</Member>
</Members>
</DataType>
<DataType Name="Banner_T30R_Q90R_KU_PDI1_v4" Family="NoFamily" Class="User">
<Description>
<![CDATA[Process Data for a T30R or Q90R sensors. Distance and Excess Gain data set.]]>
</Description>
<Members>
<Member Name="Measurement" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Excess_Gain" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
</Members>
</DataType>
<DataType Name="Banner_T30R_Q90R_KU_PDI2_v4" Family="NoFamily" Class="User">
<Description>
<![CDATA[Process Data for a T30R or Q90R sensors. Distance and Excess Gain with Binary data set.]]>
</Description>
<Members>
<Member Name="Measurement" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Excess_Gain" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Stability" DataType="SINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = No target or marginal 1 = Valid]]>
</Description>
</Member>
<Member Name="BDC1_State" DataType="SINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = Inactive 1 = Active]]>
</Description>
</Member>
<Member Name="AO1_State" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = Inactive 1 = Active]]>
</Description>
</Member>
</Members>
</DataType>
<DataType Name="Banner_T30R_Q90R_KU_PDI_v4" Family="NoFamily" Class="User">
<Description>
<![CDATA[Process Data for a T30R or Q90R sensors.]]>
</Description>
<Members>
<Member Name="Set_0" DataType="Banner_T30R_Q90R_KU_PDI0_v4" Dimension="0" Radix="NullType" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Set_1" DataType="Banner_T30R_Q90R_KU_PDI1_v4" Dimension="0" Radix="NullType" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Set_2" DataType="Banner_T30R_Q90R_KU_PDI2_v4" Dimension="0" Radix="NullType" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="PDI_DT" DataType="SINT" Dimension="6" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
</Members>
<Dependencies>
<Dependency Type="DataType" Name="Banner_T30R_Q90R_KU_PDI0_v4"/>
<Dependency Type="DataType" Name="Banner_T30R_Q90R_KU_PDI1_v4"/>
<Dependency Type="DataType" Name="Banner_T30R_Q90R_KU_PDI2_v4"/>
</Dependencies>
</DataType>
</DataTypes>
<AddOnInstructionDefinitions Use="Context">
<AddOnInstructionDefinition Use="Target" Name="Banner_T30R_Q90R_KU_PD_v4" Revision="4.0" Vendor="Banner Engineering" ExecutePrescan="false" ExecutePostscan="false" ExecuteEnableInFalse="false" CreatedDate="2018-06-22T14:32:51.208Z" CreatedBy="DUKE\2011324" EditedDate="2024-06-06T18:16:27.910Z" EditedBy="DUKE\jpreisen"
 SoftwareRevision="v33.00">
<Description>
<![CDATA[Take raw process data and convert it to usable values. ]]>
</Description>
<Parameters>
<Parameter Name="EnableIn" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Enable Input - System Defined Parameter]]>
</Description>
</Parameter>
<Parameter Name="EnableOut" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Enable Output - System Defined Parameter]]>
</Description>
</Parameter>
<Parameter Name="Process_Data" TagType="Base" DataType="Banner_T30R_Q90R_KU_PDI_v4" Usage="InOut" Required="true" Visible="true" Constant="false"/>
<Parameter Name="Process_Data_Layout" TagType="Base" DataType="SINT" Usage="Input" Radix="Decimal" Required="true" Visible="true" ExternalAccess="Read/Write">
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Byte_Swap" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="true" Visible="true" ExternalAccess="Read/Write">
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
</Parameters>
<LocalTags>
<LocalTag Name="Temp" DataType="SINT" Dimensions="6" Radix="Decimal" ExternalAccess="None">
<DefaultData Format="L5K">
<![CDATA[[0,0,0,0,0,0]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Array DataType="SINT" Dimensions="6" Radix="Decimal">
<Element Index="[0]" Value="0"/>
<Element Index="[1]" Value="0"/>
<Element Index="[2]" Value="0"/>
<Element Index="[3]" Value="0"/>
<Element Index="[4]" Value="0"/>
<Element Index="[5]" Value="0"/>
</Array>
</DefaultData>
</LocalTag>
</LocalTags>
<Routines>
<Routine Name="Logic" Type="RLL">
<RLLContent>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[Routine converts raw data into process data.]]>
</Comment>
<Text>
<![CDATA[XIC(Byte_Swap)MOV(Process_Data.PDI_DT[0],Temp[1])MOV(Process_Data.PDI_DT[1],Temp[0])MOV(Process_Data.PDI_DT[2],Temp[3])MOV(Process_Data.PDI_DT[3],Temp[2])MOV(Process_Data.PDI_DT[4],Temp[5])MOV(Process_Data.PDI_DT[5],Temp[4]);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Text>
<![CDATA[XIO(Byte_Swap)MOV(Process_Data.PDI_DT[0],Temp[0])MOV(Process_Data.PDI_DT[1],Temp[1])MOV(Process_Data.PDI_DT[2],Temp[2])MOV(Process_Data.PDI_DT[3],Temp[3])MOV(Process_Data.PDI_DT[4],Temp[4])MOV(Process_Data.PDI_DT[5],Temp[5]);]]>
</Text>
</Rung>
<Rung Number="2" Type="N">
<Text>
<![CDATA[EQU(Process_Data_Layout,0)BTD(Temp[0],0,Process_Data.Set_0.Measurement,24,8)BTD(Temp[1],0,Process_Data.Set_0.Measurement,16,8)BTD(Temp[2],0,Process_Data.Set_0.Measurement,8,8)BTD(Temp[3],0,Process_Data.Set_0.Measurement,0,8)BTD(Temp[4],0,Process_Data.Set_0.Scale,0,8)BTD(Temp[5],0,Process_Data.Set_0.AO1_State,0,1)BTD(Temp[5],1,Process_Data.Set_0.BDC1_State,0,1)BTD(Temp[5],2,Process_Data.Set_0.Stability,0,1);]]>
</Text>
</Rung>
<Rung Number="3" Type="N">
<Text>
<![CDATA[EQU(Process_Data_Layout,1)BTD(Temp[0],0,Process_Data.Set_1.Measurement,24,8)BTD(Temp[1],0,Process_Data.Set_1.Measurement,16,8)BTD(Temp[2],0,Process_Data.Set_1.Measurement,8,8)BTD(Temp[3],0,Process_Data.Set_1.Measurement,0,8)BTD(Temp[4],0,Process_Data.Set_1.Excess_Gain,8,8)BTD(Temp[5],0,Process_Data.Set_1.Excess_Gain,0,8);]]>
</Text>
</Rung>
<Rung Number="4" Type="N">
<Text>
<![CDATA[EQU(Process_Data_Layout,2)BTD(Temp[0],0,Process_Data.Set_2.Measurement,24,8)BTD(Temp[1],0,Process_Data.Set_2.Measurement,16,8)BTD(Temp[2],0,Process_Data.Set_2.Measurement,8,8)BTD(Temp[3],0,Process_Data.Set_2.Measurement,0,8)BTD(Temp[4],0,Process_Data.Set_2.Excess_Gain,0,8)BTD(Temp[5],0,Process_Data.Set_2.AO1_State,0,1)BTD(Temp[5],1,Process_Data.Set_2.BDC1_State,0,1)BTD(Temp[5],2,Process_Data.Set_2.Stability,0,1);]]>
</Text>
</Rung>
</RLLContent>
</Routine>
</Routines>
<Dependencies>
<Dependency Type="DataType" Name="Banner_T30R_Q90R_KU_PDI_v4"/>
</Dependencies>
</AddOnInstructionDefinition>
</AddOnInstructionDefinitions>
</Controller>
</RSLogix5000Content>
