CNO8_PLC/AOI/AOI_PB_CHUTE_AOI.L5X

374 lines
12 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RSLogix5000Content SchemaRevision="1.0" SoftwareRevision="36.00" TargetName="AOI_PB_CHUTE" TargetType="AddOnInstructionDefinition" TargetRevision="1.0 " TargetLastEdited="2025-08-14T19:27:44.124Z" ContainsContext="true" ExportDate="Thu Aug 14 23:55:56 2025" ExportOptions="NoRawData L5KData DecoratedData Context Dependencies ForceProtectedEncoding AllProjDocTrans">
<Controller Use="Context" Name="PB_CHUTE">
<AddOnInstructionDefinitions Use="Context">
<AddOnInstructionDefinition Use="Target" Name="AOI_PB_CHUTE" Revision="1.0" ExecutePrescan="true" ExecutePostscan="false" ExecuteEnableInFalse="false" CreatedDate="2025-06-02T08:06:58.311Z" CreatedBy="LCIBATUMI\ilia.gurielidze" EditedDate="2025-08-14T19:27:44.124Z" EditedBy="LCIBATUMI\gigi.mamaladze" SoftwareRevision="v36.00"
>
<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="HMI" TagType="Base" DataType="UDT_HMI_PB_CHUTE" Usage="InOut" Required="true" Visible="true" Constant="false"/>
<Parameter Name="CTRL" TagType="Base" DataType="UDT_CTRL_PB_CHUTE" Usage="InOut" Required="true" Visible="true" Constant="false"/>
<Parameter Name="Station" TagType="Base" DataType="UDT_CTRL_STATION_JR_CHUTE" Usage="InOut" Required="true" Visible="true" Constant="false"/>
<Parameter Name="IO_Block_Communication_Fault" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="true" Visible="true" ExternalAccess="Read/Write">
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Half_Full_I" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="true" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[PE Input]]>
</Description>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Full_I" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="true" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[PE Input]]>
</Description>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Full" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Half_Full" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Disabled" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[Chute Is Disabled (No Parcels will went to Chute)]]>
</Description>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="G_Beacon_Segment_Color_O" TagType="Base" DataType="DINT" Usage="Output" Radix="Decimal" Required="true" Visible="true" ExternalAccess="Read Only">
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="G_Beacon_Segment_Animation_O" TagType="Base" DataType="DINT" Usage="Output" Radix="Decimal" Required="true" Visible="true" ExternalAccess="Read Only">
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="B_Beacon_Segment_Color_O" TagType="Base" DataType="DINT" Usage="Output" Radix="Decimal" Required="true" Visible="true" ExternalAccess="Read Only">
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="B_Beacon_Segment_Animation_O" TagType="Base" DataType="DINT" Usage="Output" Radix="Decimal" Required="true" Visible="true" ExternalAccess="Read Only">
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
</Parameters>
<LocalTags>
<LocalTag Name="Empty_String" DataType="STRING" ExternalAccess="None">
<DefaultData Format="String" Length="0">
<![CDATA['']]>
</DefaultData>
</LocalTag>
<LocalTag Name="Half_Full_Timer" DataType="TIMER" ExternalAccess="None">
<Description>
<![CDATA[After Timer, Half Full Will Be Reported]]>
</Description>
<DefaultData Format="Decorated">
<Structure DataType="TIMER">
<DataValueMember Name="PRE" DataType="DINT" Radix="Decimal" Value="0"/>
<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="Full_Timer" DataType="TIMER" ExternalAccess="None">
<Description>
<![CDATA[After Timer, Full Will Be Reported]]>
</Description>
<DefaultData Format="Decorated">
<Structure DataType="TIMER">
<DataValueMember Name="PRE" DataType="DINT" Radix="Decimal" Value="0"/>
<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="Flip_Flop" DataType="AOI_FLIP_FLOP" ExternalAccess="None">
<DefaultData Format="Decorated">
<Structure DataType="AOI_FLIP_FLOP">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="On" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Off" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Flash" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Jammed" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Jam At Sorter Section]]>
</Description>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Ready" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Chute Ready To Recive Parcels]]>
</Description>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
</LocalTags>
<Routines>
<Routine Name="Logic" Type="RLL">
<RLLContent>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[Pallet-Build Chute
The chute reports its own capacity, allows the operator to enable or disable it and tells the sorter whether the chute can accept more cartons.
Enable / Disable
A press of HMI.Enable_Chute_PB toggles Disabled.
When Disabled is false the chute is available and CTRL.STS.Enabled is true; a green beacon segment (value 1) flashes.
When Disabled is true the chute is disabled; the green beacon is dark (value 0).
Half-full & Full
Separate photo-eyes feed Half_Full_I and Full_I.
If either eye stays blocked for HMI.TimeOut � 1000 ms the corresponding timer finishes and latches Half_Full or Full (mirrored to CTRL.STS.Half_Full / Full).
Half-full lights the blue beacon solid (value 1).
Full makes the blue beacon flash (value 2) and prevents new cartons.
Jam indication
A jam reported by the upstream station sets Jammed and CTRL.STS.Jammed.
Station.STS.Jam_Reset_Requested unlatches Jammed.
Ready signal to sorter
Ready (mirrored to CTRL.STS.Ready) is true only when the chute is enabled, not jammed, and not full.
The sorter uses this bit to decide whether to divert cartons to this chute.
Beacon summary
Blue 0 = off1 = solid (half-full)2 = flash (full)
Green 0 = off1 = flash (chute enabled)
HMI.STATE
0 disabled1 enabled2 half-full3 full4 jammed
Command bits (received)
CTRL.CMD.Jammed (cleared each scan)
Station.STS.Jammed
Station.STS.Jam_Reset_Requested
IO_Block_Communication_Fault
Half_Full_I
Full_I
HMI.Enable_Chute_PB
HMI.TimeOut
Status bits (set)
CTRL.STS.Enabled
CTRL.STS.Half_Full
CTRL.STS.Full
CTRL.STS.Jammed
CTRL.STS.Ready
Disabled
Half_Full
Full
Jammed
Ready
B_Beacon_Segment_Animation (blue)
G_Beacon_Segment_Animation (green)
HMI bits
HMI.Enable_Chute_PB
HMI.TimeOut
HMI.STATE
HMI.Chute_Type (set to 2)
Alarm bits
HMI.Alarms.Disabled chute is disabled
HMI.Alarms.Half_Full half-full condition latched
HMI.Alarms.Full full condition latched
HMI.Alarms.Jam jammed condition latched
]]>
</Comment>
<Text>
<![CDATA[MUL(HMI.TimeOut,1000,Half_Full_Timer.PRE)MUL(HMI.TimeOut,1000,Full_Timer.PRE);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Text>
<![CDATA[MOVE(2,HMI.Chute_Type);]]>
</Text>
</Rung>
<Rung Number="2" Type="N">
<Text>
<![CDATA[XIC(Station.STS.Jammed)[OTE(Jammed) ,OTE(CTRL.STS.Jammed) ];]]>
</Text>
</Rung>
<Rung Number="3" Type="N">
<Text>
<![CDATA[[XIC(HMI.Enable_Chute_PB) XIO(Disabled) ,XIC(Disabled) XIO(HMI.Enable_Chute_PB) ]OTE(Disabled);]]>
</Text>
</Rung>
<Rung Number="4" Type="N">
<Text>
<![CDATA[XIO(Disabled)OTE(CTRL.STS.Enabled);]]>
</Text>
</Rung>
<Rung Number="5" Type="N">
<Text>
<![CDATA[XIC(Station.STS.Jam_Reset_Requested)OTU(Jammed);]]>
</Text>
</Rung>
<Rung Number="6" Type="N">
<Text>
<![CDATA[XIO(IO_Block_Communication_Fault)XIO(Disabled)XIO(Half_Full_I)TON(Half_Full_Timer,?,?)XIC(Half_Full_Timer.DN)[OTE(Half_Full) ,OTE(CTRL.STS.Half_Full) ];]]>
</Text>
</Rung>
<Rung Number="7" Type="N">
<Text>
<![CDATA[XIO(IO_Block_Communication_Fault)XIO(Disabled)XIO(Full_I)TON(Full_Timer,?,?)XIC(Full_Timer.DN)[OTE(Full) ,OTE(CTRL.STS.Full) ];]]>
</Text>
</Rung>
<Rung Number="8" Type="N">
<Text>
<![CDATA[XIO(Jammed)XIO(Full)XIO(Disabled)[OTE(Ready) ,OTE(CTRL.STS.Ready) ];]]>
</Text>
</Rung>
<Rung Number="9" Type="N">
<Text>
<![CDATA[XIC(Half_Full)MOVE(1,B_Beacon_Segment_Animation_O);]]>
</Text>
</Rung>
<Rung Number="10" Type="N">
<Text>
<![CDATA[XIC(Full)MOVE(2,B_Beacon_Segment_Animation_O);]]>
</Text>
</Rung>
<Rung Number="11" Type="N">
<Text>
<![CDATA[XIO(Full)XIO(Half_Full)MOVE(0,B_Beacon_Segment_Animation_O);]]>
</Text>
</Rung>
<Rung Number="12" Type="N">
<Text>
<![CDATA[XIO(Disabled)MOVE(1,G_Beacon_Segment_Animation_O);]]>
</Text>
</Rung>
<Rung Number="13" Type="N">
<Text>
<![CDATA[XIC(Disabled)MOVE(0,G_Beacon_Segment_Animation_O);]]>
</Text>
</Rung>
<Rung Number="14" Type="N">
<Comment>
<![CDATA[STATE
]]>
</Comment>
<Text>
<![CDATA[XIC(Disabled)MOVE(0,HMI.STATE);]]>
</Text>
</Rung>
<Rung Number="15" Type="N">
<Text>
<![CDATA[XIO(Disabled)MOVE(1,HMI.STATE);]]>
</Text>
</Rung>
<Rung Number="16" Type="N">
<Text>
<![CDATA[XIC(Half_Full)MOVE(2,HMI.STATE);]]>
</Text>
</Rung>
<Rung Number="17" Type="N">
<Text>
<![CDATA[XIC(Full)MOVE(3,HMI.STATE);]]>
</Text>
</Rung>
<Rung Number="18" Type="N">
<Text>
<![CDATA[XIC(Jammed)MOVE(4,HMI.STATE);]]>
</Text>
</Rung>
<Rung Number="19" Type="N">
<Comment>
<![CDATA[ALARMS
]]>
</Comment>
<Text>
<![CDATA[XIC(Disabled)OTE(HMI.Alarms.Disabled);]]>
</Text>
</Rung>
<Rung Number="20" Type="N">
<Text>
<![CDATA[XIC(Half_Full)OTE(HMI.Alarms.Half_Full);]]>
</Text>
</Rung>
<Rung Number="21" Type="N">
<Text>
<![CDATA[XIC(Full)OTE(HMI.Alarms.Full);]]>
</Text>
</Rung>
<Rung Number="22" Type="N">
<Text>
<![CDATA[XIC(Jammed)OTE(HMI.Alarms.Jam);]]>
</Text>
</Rung>
<Rung Number="23" Type="N">
<Text>
<![CDATA[OTU(CTRL.CMD.Jammed)OTU(HMI.Enable_Chute_PB);]]>
</Text>
</Rung>
</RLLContent>
</Routine>
<Routine Name="Prescan" Type="RLL">
<RLLContent>
<Rung Number="0" Type="N">
<Text>
<![CDATA[MOVE(5,HMI.TimeOut)MOVE(5,HMI.TimeOut);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Text>
<![CDATA[MOVE(0,G_Beacon_Segment_Color_O)MOVE(9,B_Beacon_Segment_Animation_O);]]>
</Text>
</Rung>
</RLLContent>
</Routine>
</Routines>
<Dependencies>
<Dependency Type="DataType" Name="UDT_CTRL_PB_CHUTE"/>
<Dependency Type="AddOnInstructionDefinition" Name="AOI_FLIP_FLOP"/>
<Dependency Type="DataType" Name="UDT_HMI_PB_CHUTE"/>
<Dependency Type="DataType" Name="UDT_CTRL_STATION_JR_CHUTE"/>
</Dependencies>
</AddOnInstructionDefinition>
</AddOnInstructionDefinitions>
</Controller>
</RSLogix5000Content>