﻿<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RSLogix5000Content SchemaRevision="1.0" SoftwareRevision="16.00" TargetType="Rung" ContainsContext="true" Owner="Rockwell Automation, Rockwell Automation" ExportDate="Sun Apr 13 09:06:15 2008" ExportOptions="References Context ReferencesByUId RoutineLabels UIds AliasExtras IOTags NoStringData">
<Controller Use="Context" Name="Robot_Cell" UId="b5ff5b04">
<DataTypes Use="Context" UId="4324e00e">
</DataTypes>
<Modules Use="Context" UId="21a8a3c9">
<Module Use="Context" Name="ModuleName" UId="0348e0cd">
</Module>
</Modules>
<Tags Use="Context" UId="184e5e16">
<Tag Name="Sts_ZoneName_DeviceName4_InputOK" UId="1af3cd6f" TagType="Base" DataType="BOOL" Radix="Decimal" Class="Safety">
<Data>00</Data>
</Tag>
<Tag Name="Sts_ZoneName_DeviceName8_InputOK" UId="52e52dc9" TagType="Base" DataType="BOOL" Radix="Decimal" Class="Safety">
<Data>00</Data>
</Tag>
<Tag Name="Sts_ZoneName_DeviceName2_InputOK" UId="41ea59c7" TagType="Base" DataType="BOOL" Radix="Decimal" Class="Safety">
<Data>00</Data>
</Tag>
<Tag Name="ModuleName:O" UId="67ace375" TagType="Base" DataType="AB:1791ES_IB8XOB8_Safety2:O:0" IO="true" Class="Safety">
<Data>00 00 00 00</Data>
<ForceData>00 00 00 00 00 00 00 00 00 00 00 00</ForceData>
</Tag>
<Tag Name="ZoneName_DeviceName" UId="ab34052b" TagType="Base" DataType="REDUNDANT_OUTPUT" Class="Safety">
<Data>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00</Data>
</Tag>
<Tag Name="Sts_ZoneName_DeviceName5_InputOK" UId="0000401d" TagType="Base" DataType="BOOL" Radix="Decimal" Class="Safety">
<Data>00</Data>
</Tag>
<Tag Name="Sts_ZoneName_DeviceName6_InputOK" UId="b6a0627b" TagType="Base" DataType="BOOL" Radix="Decimal" Class="Safety">
<Data>00</Data>
</Tag>
<Tag Name="Sts_ZoneName_InputsOK" UId="c2c8f585" TagType="Base" DataType="BOOL" Radix="Decimal" Class="Safety">
<Data>00</Data>
</Tag>
<Tag Name="Sts_ZoneName_DeviceName3_InputOK" UId="0fc43d77" TagType="Base" DataType="BOOL" Radix="Decimal" Class="Safety">
<Data>00</Data>
</Tag>
<Tag Name="Sts_ZoneName_DeviceName1_InputOK" UId="696dfb81" TagType="Base" DataType="BOOL" Radix="Decimal" Class="Safety">
<Data>00</Data>
</Tag>
<Tag Name="Cmd_ZoneName_OutputEnable" UId="57c85f1f" TagType="Base" DataType="BOOL" Radix="Decimal" Class="Safety">
<Data>00</Data>
</Tag>
<Tag Name="ModuleName:I" UId="6310bd36" TagType="Base" DataType="AB:1791ES_IB8XOB8_Safety2:I:0" IO="true" Class="Safety">
<Data>00 00 00 00 00 00 00 00</Data>
<ForceData>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00</ForceData>
</Tag>
<Tag Name="Cmd_ZoneName_SafetyReset" UId="d3775bed" TagType="Base" DataType="BOOL" Radix="Decimal" Class="Safety">
<Data>00</Data>
</Tag>
<Tag Name="Sts_ZoneName_DeviceName7_InputOK" UId="791306b1" TagType="Base" DataType="BOOL" Radix="Decimal" Class="Safety">
<Data>00</Data>
</Tag>
<Tag Name="Wrk_ZoneName_SafetyReset_ONS" UId="8d591f53" TagType="Base" DataType="BOOL" Radix="Decimal" Class="Safety">
<Data>00</Data>
</Tag>
<Tag Name="Cmd_ZoneName_FaultReset" UId="f66bc099" TagType="Base" DataType="BOOL" Radix="Decimal" Class="Safety">
<Data>00</Data>
</Tag>
</Tags>
<Programs Use="Context" UId="db80ca23">
<Program Use="Context" Name="SafetyProgram" UId="a06b6d02" Class="Safety">
<Routines Use="Context" UId="7a6e11bd">
<Routine Use="Context" Name="Final_Test_Routine" UId="c02b1288">
<RLLContent Use="Context">
<Rung Use="Target" Number="0" Type="N" UId="1a256ea3">
<Comment>
<![CDATA[***************************** Kinetix_Servo_Drive_CAT3_CAT4 Safety Logic *****************************
This Safety Logic Example should only be used and applied in accordance with the 
Safety Concepts and Requirements covered in the GuardLogix Controller Systems
Safety Reference Manual (Publication 1756-RM093D-EN-P)

GENERAL OPERATION
This sample code demonstrates how to control the Redundant Safe-Off Relays in the Kinetix Servo Drives.
The ROUT instruction provides SIL 3 level diagnostics for redundant safe off relays with auxiliary feedback (EDM).
The ROUT controls dual outputs and monitors up to two (2) feedback channels in either negative or positive feedback mode.
This Kinetix_Servo_Drive_CAT3_CAT4 Safety Logic would typically work in conjunction with Safety_Input_CAT3_CAT4 Logic.

CONFIGURATION DETAILS
The ROUT instruction is the primary safety instruction within this routine.
The ZoneName_DeviceName ROUT instruction tag name will identify this instruction with the unique device within a specific zone.
All other tags within this routine are also CONTROLLER scoped, and if you wish to copy and paste them into another routine, you will need to provide a unique name on every new copy.

This Safety Logic Example is set to NEGATIVE Feedback; meaning the feedback must be opposite of the output state.
Note that the Safety Output Reset functionality resides in this routine.  This manual action is required to reset the output after it has been de-energized due to a fault or normal demand on the safety function.

This routine assumes that the auxiliary feedback channels are wired in series to a single input.  This is why the same input tag "ModuleName:I.Pt00Data " has been assigned to both Feedback 1 and 2.

 The Fault Reset is assigned to a tag named "Cmd_ZoneName_FaultReset" representing a command triggered by an HMI or hardwired input.  This same Fault Reset tag, "Cmd_ZoneName_FaultReset", will typically be used on all of the the safety input and output instructions within it's safety zone. 



 Safety Input Interlock Rung
This rung includes (8) safety device input interlocks, with tag names Sts_ZoneName_DeviceName1_InputOK through Sts_ZoneName_DeviceName8_InputOK, that energize the Sts_ZoneName_InputsOK OTE instruction.  These interlocks tags can be driven by the individual safety device input logic routines provided in this toolkit.  The Sts_ZoneName_InputsOK tag is then included in the Output Enable Rung which drives the ROUT instruction.]]>
</Comment>
<Text>
<![CDATA[XIC(@696dfb81@)XIC(@41ea59c7@)XIC(@0fc43d77@)XIC(@1af3cd6f@)XIC(@0000401d@)XIC(@b6a0627b@)XIC(@791306b1@)XIC(@52e52dc9@)OTE(@c2c8f585@);]]>
</Text>
</Rung>
<Rung Use="Target" Number="1" Type="N" UId="b025a57a">
<Comment>
<![CDATA[Output Enable Rung
This rung provides the operator action required to reset or enable the safety zone output.
The operator action is a LO to HI of 'Safety Reset'.  
It latches the ouput enable until either a demand is placed on a safety input, there is a input channel or output channel fault, or a feedback fault on the output circuit.
The 'Inputs OK' will go LO in the event of a demand on any safety input(s) or fault on any safety input channel(s) within the zone.
The 'CombinedOutputStatus' will go LO if any output channel on the Zone Module faults.  
The .FP feedback fault present drops out the ouput enable in the event of a feedback fault, so that reset or enable cannot occur without operator action.
]]>
</Comment>
<Text>
<![CDATA[[XIC(@d3775bed@) ONS(@8d591f53@) ,XIC(@57c85f1f@) ]XIC(@c2c8f585@)XIC(@6310bd36@.CombinedOutputStatus)XIO(@ab34052b@.FP)OTE(@57c85f1f@);]]>
</Text>
</Rung>
<Rung Use="Target" Number="2" Type="N" UId="8dec1355">
<Text>
<![CDATA[ROUT(@ab34052b@,NEGATIVE,@57c85f1f@,@6310bd36@.Pt00Data,@6310bd36@.Pt00Data,@f66bc099@);]]>
</Text>
</Rung>
<Rung Use="Target" Number="3" Type="N" UId="c89e8ea4">
<Comment>
<![CDATA[Safety Output Rung
This Safety Output Logic Example controls dual outputs on a Guard I/O module Named "ModuleName".  The ROUT instruction Outputs O1 and O2 are used to drive the safety outputs 00 and 01(Tags: ModuleName:O.Pt00Data and ModuleName:O.Pt01Data) which are wired to the Redundant Safe-Off Relays in the Kinetix Servo Drives.
Reassignment of EDM and output channels will need to be made to match your unique safety wiring configuration.]]>
</Comment>
<Text>
<![CDATA[XIC(@ab34052b@.O1)XIC(@ab34052b@.O2)[OTE(@67ace375@.Pt00Data) ,OTE(@67ace375@.Pt01Data) ];]]>
</Text>
</Rung>
</RLLContent>
</Routine>
</Routines>
</Program>
</Programs>
</Controller>
</RSLogix5000Content>
