CNO8_PLC/Simulations/D2C/PLC/AOIs/Banner_ZMX_Control_AOI.L5X
2025-08-13 12:05:06 +04:00

852 lines
36 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RSLogix5000Content SchemaRevision="1.0" SoftwareRevision="36.00" TargetName="Banner_ZMX_Control" TargetType="AddOnInstructionDefinition" TargetRevision="1.2 " TargetLastEdited="2025-07-08T19:24:45.725Z" ContainsContext="true" ExportDate="Wed Jul 30 11:41:44 2025" ExportOptions="References NoRawData L5KData DecoratedData Context Dependencies ForceProtectedEncoding AllProjDocTrans">
<Controller Use="Context" Name="D2C">
<DataTypes Use="Context">
<DataType Name="Banner_ZMX_Data" Family="NoFamily" Class="User">
<Members>
<Member Name="Data_In" DataType="Banner_ZMX_Data_In" Dimension="0" Radix="NullType" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Data_Out" DataType="Banner_ZMX_Data_Out" Dimension="0" Radix="NullType" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Unevenness" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
</Members>
<Dependencies>
<Dependency Type="DataType" Name="Banner_ZMX_Data_In"/>
<Dependency Type="DataType" Name="Banner_ZMX_Data_Out"/>
</Dependencies>
</DataType>
<DataType Name="Banner_ZMX_Data_In" Family="NoFamily" Class="User">
<Members>
<Member Name="Input_Ack" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved1" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Sensor_Fault_Code" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Boot_Count" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1 to 65535]]>
</Description>
</Member>
<Member Name="Up_Time" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1 to 4294967295 in ms]]>
</Description>
</Member>
<Member Name="Missed_Trigger_Count" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved2" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved3" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved4" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved5" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved6" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved7" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved8" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved30" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Frame_Number" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Invalid_Pixel_Count" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 to 56576. Pixels with too little light received to be able to measure.]]>
</Description>
</Member>
<Member Name="Saturated_Pixel_Count" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 to 56576. Pixels with too much light received to be able to measure.]]>
</Description>
</Member>
<Member Name="Conf_Error_Code" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved9" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Fill_Level_Percent" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 to 200]]>
</Description>
</Member>
<Member Name="Peak_Height" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 to 3500 in mm]]>
</Description>
</Member>
<Member Name="Estimated_Item_Count" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Output_1_PFM" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0. 100 to 600 Hz.]]>
</Description>
</Member>
<Member Name="Output_2_PFM" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0. 100 to 600 Hz.]]>
</Description>
</Member>
<Member Name="Trigger_Mode" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1 = External, 5 = Internal (uses trigger period), 6 = Free run, 10 = Softa]]>
</Description>
</Member>
<Member Name="Trigger_Period" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[200 to 60000 ms]]>
</Description>
</Member>
<Member Name="Illumination_Power_Percent" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1 to 100]]>
</Description>
</Member>
<Member Name="Reserved10" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved11" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved12" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved13" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved14" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved15" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved16" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved17" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Pitch_Angle" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-4500 to 4500 (degrees x 100)]]>
</Description>
</Member>
<Member Name="Roll_Angle" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-4500 to 4500 (degrees x 100)]]>
</Description>
</Member>
<Member Name="Yaw_Angle" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-18000 to 18000 (degrees x 100)]]>
</Description>
</Member>
<Member Name="Reserved18" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved19" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved20" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved31" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Discrete_IO_Polarity" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = PNP, 1 = NPN, 2 = Push-Pull]]>
</Description>
</Member>
<Member Name="Reserved21" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Fill_Level_Limit_Setpoint_Percent" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 to 200 in mm]]>
</Description>
</Member>
<Member Name="Reserved22" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Peak_Height_Limit_Setpoint" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 to 2950 mm]]>
</Description>
</Member>
<Member Name="Reserved23" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Discrete_Output_1_Control_Mode" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = Disabled, 1 = Fill % above setpoint, 2 = Peak height aboe setpoint, 9 = Fill % above setpoint or peak height above setpoint, 10 = Pulse Pro 100 to 600 Hz scaled between 0 to 100%, 11 = Pulse Pro 100 to 600 Hz scaled to peak height above bottom of container, 20 = No output, channle used as input.]]>
</Description>
</Member>
<Member Name="Discrete_Output_2_Control_Mode" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = Disabled, 1 = Fill % above setpoint, 2 = Peak height aboe setpoint, 9 = Fill % above setpoint or peak height above setpoint, 10 = Pulse Pro 100 to 600 Hz scaled between 0 to 100%, 11 = Pulse Pro 100 to 600 Hz scaled to peak height above bottom of container, 20 = No output, channle used as input.]]>
</Description>
</Member>
<Member Name="ROI_Anchor_Point_X" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-2500 to 2500]]>
</Description>
</Member>
<Member Name="ROI_Anchor_Point_Y" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-2500 to 2500]]>
</Description>
</Member>
<Member Name="ROI_Anchor_Point_Z" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[200 to 3000]]>
</Description>
</Member>
<Member Name="ROI_Length_X" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[50 to 5000]]>
</Description>
</Member>
<Member Name="ROI_Width_Y" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[50 to 5000]]>
</Description>
</Member>
<Member Name="ROI_Height_Z" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[50 to 3000]]>
</Description>
</Member>
<Member Name="Reserved24" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
</Members>
</DataType>
<DataType Name="Banner_ZMX_Data_Out" Family="NoFamily" Class="User">
<Members>
<Member Name="Control_Bits" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved1" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Trigger_Mode" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1 = External, 5 = Internal (uses trigger perdio), 6 = Free Run, 10 = Software]]>
</Description>
</Member>
<Member Name="Trigger_Period" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[100 to 60000 ms]]>
</Description>
</Member>
<Member Name="Illumination_Power_Precent" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 to 100]]>
</Description>
</Member>
<Member Name="Reserved2" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved3" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved4" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved5" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved6" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved7" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved8" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Pitch_Angle" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-4500 to 4500 (degrees x 100)]]>
</Description>
</Member>
<Member Name="Roll_Angle" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-4500 to 4500 (degrees x 100)]]>
</Description>
</Member>
<Member Name="Yaw_Angle" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-18000 to 18000 (degrees x 100)]]>
</Description>
</Member>
<Member Name="Reserved9" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved10" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Reserved11" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Discrete_IO_Polarity" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = PNP, 1 = NPN, 2 = Push Pull]]>
</Description>
</Member>
<Member Name="Reserved12" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Fill_Level_Limit_Setpoint_Percent" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 to 200]]>
</Description>
</Member>
<Member Name="Reserved13" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Peak_Height_Limit_Setpoint" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 to 2950 in mm]]>
</Description>
</Member>
<Member Name="Reserved14" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Discrete_Output_1_Control_Mode" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = Disabled, 1 = Fill % above setpoint, 2 = Peak height aboe setpoint, 9 = Fill % above setpoint or peak height above setpoint, 10 = Pulse Pro 100 to 600 Hz scaled between 0 to 100%, 11 = Pulse Pro 100 to 600 Hz scaled to peak height above bottom of container, 20 = No output, channle used as input.]]>
</Description>
</Member>
<Member Name="Discrete_Output_2_Control_Mode" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = Disabled, 1 = Fill % above setpoint, 2 = Peak height aboe setpoint, 9 = Fill % above setpoint or peak height above setpoint, 10 = Pulse Pro 100 to 600 Hz scaled between 0 to 100%, 11 = Pulse Pro 100 to 600 Hz scaled to peak height above bottom of container, 20 = No output, channle used as input.]]>
</Description>
</Member>
<Member Name="ROI_Anchor_Point_X" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-2500 to 2500 in mm]]>
</Description>
</Member>
<Member Name="ROI_Anchor_Point_Y" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-2500 to 2500 in mm]]>
</Description>
</Member>
<Member Name="ROI_Anchor_Point_Z" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[200 to 3000 in mm]]>
</Description>
</Member>
<Member Name="ROI_Length_X" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[50 to 5000 in mm]]>
</Description>
</Member>
<Member Name="ROI_Width_Y" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[50 to 5000 in mm]]>
</Description>
</Member>
<Member Name="ROI_Height_Z" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[50 to 3000 in mm]]>
</Description>
</Member>
<Member Name="Reserved50" DataType="INT" Dimension="8" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
</Members>
</DataType>
<DataType Name="Banner_ZMX_Full_Recipe" Family="NoFamily" Class="User">
<Description>
<![CDATA[Recipe Data elements. for a ZMX unit.]]>
</Description>
<Members>
<Member Name="Trigger_Mode" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1 = External, 5 = Internal, 6 = Free Run, 10 = Software]]>
</Description>
</Member>
<Member Name="Trigger_Period" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[100 to 60000 in ms]]>
</Description>
</Member>
<Member Name="Illumination_Power" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 to 100]]>
</Description>
</Member>
<Member Name="Pitch_Angle" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-4500 to 4500]]>
</Description>
</Member>
<Member Name="Roll_Angle" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-4500 to 4500]]>
</Description>
</Member>
<Member Name="Yaw_Angle" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-18000 to 18000]]>
</Description>
</Member>
<Member Name="Discrete_IO_Polarity" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = PNP, 1= NPN, 2 = Push Pull]]>
</Description>
</Member>
<Member Name="Fill_Level_Limit_Setpoint_Percent" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 to 200]]>
</Description>
</Member>
<Member Name="Reserved13" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Peak_Height_Limit_Setpoint" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 to 2950 in mm]]>
</Description>
</Member>
<Member Name="Reserved14" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="Discrete_Output_1_Control_Mode" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = Disabled, 1 = Fill % above setpoint, 2 = Peak height aboe setpoint, 9 = Fill % above setpoint or peak height above setpoint, 10 = Pulse Pro 100 to 600 Hz scaled between 0 to 100%, 11 = Pulse Pro 100 to 600 Hz scaled to peak height above bottom of container, 20 = No output, channle used as input.]]>
</Description>
</Member>
<Member Name="Discrete_Output_2_Control_Mode" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[0 = Disabled, 1 = Fill % above setpoint, 2 = Peak height aboe setpoint, 9 = Fill % above setpoint or peak height above setpoint, 10 = Pulse Pro 100 to 600 Hz scaled between 0 to 100%, 11 = Pulse Pro 100 to 600 Hz scaled to peak height above bottom of container, 20 = No output, channle used as input.]]>
</Description>
</Member>
<Member Name="ROI_Anchor_X" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-2500 to 2500 in mm]]>
</Description>
</Member>
<Member Name="ROI_Anchor_Y" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[-2500 to 2500 in mm]]>
</Description>
</Member>
<Member Name="ROI_Anchor_Z" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[200 to 3000 in mm]]>
</Description>
</Member>
<Member Name="ROI_Length_X" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[50 to 5000 in mm]]>
</Description>
</Member>
<Member Name="ROI_Length_Y" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[50 to 5000 in mm]]>
</Description>
</Member>
<Member Name="ROI_Length_Z" DataType="INT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[50 to 3000 in mm]]>
</Description>
</Member>
</Members>
</DataType>
</DataTypes>
<AddOnInstructionDefinitions Use="Context">
<AddOnInstructionDefinition Use="Target" Name="Banner_ZMX_Control" Revision="1.2" ExecutePrescan="false" ExecutePostscan="false" ExecuteEnableInFalse="false" CreatedDate="2022-12-21T15:11:52.057Z" CreatedBy="DUKE\jpreisen" EditedDate="2025-07-08T19:24:45.725Z" EditedBy="LCIBATUMI\ilia.gurielidze" SoftwareRevision="v36.00"
>
<RevisionNote>
<![CDATA[Cyclic operation timing adjusted. Now waits 600 msecs instead of 300 after Cyclic Bit is turned on. Also the error timer is now 5 seconds instead of 3.]]>
</RevisionNote>
<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="BinFill_Update" TagType="Base" DataType="BOOL" Usage="InOut" Radix="Decimal" Required="true" Visible="true" Constant="false"/>
<Parameter Name="Cyclic_Update" TagType="Base" DataType="BOOL" Usage="InOut" Radix="Decimal" Required="true" Visible="true" Constant="false"/>
<Parameter Name="ZMX_Raw_Inputs" TagType="Base" DataType="INT" Dimensions="68" Usage="InOut" Radix="Decimal" Required="true" Visible="true" Constant="false"/>
<Parameter Name="ZMX_Raw_Outputs" TagType="Base" DataType="INT" Dimensions="40" Usage="InOut" Radix="Decimal" Required="true" Visible="true" Constant="false"/>
<Parameter Name="ZMX_Status" 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>
<Parameter Name="ZMX" TagType="Base" DataType="Banner_ZMX_Data" Usage="InOut" Required="true" Visible="true" Constant="false"/>
<Parameter Name="Parameter_Update" TagType="Base" DataType="Banner_ZMX_Full_Recipe" Usage="InOut" Required="true" Visible="true" Constant="false">
<Comments>
<Comment Operand=".TRIGGER_MODE">
<![CDATA[Check Data 1]]>
</Comment>
<Comment Operand=".PEAK_HEIGHT_LIMIT_SETPOINT">
<![CDATA[Check Data 2]]>
</Comment>
<Comment Operand=".DISCRETE_OUTPUT_1_CONTROL_MODE">
<![CDATA[Check Data 3]]>
</Comment>
<Comment Operand=".DISCRETE_OUTPUT_2_CONTROL_MODE">
<![CDATA[Check Data 4]]>
</Comment>
<Comment Operand=".ROI_ANCHOR_X">
<![CDATA[Check Data 5]]>
</Comment>
<Comment Operand=".ROI_ANCHOR_Y">
<![CDATA[Check Data 6]]>
</Comment>
<Comment Operand=".ROI_ANCHOR_Z">
<![CDATA[Check Data 7]]>
</Comment>
<Comment Operand=".ROI_LENGTH_X">
<![CDATA[Check Data 8]]>
</Comment>
<Comment Operand=".ROI_LENGTH_Y">
<![CDATA[Check Data 9]]>
</Comment>
<Comment Operand=".ROI_LENGTH_Z">
<![CDATA[Check Data 10]]>
</Comment>
</Comments>
</Parameter>
<Parameter Name="Busy" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Done" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Bin_Error" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cyclic_Error" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Comms_Error" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sensor_Fault" TagType="Base" DataType="INT" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="INT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Config_Error" TagType="Base" DataType="INT" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="INT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
</Parameters>
<LocalTags>
<LocalTag Name="Local" DataType="DINT" Radix="Decimal" ExternalAccess="None">
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="InData" DataType="INT" Dimensions="70" Radix="Decimal" ExternalAccess="None">
<DefaultData Format="L5K">
<![CDATA[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Array DataType="INT" Dimensions="70" 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"/>
<Element Index="[6]" Value="0"/>
<Element Index="[7]" Value="0"/>
<Element Index="[8]" Value="0"/>
<Element Index="[9]" Value="0"/>
<Element Index="[10]" Value="0"/>
<Element Index="[11]" Value="0"/>
<Element Index="[12]" Value="0"/>
<Element Index="[13]" Value="0"/>
<Element Index="[14]" Value="0"/>
<Element Index="[15]" Value="0"/>
<Element Index="[16]" Value="0"/>
<Element Index="[17]" Value="0"/>
<Element Index="[18]" Value="0"/>
<Element Index="[19]" Value="0"/>
<Element Index="[20]" Value="0"/>
<Element Index="[21]" Value="0"/>
<Element Index="[22]" Value="0"/>
<Element Index="[23]" Value="0"/>
<Element Index="[24]" Value="0"/>
<Element Index="[25]" Value="0"/>
<Element Index="[26]" Value="0"/>
<Element Index="[27]" Value="0"/>
<Element Index="[28]" Value="0"/>
<Element Index="[29]" Value="0"/>
<Element Index="[30]" Value="0"/>
<Element Index="[31]" Value="0"/>
<Element Index="[32]" Value="0"/>
<Element Index="[33]" Value="0"/>
<Element Index="[34]" Value="0"/>
<Element Index="[35]" Value="0"/>
<Element Index="[36]" Value="0"/>
<Element Index="[37]" Value="0"/>
<Element Index="[38]" Value="0"/>
<Element Index="[39]" Value="0"/>
<Element Index="[40]" Value="0"/>
<Element Index="[41]" Value="0"/>
<Element Index="[42]" Value="0"/>
<Element Index="[43]" Value="0"/>
<Element Index="[44]" Value="0"/>
<Element Index="[45]" Value="0"/>
<Element Index="[46]" Value="0"/>
<Element Index="[47]" Value="0"/>
<Element Index="[48]" Value="0"/>
<Element Index="[49]" Value="0"/>
<Element Index="[50]" Value="0"/>
<Element Index="[51]" Value="0"/>
<Element Index="[52]" Value="0"/>
<Element Index="[53]" Value="0"/>
<Element Index="[54]" Value="0"/>
<Element Index="[55]" Value="0"/>
<Element Index="[56]" Value="0"/>
<Element Index="[57]" Value="0"/>
<Element Index="[58]" Value="0"/>
<Element Index="[59]" Value="0"/>
<Element Index="[60]" Value="0"/>
<Element Index="[61]" Value="0"/>
<Element Index="[62]" Value="0"/>
<Element Index="[63]" Value="0"/>
<Element Index="[64]" Value="0"/>
<Element Index="[65]" Value="0"/>
<Element Index="[66]" Value="0"/>
<Element Index="[67]" Value="0"/>
<Element Index="[68]" Value="0"/>
<Element Index="[69]" Value="0"/>
</Array>
</DefaultData>
</LocalTag>
<LocalTag Name="Timer1" DataType="TIMER" ExternalAccess="None">
<DefaultData Format="L5K">
<![CDATA[[0,3000,0]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="TIMER">
<DataValueMember Name="PRE" DataType="DINT" Radix="Decimal" Value="3000"/>
<DataValueMember Name="ACC" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="EN" DataType="BOOL" Value="0"/>
<DataValueMember Name="TT" DataType="BOOL" Value="0"/>
<DataValueMember Name="DN" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Timer2" DataType="TIMER" ExternalAccess="None">
<DefaultData Format="L5K">
<![CDATA[[0,5000,0]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="TIMER">
<DataValueMember Name="PRE" DataType="DINT" Radix="Decimal" Value="5000"/>
<DataValueMember Name="ACC" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="EN" DataType="BOOL" Value="0"/>
<DataValueMember Name="TT" DataType="BOOL" Value="0"/>
<DataValueMember Name="DN" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Value" DataType="DINT" Dimensions="2" Radix="Decimal" ExternalAccess="None">
<DefaultData Format="L5K">
<![CDATA[[0,0]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Array DataType="DINT" Dimensions="2" Radix="Decimal">
<Element Index="[0]" Value="0"/>
<Element Index="[1]" Value="0"/>
</Array>
</DefaultData>
</LocalTag>
</LocalTags>
<Routines>
<Routine Name="Logic" Type="RLL">
<RLLContent>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[Convert Raw data into usable data.]]>
</Comment>
<Text>
<![CDATA[CPS(ZMX_Raw_Inputs[0],InData[0],8)CPS(ZMX_Raw_Inputs[15],InData[16],27)CPS(ZMX_Raw_Inputs[45],InData[47],14)CPS(InData[0],ZMX.Data_In,1)CPS(ZMX.Data_Out,ZMX_Raw_Outputs[0],42);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Comment>
<![CDATA[Unevenness Calculation]]>
</Comment>
<Text>
<![CDATA[CPT(Value[0],(ZMX.Data_In.Peak_Height*100)/ZMX.Data_In.ROI_Height_Z);]]>
</Text>
</Rung>
<Rung Number="2" Type="N">
<Text>
<![CDATA[[GT(Value[0],100) MOVE(100,Value[1]) ,LE(Value[0],100) MOVE(Value[0],Value[1]) ,SUB(Value[1],ZMX.Data_In.Fill_Level_Percent,ZMX.Unevenness) ];]]>
</Text>
</Rung>
<Rung Number="3" Type="N">
<Comment>
<![CDATA[Sensor Fault Codes
0 = Online
1 = EEPROM Timeout
2 = EEPROM Failure
4 = Acquistion Error
5 = Internal Temperature Error
6 = Illumination Temperature Error
7 = Main Sensor Temperature Error
8 = Acquistion Error 2
11 = Laser Operation Error
20 = Internal Test Error
21 = Internal Read Error
22 = Internal Write Error
30 = Laser Power Test Error
31 = Laser Power Read Error
32 = Laser Power Write Error
1000 = Acquistion Error 3
1011 to 1017 = Internal Flash Errors
30000 to 32000 = Boot Loader Error]]>
</Comment>
<Text>
<![CDATA[MOVE(ZMX.Data_In.Sensor_Fault_Code,Sensor_Fault);]]>
</Text>
</Rung>
<Rung Number="4" Type="N">
<Comment>
<![CDATA[Configuration Error Codes
110 = Illumintion power < 1
111 = Illumincatino Power > 100
120 = Invalid Trigger Mode
130 = Trigger Period < 200 ms
131 = Trigger Perdio > 60000 ms
140 = Pitch Angle < -4500
141 = Pitch Angle > 4500
150 = Roll Angle < -4500
151 = Roll Angle > 4500
160 = Yaw Angle < -18000
161 = Yaw Angle > 18000
300 = Invalid Discrete Output
2000 = Anchor Point X < -2500
2001 = Anchor Point X > 2500
2010 = Anchor Point Y < -2500
2011 = Anchor Point Y > 2500
2020 = Anchor Point Z < -2500
2021 = Anchor Point Z > 2500
2030 = Bin Length X < 50
2031 = Bin Length X > 5000
2040 = Bin Width < 50
2041 = Bin Width > 5000
2050 = Bin Width < 50
2051 = Bin Width > 5000
2052 = Invalid Bin Height
2060 = Fill Level Setpoint < 0
2061 = Fill Level Setpoint > 200
2080 = Peak Height Setpoint < 0
2081 = Peak Height Setpoint > Bin Height Z
2100 = Discrete Out 1 Selection Invalid
2110 = Discrete Out 2 Selectino Invalid]]>
</Comment>
<Text>
<![CDATA[MOVE(ZMX.Data_In.Conf_Error_Code,Config_Error);]]>
</Text>
</Rung>
<Rung Number="5" Type="N">
<Comment>
<![CDATA[Communication Check Logic
Not Available at thsi time.]]>
</Comment>
<Text>
<![CDATA[XIC(ZMX_Status)OTE(Comms_Error);]]>
</Text>
</Rung>
<Rung Number="6" Type="N">
<Comment>
<![CDATA[*** Bin Fill Update Section ***]]>
</Comment>
<Text>
<![CDATA[NOP();]]>
</Text>
</Rung>
<Rung Number="7" Type="N">
<Comment>
<![CDATA[Stop any manual update of the ZMX.]]>
</Comment>
<Text>
<![CDATA[XIO(BinFill_Update)OTU(ZMX.Data_Out.Control_Bits.0);]]>
</Text>
</Rung>
<Rung Number="8" Type="N">
<Comment>
<![CDATA[Check that data updated correctly.]]>
</Comment>
<Text>
<![CDATA[XIC(Local.0)[XIO(ZMX.Data_In.Input_Ack.15) XIC(ZMX.Data_In.Input_Ack.0) OTL(Local.1) ,XIC(Timer1.DN) OTL(Bin_Error) OTL(Local.1) ];]]>
</Text>
</Rung>
<Rung Number="9" Type="N">
<Comment>
<![CDATA[Move data from the recipe into the output assembly. The data will be sent to the ZMX after this.]]>
</Comment>
<Text>
<![CDATA[XIC(BinFill_Update)XIO(Local.0)EQ(Timer1.ACC,0)CPS(Parameter_Update.Fill_Level_Limit_Setpoint_Percent,ZMX.Data_Out.Fill_Level_Limit_Setpoint_Percent,12)OTL(Busy)OTU(Bin_Error)OTU(Done)OTL(Local.0);]]>
</Text>
</Rung>
<Rung Number="10" Type="N">
<Comment>
<![CDATA[Start Timer. Timer used to determine when an update error has occurred.]]>
</Comment>
<Text>
<![CDATA[XIC(Local.0)TON(Timer1,?,?);]]>
</Text>
</Rung>
<Rung Number="11" Type="N">
<Comment>
<![CDATA[Activate bit that controls the data update.]]>
</Comment>
<Text>
<![CDATA[XIC(Local.0)GE(Timer1.ACC,300)OTL(ZMX.Data_Out.Control_Bits.0);]]>
</Text>
</Rung>
<Rung Number="12" Type="N">
<Comment>
<![CDATA[Reset tags used for this operation. Set bit to done.]]>
</Comment>
<Text>
<![CDATA[XIC(Local.1)OTU(ZMX.Data_Out.Control_Bits.0)MOVE(0,Local)OTU(Busy)OTL(Done)OTU(BinFill_Update);]]>
</Text>
</Rung>
<Rung Number="13" Type="N">
<Comment>
<![CDATA[*** Update Cyclic Data Section ***]]>
</Comment>
<Text>
<![CDATA[NOP();]]>
</Text>
</Rung>
<Rung Number="14" Type="N">
<Text>
<![CDATA[XIO(Cyclic_Update)OTU(ZMX.Data_Out.Control_Bits.14);]]>
</Text>
</Rung>
<Rung Number="15" Type="N">
<Comment>
<![CDATA[Wait for cyclic update completion.]]>
</Comment>
<Text>
<![CDATA[XIC(Local.11)XIO(Local.12)EQ(Parameter_Update.Trigger_Mode,ZMX.Data_In.Trigger_Mode)EQ(Parameter_Update.Trigger_Period,ZMX.Data_In.Trigger_Period)EQ(Parameter_Update.Illumination_Power,ZMX.Data_In.Illumination_Power_Percent)EQ(Parameter_Update.Pitch_Angle,ZMX.Data_In.Pitch_Angle)EQ(Parameter_Update.Roll_Angle,ZMX.Data_In.Roll_Angle)EQ(Parameter_Update.Yaw_Angle,ZMX.Data_In.Yaw_Angle)EQ(Parameter_Update.Discrete_IO_Polarity,ZMX.Data_In.Discrete_IO_Polarity)OTL(Local.12);]]>
</Text>
</Rung>
<Rung Number="16" Type="N">
<Comment>
<![CDATA[Generate error for cyclic update.]]>
</Comment>
<Text>
<![CDATA[XIC(Local.11)XIO(Local.12)XIC(Timer2.DN)OTL(Cyclic_Error)OTL(Local.12);]]>
</Text>
</Rung>
<Rung Number="17" Type="N">
<Comment>
<![CDATA[When Cyclic request is activated start update process.]]>
</Comment>
<Text>
<![CDATA[XIC(Cyclic_Update)XIO(Local.10)EQ(Timer2.ACC,0)OTL(Busy)OTU(Cyclic_Error)OTU(Done)OTL(ZMX.Data_Out.Control_Bits.14)OTL(Local.10);]]>
</Text>
</Rung>
<Rung Number="18" Type="N">
<Comment>
<![CDATA[Start Timer. Timer used to determine when an update error has occurred.]]>
</Comment>
<Text>
<![CDATA[XIC(Local.10)TON(Timer2,?,?);]]>
</Text>
</Rung>
<Rung Number="19" Type="N">
<Comment>
<![CDATA[Move data to update cyclic parameters.]]>
</Comment>
<Text>
<![CDATA[XIC(Local.10)XIO(Local.12)GE(Timer2.ACC,600)CPS(Parameter_Update.Trigger_Mode,ZMX.Data_Out.Trigger_Mode,3)CPS(Parameter_Update.Pitch_Angle,ZMX.Data_Out.Pitch_Angle,3)MOVE(Parameter_Update.Discrete_IO_Polarity,ZMX.Data_Out.Discrete_IO_Polarity)OTL(Local.11);]]>
</Text>
</Rung>
<Rung Number="20" Type="N">
<Comment>
<![CDATA[Complete Cyclic Update operation. Reset tags used for process.]]>
</Comment>
<Text>
<![CDATA[XIC(Local.12)OTU(Busy)OTL(Done)MOVE(0,Local)OTU(Cyclic_Update);]]>
</Text>
</Rung>
</RLLContent>
</Routine>
</Routines>
<Dependencies>
<Dependency Type="DataType" Name="Banner_ZMX_Full_Recipe"/>
<Dependency Type="DataType" Name="Banner_ZMX_Data"/>
</Dependencies>
</AddOnInstructionDefinition>
</AddOnInstructionDefinitions>
</Controller>
</RSLogix5000Content>