181 lines
7.7 KiB
XML
181 lines
7.7 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||
<RSLogix5000Content SchemaRevision="1.0" SoftwareRevision="36.00" TargetName="AOI_IO_BLOCK" TargetType="AddOnInstructionDefinition" TargetClass="Standard" TargetRevision="1.0 " TargetLastEdited="2025-07-11T06:08:01.895Z" ContainsContext="true" ExportDate="Fri Jul 11 16:00:41 2025" ExportOptions="NoRawData L5KData DecoratedData Context Dependencies ForceProtectedEncoding AllProjDocTrans">
|
||
<Controller Use="Context" Name="MCM04">
|
||
<AddOnInstructionDefinitions Use="Context">
|
||
<AddOnInstructionDefinition Use="Target" Name="AOI_IO_BLOCK" Class="Standard" Revision="1.0" Vendor="Automation Standard" ExecutePrescan="true" ExecutePostscan="false" ExecuteEnableInFalse="false" CreatedDate="2021-06-02T10:38:08.709Z" CreatedBy="KONON\Artem" EditedDate="2025-07-11T06:08:01.895Z"
|
||
EditedBy="LCIBATUMI\ilia.gurielidze" 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_IO_BLOCK" Usage="InOut" Required="true" Visible="true" Constant="false"/>
|
||
<Parameter Name="CTRL" TagType="Base" DataType="UDT_CTRL_IO_BLOCK" Usage="InOut" Required="true" Visible="true" Constant="false"/>
|
||
<Parameter Name="MCM" TagType="Base" DataType="UDT_CTRL_MCM" Usage="InOut" Required="true" Visible="true" Constant="false"/>
|
||
<Parameter Name="Parent" TagType="Base" DataType="UDT_CTRL_IO_BLOCK" Usage="InOut" Required="true" Visible="true" Constant="false"/>
|
||
<Parameter Name="Communication_Faulted" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
|
||
<Description>
|
||
<![CDATA[Ethernet Communication Faulted]]>
|
||
</Description>
|
||
<DefaultData Format="Decorated">
|
||
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
|
||
</DefaultData>
|
||
</Parameter>
|
||
<Parameter Name="Communication_Fault" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="true" Visible="true" ExternalAccess="Read/Write">
|
||
<Description>
|
||
<![CDATA[Ethernet Communication Faulted]]>
|
||
</Description>
|
||
<DefaultData Format="Decorated">
|
||
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
|
||
</DefaultData>
|
||
</Parameter>
|
||
</Parameters>
|
||
<LocalTags>
|
||
<LocalTag Name="Communication_Fault_Code" DataType="DINT" Radix="Decimal" ExternalAccess="None">
|
||
<Description>
|
||
<![CDATA[Communication Fault Code]]>
|
||
</Description>
|
||
<DefaultData Format="Decorated">
|
||
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
|
||
</DefaultData>
|
||
</LocalTag>
|
||
<LocalTag Name="Concatenated_String" DataType="STRING" ExternalAccess="None">
|
||
<Description>
|
||
<![CDATA[String for Log]]>
|
||
</Description>
|
||
<DefaultData Format="String" Length="0">
|
||
<![CDATA['']]>
|
||
</DefaultData>
|
||
</LocalTag>
|
||
<LocalTag Name="Acknowledge_ONS" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
|
||
<Description>
|
||
<![CDATA[To Unlatch Acknowledge Bit Once Communication Faulted]]>
|
||
</Description>
|
||
<DefaultData Format="Decorated">
|
||
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
|
||
</DefaultData>
|
||
</LocalTag>
|
||
<LocalTag Name="Acknowledge" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
|
||
<Description>
|
||
<![CDATA[Acknowldge]]>
|
||
</Description>
|
||
<DefaultData Format="Decorated">
|
||
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
|
||
</DefaultData>
|
||
</LocalTag>
|
||
<LocalTag Name="Lost_Communication_String" DataType="STRING" ExternalAccess="None">
|
||
<Description>
|
||
<![CDATA[' Lost Communication']]>
|
||
</Description>
|
||
<DefaultData Format="String" Length="19">
|
||
<![CDATA[' Lost Communication']]>
|
||
</DefaultData>
|
||
</LocalTag>
|
||
<LocalTag Name="Empty_String" DataType="STRING" ExternalAccess="None">
|
||
<Description>
|
||
<![CDATA[Empty String]]>
|
||
</Description>
|
||
<DefaultData Format="String" Length="0">
|
||
<![CDATA['']]>
|
||
</DefaultData>
|
||
</LocalTag>
|
||
<LocalTag Name="Name" DataType="STRING" ExternalAccess="None">
|
||
<Description>
|
||
<![CDATA[Name of FIO]]>
|
||
</Description>
|
||
<DefaultData Format="String" Length="0">
|
||
<![CDATA['']]>
|
||
</DefaultData>
|
||
</LocalTag>
|
||
</LocalTags>
|
||
<Routines>
|
||
<Routine Name="Logic" Type="RLL">
|
||
<RLLContent>
|
||
<Rung Number="0" Type="N">
|
||
<Comment>
|
||
<![CDATA[IOBlock – Field-I/O Communication Monitor
|
||
|
||
IOBlock monitors its own field-bus link and the upstream link reported by its parent device—this parent may be a hub, an IO-Link master, another Field-I/O block, or an octopus switch.
|
||
If either link is lost, IOBlock sets Communication_Faulted and mirrors that state to CTRL.STS.Communication_Faulted so the fault can continue travelling upstream.
|
||
|
||
HMI.STATE is 0 when communications are healthy and 1 whenever any link (local or parent) is lost.
|
||
An HMI alarm is produced only when IOBlock itself is faulted while the parent remains healthy, keeping alarms specific to the failing level.
|
||
|
||
When a loss occurs, the routine constructs a log line such as “<Block HMI.Name> — Lost Communication”, places it in MCM.CMD.Log, and increments MCM.CMD.Log_Quantity.
|
||
If that exact line later appears in MCM.STS.Acknowledge_Log, IOBlock latches Acknowledge and clears the entry to keep the log concise.
|
||
The command MCM.STS.Unacknowledge_All_Logs resets the latch so the next fault generates a fresh message.
|
||
|
||
Command bits
|
||
The routine receives Communication_Fault from its own interface monitor.
|
||
The routine receives Parent.STS.Communication_Faulted from the immediate upstream device.
|
||
The routine receives MCM.STS.Unacknowledge_All_Logs to clear the acknowledge latch.
|
||
|
||
Status bits
|
||
The routine sets Communication_Faulted when either the local or parent link is down.
|
||
The routine sets CTRL.STS.Communication_Faulted with the same value.
|
||
|
||
HMI bits
|
||
The HMI displays HMI.STATE as 0 while links are healthy and 1 while any link is lost.
|
||
The HMI raises HMI.Alarm.Communication_Faulted only while Communication_Faulted is true and Parent.STS.Communication_Faulted is false.
|
||
|
||
Alarm bits
|
||
The system raises HMI.Alarm.Communication_Faulted whenever IOBlock itself loses communication and the parent link is still online.
|
||
]]>
|
||
</Comment>
|
||
<Text>
|
||
<![CDATA[[XIC(Communication_Fault) ,XIC(Parent.STS.Communication_Faulted) ][OTE(Communication_Faulted) ,OTE(CTRL.STS.Communication_Faulted) ];]]>
|
||
</Text>
|
||
</Rung>
|
||
<Rung Number="1" Type="N">
|
||
<Text>
|
||
<![CDATA[XIO(Communication_Faulted)MOVE(0,HMI.STATE);]]>
|
||
</Text>
|
||
</Rung>
|
||
<Rung Number="2" Type="N">
|
||
<Text>
|
||
<![CDATA[XIC(Communication_Faulted)MOVE(1,HMI.STATE);]]>
|
||
</Text>
|
||
</Rung>
|
||
<Rung Number="3" Type="N">
|
||
<Text>
|
||
<![CDATA[XIC(Communication_Faulted)XIO(Parent.STS.Communication_Faulted)OTE(HMI.Alarm.Communication_Faulted);]]>
|
||
</Text>
|
||
</Rung>
|
||
<Rung Number="4" Type="N">
|
||
<Text>
|
||
<![CDATA[XIC(MCM.STS.Unacknowledge_All_Logs)OTU(Acknowledge);]]>
|
||
</Text>
|
||
</Rung>
|
||
<Rung Number="5" Type="N">
|
||
<Text>
|
||
<![CDATA[[XIC(Communication_Faulted) ONS(Acknowledge_ONS) OTU(Acknowledge) ,XIC(Communication_Faulted) XIO(Acknowledge) COP(Lost_Communication_String,Concatenated_String,1) CONCAT(HMI.Name,Concatenated_String,MCM.CMD.Log) ADD(MCM.CMD.Log_Quantity,1,MCM.CMD.Log_Quantity) ,NE(MCM.STS.Acknowledge_Log,Empty_String) EQ(MCM.CMD.Log,MCM.STS.Acknowledge_Log) OTL(Acknowledge) COP(Empty_String,MCM.STS.Acknowledge_Log,1) ];]]>
|
||
</Text>
|
||
</Rung>
|
||
</RLLContent>
|
||
</Routine>
|
||
<Routine Name="Prescan" Type="RLL">
|
||
<RLLContent>
|
||
<Rung Number="0" Type="N">
|
||
<Text>
|
||
<![CDATA[OTU(Acknowledge);]]>
|
||
</Text>
|
||
</Rung>
|
||
</RLLContent>
|
||
</Routine>
|
||
</Routines>
|
||
<Dependencies>
|
||
<Dependency Type="DataType" Name="UDT_CTRL_IO_BLOCK"/>
|
||
<Dependency Type="DataType" Name="UDT_HMI_IO_BLOCK"/>
|
||
<Dependency Type="DataType" Name="UDT_CTRL_MCM"/>
|
||
</Dependencies>
|
||
</AddOnInstructionDefinition>
|
||
</AddOnInstructionDefinitions>
|
||
</Controller>
|
||
</RSLogix5000Content>
|