Files
MaxWaterSystem/PLC/Rung7_from_PID_Control for MAXH2O-92.L5X
2018-05-22 11:58:57 -05:00

8470 lines
365 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RSLogix5000Content SchemaRevision="1.0" SoftwareRevision="30.00" TargetType="Rung" TargetCount="1" ContainsContext="true" Owner="Patrick McDonagh, Henry Pump" ExportDate="Thu Dec 21 16:47:08 2017" ExportOptions="References NoRawData L5KData DecoratedData Context RoutineLabels AliasExtras IOTags NoStringData ForceProtectedEncoding AllProjDocTrans">
<Controller Use="Context" Name="Max_Water_System">
<DataTypes Use="Context">
<DataType Name="PID_Gains" Family="NoFamily" Class="User">
<Members>
<Member Name="cfg_PGain" DataType="REAL" Dimension="0" Radix="Float" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Proportional Gain]]>
</Description>
</Member>
<Member Name="cfg_IGain" DataType="REAL" Dimension="0" Radix="Float" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Integral Gain]]>
</Description>
</Member>
<Member Name="cfg_DGain" DataType="REAL" Dimension="0" Radix="Float" Hidden="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Derivative Gain]]>
</Description>
</Member>
</Members>
</DataType>
<DataType Name="STRING_12" Family="StringFamily" Class="User">
<Members>
<Member Name="LEN" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="DATA" DataType="SINT" Dimension="12" Radix="ASCII" Hidden="false" ExternalAccess="Read/Write"/>
</Members>
</DataType>
<DataType Name="STRING_16" Family="StringFamily" Class="User">
<Members>
<Member Name="LEN" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="DATA" DataType="SINT" Dimension="16" Radix="ASCII" Hidden="false" ExternalAccess="Read/Write"/>
</Members>
</DataType>
<DataType Name="STRING_20" Family="StringFamily" Class="User">
<Members>
<Member Name="LEN" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="DATA" DataType="SINT" Dimension="20" Radix="ASCII" Hidden="false" ExternalAccess="Read/Write"/>
</Members>
</DataType>
<DataType Name="STRING_40" Family="StringFamily" Class="User">
<Members>
<Member Name="LEN" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="DATA" DataType="SINT" Dimension="40" Radix="ASCII" Hidden="false" ExternalAccess="Read/Write"/>
</Members>
</DataType>
<DataType Name="STRING_8" Family="StringFamily" Class="User">
<Members>
<Member Name="LEN" DataType="DINT" Dimension="0" Radix="Decimal" Hidden="false" ExternalAccess="Read/Write"/>
<Member Name="DATA" DataType="SINT" Dimension="8" Radix="ASCII" Hidden="false" ExternalAccess="Read/Write"/>
</Members>
</DataType>
</DataTypes>
<AddOnInstructionDefinitions Use="Context">
<AddOnInstructionDefinition Name="P_Alarm" Revision="3.5" RevisionExtension="01 Release" Vendor="Rockwell Automation" ExecutePrescan="true" ExecutePostscan="false" ExecuteEnableInFalse="true" CreatedDate="2008-02-29T20:40:04.200Z" CreatedBy="Not Available" EditedDate="2016-01-29T13:55:20.321Z" EditedBy="PROCESS\Library"
SoftwareRevision="v18.02">
<Description>
<![CDATA[Alarm]]>
</Description>
<RevisionNote>
<![CDATA[See V3.5-xx Release Notes for details. Corrected operation of Cfg_AlmMinOnT, Cfg_MaxShelfT.]]>
</RevisionNote>
<AdditionalHelpText>
<![CDATA[Copyright © Rockwell Automation, Inc. All Rights Reserved.
This instruction monitors one input condition and provides one Alarm with:
* configurable latching (reset required) and acknowledgement requirement
* configurable alarm severity
1 to 250 = Low (blue, typ. informational)
251 to 500 = Medium (yelllow, typ. warning)
501 to 750 = High (red, typ. process exception)
751 to 1000 = Urgent (magenta, typ. equip. fault)
* configurable minimum ON time (e.g., to ensure it is seen by the HMI)
* commands to suppress/unsuppress (Prog), shelve/unshelve (Oper)
and disable/enable (Maint) the alarm.
* configurable amount of time shelved to automatically unshelve an alarm
* FTA&E support for suppressed, shelved and disabled states (V7.0)
* A Maintenance "Test" command, which triggers the alarm for the minimum
alarm time for testing purposes.
NOTE regarding parameter naming:
FTAE names (same as ALMD instruction) are used instead
of the ANSI/ISA 18.2-2009 names, as follows:
"Disabled" is the equivalent of "Out of Service" in ISA 18.2.
(The Disabled state is owned by Maintenance.)
"Suppressed" is the equivalent of "Suppressed by Design" in
ISA 18.2. (The Suppressed state is owned by Program logic.)
"Shelved" is the same as in ISA 18.2.
(The Shelved state is owned by Operator, but may be cleared
by Program logic based on time, shift change, etc.)
This instruction is usually nested within other instructions, with one instance
used for each Alarm generated by the containing instruction. It may also be
used as a standalone instruction for Alarm conditions generated by custom logic.
FTAE Alarm Setup:
(object).(alarm).Com_AE.0: Alarm to FTAE
.Com_AE.1: Ack to/from FTAE
.Com_AE.3: Shelved from FTAE Status
.Com_AE.4: Shelve/Reshelve to FTAE Control (auto reset)
.Com_AE.5: Unshelve to FTAE Control (auto reset)
.Com_AE.6: Suppressed from FTAE Status
.Com_AE.7: Suppress to FTAE Control (auto reset)
.Com_AE.8: Unsuppress to FTAE Control (auto reset)
.Com_AE.9: Disabled from FTAE Status
.Com_AE.10: Disable to FTAE Control (auto reset)
.Com_AE.11: Enable to FTAE Control (auto reset)
all other bits unused
.Cfg_MaxShelfT is also used in FTAE config.
.Cfg_Severity is used in FTAE for FTView 8.x.
]]>
</AdditionalHelpText>
<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="Inp" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[Alarm Condition Input 1=Alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="Inp_Reset" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Reset Alarm requiring reset]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_Exists" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Alarm configured to exist, 0=Does not exist, don't scan]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_ResetReqd" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Latched Alarm, a Reset is required to clear this Alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_AckReqd" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Acknowledge required for this Alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_AllowShelve" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Allow Operator to Shelve this Alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_AllowDisable" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Allow Maintenance to Disable this Alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_PCmdClear" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Clear Program Commands on receipt
0=Leave Set]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_Severity" TagType="Base" DataType="INT" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Alarm Severity: 1..250=Low, 251..500=Medium, 501..750=High, 751..1000=Urgent]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[750]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="INT" Radix="Decimal" Value="750"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_AlmMinOnT" TagType="Base" DataType="DINT" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Minimum time Alm output stays on (sec)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[5]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="5"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_MaxShelfT" TagType="Base" DataType="INT" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Auto unshelve after shelved this long (1..32767 minutes)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[480]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="INT" Radix="Decimal" Value="480"/>
</DefaultData>
</Parameter>
<Parameter Name="PCfg_AllowExist" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Alarm can be configured to exist, 0=other configs make alarm meaningless]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_Reset" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Reset latched alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_Ack" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Acknowledge alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_Suppress" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Suppress by Design (inhibits new alarm)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_Unsuppress" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unsuppress (allows new alarm)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_Unshelve" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unshelve (e.g., on shift change)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="OCmd_Reset" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Command to Reset latched alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="OCmd_Ack" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Command to Acknowledge alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="OCmd_Shelve" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Command to Shelve Alarm (inhibits new alarm)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="OCmd_Unshelve" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Command to Unshelve alarm (allows new alarm)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="MCmd_Disable" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Maintenance Command to Disable alarm (inhibits new alarm)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="MCmd_Enable" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Maintenance Command to Enable alarm (allows new alarm)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="MCmd_Test" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Maintenance Command to Test alarm (issued for minimum alarm time)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_Notify" TagType="Base" DataType="SINT" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Current Alarm Severity and Acknowledgement (enumeration)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_MinToUnshelve" TagType="Base" DataType="DINT" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[Number of minutes until this alarm unshelves itself (mmm:ss)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_SecToUnshelve" TagType="Base" DataType="DINT" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[Number of Seconds until this alarm unshelves itself (mmm:ss)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Alm" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Com_AE.0" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[Alarm output 1=In Alarm]]>
</Description>
</Parameter>
<Parameter Name="Ack" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Com_AE.1" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[Alarm acknowledged status: 1=Ack rcvd]]>
</Description>
</Parameter>
<Parameter Name="Shelved" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Com_AE.3" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Alarm has been Shelved by Operator (inhibits new alarm)]]>
</Description>
</Parameter>
<Parameter Name="Suppressed" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Com_AE.6" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Alarm has been Suppressed by Program (inhibits new alarm)]]>
</Description>
</Parameter>
<Parameter Name="Disabled" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Com_AE.9" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Alarm has been Disabled by Maintanance (inhibits new alarm)]]>
</Description>
</Parameter>
<Parameter Name="Sts_AlmInh" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Alarm has been suppressed, shelved or disabled, display "I" icon]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Err" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Error in Config: see detail Err_ bits for reason]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Err_Timer" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Error in Config: Alarm Min On Time, Shelf Time (use 0 to 2147483)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Err_Severity" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Error in Config: Invalid Severity (use 1 to 4)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Reset" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Ready to receive OCmd_Reset (enables button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Ack" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Ready to receive OCmd_Ack (enables button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Shelve" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Ready to receive OCmd_Shelve (enables button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Unshelve" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Ready to receive OCmd_Unshelve (enables button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Disable" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Ready to receive MCmd_Disable (enables button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Enable" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Ready to receive MCmd_Enable (enables button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Test" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Ready to receive MCmd_Test (enables button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="P_Alarm" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Unique Parameter Name for auto - discovery]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
</Parameters>
<LocalTags>
<LocalTag Name="Wrk_Alm" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Internal Alarm Status]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_Suppressed" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Internal Alarm Suppressed Status]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_AlmMinOnT" DataType="TIMER" ExternalAccess="None">
<Description>
<![CDATA[Alarm output minimum ON time to be seen by alarm server]]>
</Description>
<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="Wrk_AutoAckT" DataType="TIMER" ExternalAccess="None">
<Description>
<![CDATA[Time to clear Ack bit when Ack not required]]>
</Description>
<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="Wrk_ShelfT" DataType="TIMER" ExternalAccess="Read Only">
<Description>
<![CDATA[Time to auto Unshelve a Shelved Alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[0,0,0]]]>
</DefaultData>
<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="Inf_Tab" DataType="SINT" Radix="Decimal" ExternalAccess="Read/Write">
<Description>
<![CDATA[Tab to display (FTView ME)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Com_AE" DataType="INT" Radix="Binary" ExternalAccess="Read/Write">
<Description>
<![CDATA[Communication with HMI / Alarm/Event Server (see bit descriptions)]]>
</Description>
<Comments>
<Comment Operand=".0">
<![CDATA[Alarm to AE]]>
</Comment>
<Comment Operand=".1">
<![CDATA[Acked from AE Status, Ack to AE Control]]>
</Comment>
<Comment Operand=".2">
<![CDATA[(not used)]]>
</Comment>
<Comment Operand=".3">
<![CDATA[Shelved from AE Status]]>
</Comment>
<Comment Operand=".4">
<![CDATA[Shelve to AE Control]]>
</Comment>
<Comment Operand=".5">
<![CDATA[Unshelve to AE Control]]>
</Comment>
<Comment Operand=".6">
<![CDATA[Suppressed from AE Status]]>
</Comment>
<Comment Operand=".7">
<![CDATA[Suppress to AE Control]]>
</Comment>
<Comment Operand=".8">
<![CDATA[Unsuppress to AE Control]]>
</Comment>
<Comment Operand=".9">
<![CDATA[Disabled from AE Status]]>
</Comment>
<Comment Operand=".10">
<![CDATA[Disable to AE Control]]>
</Comment>
<Comment Operand=".11">
<![CDATA[Enable to AE Control]]>
</Comment>
<Comment Operand=".12">
<![CDATA[(not used)]]>
</Comment>
<Comment Operand=".13">
<![CDATA[(not used)]]>
</Comment>
<Comment Operand=".14">
<![CDATA[(not used)]]>
</Comment>
<Comment Operand=".15">
<![CDATA[(not used)]]>
</Comment>
</Comments>
<DefaultData Format="L5K">
<![CDATA[2]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="INT" Radix="Binary" Value="2#0000_0000_0000_0010"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Cfg_Tag" DataType="STRING_20" ExternalAccess="Read/Write">
<Description>
<![CDATA[Alarm Tag Text (e.g., "LAHH-101")]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[7,'P_Alarm$00$00$00$00$00$00$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_20">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="7"/>
<DataValueMember Name="DATA" DataType="STRING_20" Radix="ASCII">
<![CDATA['P_Alarm']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Cfg_Cond" DataType="STRING_20" ExternalAccess="Read/Write">
<Description>
<![CDATA[Alarm Condition Text (e.g., "High-High PV")]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[15,'Alarm Condition$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_20">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="15"/>
<DataValueMember Name="DATA" DataType="STRING_20" Radix="ASCII">
<![CDATA['Alarm Condition']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_SecToUnshelve" DataType="DINT" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Number of seconds until this alarm unshelves itself]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Inf_Lib" DataType="STRING_12" ExternalAccess="Read Only">
<Description>
<![CDATA[Display Library for Faceplate call-up]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[6,'RA-BAS$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_12">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="6"/>
<DataValueMember Name="DATA" DataType="STRING_12" Radix="ASCII">
<![CDATA['RA-BAS']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Inf_Type" DataType="STRING_16" ExternalAccess="Read Only">
<Description>
<![CDATA[Must contain AOI name, used for HMI and Information S/W]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[7,'P_Alarm$00$00$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_16">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="7"/>
<DataValueMember Name="DATA" DataType="STRING_16" Radix="ASCII">
<![CDATA['P_Alarm']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
</LocalTags>
<Routines>
<Routine Name="EnableInFalse" Type="RLL">
<Description>
<![CDATA[Perform Alarm processing, but Invert Alarm Input ("Inp") for use on LD rung (EnableIn False)]]>
</Description>
<RLLContent>
<Labels>
<Label Name="End"/>
</Labels>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[============================================================
P_Alarm: EnableInFalse (False Rung) Handling
============================================================
When EnableIn is FALSE (False Rung), the Input
("Inp") is inverted. This allows the P_Alarm instruction
to be used on a simple Ladder Diagram rung:
XIC (condition) P_Alarm (Alarm)
All processing is identical to the normal Logic
routine, except references to Inp are inverted!
============================================================
CONFIGURATION
============================================================
In the object containing this alarm, other configuration (such as not having
any limit switches) may make this particular alarm meaningless.
The Program Configuration "Allow Exist" is used to hide this alarm
on the object's faceplate and other graphics, and forces the Cfg_Exist to 0.
##### V3.0-00 2013-06-30: Added PCfg_AllowExist. #####]]>
</Comment>
<Text>
<![CDATA[XIO(PCfg_AllowExist)OTU(Cfg_Exists);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Comment>
<![CDATA[
This rung gets the Alarm Minimum ON Time Configuration
and the Auto Unshelve Time Configuration
values and sets the corresponding timer presets.
If the Minimum ON Time Configuration results in a timer preset
less than 5 seconds, the preset is set to 5 seconds.
If the Auto Unshelve Time Configuration results in a negative
timer preset, the preset is set to 28800 seconds (8 hours).
Either bad Config is flagged (Err_Timer).
Bad Config is also flagged if the Cfg_Severity is out of range (valid = 1..1000) (Err_Severity).
##### V3.0-00 2013-06-30: Changed Program Inhibit to Suppress, Operator Suppress to Shelve. #####
##### Added Shelf Timer config check; if Severity out of range, make it "Fault". #####
##### V3.0-02 2013-10-30: Changed Cfg_MaxShelfT check to LEQ 0. (INT 1 to 32767 is valid.) #####
##### V3.1-05, V3.5-00 2015-07-31: Fixed operation of Cfg_MaxShelfT = 0, Cfg_AlmMinOnT, rung comment. #####]]>
</Comment>
<Text>
<![CDATA[XIC(Cfg_Exists)[[MUL(Cfg_AlmMinOnT,1000,Wrk_AlmMinOnT.PRE) LES(Wrk_AlmMinOnT.PRE,5000) MOV(5,Cfg_AlmMinOnT) MOV(5000,Wrk_AlmMinOnT.PRE) ,MUL(Cfg_MaxShelfT,60000,Wrk_ShelfT.PRE) LES(Wrk_ShelfT.PRE,0) MOV(480,Cfg_MaxShelfT) MOV(28800000,Wrk_ShelfT.PRE) ] OTE(Err_Timer) ,LIM(1001,Cfg_Severity,0) MOV(1000,Cfg_Severity) OTE(Err_Severity) ]OTE(Sts_Err);]]>
</Text>
</Rung>
<Rung Number="2" Type="N">
<Comment>
<![CDATA[The Auto Ack time is ALWAYS five seconds.
##### V3.1-05, V3.5-00 2015-07-31: Operation of Cfg_AlmMinOnT consolidated on previous rung #####]]>
</Comment>
<Text>
<![CDATA[MOV(5000,Wrk_AutoAckT.PRE);]]>
</Text>
</Rung>
<Rung Number="3" Type="N">
<Comment>
<![CDATA[When the Alarm initially occurs, the Auto Ack timer is started.
If this Alarm is set for "Ack Not Required", it is automatically
Acknowledged after the AutoAck time expires.
This pulsing of the Ack bit OFF then ON allows the "Ack Not Required"
configuration to be used with View 32, View ME and other legacy
alarm systems that don't support optional ack.
##### V3.0-00 2013-06-30: Moved rung here to be outside the "JMP over" zone #####]]>
</Comment>
<Text>
<![CDATA[XIO(Ack)TON(Wrk_AutoAckT,?,?);]]>
</Text>
</Rung>
<Rung Number="4" Type="N">
<Comment>
<![CDATA[If this alarm does not exist, set it to its default state (no alarm, acknowleded,
uninhibited, unsuppressed, enabled) and clear any received commands.
Then jump over the remainder of the Logic and return.
##### V3.0-00 2013-06-30: Added Shelf Timer, PCmd_Unshelve #####]]>
</Comment>
<Text>
<![CDATA[XIO(Cfg_Exists)[XIC(Wrk_AutoAckT.DN) OTL(Ack) ,OTU(Wrk_Alm) OTU(Shelved) OTU(Wrk_Suppressed) OTU(Disabled) OTU(Sts_AlmInh) ,OTU(PCmd_Reset) OTU(PCmd_Ack) OTU(PCmd_Unshelve) OTU(PCmd_Suppress) OTU(PCmd_Unsuppress) ,OTU(OCmd_Reset) OTU(OCmd_Ack) OTU(OCmd_Shelve) OTU(OCmd_Unshelve) ,OTU(MCmd_Disable) OTU(MCmd_Enable) RES(Wrk_AlmMinOnT) RES(Wrk_ShelfT) ]JMP(End);]]>
</Text>
</Rung>
<Rung Number="5" Type="N">
<Comment>
<![CDATA[============================================================
COMMAND PROCESSING
============================================================
These rungs handle received Commands:
Operator Commands (OCmd_xx) and Maintenance Commands
(MCmd_xx) from the HMI and
Program Command (PCmd_xx) from other objects.
NOTE: ALARM COMMANDS ARE ACCEPTED REGARDLESS OF MODE.
This rung receives the Program Alarm Inhibit Command.
If configured for EDGE, the Command is cleared.
##### V3.1-02 2013-09-24: Modified FTAE interface for Disable/Enable, Suppress/Unsuppress. #####]]>
</Comment>
<Text>
<![CDATA[XIC(PCmd_Suppress)[XIC(Cfg_PCmdClear) OTU(PCmd_Suppress) ,OTL(Wrk_Suppressed) OTL(Com_AE.7) OTU(Com_AE.8) ];]]>
</Text>
</Rung>
<Rung Number="6" Type="N">
<Comment>
<![CDATA[This rung receives the Program Alarm Unsuppress Command (Unsuppress wins over Suppress).
If configured for LEVEL, Suppressed is cleared if PCmd_Suppress is cleared.
##### V3.1-02 2013-09-24: Modified FTAE interface for Disable/Enable, Suppress/Unsuppress. #####]]>
</Comment>
<Text>
<![CDATA[[XIC(PCmd_Unsuppress) OTU(PCmd_Unsuppress) ,XIO(PCmd_Suppress) XIO(Cfg_PCmdClear) ]OTU(Wrk_Suppressed)OTU(Com_AE.7)OTL(Com_AE.8);]]>
</Text>
</Rung>
<Rung Number="7" Type="N">
<Comment>
<![CDATA[This rung receives the Operator Shelve Command.
If the command is received while shelved, the shelf timer starts over (reset).
##### V3.0-00 2013-06-30: Changed Program Inhibit to Suppress, Operator Suppress to Shelve. #####]]>
</Comment>
<Text>
<![CDATA[XIC(OCmd_Shelve)OTU(OCmd_Shelve)XIC(Cfg_AllowShelve)OTL(Shelved)OTL(Com_AE.4)OTU(Com_AE.5)RES(Wrk_ShelfT);]]>
</Text>
</Rung>
<Rung Number="8" Type="N">
<Comment>
<![CDATA[This rung times how long the alarm has been shelved.
If the Shelf Timer expires (and its preset > 0), automatically unshelve the alarm.
##### V3.0-00 2013-06-30: New rung, added Shelf Timer #####]]>
</Comment>
<Text>
<![CDATA[XIC(Shelved)TON(Wrk_ShelfT,?,?);]]>
</Text>
</Rung>
<Rung Number="9" Type="N">
<Comment>
<![CDATA[This rung receives the Operator Unshelve Command (Unshelve wins over Shelve)
and the Program Unshelve Command
Also Unshelve the alarm if the Shelf Timer expires (if preset > 0).
NOTE: Shelved can also be set/cleared directly by the HMI (FTA&E support).
##### V3.0-00 2013-06-30: Changed Program Inhibit to Suppress, Operator Suppress to Shelve. #####
##### Added PCmd_Unshelve, Shelf Timer expiration #####]]>
</Comment>
<Text>
<![CDATA[[XIC(OCmd_Unshelve) OTU(OCmd_Unshelve) ,XIC(PCmd_Unshelve) OTU(PCmd_Unshelve) ,XIC(Wrk_ShelfT.DN) NEQ(Wrk_ShelfT.PRE,0) ,XIO(Cfg_AllowShelve) ]OTU(Shelved)OTU(Com_AE.4)OTL(Com_AE.5);]]>
</Text>
</Rung>
<Rung Number="10" Type="N">
<Comment>
<![CDATA[This rung receives the Maintenance Alarm Disable Command
##### V3.1-02 2013-09-24: Modified FTAE interface for Disable/Enable, Suppress/Unsuppress. #####]]>
</Comment>
<Text>
<![CDATA[XIC(MCmd_Disable)OTU(MCmd_Disable)XIC(Cfg_AllowDisable)OTL(Disabled)OTL(Com_AE.10)OTU(Com_AE.11);]]>
</Text>
</Rung>
<Rung Number="11" Type="N">
<Comment>
<![CDATA[This rung receives the Maintenance Alarm Enable Command (Enable wins over Disable)
NOTE: Disabled can also be set/cleared directly by the HMI (FTA&E support).
##### V3.1-02 2013-09-24: Modified FTAE interface for Disable/Enable, Suppress/Unsuppress. #####]]>
</Comment>
<Text>
<![CDATA[[XIC(MCmd_Enable) ,XIO(Cfg_AllowDisable) ]OTU(MCmd_Enable)OTU(Disabled)OTU(Com_AE.10)OTL(Com_AE.11);]]>
</Text>
</Rung>
<Rung Number="12" Type="N">
<Comment>
<![CDATA[If the Alarm is Disabled (Maint), Suppressed (Prog) or Shelved
(Oper), then post the "alarm inhibited" breadcrumb and do not
allow a new alarm to be issued.
@@@@@ Unlatch and Latch are used to avoid a verification @@@@@
@@@@@ warning in combination with Rung 2's OTU (above)! @@@@@
##### V3.0-00 2013-06-30: Broken out in a separate, simpler rung, and used #####
##### in other logic. Shelving no longer generates Alm on Inp going to Alarm state. #####]]>
</Comment>
<Text>
<![CDATA[OTU(Sts_AlmInh)[XIC(Disabled) ,XIC(Wrk_Suppressed) ,XIC(Shelved) ]OTL(Sts_AlmInh);]]>
</Text>
</Rung>
<Rung Number="13" Type="N">
<Comment>
<![CDATA[This rung receives the Alarm Acknowledge Commands
NOTE: Acknowledge can also be set/cleared directly by the HMI.
##### V3.0-00 2013-06-30: Most ACK sources moved to this rung. #####]]>
</Comment>
<Text>
<![CDATA[XIO(Wrk_AutoAckT.TT)[XIC(PCmd_Ack) OTU(PCmd_Ack) ,XIC(OCmd_Ack) OTU(OCmd_Ack) ,XIO(Cfg_AckReqd) ]OTL(Ack);]]>
</Text>
</Rung>
<Rung Number="14" Type="N">
<Comment>
<![CDATA[This rung receives the Alarm Reset Commands.
If the Alarm Reset Command is received and, either, the Input condition
has returned to normal, or the alarm is disabled, suppressed or shelved,
the Alarm is CLEARED and ACKNOWLEDGED (to match ALMD behavior!!!).
##### V3.0-00 2013-06-30: The alarm is no longer AUTOMATICALLY #####
##### cleared and acked if it is simply disabled or suppressed! #####
@@@@@ "Inp" is Inverted in the EnableInFalse Routine! @@@@@]]>
</Comment>
<Text>
<![CDATA[XIO(Wrk_AutoAckT.TT)[XIC(OCmd_Reset) OTU(OCmd_Reset) ,XIC(PCmd_Reset) OTU(PCmd_Reset) ,XIC(Inp_Reset) ][XIC(Inp) ,XIC(Sts_AlmInh) ]OTL(Ack)OTU(Wrk_Alm);]]>
</Text>
</Rung>
<Rung Number="15" Type="N">
<Comment>
<![CDATA[============================================================
ALARM GENERATION
============================================================
This rung CLEARS the Alarm when the alarm condition clears and its
Minimum On Time has expired, IF Reset is NOT Required.
##### V3.0-00 2013-06-30: No longer bypass Reset Required #####
##### when the alarm is Shelved by the Operator. #####
@@@@@ "Inp" is Inverted in the EnableInFalse Routine! @@@@@]]>
</Comment>
<Text>
<![CDATA[[XIC(Inp) XIO(Cfg_ResetReqd) XIO(Wrk_AlmMinOnT.TT) ,XIC(Disabled) XIO(Wrk_AutoAckT.TT) ]OTU(Wrk_Alm);]]>
</Text>
</Rung>
<Rung Number="16" Type="N">
<Comment>
<![CDATA[If the Alarm Input (Inp) is true (inverted in EnableInFalse) and the alarm is
(or becomes) Enabled, Unsuppressed and Unshelved, this rung sets the Alarm (Alm) bit.
The Acknowledge (Ack) bit is cleared when the Alarm initially occurs.
##### V3.0-00 2013-06-30: Removed Wrk_Abnormal logic. #####
##### V3.1-00 2014-06-30: Added Maintenace Test command. #####
@@@@@ "Inp" is Inverted in the EnableInFalse Routine! @@@@@]]>
</Comment>
<Text>
<![CDATA[[XIO(Inp) XIO(Sts_AlmInh) ,XIC(MCmd_Test) OTU(MCmd_Test) ][XIO(Wrk_Alm) OTU(Ack) ,OTL(Wrk_Alm) ];]]>
</Text>
</Rung>
<Rung Number="17" Type="N">
<Comment>
<![CDATA[============================================================
OPERATOR COMMAND READIES
============================================================
This Alarm is ready for (requires) an Acknowledgement if the Alarm
is not Acknowledged (an Acknowledge was Required when the alarm occurred).
This Alarm is ready for (requires) a Reset if there is an Alarm, Reset is Required,
and either the alarm condition has CLEARED or the alarm is Shelved,
Suppressed or Disabled.
.
If the Alarm is NOT Shelved, it is ready for Shelve.
If the Alarm IS Shelved, it is ready for Unshelve.
If the Alarm is NOT Disabled, it is ready for Disable.
If the Alarm IS Disabled, it is ready for Enable.
NOTE: This rung appears before the Values/Status rung because the Rdy_Reset
condition is used to eliminate redundant logic in the rung below for Val_Notify.0.
##### V3.0-00 2013-06-30: Added sub-branch with Sts_AlmInh #####
##### V3.1-00 2014-06-30: Added Maintenace Test command. #####
@@@@@ "Inp" is Inverted in the EnableInFalse Routine! @@@@@]]>
</Comment>
<Text>
<![CDATA[LBL(End)XIC(Cfg_Exists)[XIO(Wrk_AutoAckT.TT) [XIO(Ack) OTE(Rdy_Ack) ,XIC(Wrk_Alm) XIC(Cfg_ResetReqd) [XIC(Inp) ,XIC(Sts_AlmInh) ] OTE(Rdy_Reset) ] ,XIC(Cfg_AllowShelve) OTE(Rdy_Shelve) ,XIC(Shelved) OTE(Rdy_Unshelve) ,XIO(Disabled) XIC(Cfg_AllowDisable) OTE(Rdy_Disable) ,XIC(Disabled) OTE(Rdy_Enable) ,XIO(Wrk_Alm) OTE(Rdy_Test) ];]]>
</Text>
</Rung>
<Rung Number="18" Type="N">
<Comment>
<![CDATA[============================================================
VALUE / STATUS GENERATION
============================================================
This rung copies the internal working status (Suppressed, In Alarm)
to public Status bits. Note that internal working bits are used so that
outside objects cannot manipulate the state of this object
by setting/clearing its Status and Alarm bits.
Public Status is generated for:
Alarm (with minimum ON time to be seen by polling)
Alarm Suppressed
Unsuppressed, Unshelved and Enabled are generated for HMI (FTVSE 7).
(Ack, Shelved and Disabled can be set/cleared by the HMI directly.
Note that these bits are "read/write" outputs in the parameter definition.)
##### V3.0-00 2013-06-30: New rung, some from below, new HMI bits. #####]]>
</Comment>
<Text>
<![CDATA[[XIC(Wrk_Alm) OTE(Alm) TON(Wrk_AlmMinOnT,?,?) ,XIC(Wrk_Suppressed) OTE(Suppressed) ];]]>
</Text>
</Rung>
<Rung Number="19" Type="N">
<Comment>
<![CDATA[Notify Level (color, blink) is determined here.
@@@@@ Note how the bottom 3 bits of the Severity are shifted left 1 for Val_Notify. @@@@@
0 = Not in alarm, acknowledged
1 = Not in alarm, unacknowledged or reset required
2 = Low severity alarm, acknowledged
3 = Low severity alarm, unacknowledged
4 = Medium severity alarm, acknowledged
5 = Medium severity alarm, unacknowledged
6 = High severity alarm, acknowledged
7 = High severity alarm, unacknowledged
8 = Urgent severity alarm, acknowledged
9 = Urgent severity alarm, unacknowledged
NOTE that the alarm bell icon will blink, even though the alarm is Acknowledged,
if an Alarm Reset is required (to get the Operator's attention).
##### V3.0-00 2013-06-30: Moved a few functions off this rung to logic above. #####
##### Names of Severity levels changed to Low, Medium, High, Highest #####
##### to match examples in ANSI/ISA-18.2-2009. #####
##### V3.1-00 2014-06-30: Changed severity ranges, names to match FTAE #####]]>
</Comment>
<Text>
<![CDATA[[[XIO(Ack) ,XIC(Rdy_Reset) ] OTE(Val_Notify.0) ,XIC(Wrk_Alm) [[LIM(1,Cfg_Severity,250) ,LIM(501,Cfg_Severity,750) ] OTE(Val_Notify.1) ,LIM(251,Cfg_Severity,750) OTE(Val_Notify.2) ,LIM(751,Cfg_Severity,1000) OTE(Val_Notify.3) ] ,OTU(Val_Notify.4) OTU(Val_Notify.5) OTU(Val_Notify.6) OTU(Val_Notify.7) ];]]>
</Text>
</Rung>
<Rung Number="20" Type="N">
<Comment>
<![CDATA[This rung calculates the number of seconds until this alarm "unshelves" itself.
If the alarm is already unshelved, clear this number.
##### V3.0-00 2013-06-30: Added automatic unshelve, and display of time until this happens. #####]]>
</Comment>
<Text>
<![CDATA[CPT(Wrk_SecToUnshelve,(Wrk_ShelfT.PRE-Wrk_ShelfT.ACC)/1000)XIO(Shelved)CLR(Wrk_SecToUnshelve);]]>
</Text>
</Rung>
<Rung Number="21" Type="N">
<Comment>
<![CDATA[This rung takes the time remaining until the alarm will be automatically unshelved (milliseconds),
converts it to seconds, then reports it in minutes : seconds format for display on the HMI.
##### V3.0-00 2013-06-30: Added automatic unshelve, and display of time until this happens. #####]]>
</Comment>
<Text>
<![CDATA[DIV(Wrk_SecToUnshelve,60,Val_MinToUnshelve)MOD(Wrk_SecToUnshelve,60,Val_SecToUnshelve);]]>
</Text>
</Rung>
</RLLContent>
</Routine>
<Routine Name="Logic" Type="RLL">
<Description>
<![CDATA[Perform Alarm processing: delay, latch/reset, acknowledge, enable/disable, inhibit/uninhibit, suppress/unsuppress]]>
</Description>
<RLLContent>
<Labels>
<Label Name="End"/>
<Label Name="SkipText"/>
</Labels>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[Copyright © Rockwell Automation, Inc. All Rights Reserved.
============================================================
P_Alarm: PROCESS -- ALARM (sub-block)
============================================================
Revision V3.5-01 Release 2016-01-29: See V3.5-xx Release Notes for details.
V1.x and V2.x Revision History archived.
V3.0-00 2013-06-30: Changed suppress to shelve, inhibit to suppress
(ANSI/ISA 18.2-2009 and FTView 7 alignment), added auto unshelve
timer, program command to unshelve. Removed: Ack on shelve.
Added: clear Alm when Disabled, PCfg_AllowExist, Cfg_Tag,
Cfg_Cond, Inf_Lib, Inf_Type. (Max Shelf Time is in MINUTES.)
Added local tag .Com_AE for FTAE communications.
V3.0-01 2013-07-30: Changed range for Shelf Time to 1 to 34560 minutes.
V3.0-02 2013-10-30: Changed Cfg_MaxShelfT check to LEQ 0.
(INT 1 to 32767 is valid.)
V3.1-00 2014-06-30: Added Maintenace Test command, changed severity
ranges and names to match FTAE (for linking to FTView 8).
V3.1-01 2014-09-03: Exposed shelf timer ACC/PRE (read-only).
V3.1-02 2014-09-30: Modified FTAE interface for Disable/Enable and
Suppress/Unsuppress. See "Alarm Setup" below!
V3.5-01 2016-01-29: Fixed operation of Cfg_MaxShelfT, Cfg_AlmMinOnT.
============================================================
This instruction monitors one input condition and provides one Alarm with:
* configurable latching (reset required) and acknowledgement requirement
* configurable alarm severity
1..250 = Low (blue, typ. informational)
251-500 = Medium (yelllow, typ. warning)
501-750 = High (red, typ. process exception)
751-1000 = Urgent (magenta, typ. equip. fault)
* configurable minimum ON time (e.g., to ensure it is seen by the HMI)
* commands to suppress/unsuppress (Prog), shelve/unshelve (Oper)
and disable/enable (Maint) the alarm.
* configurable amount of time shelved to automatically unshelve an alarm
* FTA&E support for suppressed, shelved and disabled states (V7.0)
NOTE regarding parameter naming:
FTA&E names (same as ALMD instruction) are used instead
of the ANSI/ISA 18.2-2009 names, as follows:
"Disabled" is the equivalent of "Out of Service" in ISA 18.2.
(the Disabled state is owned by Maintenance)
"Suppressed" is the equivalent of "Suppressed by Design" in ISA 18.2.
(the Suppressed state is owned by Program logic)
"Shelved" is the same as in ISA 18.2.
(the Shelved state is owned by Operator, but may be cleared
by Program logic based on time, shift change, etc.)
This instruction is usually nested within other instructions, with one instance
used for each Alarm generated by the containing instruction. It may also be
used as a standalone instruction for Alarm conditions generated by custom logic.
________________________________________
FTAE Alarm Setup:
________________________________________
(object).(alarm).Com_AE.0: Alarm to FTAE
.Com_AE.1: Ack to/from FTAE
.Com_AE.3: Shelved from FTAE Status
.Com_AE.4: Shelve/Reshelve to FTAE Control (auto reset)
.Com_AE.5: Unshelve to FTAE Control (auto reset)
.Com_AE.6: Suppressed from FTAE Status
.Com_AE.7: Suppress to FTAE Control (auto reset)
.Com_AE.8: Unsuppress to FTAE Control (auto reset)
.Com_AE.9: Disabled from FTAE Status
.Com_AE.10: Disable to FTAE Control (auto reset)
.Com_AE.11: Enable to FTAE Control (auto reset)
all other bits unused
.Cfg_MaxShelfT is also used in FTAE config.
.Cfg_Severity is used by FTAE in FTView 8.x.
============================================================
POWERUP / INVALID STATE HANDLING
============================================================
All internal Work (state) bits maintain states through a power cycle and are
independent. No first-scan logic is required. See the Prescan routine for
powerup / prescan code.
============================================================
SHOW LOCAL STRINGS
============================================================
The STRINGs containing the text associated with each instance of this
instruction cannot be Input or Output Parameters, because STRINGs are not
'atomic' types. (Inputs and Outputs must be SINT, INT, DINT, REAL, or BOOL.)
In order to make it easier to find and configure these STRINGs, this rung
was added. THE JMP (and the LBL on the following rung)
MUST NOT BE REMOVED!!!
To view the STRINGs, go to the instruction instance (in LD or FBD), RIGHT-click
to bring up the context menu and select "Open Instruction Logic".
This rung will appear with the STRING values for the selected instance.
You may double-click the STRING values here to modify them as well.
##### V3.0-00 2013-06-30: Added rung; added new STRING local tags. #####]]>
</Comment>
<Text>
<![CDATA[JMP(SkipText)LOWER(Cfg_Tag,Cfg_Cond)LOWER(Inf_Lib,Inf_Type);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Comment>
<![CDATA[============================================================
CONFIGURATION
============================================================
In the object containing this alarm, other configuration (such as not having
any limit switches) may make this particular alarm meaningless.
The Program Configuration "Allow Exist" is used to hide this alarm
on the object's faceplate and other graphics, and forces the Cfg_Exist to 0.
##### V3.0-00 2013-06-30: Added PCfg_AllowExist. #####]]>
</Comment>
<Text>
<![CDATA[LBL(SkipText)XIO(PCfg_AllowExist)OTU(Cfg_Exists);]]>
</Text>
</Rung>
<Rung Number="2" Type="N">
<Comment>
<![CDATA[
This rung gets the Alarm Minimum ON Time Configuration
and the Auto Unshelve Time Configuration
values and sets the corresponding timer presets.
If the Minimum ON Time Configuration results in a timer preset
less than 5 seconds, the preset is set to 5 seconds.
If the Auto Unshelve Time Configuration results in a negative
timer preset, the preset is set to 28800 seconds (8 hours).
Either bad Config is flagged (Err_Timer).
Bad Config is also flagged if the Cfg_Severity is out of range (valid = 1..1000) (Err_Severity).
##### V3.0-00 2013-06-30: Changed Program Inhibit to Suppress, Operator Suppress to Shelve. #####
##### Added Shelf Timer config check; if Severity out of range, make it "Fault". #####
##### V3.0-02 2013-10-30: Changed Cfg_MaxShelfT check to LEQ 0. (INT 1 to 32767 is valid.) #####
##### V3.1-05, V3.5-00 2015-07-31: Fixed operation of Cfg_MaxShelfT = 0, Cfg_AlmMinOnT, rung comment. #####]]>
</Comment>
<Text>
<![CDATA[XIC(Cfg_Exists)[[MUL(Cfg_AlmMinOnT,1000,Wrk_AlmMinOnT.PRE) LES(Wrk_AlmMinOnT.PRE,5000) MOV(5,Cfg_AlmMinOnT) MOV(5000,Wrk_AlmMinOnT.PRE) ,MUL(Cfg_MaxShelfT,60000,Wrk_ShelfT.PRE) LES(Wrk_ShelfT.PRE,0) MOV(480,Cfg_MaxShelfT) MOV(28800000,Wrk_ShelfT.PRE) ] OTE(Err_Timer) ,LIM(1001,Cfg_Severity,0) MOV(1000,Cfg_Severity) OTE(Err_Severity) ]OTE(Sts_Err);]]>
</Text>
</Rung>
<Rung Number="3" Type="N">
<Comment>
<![CDATA[The Auto Ack time is ALWAYS five seconds.
##### V3.1-05, V3.5-00 2015-07-31: Operation of Cfg_AlmMinOnT consolidated on previous rung #####]]>
</Comment>
<Text>
<![CDATA[MOV(5000,Wrk_AutoAckT.PRE);]]>
</Text>
</Rung>
<Rung Number="4" Type="N">
<Comment>
<![CDATA[When the Alarm initially occurs, the Auto Ack timer is started.
If this Alarm is set for "Ack Not Required", it is automatically
Acknowledged after the AutoAck time expires.
This pulsing of the Ack bit OFF then ON allows the "Ack Not Required"
configuration to be used with View 32, View ME and other legacy
alarm systems that don't support optional ack.
##### V3.0-00 2013-06-30: Moved rung here to be outside the "JMP over" zone #####]]>
</Comment>
<Text>
<![CDATA[XIO(Ack)TON(Wrk_AutoAckT,?,?);]]>
</Text>
</Rung>
<Rung Number="5" Type="N">
<Comment>
<![CDATA[If this alarm does not exist, set it to its default state (no alarm, acknowleded,
uninhibited, unsuppressed, enabled) and clear any received commands.
Then jump over the remainder of the Logic and return.
##### V3.0-00 2013-06-30: Changed Program Inhibit to Suppress, Operator Suppress to Shelve. #####
##### Added Shelf Timer, PCmd_Unshelve #####]]>
</Comment>
<Text>
<![CDATA[XIO(Cfg_Exists)[XIC(Wrk_AutoAckT.DN) OTL(Ack) ,OTU(Wrk_Alm) OTU(Shelved) OTU(Wrk_Suppressed) OTU(Disabled) OTU(Sts_AlmInh) ,OTU(PCmd_Reset) OTU(PCmd_Ack) OTU(PCmd_Unshelve) OTU(PCmd_Suppress) OTU(PCmd_Unsuppress) ,OTU(OCmd_Reset) OTU(OCmd_Ack) OTU(OCmd_Shelve) OTU(OCmd_Unshelve) ,OTU(MCmd_Disable) OTU(MCmd_Enable) RES(Wrk_AlmMinOnT) RES(Wrk_ShelfT) ]JMP(End);]]>
</Text>
</Rung>
<Rung Number="6" Type="N">
<Comment>
<![CDATA[============================================================
COMMAND PROCESSING
============================================================
These rungs handle received Commands:
Operator Commands (OCmd_xx) and Maintenance Commands
(MCmd_xx) from the HMI and
Program Command (PCmd_xx) from other objects.
NOTE: ALARM COMMANDS ARE ACCEPTED REGARDLESS OF MODE.
This rung receives the Program Alarm Inhibit Command.
If configured for EDGE, the Command is cleared.
##### V3.1-02 2013-09-24: Modified FTAE interface for Disable/Enable, Suppress/Unsuppress. #####]]>
</Comment>
<Text>
<![CDATA[XIC(PCmd_Suppress)[XIC(Cfg_PCmdClear) OTU(PCmd_Suppress) ,OTL(Wrk_Suppressed) OTL(Com_AE.7) OTU(Com_AE.8) ];]]>
</Text>
</Rung>
<Rung Number="7" Type="N">
<Comment>
<![CDATA[This rung receives the Program Alarm Unsuppress Command (Unsuppress wins over Suppress).
If configured for LEVEL, Suppressed is cleared if PCmd_Suppress is cleared.
##### V3.0-00 2013-06-30: Changed Program Inhibit to Suppress, Operator Suppress to Shelve. #####
##### V3.1-02 2013-09-24: Modified FTAE interface for Disable/Enable, Suppress/Unsuppress. #####]]>
</Comment>
<Text>
<![CDATA[[XIC(PCmd_Unsuppress) OTU(PCmd_Unsuppress) ,XIO(PCmd_Suppress) XIO(Cfg_PCmdClear) ]OTU(Wrk_Suppressed)OTU(Com_AE.7)OTL(Com_AE.8);]]>
</Text>
</Rung>
<Rung Number="8" Type="N">
<Comment>
<![CDATA[This rung receives the Operator Shelve Command.
If the command is received while shelved, the shelf timer starts over (reset).
##### V3.0-00 2013-06-30: Changed Program Inhibit to Suppress, Operator Suppress to Shelve. #####]]>
</Comment>
<Text>
<![CDATA[XIC(OCmd_Shelve)OTU(OCmd_Shelve)XIC(Cfg_AllowShelve)OTL(Shelved)OTL(Com_AE.4)OTU(Com_AE.5)RES(Wrk_ShelfT);]]>
</Text>
</Rung>
<Rung Number="9" Type="N">
<Comment>
<![CDATA[This rung times how long the alarm has been shelved.
If the Shelf Timer expires (and its preset > 0), automatically unshelve the alarm.
##### V3.0-00 2013-06-30: New rung, added Shelf Timer #####]]>
</Comment>
<Text>
<![CDATA[XIC(Shelved)TON(Wrk_ShelfT,?,?);]]>
</Text>
</Rung>
<Rung Number="10" Type="N">
<Comment>
<![CDATA[This rung receives the Operator Unshelve Command (Unshelve wins over Shelve)
and the Program Unshelve Command
Also Unshelve the alarm if the Shelf Timer expires (if preset > 0).
NOTE: Shelved can also be set/cleared directly by the HMI (FTA&E support).
##### V3.0-00 2013-06-30: Changed Program Inhibit to Suppress, Operator Suppress to Shelve. #####
##### Added PCmd_Unshelve, Shelf Timer expiration #####]]>
</Comment>
<Text>
<![CDATA[[XIC(OCmd_Unshelve) OTU(OCmd_Unshelve) ,XIC(PCmd_Unshelve) OTU(PCmd_Unshelve) ,XIC(Wrk_ShelfT.DN) NEQ(Wrk_ShelfT.PRE,0) ,XIO(Cfg_AllowShelve) ]OTU(Shelved)OTU(Com_AE.4)OTL(Com_AE.5);]]>
</Text>
</Rung>
<Rung Number="11" Type="N">
<Comment>
<![CDATA[This rung receives the Maintenance Alarm Disable Command
##### V3.0-00 2013-06-30: Added Cfg_AllowDisable. #####
##### V3.1-02 2013-09-24: Modified FTAE interface for Disable/Enable, Suppress/Unsuppress. #####]]>
</Comment>
<Text>
<![CDATA[XIC(MCmd_Disable)OTU(MCmd_Disable)XIC(Cfg_AllowDisable)OTL(Disabled)OTL(Com_AE.10)OTU(Com_AE.11);]]>
</Text>
</Rung>
<Rung Number="12" Type="N">
<Comment>
<![CDATA[This rung receives the Maintenance Alarm Enable Command (Enable wins over Disable)
NOTE: Disabled can also be set/cleared directly by the HMI (FTA&E support).
##### V3.0-00 2013-06-30: Added Cfg_AllowDisable. #####
##### V3.1-02 2013-09-24: Modified FTAE interface for Disable/Enable, Suppress/Unsuppress. #####]]>
</Comment>
<Text>
<![CDATA[[XIC(MCmd_Enable) ,XIO(Cfg_AllowDisable) ]OTU(MCmd_Enable)OTU(Disabled)OTU(Com_AE.10)OTL(Com_AE.11);]]>
</Text>
</Rung>
<Rung Number="13" Type="N">
<Comment>
<![CDATA[If the Alarm is Disabled (Maint), Suppressed (Prog) or Shelved
(Oper), then post the "alarm inhibited" breadcrumb and do not
allow a new alarm to be issued.
@@@@@ Unlatch and Latch are used to avoid a verification @@@@@
@@@@@ warning in combination with Rung 2's OTU (above)! @@@@@
##### V3.0-00 2013-06-30: Broken out in a separate, simpler rung, and used #####
##### in other logic. Shelving no longer generates Alm on Inp going to Alarm state. #####]]>
</Comment>
<Text>
<![CDATA[OTU(Sts_AlmInh)[XIC(Disabled) ,XIC(Wrk_Suppressed) ,XIC(Shelved) ]OTL(Sts_AlmInh);]]>
</Text>
</Rung>
<Rung Number="14" Type="N">
<Comment>
<![CDATA[This rung receives the Alarm Acknowledge Commands
NOTE: Acknowledge can also be set/cleared directly by the HMI.
##### V3.0-00 2013-06-30: Most ACK sources moved to this rung. #####]]>
</Comment>
<Text>
<![CDATA[XIO(Wrk_AutoAckT.TT)[XIC(PCmd_Ack) OTU(PCmd_Ack) ,XIC(OCmd_Ack) OTU(OCmd_Ack) ,XIO(Cfg_AckReqd) ]OTL(Ack);]]>
</Text>
</Rung>
<Rung Number="15" Type="N">
<Comment>
<![CDATA[This rung receives the Alarm Reset Commands.
If the Alarm Reset Command is received and, either, the Input condition
has returned to normal, or the alarm is disabled, suppressed or shelved,
the Alarm is CLEARED and ACKNOWLEDGED (to match ALMD behavior!!!).
##### V3.0-00 2013-06-30: The alarm is no longer AUTOMATICALLY #####
##### cleared and acked if it is simply disabled or suppressed! #####]]>
</Comment>
<Text>
<![CDATA[XIO(Wrk_AutoAckT.TT)[XIC(OCmd_Reset) OTU(OCmd_Reset) ,XIC(PCmd_Reset) OTU(PCmd_Reset) ,XIC(Inp_Reset) ][XIO(Inp) ,XIC(Sts_AlmInh) ]OTL(Ack)OTU(Wrk_Alm);]]>
</Text>
</Rung>
<Rung Number="16" Type="N">
<Comment>
<![CDATA[============================================================
ALARM GENERATION
============================================================
This rung CLEARS the Alarm when the alarm condition clears and its
Minimum On Time has expired, IF Reset is NOT Required.
##### V3.0-00 2013-06-30: No longer bypass Reset Required #####
##### when the alarm is Shelved by the Operator. #####]]>
</Comment>
<Text>
<![CDATA[[XIO(Inp) XIO(Cfg_ResetReqd) XIO(Wrk_AlmMinOnT.TT) ,XIC(Disabled) XIO(Wrk_AutoAckT.TT) ]OTU(Wrk_Alm);]]>
</Text>
</Rung>
<Rung Number="17" Type="N">
<Comment>
<![CDATA[If the Alarm Input (Inp) is true (inverted in EnableInFalse) and the alarm is
(or becomes) Enabled, Unsuppressed and Unshelved, this rung sets the Alarm (Alm) bit.
The Acknowledge (Ack) bit is cleared when the Alarm initially occurs.
##### V3.0-00 2013-06-30: Removed Wrk_Abnormal logic. #####
##### V3.1-00 2014-06-30: Added Maintenace Test command. #####]]>
</Comment>
<Text>
<![CDATA[[XIC(Inp) XIO(Sts_AlmInh) ,XIC(MCmd_Test) OTU(MCmd_Test) ][XIO(Wrk_Alm) OTU(Ack) ,OTL(Wrk_Alm) ];]]>
</Text>
</Rung>
<Rung Number="18" Type="N">
<Comment>
<![CDATA[============================================================
OPERATOR COMMAND READIES
============================================================
This Alarm is ready for (requires) an Acknowledgement if the Alarm
is not Acknowledged (an Acknowledge was Required when the alarm occurred).
This Alarm is ready for (requires) a Reset if there is an Alarm, Reset is Required,
and either the alarm condition has CLEARED or the alarm is Shelved,
Suppressed or Disabled.
.
If the Alarm is NOT Shelved, it is ready for Shelve.
If the Alarm IS Shelved, it is ready for Unshelve.
If the Alarm is NOT Disabled, it is ready for Disable.
If the Alarm IS Disabled, it is ready for Enable.
NOTE: This rung appears before the Values/Status rung because the Rdy_Reset
condition is used to eliminate redundant logic in the rung below for Val_Notify.0.
##### V3.0-00 2013-06-30: Added sub-branch with Sts_AlmInh #####
##### V3.1-00 2014-06-30: Added Maintenace Test command. #####]]>
</Comment>
<Text>
<![CDATA[LBL(End)XIC(Cfg_Exists)[XIO(Wrk_AutoAckT.TT) [XIO(Ack) OTE(Rdy_Ack) ,XIC(Wrk_Alm) XIC(Cfg_ResetReqd) [XIO(Inp) ,XIC(Sts_AlmInh) ] OTE(Rdy_Reset) ] ,XIC(Cfg_AllowShelve) OTE(Rdy_Shelve) ,XIC(Shelved) OTE(Rdy_Unshelve) ,XIO(Disabled) XIC(Cfg_AllowDisable) OTE(Rdy_Disable) ,XIC(Disabled) OTE(Rdy_Enable) ,XIO(Wrk_Alm) OTE(Rdy_Test) ];]]>
</Text>
</Rung>
<Rung Number="19" Type="N">
<Comment>
<![CDATA[============================================================
VALUE / STATUS GENERATION
============================================================
This rung copies the internal working status (Suppressed, In Alarm)
to public Status bits. Note that internal working bits are used so that
outside objects cannot manipulate the state of this object
by setting/clearing its Status and Alarm bits.
Public Status is generated for:
Alarm (with minimum ON time to be seen by polling)
Alarm Suppressed
Unsuppressed, Unshelved and Enabled are generated for HMI (FTVSE 7).
(Ack, Shelved and Disabled can be set/cleared by the HMI directly.
Note that these bits are "read/write" outputs in the parameter definition.)
##### V3.0-00 2013-06-30: New rung, some from below, new HMI bits. #####]]>
</Comment>
<Text>
<![CDATA[[XIC(Wrk_Alm) OTE(Alm) TON(Wrk_AlmMinOnT,?,?) ,XIC(Wrk_Suppressed) OTE(Suppressed) ];]]>
</Text>
</Rung>
<Rung Number="20" Type="N">
<Comment>
<![CDATA[Notify Level (color, blink) is determined here.
@@@@@ Note how the bottom 3 bits of the Severity are shifted left 1 for Val_Notify. @@@@@
0 = Not in alarm, acknowledged
1 = Not in alarm, unacknowledged or reset required
2 = Low severity alarm, acknowledged
3 = Low severity alarm, unacknowledged
4 = Medium severity alarm, acknowledged
5 = Medium severity alarm, unacknowledged
6 = High severity alarm, acknowledged
7 = High severity alarm, unacknowledged
8 = Urgent severity alarm, acknowledged
9 = Urgent severity alarm, unacknowledged
NOTE that the alarm bell icon will blink, even though the alarm is Acknowledged,
if an Alarm Reset is required (to get the Operator's attention).
##### V3.0-00 2013-06-30: Moved a few functions off this rung to logic above. #####
##### Names of Severity levels changed to Low, Medium, High, Highest #####
##### to match examples in ANSI/ISA-18.2-2009. #####
##### V3.1-00 2014-06-30: Changed severity ranges, names to match FTAE #####]]>
</Comment>
<Text>
<![CDATA[[[XIO(Ack) ,XIC(Rdy_Reset) ] OTE(Val_Notify.0) ,XIC(Wrk_Alm) [[LIM(1,Cfg_Severity,250) ,LIM(501,Cfg_Severity,750) ] OTE(Val_Notify.1) ,LIM(251,Cfg_Severity,750) OTE(Val_Notify.2) ,LIM(751,Cfg_Severity,1000) OTE(Val_Notify.3) ] ,OTU(Val_Notify.4) OTU(Val_Notify.5) OTU(Val_Notify.6) OTU(Val_Notify.7) ];]]>
</Text>
</Rung>
<Rung Number="21" Type="N">
<Comment>
<![CDATA[This rung calculates the number of seconds until this alarm "unshelves" itself.
If the alarm is already unshelved, clear this number.
##### V3.0-00 2013-06-30: Added automatic unshelve, and display of time until this happens. #####]]>
</Comment>
<Text>
<![CDATA[CPT(Wrk_SecToUnshelve,(Wrk_ShelfT.PRE-Wrk_ShelfT.ACC)/1000)XIO(Shelved)CLR(Wrk_SecToUnshelve);]]>
</Text>
</Rung>
<Rung Number="22" Type="N">
<Comment>
<![CDATA[This rung takes the time remaining until the alarm will be automatically unshelved (milliseconds),
converts it to seconds, then reports it in minutes : seconds format for display on the HMI.
##### V3.0-00 2013-06-30: Added automatic unshelve, and display of time until this happens. #####]]>
</Comment>
<Text>
<![CDATA[DIV(Wrk_SecToUnshelve,60,Val_MinToUnshelve)MOD(Wrk_SecToUnshelve,60,Val_SecToUnshelve);]]>
</Text>
</Rung>
</RLLContent>
</Routine>
<Routine Name="Prescan" Type="RLL">
<Description>
<![CDATA[Clear "lurking" Commands]]>
</Description>
<RLLContent>
<Labels/>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, clear any "lurking" Commands.
Unshelve and Unsuppress all alarms, but
only Enable alarms for which Disable is not allowed.
(Let Maintenance Disable persist through a power cycle...)
##### V3.0-00 2013-06-30: Added PCmd_Unshelve, AllowDisable, AllowShelve. #####
##### V3.1-02 2013-09-24: Modified FTAE interface for Disable/Enable, Suppress/Unsuppress. #####]]>
</Comment>
<Text>
<![CDATA[[OTU(PCmd_Reset) OTU(PCmd_Ack) OTU(PCmd_Unsuppress) OTU(PCmd_Unshelve) ,XIC(Cfg_PCmdClear) OTU(PCmd_Suppress) ,OTU(OCmd_Reset) OTU(OCmd_Ack) OTU(OCmd_Shelve) OTU(OCmd_Unshelve) ,OTU(MCmd_Disable) OTU(MCmd_Enable) ,OTU(Shelved) OTU(Com_AE.4) OTL(Com_AE.5) ,OTU(Wrk_Suppressed) OTU(Suppressed) OTU(Com_AE.7) OTL(Com_AE.8) ,XIO(Cfg_AllowDisable) OTU(Disabled) OTU(Com_AE.10) OTL(Com_AE.11) ];]]>
</Text>
</Rung>
</RLLContent>
</Routine>
</Routines>
</AddOnInstructionDefinition>
<AddOnInstructionDefinition Name="P_Gate" Revision="3.5" RevisionExtension="01 Release" Vendor="Rockwell Automation" ExecutePrescan="true" ExecutePostscan="false" ExecuteEnableInFalse="true" CreatedDate="2012-10-01T18:56:53.162Z" CreatedBy="Not Available" EditedDate="2016-01-29T21:01:04.157Z" EditedBy="PROCESS\Library"
SoftwareRevision="v18.02">
<Description>
<![CDATA[Condition Gate/Delay]]>
</Description>
<RevisionNote>
<![CDATA[See V3.5-xx Release Notes for details. Unchanged, up-rev only for V3.5 Library.]]>
</RevisionNote>
<AdditionalHelpText>
<![CDATA[Copyright © Rockwell Automation, Inc. All Rights Reserved.
This Instruction provides a "gate" for a discrete Input signal and
provides on-delay and off-delay timing for the gated signal.
When the Gate input is true, the instruction Input is passed through
to the Output, with on-delay and off-delay timing applied.
When the Gate input is false, the Output is kept off
(note: off-delay still applies!)
This instruction is usually used between a comparison
(analog threshold with deadband or discrete logic)
and a P_Alarm instance, but may be used as a
gated on-delay/off-delay timer generally.
When EnableIn is FALSE (e.g., on a false LD rung),
the Input "Inp" is inverted. Note that the Gate
input (Inp_Gate) is NOT inverted!!!]]>
</AdditionalHelpText>
<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="Inp" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[Input Condition: e.g., result of comparison]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Inp_Gate" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[Gate Input: 1=enable On Delay / Off Delay after Gate Delay, 0=disable]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_GateDly" TagType="Base" DataType="DINT" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Gate Delay (s): time after Gate Input true to enable On/Off Delay]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_OnDly" TagType="Base" DataType="DINT" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[On Delay (s): If Gate Delay done, time Inp must be true to set Out true]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_OffDly" TagType="Base" DataType="DINT" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Off Delay (s): Time after Inp or Gate goes to 0 for Out to go to 0]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Out" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[Output after On Delay, Off Delay, enabled by Gate]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Gate" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Gate Delay done, Output is enabled]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Err" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Error in Config (see detail Err_ bits for reason), display icon]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Err_Timer" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Error in Config: On Delay, Off Delay, Gate Delay Time Invalid (use 0 to 2147483 s)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="P_Gate" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Unique Parameter Name for auto - discovery]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
</Parameters>
<LocalTags>
<LocalTag Name="Wrk_OffDlyT" DataType="TIMER" ExternalAccess="Read Only">
<Description>
<![CDATA[Off Delay Timer]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[0,0,0]]]>
</DefaultData>
<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="Wrk_OnDlyT" DataType="TIMER" ExternalAccess="Read Only">
<Description>
<![CDATA[On Delay Timer]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[0,0,0]]]>
</DefaultData>
<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="Wrk_GateT" DataType="TIMER" ExternalAccess="Read Only">
<Description>
<![CDATA[Gate Delay Timer]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[0,0,0]]]>
</DefaultData>
<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="Cfg_InpCond" DataType="STRING_20" ExternalAccess="Read/Write">
<Description>
<![CDATA[Displayed text of P_Gate's Input (Inp) Condition]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[15,'Input Condition$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_20">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="15"/>
<DataValueMember Name="DATA" DataType="STRING_20" Radix="ASCII">
<![CDATA['Input Condition']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Inf_Lib" DataType="STRING_12" ExternalAccess="Read Only">
<Description>
<![CDATA[Display Library for Faceplate call-up]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[6,'RA-BAS$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_12">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="6"/>
<DataValueMember Name="DATA" DataType="STRING_12" Radix="ASCII">
<![CDATA['RA-BAS']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Inf_Type" DataType="STRING_16" ExternalAccess="Read Only">
<Description>
<![CDATA[Must contain AOI name, used for HMI and Information S/W]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[6,'P_Gate$00$00$00$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_16">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="6"/>
<DataValueMember Name="DATA" DataType="STRING_16" Radix="ASCII">
<![CDATA['P_Gate']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Cfg_GateCond" DataType="STRING_20" ExternalAccess="Read/Write">
<Description>
<![CDATA[Displayed text of P_Gate's Gating (Inp_Gate) Condition]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[16,'Gating Condition$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_20">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="16"/>
<DataValueMember Name="DATA" DataType="STRING_20" Radix="ASCII">
<![CDATA['Gating Condition']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Inf_Tab" DataType="SINT" Radix="Decimal" ExternalAccess="Read/Write">
<Description>
<![CDATA[Tab to display (FTView ME)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
</LocalTags>
<Routines>
<Routine Name="EnableInFalse" Type="RLL">
<Description>
<![CDATA[Same as main Logic routine, except Inp is inverted (for use in LD logic) (Inp_Gate is NOT inverted!!!)]]>
</Description>
<RLLContent>
<Labels/>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[============================================================
EnableIn FALSE : CONFIGURATION PROCESSING
============================================================
Flag a Configuration Error if the Gate Delay, On Delay
or Off Delay timer preset is invalid
(and set timer to default zero preset, non-faulting value).]]>
</Comment>
<Text>
<![CDATA[[MUL(Cfg_GateDly,1000,Wrk_GateT.PRE) XIC(Wrk_GateT.PRE.31) CLR(Wrk_GateT.PRE) ,MUL(Cfg_OnDly,1000,Wrk_OnDlyT.PRE) XIC(Wrk_OnDlyT.PRE.31) CLR(Wrk_OnDlyT.PRE) ,MUL(Cfg_OffDly,1000,Wrk_OffDlyT.PRE) XIC(Wrk_OffDlyT.PRE.31) CLR(Wrk_OffDlyT.PRE) ]OTE(Err_Timer)OTE(Sts_Err);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Comment>
<![CDATA[============================================================
GATE DELAY, ON DELAY, OFF DELAY PROCESSING
============================================================
FOR THE ENABLE_IN_FALSE ROUTINE, the CONDITION Input is
INVERTED, to support the XIC (condition) P_Gate (P_Gate backing tag)
construct for instantiation. This will use Inp = 1,
making the condition input follow the rung condition.
If the Gate Input is true, run the Gate Delay timer.
Once the Gate Delay is complete, enable the
On Delay and Off Delay that follow the INVERTED input.
Report the Gate Delay status and the final Output status (after all delays).
@@@@@ NOTE: Doubled TONs are used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@]]>
</Comment>
<Text>
<![CDATA[[XIC(Inp_Gate) TON(Wrk_GateT,?,?) TON(Wrk_GateT,?,?) ,XIC(Wrk_GateT.DN) OTE(Sts_Gate) XIO(Inp) TON(Wrk_OnDlyT,?,?) TON(Wrk_OnDlyT,?,?) ,[XIC(Inp) ,XIO(Inp_Gate) ] TON(Wrk_OffDlyT,?,?) TON(Wrk_OffDlyT,?,?) ,XIC(Wrk_OnDlyT.DN) OTL(Out) ,XIC(Wrk_OffDlyT.DN) OTU(Out) ];]]>
</Text>
</Rung>
</RLLContent>
</Routine>
<Routine Name="Logic" Type="RLL">
<Description>
<![CDATA[Gate the input and apply on-delay and off-delay timing]]>
</Description>
<RLLContent>
<Labels>
<Label Name="SkipText"/>
</Labels>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[Copyright © Rockwell Automation, Inc. All Rights Reserved.
============================================================
P_Gate: PROCESS -- CONDITION GATE / DELAY
============================================================
Revision 3.5-01 Release 2016-01-29: See V3.1-xx Release Notes for details.
V3.0-00 2013-06-30: Initial Release (Part of Library of Process Objects V3.0, so Major = 3).
V3.1-00 2014-07-08: Modified first rung of Logic to show all Strings.
V3.1-01 2014-09-03: Exposed Gate, On-Delay and Off-Delay timers ACC/PRE (read-only).
V3.1-05 2016-01-22: Corrected logic when using analog threshold with deadband.
V3.5-01 2016-01-29: Unchanged, up-rev only for V3.5 Library.
============================================================
This Instruction provides a "gate" for a discrete Input signal and
provides on-delay and off-delay timing for the gated signal.
When the Gate input is true, the instruction Input is passed through
to the Output, with on-delay and off-delay timing applied.
When the Gate input is false, the Output is kept off
(note: off-delay still applies!)
This instruction is usually used between a comparison
(analog threshold with deadband or discrete logic)
and a P_Alarm instance, but may be used as a
gated on-delay/off-delay timer generally.
When EnableIn is FALSE (e.g., on a false LD rung),
the Input "Inp" is inverted. Note that the Gate
input (Inp_Gate) is NOT inverted!!!
============================================================
SHOW LOCAL STRINGS
============================================================
The STRINGs containing the text associated with each instance of this
instruction cannot be Input or Output Parameters, because STRINGs are not
'atomic' types. (Inputs and Outputs must be SINT, INT, DINT, REAL, or BOOL.)
In order to make it easier to find and configure these STRINGs, this rung
was added. THE JMP (and the LBL on the following rung)
MUST NOT BE REMOVED!!!
To view the STRINGs, go to the instruction instance (in LD or FBD), RIGHT-click
to bring up the context menu and select "Open Instruction Logic".
This rung will appear with the STRING values for the selected instance.
You may double-click the STRING values here to modify them as well.
##### V3.1-00 2014-07-08: Added Inf_Type to displayed Strings #####]]>
</Comment>
<Text>
<![CDATA[JMP(SkipText)LOWER(Cfg_InpCond,Cfg_GateCond)LOWER(Inf_Lib,Inf_Type);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Comment>
<![CDATA[============================================================
CONFIGURATION PROCESSING
============================================================
Flag a Configuration Error if the Gate Delay, On Delay
or Off Delay timer preset is invalid
(and set timer to default zero preset, non-faulting value).]]>
</Comment>
<Text>
<![CDATA[LBL(SkipText)[MUL(Cfg_GateDly,1000,Wrk_GateT.PRE) XIC(Wrk_GateT.PRE.31) CLR(Wrk_GateT.PRE) ,MUL(Cfg_OnDly,1000,Wrk_OnDlyT.PRE) XIC(Wrk_OnDlyT.PRE.31) CLR(Wrk_OnDlyT.PRE) ,MUL(Cfg_OffDly,1000,Wrk_OffDlyT.PRE) XIC(Wrk_OffDlyT.PRE.31) CLR(Wrk_OffDlyT.PRE) ]OTE(Err_Timer)OTE(Sts_Err);]]>
</Text>
</Rung>
<Rung Number="2" Type="N">
<Comment>
<![CDATA[============================================================
GATE DELAY, ON DELAY, OFF DELAY PROCESSING
============================================================
If the Gate Input is true, run the Gate Delay timer.
Once the Gate Delay is complete, enable the
On Delay and Off Delay that follow the input.
Report the Gate Delay status and the final Output status (after all delays).
@@@@@ NOTE: Doubled TONs are used to ensure that @@@@@
@@@@@ .DN bit transitions on same scan if Preset = 0 ! @@@@@]]>
</Comment>
<Text>
<![CDATA[[XIC(Inp_Gate) TON(Wrk_GateT,?,?) TON(Wrk_GateT,?,?) ,XIC(Wrk_GateT.DN) OTE(Sts_Gate) XIC(Inp) TON(Wrk_OnDlyT,?,?) TON(Wrk_OnDlyT,?,?) ,[XIO(Inp) ,XIO(Inp_Gate) ] TON(Wrk_OffDlyT,?,?) TON(Wrk_OffDlyT,?,?) ,XIC(Wrk_OnDlyT.DN) OTL(Out) ,XIC(Wrk_OffDlyT.DN) OTU(Out) ];]]>
</Text>
</Rung>
</RLLContent>
</Routine>
<Routine Name="Prescan" Type="RLL">
<Description>
<![CDATA[Set the Gate Input to 1 (default value) on prescan]]>
</Description>
<RLLContent>
<Labels/>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[============================================================
PRESCAN PROCESSING
============================================================
Set the Gate Input to 1 (default value) on Prescan to enable
statuses / alarms that have Gate input unconnected.]]>
</Comment>
<Text>
<![CDATA[OTL(Inp_Gate);]]>
</Text>
</Rung>
</RLLContent>
</Routine>
</Routines>
</AddOnInstructionDefinition>
<AddOnInstructionDefinition Name="P_Mode" Revision="3.5" RevisionExtension="01 Release" Vendor="Rockwell Automation" ExecutePrescan="true" ExecutePostscan="false" ExecuteEnableInFalse="true" CreatedDate="2008-06-11T19:19:37.168Z" CreatedBy="Not Available" EditedDate="2016-01-29T13:57:05.914Z" EditedBy="PROCESS\Library"
SoftwareRevision="v18.02">
<Description>
<![CDATA[Mode]]>
</Description>
<RevisionNote>
<![CDATA[See V3.5-xx Release Notes for details. Unmodified, up-rev only for V3.5-01 Release.]]>
</RevisionNote>
<AdditionalHelpText>
<![CDATA[Copyright © Rockwell Automation, Inc. All Rights Reserved.
This instruction provides selection of Mode (owner) for a Device level
object (from highest priority to lowest):
* No Mode (no owner, EnableIn is false)
* Hand (typically tracks hardwired control of device)
* Maint (Maintenance) (taken out of normal service for maintenance)
* Ovrd (Override) (typically used for process overrides)
* Prog (Program) (automated control, and default if Cfg_ProgNorm = 1)
* Oper (Operator (manual control, and default if Cfg_ProgNorm = 0)
(Program and Operator have the same priority.)
The current mode is shown with Status bits and also as the primary
Value for the instruction: an enumeration "Val" as follows:
0 = No Mode,
1 = Hand,
2 = Maintenance,
3 = Override,
4 = Program (Locked),
5 = Operator (Locked),
6 = Program (Unlocked, Oper default),
7 = Operator (Unlocked, Prog default),
8 = Program (Unlocked, = default),
9 = Operator (Unlocked, = default).
When EnableIn is false, all ownership acquire/release and lock/unlock
Commands are processed "behind the scenes", but the Mode is shown
as "No Mode" (no owner). When EnableIn becomes true, the Mode
takes into account the Commands received -- in other words, the Mode
becomes the one that would have been in effect had the EnableIn
False / No Mode condition never occurred.
]]>
</AdditionalHelpText>
<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="Inp_Hand" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Acquire Hand (typ. hardwired local) Mode, 0=Release Hand Mode]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Inp_Ovrd" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Acquire Override (higher priority program logic) Mode, 0=Release Override Mode]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_PCmdClear" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Clear Program Command on receipt; 0=Use Level-based (maintained) PCmds]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_OvrdOverLock" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Override supersedes Prog/Oper Lock, 0=don't override Lock]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_ProgDefault" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Default Mode: 1=Program Mode if no requests; 0=Operator Mode if no requests]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_Acq" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Acquire Ownership (Oper to Prog)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_Rel" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Release Ownership (Prog to Oper)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_Lock" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Lock Mode in Prog]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_Unlock" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unlock Mode]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="MCmd_Acq" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Maintenance Command to Acquire Ownership (Oper/Prog/Ovrd to Maint)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="MCmd_Rel" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Maintenance Command to Release Ownership (Maint to Oper/Prog/Ovrd)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="OCmd_AcqLock" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Command to Acquire (Prog to Oper) / Lock Ownership]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="OCmd_UnlockRel" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Command to Unlock / Release (Oper to Prog) Ownership]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val" TagType="Base" DataType="SINT" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Mode enum: 0=No, 1=H, 2=M, 3=!, 4=P Lock, 5=O Lock, 6=P (O Def), 7=O (P Def), 8=P (= Def), 9=O (= Def)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Hand" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Mode is Hand (supersedes Maint, Ovrd, Prog, Oper)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Maint" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Mode is Maintenance (supersedes Ovrd, Prog, Oper)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Ovrd" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Mode is Override (supersedes Prog, Oper)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Prog" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Mode is Program]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Oper" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Mode is Operator]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_ProgOperLock" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Program or Operator has requested Mode Lock]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_ProgOperSel" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Prog/Oper selection 1=Program, 0=Operator]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_NoMode" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Mode is No Mode (no owner, disabled or not scanned)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_MAcqRcvd" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Maintenance Acquire command received this scan]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_MAcq" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready for MCmd_Acq, enable button]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_MRel" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready for MCmd_Rel, enable button]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_OAcq" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready for OCmd_AcqLock, enable Acquire (to Oper) button]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_OLock" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready for OCmd_AcqLock, enable Oper Lock button]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_OUnlock" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready for OCmd_UnlockRel, enable Oper Unlock button]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_ORel" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready for OCmd_UnlockRel, enable Release (to Prog) button]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="P_Mode" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Unique Parameter Name for auto - discovery]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
</Parameters>
<LocalTags>
<LocalTag Name="Wrk_Locked" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[1=Program/Operator Mode selection is Locked]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_Prog" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Internal Program (1) / Operator (0) Mode selection]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_Maint" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Internal Maintenance Mode]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Inf_Lib" DataType="STRING_12" ExternalAccess="Read Only">
<Description>
<![CDATA[Display Library for Faceplate call-up]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[6,'RA-BAS$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_12">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="6"/>
<DataValueMember Name="DATA" DataType="STRING_12" Radix="ASCII">
<![CDATA['RA-BAS']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Inf_Type" DataType="STRING_16" ExternalAccess="Read Only">
<Description>
<![CDATA[Must contain AOI name, used for HMI and Information S/W]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[6,'P_Mode$00$00$00$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_16">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="6"/>
<DataValueMember Name="DATA" DataType="STRING_16" Radix="ASCII">
<![CDATA['P_Mode']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
</LocalTags>
<Routines>
<Routine Name="EnableInFalse" Type="RLL">
<Description>
<![CDATA[Processes received Commands, but shows "NO mode" (no owner)]]>
</Description>
<RLLContent>
<Labels/>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[============================================================
P_Mode: EnableInFalse Handling
============================================================
When EnableIn is False, this Routine is scanned instead of the "Logic" Routine.
All Commands are processed "behind the scenes", but the Mode is shown
as "No Mode" (no owner). When EnableIn becomes true, the Mode
takes into account the Commands received -- in other words, the Mode
becomes the one that would have been in effect had the EnableIn
False / No Mode condition never occurred.
============================================================
COMMAND HANDLING
============================================================
NOTE: These rungs MUST be in the order given to meet the following
multiple-actions-at-the-same-time scenarios:
* Maintenance Release beats Maintenance Acquire
* Program Release beats Program Acquire
* Program Unlock beats Program Lock
* Operator Unlock beats Operator Acquire and Lock (results in Oper Unlocked)
* Operator Acquire/Lock must come after Program Unlock
* Program Acquire must come after Operator Unlock
===========================================================
MCmd_Acq: Acquire for Maintenance Mode, and blink the status
that indicates a Maintenance Acquire command was received.
##### V3.1-00 2014-06-30: Added Sts_MAcqRcvd #####]]>
</Comment>
<Text>
<![CDATA[XIC(MCmd_Acq)OTU(MCmd_Acq)OTE(Sts_MAcqRcvd)OTL(Wrk_Maint);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Comment>
<![CDATA[MCmd_Rel: Release from Maintenance Mode.]]>
</Comment>
<Text>
<![CDATA[XIC(MCmd_Rel)OTU(MCmd_Rel)OTU(Wrk_Maint);]]>
</Text>
</Rung>
<Rung Number="2" Type="N">
<Comment>
<![CDATA[OCmd_AcqLock: Operator Lock (if acquired), Operator Acquire (take from Program if not locked)
##### V3.0-00 2013-06-30: Modified to make going from Program to Operator Locked a two-step process. #####]]>
</Comment>
<Text>
<![CDATA[XIC(OCmd_AcqLock)OTU(OCmd_AcqLock)XIO(Wrk_Locked)[XIO(PCmd_Acq) [XIO(Wrk_Prog) OTL(Wrk_Locked) ,OTU(Wrk_Prog) ] ,XIC(PCmd_Acq) OTU(Wrk_Prog) OTL(Wrk_Locked) ];]]>
</Text>
</Rung>
<Rung Number="3" Type="N">
<Comment>
<![CDATA[OCmd_Unlock: Unlock Operator Mode
##### V3.0-00 2013-06-30: Modified to make going from Operator Locked to Program a two-step process. #####]]>
</Comment>
<Text>
<![CDATA[XIC(OCmd_UnlockRel)OTU(OCmd_UnlockRel)XIO(Wrk_Prog)[XIO(Wrk_Locked) XIC(Cfg_ProgDefault) OTL(Wrk_Prog) ,OTU(Wrk_Locked) ];]]>
</Text>
</Rung>
<Rung Number="4" Type="N">
<Comment>
<![CDATA[============================================================
OPERATOR COMMAND READIES
============================================================
Ready for OPERATOR ACQUIRE AND LOCK comand if the Mode is
is NOT Locked. (Oper "acquire and lock" when in Prog Mode is a "grab"!)
Ready fpr OPERATOR UNLOCK command if the Lock is set and the
internal Program bit is cleared (Operator has the lock, even if in Ovrd, Maint or Hand!)
Ready for MAINTENANCE ACQUIRE if internal Maintenance latch is NOT set.
But we need to display Ready even if latch IS set so that Sts_MAcqRcvd
can blink to reset an external Maintenance expiration timer!!!
Ready for MAINTENANCE RELEASE if internal Maintenance latch IS set.
##### V3.0-00 2013-06-30: Modified Rdy_Unlock for two-step Operator Locked to Program process. #####
##### V3.1-00 2014-06-30: Added Sts_MAcqRcvd #####]]>
</Comment>
<Text>
<![CDATA[[OTE(Rdy_MAcq) ,XIC(Wrk_Maint) OTE(Rdy_MRel) ,XIO(Wrk_Locked) [[XIO(Wrk_Prog) ,XIC(PCmd_Acq) ] OTE(Rdy_OLock) ,XIO(PCmd_Acq) XIC(Wrk_Prog) OTE(Rdy_OAcq) ] ,XIO(Wrk_Prog) [XIC(Wrk_Locked) OTE(Rdy_OUnlock) ,XIO(Wrk_Locked) XIC(Cfg_ProgDefault) OTE(Rdy_ORel) ] ];]]>
</Text>
</Rung>
<Rung Number="5" Type="N">
<Comment>
<![CDATA[PCmd_Acq: Acquire for Program Mode
##### V3.0-00 2013-06-30: Modified to make going from Operator Locked to Program a two-step process. #####]]>
</Comment>
<Text>
<![CDATA[XIC(PCmd_Acq)[XIC(Cfg_PCmdClear) OTU(PCmd_Acq) ,NOP() ]XIO(Wrk_Locked)OTL(Wrk_Prog);]]>
</Text>
</Rung>
<Rung Number="6" Type="N">
<Comment>
<![CDATA[PCmd_Lock: Lock Program Mode]]>
</Comment>
<Text>
<![CDATA[XIC(PCmd_Lock)[XIC(Cfg_PCmdClear) OTU(PCmd_Lock) ,NOP() ]XIC(Wrk_Prog)OTL(Wrk_Locked);]]>
</Text>
</Rung>
<Rung Number="7" Type="N">
<Comment>
<![CDATA[PCmd_Unlock: Unlock Program Mode]]>
</Comment>
<Text>
<![CDATA[[XIC(PCmd_Unlock) XIC(Cfg_PCmdClear) OTU(PCmd_Unlock) ,XIO(PCmd_Lock) XIO(Cfg_PCmdClear) ]XIC(Wrk_Prog)OTU(Wrk_Locked);]]>
</Text>
</Rung>
<Rung Number="8" Type="N">
<Comment>
<![CDATA[PCmd_Rel: Release from Program Mode]]>
</Comment>
<Text>
<![CDATA[[XIC(PCmd_Rel) XIC(Cfg_PCmdClear) OTU(PCmd_Rel) ,XIO(PCmd_Acq) XIO(Cfg_PCmdClear) ]XIO(Cfg_ProgDefault)XIO(Wrk_Locked)OTU(Wrk_Prog);]]>
</Text>
</Rung>
<Rung Number="9" Type="N">
<Comment>
<![CDATA[============================================================
STATUS GENERATION
============================================================
With EnableIn False, there is NO owner !!! ALL Mode Status bits
EXCEPT Sts_NoMode are CLEARED!
##### V3.1-00 2014-06-30: "Val" (mode enumeration) changed from DINT to SINT. #####]]>
</Comment>
<Text>
<![CDATA[OTU(Sts_Hand)OTU(Sts_Maint)OTU(Sts_Ovrd)OTU(Sts_Prog)OTU(Sts_Oper)OTL(Sts_NoMode)CLR(Val);]]>
</Text>
</Rung>
<Rung Number="10" Type="N">
<Comment>
<![CDATA[Public Status for:
Sts_ProgOperSel: Program/Operator substate selection (Prog = 1, Oper = 0)
Sts_ProgOperLock: Program/Operator Lock substate selection (Locked = 1, Unlocked = 0)]]>
</Comment>
<Text>
<![CDATA[[XIC(Wrk_Prog) OTE(Sts_ProgOperSel) ,XIC(Wrk_Locked) OTE(Sts_ProgOperLock) ];]]>
</Text>
</Rung>
</RLLContent>
</Routine>
<Routine Name="Logic" Type="RLL">
<Description>
<![CDATA[Selects Modes (Hand, Maint, Ovrd, Oper, Prog) based on Inputs and Commands]]>
</Description>
<RLLContent>
<Labels/>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[Copyright © Rockwell Automation, Inc. All Rights Reserved.
============================================================
P_Mode: PROCESS -- MODE SELECTOR
============================================================
Revision 3.5-01 Release 2016-01-29: See V3.5-xx Release Notes for details.
V1.x and V2.x Revision History archived.
V3.0-00 2013-06-30: Containing objects MUST now expose OCmd_AcqLock
and OCmd_Unlock. Made Operator Commands for going from Operator
Locked to Program (unlocked) and Program (unlocked) to Operator
Lock two-step processes. Added Inf_Lib, Inf_Type.
V3.1-00 2014-06-30: Containing objects must expose Maintenance Acquire /
Release commands and new Sts_MAcqRcvd.
Changed Val (enum) to SINT. Fixed parameter descriptions.
V3.1-01 2014-09-03: Unmodified, up-rev only for V3.1-01 public release.
V3.5-01 2016-01-29: Unmodified, up-rev only for V3.5-01 Release.
============================================================
This instruction provides selection of Mode (owner) for a Device level
object (from highest priority to lowest):
* NO Mode (EnableIn is false)
* Hand (typically tracks hardwired control of device)
* Maint (Maintenance) (taken out of normal service for maintenance)
* Ovrd (Override) (typically used for process overrides)
* Prog (Program) (automated control, and default if Cfg_ProgNorm = 1)
* Oper (Operator (manual control, and default if Cfg_ProgNorm = 0)
The current mode is shown with Status bits and also as the
primary Value for the instruction: an enumeration as follows:
0 = No Mode, 1 = Hand, 2 = Maintenance, 3 = Override,
4 = Program (Locked), 5 = Operator (Locked),
6 = Program (Unlocked, Oper default), 7 = Operator (Unlocked, Prog default),
8 = Program (Unlocked, Prog default), 9 = Operator (Unlocked, Oper default).
============================================================
COMMAND HANDLING
============================================================
NOTE: These rungs MUST be in the order given to meet the following
multiple-actions-at-the-same-time scenarios:
* Maintenance Release beats Maintenance Acquire
* Program Release beats Program Acquire
* Program Unlock beats Program Lock
* Operator Unlock beats Operator Acquire / Lock (results in Oper Unlocked)
* Program Acquire must come after Operator Unlock
If Cfg_ProgDefault = 1, the Mode defaults to Program
(instead of Operator) if all other Modes release their requests.
============================================================
MCmd_Acq: Acquire for Maintenance Mode, and blink the status
that indicates a Maintenance Acquire command was received.
##### V3.1-00 2014-06-30: Added Sts_MAcqRcvd #####]]>
</Comment>
<Text>
<![CDATA[XIC(MCmd_Acq)OTU(MCmd_Acq)OTE(Sts_MAcqRcvd)OTL(Wrk_Maint);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Comment>
<![CDATA[MCmd_Rel: Release from Maintenance Mode.]]>
</Comment>
<Text>
<![CDATA[XIC(MCmd_Rel)OTU(MCmd_Rel)OTU(Wrk_Maint);]]>
</Text>
</Rung>
<Rung Number="2" Type="N">
<Comment>
<![CDATA[OCmd_AcqLock: Operator Lock (if acquired), Operator Acquire (take from Program if not locked) (if allowed)
##### V3.0-00 2013-06-30: Modified to make going from Program to Operator Locked a two-step process. #####]]>
</Comment>
<Text>
<![CDATA[XIC(OCmd_AcqLock)OTU(OCmd_AcqLock)XIO(Wrk_Locked)[XIO(PCmd_Acq) [XIO(Wrk_Prog) OTL(Wrk_Locked) ,OTU(Wrk_Prog) ] ,XIC(PCmd_Acq) OTU(Wrk_Prog) OTL(Wrk_Locked) ];]]>
</Text>
</Rung>
<Rung Number="3" Type="N">
<Comment>
<![CDATA[OCmd_Unlock: Unlock Operator Mode
##### V3.0-00 2013-06-30: Modified to make going from Operator Locked to Program a two-step process. #####]]>
</Comment>
<Text>
<![CDATA[XIC(OCmd_UnlockRel)OTU(OCmd_UnlockRel)XIO(Wrk_Prog)[XIO(Wrk_Locked) XIC(Cfg_ProgDefault) OTL(Wrk_Prog) ,OTU(Wrk_Locked) ];]]>
</Text>
</Rung>
<Rung Number="4" Type="N">
<Comment>
<![CDATA[============================================================
OPERATOR COMMAND READIES
============================================================
Ready for OPERATOR ACQUIRE AND LOCK comand if the Mode is
is NOT Locked. (Oper "acquire and lock" when in Prog Mode is a "grab"!)
Ready fpr OPERATOR UNLOCK command if the Lock is set and the
internal Program bit is cleared (Operator has the lock, even if in Ovrd, Maint or Hand!)
Ready for MAINTENANCE ACQUIRE if internal Maintenance latch is NOT set.
But we need to display Ready even if latch IS set so that Sts_MAcqRcvd
can blink to reset an external Maintenance expiration timer!!!
Ready for MAINTENANCE RELEASE if internal Maintenance latch IS set.
##### V3.0-00 2013-06-30: Modified Rdy_Unlock for two-step Operator Locked to Program process. #####
##### V3.1-00 2014-06-30: Added Sts_MAcqRcvd #####]]>
</Comment>
<Text>
<![CDATA[[OTE(Rdy_MAcq) ,XIC(Wrk_Maint) OTE(Rdy_MRel) ,XIO(Wrk_Locked) [[XIO(Wrk_Prog) ,XIC(PCmd_Acq) ] OTE(Rdy_OLock) ,XIO(PCmd_Acq) XIC(Wrk_Prog) OTE(Rdy_OAcq) ] ,XIO(Wrk_Prog) [XIC(Wrk_Locked) OTE(Rdy_OUnlock) ,XIO(Wrk_Locked) XIC(Cfg_ProgDefault) OTE(Rdy_ORel) ] ];]]>
</Text>
</Rung>
<Rung Number="5" Type="N">
<Comment>
<![CDATA[PCmd_Acq: Acquire for Program Mode
##### V3.0-00 2013-06-30: Modified to make going from Operator Locked to Program a two-step process. #####]]>
</Comment>
<Text>
<![CDATA[XIC(PCmd_Acq)[XIC(Cfg_PCmdClear) OTU(PCmd_Acq) ,NOP() ]XIO(Wrk_Locked)OTL(Wrk_Prog);]]>
</Text>
</Rung>
<Rung Number="6" Type="N">
<Comment>
<![CDATA[PCmd_Lock: Lock Program Mode]]>
</Comment>
<Text>
<![CDATA[XIC(PCmd_Lock)[XIC(Cfg_PCmdClear) OTU(PCmd_Lock) ,NOP() ]XIC(Wrk_Prog)OTL(Wrk_Locked);]]>
</Text>
</Rung>
<Rung Number="7" Type="N">
<Comment>
<![CDATA[PCmd_Unlock: Unlock Program Mode]]>
</Comment>
<Text>
<![CDATA[[XIC(PCmd_Unlock) XIC(Cfg_PCmdClear) OTU(PCmd_Unlock) ,XIO(PCmd_Lock) XIO(Cfg_PCmdClear) ]XIC(Wrk_Prog)OTU(Wrk_Locked);]]>
</Text>
</Rung>
<Rung Number="8" Type="N">
<Comment>
<![CDATA[PCmd_Rel: Release from Program Mode]]>
</Comment>
<Text>
<![CDATA[[XIC(PCmd_Rel) XIC(Cfg_PCmdClear) OTU(PCmd_Rel) ,XIO(PCmd_Acq) XIO(Cfg_PCmdClear) ]XIO(Cfg_ProgDefault)XIO(Wrk_Locked)OTU(Wrk_Prog);]]>
</Text>
</Rung>
<Rung Number="9" Type="N">
<Comment>
<![CDATA[============================================================
STATUS GENERATION
============================================================
This rung determines the Mode based on the states of the inputs and internal working bits.
The logic here does the vast mahority of the implementation of the Mode selection rules.
Between the internal working bits used above and the rules implemented here,
outside objects cannot manipulate the state of this object by setting/clearing its Status bits.
Public Status is generated for:
* Hand Mode
* Maintenance Mode
* Override Mode
* Program Mode
* Operator Mode
* No Mode (none of the above)
##### V3.1-00 2014-06-30: "Val" (mode enumeration) changed from DINT to SINT. #####]]>
</Comment>
<Text>
<![CDATA[[XIC(Inp_Hand) OTE(Sts_Hand) MOV(1,Val) ,XIO(Inp_Hand) [XIC(Wrk_Maint) OTE(Sts_Maint) MOV(2,Val) ,XIO(Wrk_Maint) [XIC(Inp_Ovrd) [XIO(Wrk_Locked) ,XIC(Cfg_OvrdOverLock) ,XIC(Sts_Ovrd) ] OTE(Sts_Ovrd) MOV(3,Val) ,XIO(Sts_Ovrd) [XIC(Wrk_Prog) [XIC(Wrk_Locked) MOV(4,Val) ,XIO(Wrk_Locked) [XIO(Cfg_ProgDefault) MOV(6,Val) ,XIC(Cfg_ProgDefault) MOV(8,Val) ] ] OTE(Sts_Prog) ,XIO(Wrk_Prog) [XIC(Wrk_Locked) MOV(5,Val) ,XIO(Wrk_Locked) [XIC(Cfg_ProgDefault) MOV(7,Val) ,XIO(Cfg_ProgDefault) MOV(9,Val) ] ] OTE(Sts_Oper) ] ] ] ]OTU(Sts_NoMode);]]>
</Text>
</Rung>
<Rung Number="10" Type="N">
<Comment>
<![CDATA[Public Status for:
Sts_ProgOperSel: Program/Operator substate selection (Prog = 1, Oper = 0)
Sts_ProgOperLock: Program/Operator Lock substate selection (Locked = 1, Unlocked = 0)]]>
</Comment>
<Text>
<![CDATA[[XIC(Wrk_Prog) OTE(Sts_ProgOperSel) ,XIC(Wrk_Locked) OTE(Sts_ProgOperLock) ];]]>
</Text>
</Rung>
</RLLContent>
</Routine>
<Routine Name="Prescan" Type="RLL">
<Description>
<![CDATA[Clear "lurking" Commands]]>
</Description>
<RLLContent>
<Labels/>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, clear any "lurking" Commands.]]>
</Comment>
<Text>
<![CDATA[[OTU(OCmd_AcqLock) OTU(OCmd_UnlockRel) OTU(MCmd_Acq) OTU(MCmd_Rel) ,OTU(PCmd_Acq) OTU(PCmd_Rel) OTU(PCmd_Lock) OTU(PCmd_Unlock) ];]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Comment>
<![CDATA[On Prescan, go to the default Mode (between Program and Operator)
and clear the Prog/Oper Mode Lock.]]>
</Comment>
<Text>
<![CDATA[[OTU(Wrk_Locked) ,XIC(Cfg_ProgDefault) OTE(Wrk_Prog) ];]]>
</Text>
</Rung>
</RLLContent>
</Routine>
</Routines>
</AddOnInstructionDefinition>
<AddOnInstructionDefinition Name="P_PIDE_only" Revision="3.5" RevisionExtension="01 Release" Vendor="Rockwell Automation" ExecutePrescan="false" ExecutePostscan="false" ExecuteEnableInFalse="false" CreatedDate="2014-02-24T19:09:37.720Z" CreatedBy="Not Available" EditedDate="2016-08-04T15:26:16.955Z" EditedBy="PMCDONAGH-SURF\Patrick"
SoftwareRevision="v28.01">
<Description>
<![CDATA[Container for PIDE only]]>
</Description>
<RevisionNote>
<![CDATA[See V3.5-xx Release Notes for details. Unmodified, up-rev only for V3.5-01 Release.]]>
</RevisionNote>
<AdditionalHelpText>
<![CDATA[Copyright (C) Rockwell Automation, Inc.
This Add-On Instruction is used as a container for the PIDE function block
to allow use of the Autotune tag within the P_PIDE (outer) AOI.
##### ATTENTION! #####
User may edit this block to add an Autotune tag
(Ref_Autotune). However, user assumes
responsibility for all users of the resulting AOI
following terms of the RSLogix 5000 / Studio 5000
Software License, namely, users must have the
Function Block / Structured Text add-on license,
or have the Professional edition of RSLogix 5000 /
Studio 5000 Logix Designer software.]]>
</AdditionalHelpText>
<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="Ref_PIDE" TagType="Base" DataType="PID_ENHANCED" Usage="InOut" Required="true" Visible="true" Constant="false">
<Description>
<![CDATA[Contained PIDE block]]>
</Description>
</Parameter>
<Parameter Name="Ref_Autotune" TagType="Base" DataType="PIDE_AUTOTUNE" Usage="InOut" Required="true" Visible="true" Constant="false">
<Description>
<![CDATA[Autotune tag for contained PIDE block]]>
</Description>
</Parameter>
</Parameters>
<LocalTags/>
<Routines>
<Routine Name="Logic" Type="FBD">
<Description>
<![CDATA[Function Block Diagram routine with bare PIDE block. No Autotune tag, but user can add.]]>
</Description>
<FBDContent SheetSize="Letter - 8.5 x 11 in" SheetOrientation="Landscape">
<Sheet Number="1">
<Block Type="PIDE" ID="0" X="100" Y="60" Operand="Ref_PIDE" VisiblePins="PV SPProg SPCascade RatioProg CVProg FF HandFB ProgProgReq ProgOperReq ProgCasRatReq ProgAutoReq ProgManualReq ProgOverrideReq ProgHandReq CVEU SP PVHHAlarm PVHAlarm PVLAlarm PVLLAlarm PVROCPosAlarm PVROCNegAlarm DevHHAlarm DevHAlarm DevLAlarm DevLLAlarm ProgOper CasRat Auto Manual Override Hand" HideDesc="false" AutotuneTag="Ref_Autotune"/>
<TextBox ID="1" X="420" Y="260" Width="0">
<Text>
<![CDATA[Copyright (C) Rockwell Automation, Inc.
V3.5-01 Release 2016-01-29. See V3.5-xx
Release Notes for details.
ATTENTION!!!
User may edit this block to add an Autotune tag
(Ref_Autotune). However, user assumes
responsibility for all users of the resulting AOI
following terms of the RSLogix 5000 / Studio 5000
Software License, namely, users must have the
Function Block / Structured Text add-on license,
or have the Professional edition of RSLogix 5000 /
Studio 5000 Logix Designer software.]]>
</Text>
</TextBox>
<Attachment FromID="1" ToID="0"/>
</Sheet>
</FBDContent>
</Routine>
</Routines>
</AddOnInstructionDefinition>
<AddOnInstructionDefinition Name="P_PIDE" Revision="3.5" RevisionExtension="02 Release" Vendor="Rockwell Automation" ExecutePrescan="true" ExecutePostscan="false" ExecuteEnableInFalse="true" CreatedDate="2012-12-17T15:40:36.040Z" CreatedBy="Not Available" EditedDate="2016-03-22T14:10:02.390Z" EditedBy="PROCESS\Library"
SoftwareRevision="v18.02">
<Description>
<![CDATA[Proportional + Integral + Derivative]]>
</Description>
<RevisionNote>
<![CDATA[See V3.5-xx Release Notes for details. Ensure Inp_PVSrcQ >= 32 triggers Manual Loop Mode (like Inp_PVBad). Copy CV to CVOper when loop is in init.]]>
</RevisionNote>
<AdditionalHelpText>
<![CDATA[Copyright © Rockwell Automation, Inc. All Rights Reserved.
This Instruction is used to provide PID (Proportional + Integral
+ Derivative) feedback loop control and provides:
* Program and Operator entry of Auto loop mode Setpoint in Engineering Units (PVEU)
* Program and Operator entry of Manual loop mode Controlled Variable (CV%)
* Clamping (in EU) of Setpoint at specified limits
* Clamping (in %) and ramping (in %/sec) of CV at specified limits
* Scaling of Output CV from Percent to Engineering Units for I/O card
* Reverse or Direct control action
* Feedforward (FF) input
* Velocity (difference) PID form with inputs for "Previous" CV and FF
* Option for Derivative action based on change in Error or change in PV
* Option for Proportional action based on Error or PV
* Monitoring of Interlock which causes CV to shed
* Monitoring of I/O communication faults
* Alarms for Interlock Trip, High-High Deviation, High Deviation, Low Deviation,
and Low-Low Deviation from Setpoint
* Operation in Hand, Maintenance, Override, Program and Operator ownership Modes
* Full loop mode control (Cascade, Auto, Manual, Normal) available in Override Mode
* "Available" status for use by automation logic to know whether loop
can be controlled in Program Mode by other objects.
Modes are provided by a P_Mode AOI instance.
Alarms are provided by P_Alarm AOI instances.
Modes of operation: Operator, Program, Override, Maintenance, Hand
]]>
</AdditionalHelpText>
<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="Inp_PV" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.PV" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[Process Variable (PVEU)]]>
</Description>
</Parameter>
<Parameter Name="Inp_CascSP" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.SPCascade" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[Setpoint in Cascade, Independent PV in Ratio (PVEU)]]>
</Description>
</Parameter>
<Parameter Name="Inp_FF" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.FF" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[FeedForward term (CV%)]]>
</Description>
</Parameter>
<Parameter Name="Inp_FFPrev" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.FFPrevious" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[FF feedback from downstream block (CV%)]]>
</Description>
</Parameter>
<Parameter Name="Inp_CVInitVal" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.CVInitValue" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Value to Initialize the CV to when requested (CVEU)]]>
</Description>
</Parameter>
<Parameter Name="Inp_CVPrev" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.CVPrevious" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[CV Feedback from downstream block (CV%)]]>
</Description>
</Parameter>
<Parameter Name="Inp_PVSrcQ" TagType="Base" DataType="SINT" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Source and Quality of Inp_PV (enum)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Inp_OvrdCmd" TagType="Base" DataType="SINT" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Override Loop Mode Command 0=None, 1=Man, 2=Auto, 3=Casc]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Inp_OvrdRatio" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Ratio to use in Override Mode (unitless)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="1.0"/>
</DefaultData>
</Parameter>
<Parameter Name="Inp_OvrdSP" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Setpoint to use in Override Mode (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="Inp_OvrdCV" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[CV to use in Override Mode (CV%)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="Inp_HandFdbk" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.HandFB" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[CV Feedback used in Hand Mode (CV%)]]>
</Description>
</Parameter>
<Parameter Name="Inp_PVBad" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=PV quality or PV I/O Comms Status Bad, 0=OK]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Inp_PVUncertain" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=PV Value Not Reliable, 0=OK]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Inp_CVIOFault" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.CVFault" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=CV I/O Comms Status Bad, 0=OK]]>
</Description>
</Parameter>
<Parameter Name="Inp_UseFFPrev" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.FFSetPrevious" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Use Inp_FFPrev as previous FF value, 0=Use last scan value]]>
</Description>
</Parameter>
<Parameter Name="Inp_UseCVInitVal" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.CVInitReq" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Initialize CV to Inp_CVInitValue]]>
</Description>
</Parameter>
<Parameter Name="Inp_UseCVPrev" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.CVSetPrevious" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Use Inp_CVPrev as previous CV value, 0=Use last scan value]]>
</Description>
</Parameter>
<Parameter Name="Inp_WindupHi" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.WindupHIn" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Windup High Signal 1=regulator will not increase the output.]]>
</Description>
</Parameter>
<Parameter Name="Inp_WindupLo" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.WindupLIn" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Windup Low Signal 1=regulator will not decrease the output.]]>
</Description>
</Parameter>
<Parameter Name="Inp_Ovrd" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Mode.Inp_Ovrd" Required="false" Visible="false" ExternalAccess="Read/Write"/>
<Parameter Name="Inp_Hand" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Mode.Inp_Hand" Required="false" Visible="true" ExternalAccess="Read/Write"/>
<Parameter Name="Inp_HandFdbkBad" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.HandFBFault" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Inp_HandFdbk input quality or I/O Comms Status Bad, 0=OK]]>
</Description>
</Parameter>
<Parameter Name="Inp_IntlkOK" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Interlocks OK, Analog Output can be set]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="Inp_NBIntlkOK" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Non-Bypassable Interlocks OK, Analog Output can be set]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="Inp_HiHiDevGate" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiHiDevGate.Inp_Gate" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[High-High Deviation Status Gate, 1=enabled]]>
</Description>
</Parameter>
<Parameter Name="Inp_HiDevGate" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiDevGate.Inp_Gate" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[High Deviation Status Gate, 1=enabled]]>
</Description>
</Parameter>
<Parameter Name="Inp_LoDevGate" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoDevGate.Inp_Gate" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Low Deviation Status Gate, 1=enabled]]>
</Description>
</Parameter>
<Parameter Name="Inp_LoLoDevGate" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoLoDevGate.Inp_Gate" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Low-Low Deviation Status Gate, 1=enabled]]>
</Description>
</Parameter>
<Parameter Name="Inp_Reset" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Reset latched Alarms]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_HasRatio" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.UseRatio" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Casc Loop Mode is Ratio, 0=Casc Loop Mode is Cascade]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HasCasc" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.AllowCasRat" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Enable the loop to be placed into cascade/ratio mode]]>
</Description>
</Parameter>
<Parameter Name="Cfg_PVTrack" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.PVTracking" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=SP tracks PV in Manual, 0=no PV tracking]]>
</Description>
</Parameter>
<Parameter Name="Cfg_CtrlAction" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.ControlAction" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Direct acting (E=PV-SP), 0=Reverse acting (E=SP-PV)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_Depend" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.DependIndepend" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Dependent gains equation, 0=Independent gains]]>
</Description>
</Parameter>
<Parameter Name="Cfg_DerivSmooth" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.DSmoothing" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Use Derivative Smoothing]]>
</Description>
</Parameter>
<Parameter Name="Cfg_ZCOff" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.ZCOff" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=need not cross zero error to be in deadband, 0=must cross zero error]]>
</Description>
</Parameter>
<Parameter Name="Cfg_LimitManCV" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.CVManLimiting" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=CV limits enforced in Manual, 0=No CV Limiting in Manual]]>
</Description>
</Parameter>
<Parameter Name="Cfg_InitToMan" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.ManualAfterInit" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Go to Manual Loop Mode when an init request is seen]]>
</Description>
</Parameter>
<Parameter Name="Cfg_PropSPAct" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.PVEProportional" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Prop. Action on SP Change 1=Prop of PV only (no action), 0=Prop of Error (full action)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_DerivSPAct" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Wrk_PIDE.PVEDerivative" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Deriv. Action on SP Change 1=Deriv of PV only (no action), 0=Deriv of Error (full action)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_PwrupLM" TagType="Base" DataType="SINT" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Powerup Loop Mode
0=No change (last), 1=Man (w/ CV),
2=Auto (w/ SP),
3=Casc/Ratio]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_SetTrack" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=PSets track OSets in Oper, OSets track PSets in Prog, 0=no Settings tracking]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_SetTrackOvrdHand" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Prog/Oper Settings track Override/Hand Inputs (CV, SP, Ratio)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_HasIntlkObj" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Tells HMI a P_Intlk is connected to Inp_Intlk]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_HasCascSPNav" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Tells HMI to enable navigation to a connected cascade SP object]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_HasPVNav" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Tells HMI to enable navigation to a connected PV object]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_HasCVNav" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Tells HMI to enable navigation to a connected CV object]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_OvrdIntlk" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Override ignores Bypassable Intlk; 0=always use Intlk]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_PCmdClear" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Mode.Cfg_PCmdClear" Required="false" Visible="false" ExternalAccess="Read/Write"/>
<Parameter Name="Cfg_ProgDefault" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Mode.Cfg_ProgDefault" Required="false" Visible="false" ExternalAccess="Read/Write"/>
<Parameter Name="Cfg_HasHiHiDevAlm" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiHiDev.Cfg_Exists" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=High-High Deviation Alarm exists and will be checked]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HasHiDevAlm" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiDev.Cfg_Exists" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=High Deviation Alarm exists and will be checked]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HasLoDevAlm" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoDev.Cfg_Exists" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Low Deviation Alarm exists and will be checked]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HasLoLoDevAlm" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoLoDev.Cfg_Exists" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Low-Low Deviation Alarm exists and will be checked]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HasIntlkTripAlm" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="IntlkTrip.Cfg_Exists" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Interlock Trip Alarm exists and will be checked]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HasFailAlm" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Fail.Cfg_Exists" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop Failure Alarm exists and will be checked]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HiHiDevResetReqd" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiHiDev.Cfg_ResetReqd" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Reset required to clear High-High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HiDevResetReqd" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiDev.Cfg_ResetReqd" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Reset required to clear High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="Cfg_LoDevResetReqd" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoDev.Cfg_ResetReqd" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Reset required to clear Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="Cfg_LoLoDevResetReqd" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoLoDev.Cfg_ResetReqd" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Reset required to clear Low-Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="Cfg_IntlkTripResetReqd" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="IntlkTrip.Cfg_ResetReqd" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Reset required to clear Interlock Trip Alarm]]>
</Description>
</Parameter>
<Parameter Name="Cfg_FailResetReqd" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Fail.Cfg_ResetReqd" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Reset required to clear Loop Failure Alarm]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HiHiDevAckReqd" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiHiDev.Cfg_AckReqd" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Acknowledge required for High-High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HiDevAckReqd" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiDev.Cfg_AckReqd" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Acknowledge required for High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="Cfg_LoDevAckReqd" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoDev.Cfg_AckReqd" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Acknowledge required for Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="Cfg_LoLoDevAckReqd" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoLoDev.Cfg_AckReqd" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Acknowledge required for Low-Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="Cfg_IntlkTripAckReqd" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="IntlkTrip.Cfg_AckReqd" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Acknowledge required for Interlock Trip Alarm]]>
</Description>
</Parameter>
<Parameter Name="Cfg_FailAckReqd" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Fail.Cfg_AckReqd" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Acknowledge required for Loop Failure Alarm]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HiHiDevSeverity" TagType="Alias" DataType="INT" Usage="Input" Radix="Decimal" AliasFor="HiHiDev.Cfg_Severity" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[High-High Deviation Severity: 1..250=Low, 251..500=Medium, 501..750=High, 751..1000=Urgent]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HiDevSeverity" TagType="Alias" DataType="INT" Usage="Input" Radix="Decimal" AliasFor="HiDev.Cfg_Severity" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[High Deviation Severity: 1..250=Low, 251..500=Medium, 501..750=High, 751..1000=Urgent]]>
</Description>
</Parameter>
<Parameter Name="Cfg_LoDevSeverity" TagType="Alias" DataType="INT" Usage="Input" Radix="Decimal" AliasFor="LoDev.Cfg_Severity" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Low Deviation Severity: 1..250=Low, 251..500=Medium, 501..750=High, 751..1000=Urgent]]>
</Description>
</Parameter>
<Parameter Name="Cfg_LoLoDevSeverity" TagType="Alias" DataType="INT" Usage="Input" Radix="Decimal" AliasFor="LoLoDev.Cfg_Severity" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Low-Low Deviation Severity: 1..250=Low, 251..500=Medium, 501..750=High, 751..1000=Urgent]]>
</Description>
</Parameter>
<Parameter Name="Cfg_IntlkTripSeverity" TagType="Alias" DataType="INT" Usage="Input" Radix="Decimal" AliasFor="IntlkTrip.Cfg_Severity" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Interlock Trip Alarm Severity: 1..250=Low, 251..500=Medium, 501..750=High, 751..1000=Urgent]]>
</Description>
</Parameter>
<Parameter Name="Cfg_FailSeverity" TagType="Alias" DataType="INT" Usage="Input" Radix="Decimal" AliasFor="Fail.Cfg_Severity" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Loop Failure Alarm Severity: 1..250=Low, 251..500=Medium, 501..750=High, 751..1000=Urgent]]>
</Description>
</Parameter>
<Parameter Name="Cfg_MinRatio" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.RatioLLimit" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Minimum allowed Ratio (unitless)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_MaxRatio" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.RatioHLimit" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Maximum allowed Ratio (unitless)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_MinSP" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.SPLLimit" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Minimum allowed Setpoint (SP) value (PVEU)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_MaxSP" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.SPHLimit" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Maximum allowed Setpoint (SP) value (PVEU)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_PVEUMin" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.PVEUMin" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[PV Engineering Units Mimimum Value (PVEU)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_PVEUMax" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.PVEUMax" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[PV Engineering Units Maximum Value (PVEU)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_CVEUMin" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.CVEUMin" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[CV Engineering Units Minimum Value (CVEU)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_CVEUMax" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.CVEUMax" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[CV Engineering Units Maximum Value (CVEU)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_CVRoCLim" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.CVROCLimit" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[CV Rate of Change Limit (CV%/sec)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_PGain" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.PGain" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Proportional (independent) or Loop (dependent) Gain (unitless)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_IGain" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.IGain" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Integral Gain (1/min independent or min/repeat dependent)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_DGain" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.DGain" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Derivative Gain (min)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_ZCDB" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.ZCDeadband" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Normal Zero Crossing Deadband (PVEU)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_MinCV" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.CVLLimit" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Minimum allowed Controlled Variable (CV) value (CV%)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_MaxCV" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.CVHLimit" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Maximum allowed Controlled Variable (CV) value (CV%)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_MaxInactiveCV" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[When Val_CV is greater than this value (CV%) set Sts_Active (for HMI)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_IntlkCV" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.CVOverride" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[CV to use when Interlocks not OK (CV%)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_DevDB" TagType="Alias" DataType="REAL" Usage="Input" Radix="Float" AliasFor="Wrk_PIDE.DevDeadband" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Devation Alarm Deadband (PVEU)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_PwrupSP" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Loop SP on powerup, used if Cfg_PwrupLM = 1 (Manual) or 2 (Auto)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_PwrupCV" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Loop CV (CV %) on powerup, used if Cfg_PwrupLM <> 0 (none)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="Cfg_HiHiDevOnDly" TagType="Alias" DataType="DINT" Usage="Input" Radix="Decimal" AliasFor="HiHiDevGate.Cfg_OnDly" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Minimum time above High-High Deviation Limit to raise Status (sec)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HiHiDevOffDly" TagType="Alias" DataType="DINT" Usage="Input" Radix="Decimal" AliasFor="HiHiDevGate.Cfg_OffDly" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Minimum time below High-High Deviation Limit to clear Status (sec)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HiHiDevGateDly" TagType="Alias" DataType="DINT" Usage="Input" Radix="Decimal" AliasFor="HiHiDevGate.Cfg_GateDly" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[High-High Deviation Status Gate Delay (sec)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HiDevOnDly" TagType="Alias" DataType="DINT" Usage="Input" Radix="Decimal" AliasFor="HiDevGate.Cfg_OnDly" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Minimum time above High Deviation Limit to raise Status (sec)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HiDevOffDly" TagType="Alias" DataType="DINT" Usage="Input" Radix="Decimal" AliasFor="HiDevGate.Cfg_OffDly" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Minimum time below High Deviation Limit to clear Status (sec)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_HiDevGateDly" TagType="Alias" DataType="DINT" Usage="Input" Radix="Decimal" AliasFor="HiDevGate.Cfg_GateDly" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[High Deviation Status Gate Delay (sec)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_LoDevOnDly" TagType="Alias" DataType="DINT" Usage="Input" Radix="Decimal" AliasFor="LoDevGate.Cfg_OnDly" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Minimum time below Low Deviation Limit to raise Status (sec)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_LoDevOffDly" TagType="Alias" DataType="DINT" Usage="Input" Radix="Decimal" AliasFor="LoDevGate.Cfg_OffDly" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Minimum time above Low Deviation Limit to clear Status (sec)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_LoDevGateDly" TagType="Alias" DataType="DINT" Usage="Input" Radix="Decimal" AliasFor="LoDevGate.Cfg_GateDly" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Low Deviation Status Gate Delay (sec)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_LoLoDevOnDly" TagType="Alias" DataType="DINT" Usage="Input" Radix="Decimal" AliasFor="LoLoDevGate.Cfg_OnDly" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Minimum time below Low-Low Deviation Limit to raise Status (sec)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_LoLoDevOffDly" TagType="Alias" DataType="DINT" Usage="Input" Radix="Decimal" AliasFor="LoLoDevGate.Cfg_OffDly" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Minimum time below Low-Low Deviation Limit to clear Status (sec)]]>
</Description>
</Parameter>
<Parameter Name="Cfg_LoLoDevGateDly" TagType="Alias" DataType="DINT" Usage="Input" Radix="Decimal" AliasFor="LoLoDevGate.Cfg_GateDly" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Low-Low Deviation Status Gate Delay (sec)]]>
</Description>
</Parameter>
<Parameter Name="PSet_Ratio" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Setting for Ratio (loop CasRat and Ratio enabled) (unitless)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="1.0"/>
</DefaultData>
</Parameter>
<Parameter Name="PSet_SP" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Setting for Setpoint (loop Auto) (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="PSet_CV" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Setting for Controlled Variable (loop Manual) (CV%)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="PSet_HiHiDevLim" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Setting for High-High Deviation Status Threshold (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[3.40282347e+038]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
</DefaultData>
</Parameter>
<Parameter Name="PSet_HiDevLim" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Setting for High Deviation Status Threshold (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[3.40282347e+038]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
</DefaultData>
</Parameter>
<Parameter Name="PSet_LoDevLim" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Setting for Low Deviation Status Threshold (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[-3.40282347e+038]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
</DefaultData>
</Parameter>
<Parameter Name="PSet_LoLoDevLim" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Setting for Low-Low Deviation Status Threshold (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[-3.40282347e+038]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
</DefaultData>
</Parameter>
<Parameter Name="PSet_Owner" TagType="Base" DataType="DINT" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Owner Request ID (non-zero) or Release (zero)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="OSet_Ratio" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Setting for Ratio (loop CasRat and Ratio enabled) (unitless)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="1.0"/>
</DefaultData>
</Parameter>
<Parameter Name="OSet_SP" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Setting for Setpoint (loop Auto) (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="OSet_CV" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Setting for Controlled Variable (loop Manual) (CV%)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="OSet_HiHiDevLim" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Setting for High-High Deviation Status Threshold (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[3.40282347e+038]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
</DefaultData>
</Parameter>
<Parameter Name="OSet_HiDevLim" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Setting for High Deviation Status Threshold (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[3.40282347e+038]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
</DefaultData>
</Parameter>
<Parameter Name="OSet_LoDevLim" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Setting for Low Deviation Status Threshold (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[-3.40282347e+038]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
</DefaultData>
</Parameter>
<Parameter Name="OSet_LoLoDevLim" TagType="Base" DataType="REAL" Usage="Input" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Setting for Low-Low Deviation Status Threshold (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[-3.40282347e+038]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_Casc" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to select Cascade / Ratio control]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_Auto" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to select Automatic control]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_Man" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to select Manual control]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_Acq" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Mode.PCmd_Acq" Required="false" Visible="false" ExternalAccess="Read/Write"/>
<Parameter Name="PCmd_Rel" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Mode.PCmd_Rel" Required="false" Visible="false" ExternalAccess="Read/Write"/>
<Parameter Name="PCmd_Lock" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Mode.PCmd_Lock" Required="false" Visible="false" ExternalAccess="Read/Write"/>
<Parameter Name="PCmd_Unlock" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Mode.PCmd_Unlock" Required="false" Visible="false" ExternalAccess="Read/Write"/>
<Parameter Name="PCmd_Reset" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Reset all Alarms requiring Reset]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="PCmd_HiHiDevAck" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiHiDev.PCmd_Ack" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Acknowledge High-High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_HiHiDevSuppress" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiHiDev.PCmd_Suppress" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Suppress High-High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_HiHiDevUnsuppress" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiHiDev.PCmd_Unsuppress" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to UnsuppressHigh-High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_HiHiDevUnshelve" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiHiDev.PCmd_Unshelve" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unshelve High-High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_HiDevAck" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiDev.PCmd_Ack" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Acknowledge High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_HiDevSuppress" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiDev.PCmd_Suppress" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Suppress High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_HiDevUnsuppress" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiDev.PCmd_Unsuppress" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unsuppress High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_HiDevUnshelve" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="HiDev.PCmd_Unshelve" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unshelve High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_LoDevAck" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoDev.PCmd_Ack" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Acknowledge Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_LoDevSuppress" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoDev.PCmd_Suppress" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Suppress Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_LoDevUnsuppress" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoDev.PCmd_Unsuppress" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unsuppress Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_LoDevUnshelve" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoDev.PCmd_Unshelve" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unshelve Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_LoLoDevAck" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoLoDev.PCmd_Ack" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Acknowledge Low-Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_LoLoDevSuppress" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoLoDev.PCmd_Suppress" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Suppress Low-Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_LoLoDevUnsuppress" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoLoDev.PCmd_Unsuppress" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unsuppress Low-Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_LoLoDevUnshelve" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="LoLoDev.PCmd_Unshelve" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unshelve Low-Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_IntlkTripAck" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="IntlkTrip.PCmd_Ack" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Acknowledge Interlock Trip Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_IntlkTripSuppress" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="IntlkTrip.PCmd_Suppress" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Suppress Interlock Trip Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_IntlkTripUnsuppress" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="IntlkTrip.PCmd_Unsuppress" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unsuppress Interlock Trip Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_IntlkTripUnshelve" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="IntlkTrip.PCmd_Unshelve" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unshelve Interlock Trip Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_FailAck" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Fail.PCmd_Ack" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Acknowledge Loop Failure Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_FailSuppress" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Fail.PCmd_Suppress" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Suppress Loop Failure Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_FailUnsuppress" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Fail.PCmd_Unsuppress" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unsuppress Loop Failure Alarm]]>
</Description>
</Parameter>
<Parameter Name="PCmd_FailUnshelve" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Fail.PCmd_Unshelve" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Program Command to Unshelve Loop Failure Alarm]]>
</Description>
</Parameter>
<Parameter Name="OCmd_Casc" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Command to select Cascade / Ratio control]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="OCmd_Auto" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Command to select Automatic control]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="OCmd_Man" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Command to select Manual control]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="OCmd_Bypass" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Command to Bypass all Bypassable Interlocks]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="OCmd_Check" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Command to Check (not bypass) all Interlocks]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="MCmd_Disable" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Maintenance Command to Disable PID Loop]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="MCmd_Enable" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Maintenance Command to Enable PID Loop]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="MCmd_Acq" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Mode.MCmd_Acq" Required="false" Visible="false" ExternalAccess="Read/Write"/>
<Parameter Name="MCmd_Rel" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Mode.MCmd_Rel" Required="false" Visible="false" ExternalAccess="Read/Write"/>
<Parameter Name="OCmd_AcqLock" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Mode.OCmd_AcqLock" Required="false" Visible="false" ExternalAccess="Read/Write"/>
<Parameter Name="OCmd_Unlock" TagType="Alias" DataType="BOOL" Usage="Input" Radix="Decimal" AliasFor="Mode.OCmd_UnlockRel" Required="false" Visible="false" ExternalAccess="Read/Write"/>
<Parameter Name="OCmd_Reset" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Command to Reset all Alarms requiring Reset]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="OCmd_ResetAckAll" TagType="Base" DataType="BOOL" Usage="Input" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Operator Command to Reset all Alarms and latched Shed conditions]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Out_CV" TagType="Alias" DataType="REAL" Usage="Output" Radix="Float" AliasFor="Wrk_PIDE.CVEU" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[CV to final control element (CVEU)]]>
</Description>
</Parameter>
<Parameter Name="Val_PV" TagType="Base" DataType="REAL" Usage="Output" Radix="Float" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[Loop PV (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_Ratio" TagType="Alias" DataType="REAL" Usage="Output" Radix="Float" AliasFor="Wrk_PIDE.Ratio" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[The current ratio (unitless)]]>
</Description>
</Parameter>
<Parameter Name="Val_SPSet" TagType="Base" DataType="REAL" Usage="Output" Radix="Float" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Value of selected SP (before clamping) (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_SP" TagType="Alias" DataType="REAL" Usage="Output" Radix="Float" AliasFor="Wrk_PIDE.SP" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[Value of SP being used (after clamping) (PVEU)]]>
</Description>
</Parameter>
<Parameter Name="Val_E" TagType="Alias" DataType="REAL" Usage="Output" Radix="Float" AliasFor="Wrk_PIDE.E" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Loop Error (PV-SP) (PVEU)]]>
</Description>
</Parameter>
<Parameter Name="Val_CVSet" TagType="Base" DataType="REAL" Usage="Output" Radix="Float" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[Value of CV Output (after ramping and clamping (CV%)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_CVOut" TagType="Alias" DataType="REAL" Usage="Output" Radix="Float" AliasFor="Wrk_PIDE.CV" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[Value of CV Output (after ramping and clamping (CV%)]]>
</Description>
</Parameter>
<Parameter Name="Val_PVPercent" TagType="Alias" DataType="REAL" Usage="Output" Radix="Float" AliasFor="Wrk_PIDE.PVPercent" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Loop PV (percent of span)]]>
</Description>
</Parameter>
<Parameter Name="Val_SPPercent" TagType="Alias" DataType="REAL" Usage="Output" Radix="Float" AliasFor="Wrk_PIDE.SPPercent" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Loop SP (percent of span)]]>
</Description>
</Parameter>
<Parameter Name="Val_EPercent" TagType="Alias" DataType="REAL" Usage="Output" Radix="Float" AliasFor="Wrk_PIDE.EPercent" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Loop Error (PV-SP) (percent of span)]]>
</Description>
</Parameter>
<Parameter Name="Val_ActExecT" TagType="Alias" DataType="REAL" Usage="Output" Radix="Float" AliasFor="Wrk_PIDE.DeltaT" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Actual PID Algorithm Execution Time (Interval) (sec)]]>
</Description>
</Parameter>
<Parameter Name="Val_Init" TagType="Base" DataType="REAL" Usage="Output" Radix="Float" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Initialization Value for this loop's Cascade Primary]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_PVEUMin" TagType="Base" DataType="REAL" Usage="Output" Radix="Float" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Minimum of PV scaled range (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_PVEUMax" TagType="Base" DataType="REAL" Usage="Output" Radix="Float" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Maximum of PV scaled range (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1.00000000e+002]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="100.0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_CVEUMin" TagType="Base" DataType="REAL" Usage="Output" Radix="Float" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Minimum of CV scaled range (CVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0.00000000e+000]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="0.0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_CVEUMax" TagType="Base" DataType="REAL" Usage="Output" Radix="Float" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Maximum of CV scaled range (CVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1.00000000e+002]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="100.0"/>
</DefaultData>
</Parameter>
<Parameter Name="SrcQ_IO" TagType="Base" DataType="SINT" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Source and Quality of primary I/O (enumeration)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="SrcQ" TagType="Base" DataType="SINT" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Source and Quality of primary Val/Sts (enumeration)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_Sts" TagType="Base" DataType="SINT" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Loop Status enum: TBD]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_Fault" TagType="Base" DataType="SINT" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Loop Fault Status: TBD]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_State" TagType="Base" DataType="SINT" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Loop Algorithm State: TBD]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_Mode" TagType="Alias" DataType="SINT" Usage="Output" Radix="Decimal" AliasFor="Mode.Val" Required="false" Visible="true" ExternalAccess="Read Only"/>
<Parameter Name="Val_Owner" TagType="Base" DataType="DINT" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Current Object Owner ID (0=not owned)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_Notify" TagType="Base" DataType="SINT" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Current Alarm Level and Acknowledgement (enumeration)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_HiHiDevLim" TagType="Alias" DataType="REAL" Usage="Output" Radix="Float" AliasFor="Wrk_PIDE.DevHHLimit" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Current High-High Deviation Status Threshold (PVEU)]]>
</Description>
</Parameter>
<Parameter Name="Val_HiDevLim" TagType="Alias" DataType="REAL" Usage="Output" Radix="Float" AliasFor="Wrk_PIDE.DevHLimit" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Current High Deviation Status Threshold (PVEU)]]>
</Description>
</Parameter>
<Parameter Name="Val_LoDevLim" TagType="Base" DataType="REAL" Usage="Output" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Current Low Deviation Status Threshold (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[-3.40282347e+038]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
</DefaultData>
</Parameter>
<Parameter Name="Val_LoLoDevLim" TagType="Base" DataType="REAL" Usage="Output" Radix="Float" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Current Low-Low Deviation Status Threshold (PVEU)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[-3.40282347e+038]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_InstrFaults1" TagType="Base" DataType="DINT" Usage="Output" Radix="Binary" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[PIDE Block Status1 Instruction Fault bits (See PIDE Instruction Help)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Binary" Value="2#0000_0000_0000_0000_0000_0000_0000_0000"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_InstrFaults2" TagType="Base" DataType="DINT" Usage="Output" Radix="Binary" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[PIDE Block Status2 Instruction Fault bits (See PIDE Instruction Help)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Binary" Value="2#0000_0000_0000_0000_0000_0000_0000_0000"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Casc" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop Mode is Cascade/Ratio]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Auto" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop Mode is Auto]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Man" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop Mode is Manual]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Initializing" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.CVInitializing" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=CV is initializing because of Request from this loop's Secondary]]>
</Description>
</Parameter>
<Parameter Name="Sts_InitReq" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.InitPrimary" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=CV Initialize Request to this loop's Primary]]>
</Description>
</Parameter>
<Parameter Name="Sts_WindupHi" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.WindupHOut" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=This loop winding up High, to Inp_WindupHi of this loop's Primary]]>
</Description>
</Parameter>
<Parameter Name="Sts_WindupLo" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.WindupLOut" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=This loop winding up Low, to Inp_WindupLo of this loop's Primary]]>
</Description>
</Parameter>
<Parameter Name="Sts_ZCDBOn" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.ZCDeadbandOn" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Deadband indictaor. 1=CV is within ZC deadband and will not change]]>
</Description>
</Parameter>
<Parameter Name="Sts_RatioClamped" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Selected Ratio (PSet/OSet_Ratio or Inp_OvrdRatio) has been clamped]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_SPBad" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.SPOperInv" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=SP Value is Bad (quality) or invalid or Casc SP comms fault]]>
</Description>
</Parameter>
<Parameter Name="Sts_SPClamped" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Selected SP is being clamped (for faceplate animation)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_PVBad" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.PVFaulted" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=PV Value, comms, quality or EU Limitis Bad]]>
</Description>
</Parameter>
<Parameter Name="Sts_PVUncertain" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=PV Value is Uncertain (quality)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_FFBad" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.FFInv" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Fedforward Term Value is invalid]]>
</Description>
</Parameter>
<Parameter Name="Sts_FFPrevBad" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.FFPreviousInv" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Inp_FFPrev is <-100.0, >100.0, or not a number (NaN)]]>
</Description>
</Parameter>
<Parameter Name="Sts_CVBad" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.CVFaulted" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=CV Value is Bad (quality) or invalid or CV comms fault]]>
</Description>
</Parameter>
<Parameter Name="Sts_CVPrevBad" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.CVPreviousInv" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Inp_CVPrev is <0.0, >100.0, or not a number (NaN)]]>
</Description>
</Parameter>
<Parameter Name="Sts_CVInitValBad" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Inp_CVInitVal is <0.0, >100.0, or not a number (NaN)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_HandFdbkBad" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.HandFBFaulted" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Hand FB (Tieback) Value is Bad (quality) or invalid or comms fault]]>
</Description>
</Parameter>
<Parameter Name="Sts_IntlkCV" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=CV ivalue s being set by shed to Interlock CV]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_CVClamped" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Selected CV is being clamped (for faceplate animation)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_CVRamping" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.CVROCAlarm" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=CV is ramping toward Val_CVSet, 0=ramp complete]]>
</Description>
</Parameter>
<Parameter Name="Sts_Active" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=CV is greater than Cfg_MaxInactiveCV, show graphic symbol as "active"]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Available" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Loop available for manipulation in Prog Mode]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Bypass" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Bypassable Interlocks are Bypassed]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_BypActive" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Bypassing Active (Bypassed or Maintenance)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Disabled" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Loop is Disabled (held at configured Interlock CV)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_NotRdy" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Device Not Ready, see detail bits for reason]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Nrdy_Disabled" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Device Not Ready: Device Disabled by Maintenance]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Nrdy_CfgErr" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Device Not Ready: Configuration Error]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Nrdy_Intlk" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Device Not Ready: Interlock Not OK]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Nrdy_Init" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Device Not Ready: Initialized to Manual Mode]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Nrdy_IOFault" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Device Not Ready: I/O Fault (Shed Requires Reset)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Nrdy_NoMode" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Device Not Ready: Device Logic Disabled / NO Mode]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_MaintByp" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Device has a Maintenance Bypass function active]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_AlmInh" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=One or more Alarms Shelved, Disabled or Suppressed]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Err" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="true" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Error in Config: see detail Err bits for reason]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Err_RatioLim" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.RatioLimitsInv" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Error in Config: Ratio Clamping Limits Invalid]]>
</Description>
</Parameter>
<Parameter Name="Err_SPLim" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.SPLimitsInv" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Error in Config: Setpoint Clamping Limits Invalid]]>
</Description>
</Parameter>
<Parameter Name="Err_PVEU" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.PVSpanInv" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Error in Config: PV EU Max/Min Invalid]]>
</Description>
</Parameter>
<Parameter Name="Err_CVLim" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.CVLimitsInv" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Error in Config: CV Clamping Limits Invalid]]>
</Description>
</Parameter>
<Parameter Name="Err_CVEU" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.CVEUSpanInv" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Error in Config: CV EU Max/Min Invalid]]>
</Description>
</Parameter>
<Parameter Name="Err_Timer" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Error in Config: Status On-Delay or Off-Delay Time Invalid]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Err_DB" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Wrk_PIDE.ZCDeadbandInv" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Error in Config: Deviation Alarm Deadband Invalid]]>
</Description>
</Parameter>
<Parameter Name="Err_Alarm" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Error in Config: Alarm Min On Time, Shelf Time, Severity]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Sts_Hand" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Mode.Sts_Hand" Required="false" Visible="true" ExternalAccess="Read Only"/>
<Parameter Name="Sts_Maint" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Mode.Sts_Maint" Required="false" Visible="true" ExternalAccess="Read Only"/>
<Parameter Name="Sts_Ovrd" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Mode.Sts_Ovrd" Required="false" Visible="true" ExternalAccess="Read Only"/>
<Parameter Name="Sts_Prog" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Mode.Sts_Prog" Required="false" Visible="true" ExternalAccess="Read Only"/>
<Parameter Name="Sts_Oper" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Mode.Sts_Oper" Required="false" Visible="true" ExternalAccess="Read Only"/>
<Parameter Name="Sts_ProgOperLock" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Mode.Sts_ProgOperLock" Required="false" Visible="false" ExternalAccess="Read Only"/>
<Parameter Name="Sts_NoMode" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Mode.Sts_NoMode" Required="false" Visible="false" ExternalAccess="Read Only"/>
<Parameter Name="Sts_MAcqRcvd" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Mode.Sts_MAcqRcvd" Required="false" Visible="false" ExternalAccess="Read Only"/>
<Parameter Name="Sts_HiHiDevCmp" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiHiDevGate.Inp" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[High-High Deviation comparison result 1=Dev High-High]]>
</Description>
</Parameter>
<Parameter Name="Sts_HiHiDevGate" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiHiDevGate.Sts_Gate" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[High-High Deviation Gate Delay Status, 1=done]]>
</Description>
</Parameter>
<Parameter Name="Sts_HiHiDev" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiHiDev.Inp" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=PV Deviation is above High-High limit]]>
</Description>
</Parameter>
<Parameter Name="Alm_HiHiDev" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiHiDev.Alm" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop High-High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="Ack_HiHiDev" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiHiDev.Ack" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=High-High Deviation Alarm has been acknowledged]]>
</Description>
</Parameter>
<Parameter Name="Sts_HiHiDevDisabled" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiHiDev.Disabled" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=High-High Deviation Alarm has been Disabled by Maintenance]]>
</Description>
</Parameter>
<Parameter Name="Sts_HiHiDevShelved" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiHiDev.Shelved" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=High-High Deviation Alarm has been Shelved by Operator]]>
</Description>
</Parameter>
<Parameter Name="Sts_HiHiDevSuppressed" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiHiDev.Suppressed" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=High-High Deviation Alarm has been Suppressed by Program]]>
</Description>
</Parameter>
<Parameter Name="Sts_HiDevCmp" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiDevGate.Inp" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[High Deviation comparison result 1=Dev High]]>
</Description>
</Parameter>
<Parameter Name="Sts_HiDevGate" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiDevGate.Sts_Gate" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[High Deviation Gate Delay Status, 1=done]]>
</Description>
</Parameter>
<Parameter Name="Sts_HiDev" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiDev.Inp" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=PV Deviation is above High limit]]>
</Description>
</Parameter>
<Parameter Name="Alm_HiDev" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiDev.Alm" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop High Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="Ack_HiDev" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiDev.Ack" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=High Deviation Alarm has been acknowledged]]>
</Description>
</Parameter>
<Parameter Name="Sts_HiDevDisabled" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiDev.Disabled" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=High Deviation Alarm has been Disabled by Maintenance]]>
</Description>
</Parameter>
<Parameter Name="Sts_HiDevShelved" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiDev.Shelved" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=High Deviation Alarm has been Shelved by Operator]]>
</Description>
</Parameter>
<Parameter Name="Sts_HiDevSuppressed" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="HiDev.Suppressed" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=High Deviation Alarm has been Suppressed by Program]]>
</Description>
</Parameter>
<Parameter Name="Sts_LoDevCmp" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoDevGate.Inp" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Low Deviation comparison result 1=Dev Low]]>
</Description>
</Parameter>
<Parameter Name="Sts_LoDevGate" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoDevGate.Sts_Gate" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Low Deviation Gate Delay Status, 1=done]]>
</Description>
</Parameter>
<Parameter Name="Sts_LoDev" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoDev.Inp" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=PV Deviation is below Low limit]]>
</Description>
</Parameter>
<Parameter Name="Alm_LoDev" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoDev.Alm" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="Ack_LoDev" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoDev.Ack" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loiw Deviation Alarm has been acknowledged]]>
</Description>
</Parameter>
<Parameter Name="Sts_LoDevDisabled" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoDev.Disabled" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Low Deviation Alarm has been Disabled by Maintenance]]>
</Description>
</Parameter>
<Parameter Name="Sts_LoDevShelved" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoDev.Shelved" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Low Deviation Alarm has been Shelved by Operator]]>
</Description>
</Parameter>
<Parameter Name="Sts_LoDevSuppressed" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoDev.Suppressed" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Low Deviation Alarm has been Suppressed by Program]]>
</Description>
</Parameter>
<Parameter Name="Sts_LoLoDevCmp" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoLoDevGate.Inp" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Low-Low Deviation comparison result 1=Dev Low-Low]]>
</Description>
</Parameter>
<Parameter Name="Sts_LoLoDevGate" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoLoDevGate.Sts_Gate" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[Low-Low Deviation Gate Delay Status, 1=done]]>
</Description>
</Parameter>
<Parameter Name="Sts_LoLoDev" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoLoDev.Inp" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=PV Deviation is below Low-Low limit]]>
</Description>
</Parameter>
<Parameter Name="Alm_LoLoDev" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoLoDev.Alm" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop Low-Low Deviation Alarm]]>
</Description>
</Parameter>
<Parameter Name="Ack_LoLoDev" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoLoDev.Ack" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Low-Loiw Deviation Alarm has been acknowledged]]>
</Description>
</Parameter>
<Parameter Name="Sts_LoLoDevDisabled" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoLoDev.Disabled" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Low-Low Deviation Alarm has been Disabled by Maintenance]]>
</Description>
</Parameter>
<Parameter Name="Sts_LoLoDevShelved" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoLoDev.Shelved" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Low-Low Deviation Alarm has been Shelved by Operator]]>
</Description>
</Parameter>
<Parameter Name="Sts_LoLoDevSuppressed" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="LoLoDev.Suppressed" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Low-Low Deviation Alarm has been Suppressed by Program]]>
</Description>
</Parameter>
<Parameter Name="Sts_IntlkTrip" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="IntlkTrip.Inp" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Interlock NOT OK caused loop output to hold or change]]>
</Description>
</Parameter>
<Parameter Name="Alm_IntlkTrip" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="IntlkTrip.Alm" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Interlock Trip Alarm]]>
</Description>
</Parameter>
<Parameter Name="Ack_IntlkTrip" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="IntlkTrip.Ack" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Interlock Trip Alarm has been acknowledged]]>
</Description>
</Parameter>
<Parameter Name="Sts_IntlkTripDisabled" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="IntlkTrip.Disabled" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Interlock Trip Alarm has been Disabled by Maintenance]]>
</Description>
</Parameter>
<Parameter Name="Sts_IntlkTripShelved" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="IntlkTrip.Shelved" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Interlock Trip Alarm has been Shelved by Operator]]>
</Description>
</Parameter>
<Parameter Name="Sts_IntlkTripSuppressed" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="IntlkTrip.Suppressed" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Interlock Trip Alarm has been Suppressed by Program]]>
</Description>
</Parameter>
<Parameter Name="Sts_Fail" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Fail.Inp" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop Failure: PV Bad, SP Bad or CV Comm Failure or Bad]]>
</Description>
</Parameter>
<Parameter Name="Alm_Fail" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Fail.Alm" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop Failure Alarm: PV Bad, SP Bad or CV Comm Failure or Bad]]>
</Description>
</Parameter>
<Parameter Name="Ack_Fail" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Fail.Ack" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop Failure Alarm has been acknowledged]]>
</Description>
</Parameter>
<Parameter Name="Sts_FailDisabled" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Fail.Disabled" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop Failure Alarm has been Disabled by Maintenance]]>
</Description>
</Parameter>
<Parameter Name="Sts_FailShelved" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Fail.Shelved" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop Failure Alarm has been Shelved by Operator]]>
</Description>
</Parameter>
<Parameter Name="Sts_FailSuppressed" TagType="Alias" DataType="BOOL" Usage="Output" Radix="Decimal" AliasFor="Fail.Suppressed" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[1=Loop Failure Alarm has been Suppressed by Program]]>
</Description>
</Parameter>
<Parameter Name="Rdy_Casc" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready to receive OCmd_Casc (enables HMI button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Auto" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready to receive OCmd_Auto (enables HMI button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Man" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready to receive OCmd_Man (enables HMI button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Bypass" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready to receive OCmd_Bypass (enables HMI button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Check" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready to receive OCmd_Check (enables HMI button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Disable" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready to receive MCmd_Disable (enables HMI button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Enable" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready to receive MCmd_Enable (enables HMI button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Reset" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready to receive OCmd_Reset (enables HMI button)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_ResetAckAll" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=At least one Alarm or latched Shed condition requires Reset or Ack]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_Ratio" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready to receive OSet_Ratio (enables data entry field)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_SP" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready to receive OSet_SP (enables data entry field)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_CV" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready to receive OSet_CV (enables data entry field)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="Rdy_OSet" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read Only">
<Description>
<![CDATA[1=Ready to receive other OSets (enables data entry fields)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
<Parameter Name="P_PIDE" TagType="Base" DataType="BOOL" Usage="Output" Radix="Decimal" Required="false" Visible="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Unique Parameter Name for auto - discovery]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</Parameter>
</Parameters>
<LocalTags>
<LocalTag Name="Wrk_PIDE" DataType="PID_ENHANCED" ExternalAccess="Read/Write">
<Description>
<![CDATA[Built-in controller PID algorithm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[1,43008,0.00000000e+000,1.00000000e+002,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,1.00000000e+002,0.00000000e+000,1.00000000e+000,1.00000000e+000,1.00000000e+000,1.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,1.00000000e+002,0.00000000e+000,1.00000000e+002,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,3.40282347e+038,3.40282347e+038,-3.40282347e+038,-3.40282347e+038,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,3.40282347e+038,3.40282347e+038,-3.40282347e+038,-3.40282347e+038,0.00000000e+000,0,0.00000000e+000,1,0,0,0,0,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,1.00000000e+000,0.00000000e+000,0,1073737183,-134217726,5.60519386e-045,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="PID_ENHANCED">
<DataValueMember Name="EnableIn" DataType="BOOL" Radix="Decimal" Value="1"/>
<DataValueMember Name="PV" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="PVFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVEUMax" DataType="REAL" Radix="Float" Value="100.0"/>
<DataValueMember Name="PVEUMin" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPProg" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPOper" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPCascade" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPHLimit" DataType="REAL" Radix="Float" Value="100.0"/>
<DataValueMember Name="SPLLimit" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="UseRatio" DataType="BOOL" Value="0"/>
<DataValueMember Name="RatioProg" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="RatioOper" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="RatioHLimit" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="RatioLLimit" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="CVFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVInitReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVInitValue" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVProg" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVOper" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVOverride" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVPrevious" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVSetPrevious" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVManLimiting" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVEUMax" DataType="REAL" Radix="Float" Value="100.0"/>
<DataValueMember Name="CVEUMin" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVHLimit" DataType="REAL" Radix="Float" Value="100.0"/>
<DataValueMember Name="CVLLimit" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVROCLimit" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="FF" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="FFPrevious" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="FFSetPrevious" DataType="BOOL" Value="0"/>
<DataValueMember Name="HandFB" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="HandFBFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="WindupHIn" DataType="BOOL" Value="0"/>
<DataValueMember Name="WindupLIn" DataType="BOOL" Value="0"/>
<DataValueMember Name="ControlAction" DataType="BOOL" Value="0"/>
<DataValueMember Name="DependIndepend" DataType="BOOL" Value="1"/>
<DataValueMember Name="PGain" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="IGain" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="DGain" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="PVEProportional" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVEDerivative" DataType="BOOL" Value="1"/>
<DataValueMember Name="DSmoothing" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVTracking" DataType="BOOL" Value="1"/>
<DataValueMember Name="ZCDeadband" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="ZCOff" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVHHLimit" DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
<DataValueMember Name="PVHLimit" DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
<DataValueMember Name="PVLLimit" DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
<DataValueMember Name="PVLLLimit" DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
<DataValueMember Name="PVDeadband" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="PVROCPosLimit" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="PVROCNegLimit" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="PVROCPeriod" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="DevHHLimit" DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
<DataValueMember Name="DevHLimit" DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
<DataValueMember Name="DevLLimit" DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
<DataValueMember Name="DevLLLimit" DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
<DataValueMember Name="DevDeadband" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="AllowCasRat" DataType="BOOL" Value="0"/>
<DataValueMember Name="ManualAfterInit" DataType="BOOL" Value="0"/>
<DataValueMember Name="ProgProgReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="ProgOperReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="ProgCasRatReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="ProgAutoReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="ProgManualReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="ProgOverrideReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="ProgHandReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="OperProgReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="OperOperReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="OperCasRatReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="OperAutoReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="OperManualReq" DataType="BOOL" Value="0"/>
<DataValueMember Name="ProgValueReset" DataType="BOOL" Value="0"/>
<DataValueMember Name="TimingMode" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="OversampleDT" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="RTSTime" DataType="DINT" Radix="Decimal" Value="1"/>
<DataValueMember Name="RTSTimeStamp" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="AtuneAcquire" DataType="BOOL" Value="0"/>
<DataValueMember Name="AtuneStart" DataType="BOOL" Value="0"/>
<DataValueMember Name="AtuneUseGains" DataType="BOOL" Value="0"/>
<DataValueMember Name="AtuneAbort" DataType="BOOL" Value="0"/>
<DataValueMember Name="AtuneUnacquire" DataType="BOOL" Value="0"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Radix="Decimal" Value="0"/>
<DataValueMember Name="CVEU" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CV" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="CVInitializing" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVHAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVLAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVROCAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="SP" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPPercent" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="SPHAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="SPLAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVPercent" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="E" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="EPercent" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="InitPrimary" DataType="BOOL" Value="0"/>
<DataValueMember Name="WindupHOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="WindupLOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="Ratio" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="RatioHAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="RatioLAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="ZCDeadbandOn" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVHHAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVHAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVLAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVLLAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVROCPosAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVROCNegAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="DevHHAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="DevHAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="DevLAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="DevLLAlarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="ProgOper" DataType="BOOL" Value="0"/>
<DataValueMember Name="CasRat" DataType="BOOL" Value="0"/>
<DataValueMember Name="Auto" DataType="BOOL" Value="0"/>
<DataValueMember Name="Manual" DataType="BOOL" Value="0"/>
<DataValueMember Name="Override" DataType="BOOL" Value="0"/>
<DataValueMember Name="Hand" DataType="BOOL" Value="0"/>
<DataValueMember Name="DeltaT" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="AtuneReady" DataType="BOOL" Value="0"/>
<DataValueMember Name="AtuneOn" DataType="BOOL" Value="0"/>
<DataValueMember Name="AtuneDone" DataType="BOOL" Value="0"/>
<DataValueMember Name="AtuneAborted" DataType="BOOL" Value="0"/>
<DataValueMember Name="AtuneBusy" DataType="BOOL" Value="0"/>
<DataValueMember Name="Status1" DataType="DINT" Radix="Hex" Value="16#3fff_eddf"/>
<DataValueMember Name="Status2" DataType="DINT" Radix="Hex" Value="16#f800_0002"/>
<DataValueMember Name="InstructFault" DataType="BOOL" Value="1"/>
<DataValueMember Name="PVFaulted" DataType="BOOL" Value="1"/>
<DataValueMember Name="CVFaulted" DataType="BOOL" Value="1"/>
<DataValueMember Name="HandFBFaulted" DataType="BOOL" Value="1"/>
<DataValueMember Name="PVSpanInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="SPProgInv" DataType="BOOL" Value="0"/>
<DataValueMember Name="SPOperInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="SPCascadeInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="SPLimitsInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="RatioProgInv" DataType="BOOL" Value="0"/>
<DataValueMember Name="RatioOperInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="RatioLimitsInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="CVProgInv" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVOperInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="CVOverrideInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="CVPreviousInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="CVEUSpanInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="CVLimitsInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="CVROCLimitInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="FFInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="FFPreviousInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="HandFBInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="PGainInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="IGainInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="DGainInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="ZCDeadbandInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="PVDeadbandInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="PVROCLimitsInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="DevHLLimitsInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="DevDeadbandInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="AtuneDataInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="TimingModeInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="RTSMissed" DataType="BOOL" Value="1"/>
<DataValueMember Name="RTSTimeInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="RTSTimeStampInv" DataType="BOOL" Value="1"/>
<DataValueMember Name="DeltaTInv" DataType="BOOL" Value="1"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Cfg_Tag" DataType="STRING_20" ExternalAccess="Read/Write">
<Description>
<![CDATA[Tagname displayed on HMI]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[6,'P_PIDE$00$00$00$00$00$00$00$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_20">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="6"/>
<DataValueMember Name="DATA" DataType="STRING_20" Radix="ASCII">
<![CDATA['P_PIDE']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Cfg_PVEU" DataType="STRING_8" ExternalAccess="Read/Write">
<Description>
<![CDATA[PV / Setpoint Engineering Units displayed on HMI]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[1,'%$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_8">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="1"/>
<DataValueMember Name="DATA" DataType="STRING_8" Radix="ASCII">
<![CDATA['%']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Cfg_Label" DataType="STRING_20" ExternalAccess="Read/Write">
<Description>
<![CDATA[Label for graphic symbol displayed on HMI]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[8,'PID Loop$00$00$00$00$00$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_20">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="8"/>
<DataValueMember Name="DATA" DataType="STRING_20" Radix="ASCII">
<![CDATA['PID Loop']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Cfg_Desc" DataType="STRING_40" ExternalAccess="Read/Write">
<Description>
<![CDATA[Description displayed on HMI]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[16,'PID Control Loop$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_40">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="16"/>
<DataValueMember Name="DATA" DataType="STRING_40" Radix="ASCII">
<![CDATA['PID Control Loop']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Cfg_CVEU" DataType="STRING_8" ExternalAccess="Read/Write">
<Description>
<![CDATA[CV Engineering Units displayed on HMI]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[1,'%$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_8">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="1"/>
<DataValueMember Name="DATA" DataType="STRING_8" Radix="ASCII">
<![CDATA['%']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="LoLoDevGate" DataType="P_Gate" ExternalAccess="Read/Write">
<Description>
<![CDATA[Low-Low Deviation Gate/Delay]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[9,0,0,0,[0,0,0],[0,0,0],[0,0,0],[20,'PV Low-Low Deviation'],[6,'RA-BAS$00$00$00$00$00$00'],[6,'P_Gate$00$00$00$00$00$00$00$00$00$00'],[16,'Gating Condition$00$00$00$00'],0]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="P_Gate">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Gate" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_GateDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_OnDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_OffDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Out" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Gate" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Err" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Timer" DataType="BOOL" Value="0"/>
<DataValueMember Name="P_Gate" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="LoLoDev" DataType="P_Alarm" ExternalAccess="Read/Write">
<Description>
<![CDATA[Low-Low Deviation Alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[1985,750,5,0,0,0,0,0,[0,5000,0],[0,5000,0],[0,0,0],0,2,[10,'XADLL-nnnn$00$00$00$00$00$00$00$00$00$00'],[17,'Low-Low Deviation$00$00$00'],0,[6,'RA-BAS$00$00$00$00$00$00'],[7,'P_Alarm$00$00$00$00$00$00$00$00$00']]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="P_Alarm">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_Exists" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_ResetReqd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_AckReqd" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_AllowShelve" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_AllowDisable" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_PCmdClear" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_Severity" DataType="INT" Radix="Decimal" Value="750"/>
<DataValueMember Name="Cfg_AlmMinOnT" DataType="DINT" Radix="Decimal" Value="5"/>
<DataValueMember Name="Cfg_MaxShelfT" DataType="INT" Radix="Decimal" Value="0"/>
<DataValueMember Name="PCfg_AllowExist" DataType="BOOL" Value="1"/>
<DataValueMember Name="PCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Suppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unsuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Shelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Test" DataType="BOOL" Value="0"/>
<DataValueMember Name="Val_Notify" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_MinToUnshelve" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_SecToUnshelve" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Alm" DataType="BOOL" Value="0"/>
<DataValueMember Name="Ack" DataType="BOOL" Value="1"/>
<DataValueMember Name="Shelved" DataType="BOOL" Value="0"/>
<DataValueMember Name="Suppressed" DataType="BOOL" Value="0"/>
<DataValueMember Name="Disabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_AlmInh" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Err" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Timer" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Severity" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Shelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Test" DataType="BOOL" Value="0"/>
<DataValueMember Name="P_Alarm" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="LoDevGate" DataType="P_Gate" ExternalAccess="Read/Write">
<Description>
<![CDATA[Low Deviation Gate/Delay]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[9,0,0,0,[0,0,0],[0,0,0],[0,0,0],[16,'PV Low Deviation$00$00$00$00'],[6,'RA-BAS$00$00$00$00$00$00'],[6,'P_Gate$00$00$00$00$00$00$00$00$00$00'],[16,'Gating Condition$00$00$00$00'],0]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="P_Gate">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Gate" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_GateDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_OnDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_OffDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Out" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Gate" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Err" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Timer" DataType="BOOL" Value="0"/>
<DataValueMember Name="P_Gate" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="LoDev" DataType="P_Alarm" ExternalAccess="Read/Write">
<Description>
<![CDATA[Low Deviation Alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[1985,500,5,0,0,0,0,0,[0,5000,0],[0,5000,0],[0,0,0],0,2,[9,'XADL-nnnn$00$00$00$00$00$00$00$00$00$00$00'],[13,'Low Deviation$00$00$00$00$00$00$00'],0,[6,'RA-BAS$00$00$00$00$00$00'],[7,'P_Alarm$00$00$00$00$00$00$00$00$00']]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="P_Alarm">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_Exists" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_ResetReqd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_AckReqd" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_AllowShelve" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_AllowDisable" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_PCmdClear" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_Severity" DataType="INT" Radix="Decimal" Value="500"/>
<DataValueMember Name="Cfg_AlmMinOnT" DataType="DINT" Radix="Decimal" Value="5"/>
<DataValueMember Name="Cfg_MaxShelfT" DataType="INT" Radix="Decimal" Value="0"/>
<DataValueMember Name="PCfg_AllowExist" DataType="BOOL" Value="1"/>
<DataValueMember Name="PCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Suppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unsuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Shelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Test" DataType="BOOL" Value="0"/>
<DataValueMember Name="Val_Notify" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_MinToUnshelve" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_SecToUnshelve" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Alm" DataType="BOOL" Value="0"/>
<DataValueMember Name="Ack" DataType="BOOL" Value="1"/>
<DataValueMember Name="Shelved" DataType="BOOL" Value="0"/>
<DataValueMember Name="Suppressed" DataType="BOOL" Value="0"/>
<DataValueMember Name="Disabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_AlmInh" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Err" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Timer" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Severity" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Shelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Test" DataType="BOOL" Value="0"/>
<DataValueMember Name="P_Alarm" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Inf_Type" DataType="STRING_16" ExternalAccess="Read Only">
<Description>
<![CDATA[Must contain AOI name, used for HMI and Information S/W]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[6,'P_PIDE$00$00$00$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_16">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="6"/>
<DataValueMember Name="DATA" DataType="STRING_16" Radix="ASCII">
<![CDATA['P_PIDE']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Inf_Tab" DataType="SINT" Radix="Decimal" ExternalAccess="Read/Write">
<Description>
<![CDATA[Tab to display (FTView ME)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_SrcQ" DataType="SINT" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Register for building Source / Quality enumeration]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="SINT" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="HiHiDevGate" DataType="P_Gate" ExternalAccess="Read/Write">
<Description>
<![CDATA[High-High Deviation Gate/Delay]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[9,0,0,0,[0,0,0],[0,0,0],[0,0,0],[18,'PV Hi-Hi Deviation$00$00'],[6,'RA-BAS$00$00$00$00$00$00'],[6,'P_Gate$00$00$00$00$00$00$00$00$00$00'],[16,'Gating Condition$00$00$00$00'],0]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="P_Gate">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Gate" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_GateDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_OnDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_OffDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Out" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Gate" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Err" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Timer" DataType="BOOL" Value="0"/>
<DataValueMember Name="P_Gate" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="HiHiDev" DataType="P_Alarm" ExternalAccess="Read/Write">
<Description>
<![CDATA[High-High Deviation Alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[1985,750,5,0,0,0,0,0,[0,5000,0],[0,5000,0],[0,0,0],0,2,[10,'XADHH-nnnn$00$00$00$00$00$00$00$00$00$00'],[19,'High-High Deviation$00'],0,[6,'RA-BAS$00$00$00$00$00$00'],[7,'P_Alarm$00$00$00$00$00$00$00$00$00']]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="P_Alarm">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_Exists" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_ResetReqd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_AckReqd" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_AllowShelve" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_AllowDisable" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_PCmdClear" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_Severity" DataType="INT" Radix="Decimal" Value="750"/>
<DataValueMember Name="Cfg_AlmMinOnT" DataType="DINT" Radix="Decimal" Value="5"/>
<DataValueMember Name="Cfg_MaxShelfT" DataType="INT" Radix="Decimal" Value="0"/>
<DataValueMember Name="PCfg_AllowExist" DataType="BOOL" Value="1"/>
<DataValueMember Name="PCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Suppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unsuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Shelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Test" DataType="BOOL" Value="0"/>
<DataValueMember Name="Val_Notify" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_MinToUnshelve" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_SecToUnshelve" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Alm" DataType="BOOL" Value="0"/>
<DataValueMember Name="Ack" DataType="BOOL" Value="1"/>
<DataValueMember Name="Shelved" DataType="BOOL" Value="0"/>
<DataValueMember Name="Suppressed" DataType="BOOL" Value="0"/>
<DataValueMember Name="Disabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_AlmInh" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Err" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Timer" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Severity" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Shelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Test" DataType="BOOL" Value="0"/>
<DataValueMember Name="P_Alarm" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="HiDevGate" DataType="P_Gate" ExternalAccess="Read/Write">
<Description>
<![CDATA[High Deviation Gate/Delay]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[9,0,0,0,[0,0,0],[0,0,0],[0,0,0],[17,'PV High Deviation$00$00$00'],[6,'RA-BAS$00$00$00$00$00$00'],[6,'P_Gate$00$00$00$00$00$00$00$00$00$00'],[16,'Gating Condition$00$00$00$00'],0]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="P_Gate">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Gate" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_GateDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_OnDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_OffDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Out" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Gate" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Err" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Timer" DataType="BOOL" Value="0"/>
<DataValueMember Name="P_Gate" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="HiDev" DataType="P_Alarm" ExternalAccess="Read/Write">
<Description>
<![CDATA[High Deviation Alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[1985,500,5,0,0,0,0,0,[0,5000,0],[0,5000,0],[0,0,0],0,2,[9,'XADH-nnnn$00$00$00$00$00$00$00$00$00$00$00'],[14,'High Deviation$00$00$00$00$00$00'],0,[6,'RA-BAS$00$00$00$00$00$00'],[7,'P_Alarm$00$00$00$00$00$00$00$00$00']]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="P_Alarm">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_Exists" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_ResetReqd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_AckReqd" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_AllowShelve" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_AllowDisable" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_PCmdClear" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_Severity" DataType="INT" Radix="Decimal" Value="500"/>
<DataValueMember Name="Cfg_AlmMinOnT" DataType="DINT" Radix="Decimal" Value="5"/>
<DataValueMember Name="Cfg_MaxShelfT" DataType="INT" Radix="Decimal" Value="0"/>
<DataValueMember Name="PCfg_AllowExist" DataType="BOOL" Value="1"/>
<DataValueMember Name="PCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Suppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unsuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Shelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Test" DataType="BOOL" Value="0"/>
<DataValueMember Name="Val_Notify" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_MinToUnshelve" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_SecToUnshelve" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Alm" DataType="BOOL" Value="0"/>
<DataValueMember Name="Ack" DataType="BOOL" Value="1"/>
<DataValueMember Name="Shelved" DataType="BOOL" Value="0"/>
<DataValueMember Name="Suppressed" DataType="BOOL" Value="0"/>
<DataValueMember Name="Disabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_AlmInh" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Err" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Timer" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Severity" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Shelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Test" DataType="BOOL" Value="0"/>
<DataValueMember Name="P_Alarm" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Mode" DataType="P_Mode" ExternalAccess="Read/Write">
<Description>
<![CDATA[Instruction Mode Selection]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[67108913,0,0,[6,'RA-BAS$00$00$00$00$00$00'],[6,'P_Mode$00$00$00$00$00$00$00$00$00$00']]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="P_Mode">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Hand" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Ovrd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_PCmdClear" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_OvrdOverLock" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_ProgDefault" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Acq" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Rel" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Lock" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unlock" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Acq" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Rel" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_AcqLock" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_UnlockRel" DataType="BOOL" Value="0"/>
<DataValueMember Name="Val" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Sts_Hand" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Maint" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Ovrd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Prog" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Oper" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_ProgOperLock" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_ProgOperSel" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_NoMode" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_MAcqRcvd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_MAcq" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_MRel" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_OAcq" DataType="BOOL" Value="1"/>
<DataValueMember Name="Rdy_OLock" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_OUnlock" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_ORel" DataType="BOOL" Value="0"/>
<DataValueMember Name="P_Mode" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_Notify" DataType="DINT" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Buffer for building Val_Notify]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="IntlkTrip" DataType="P_Alarm" ExternalAccess="Read/Write">
<Description>
<![CDATA[Interlock Trip Alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[1985,500,5,0,0,0,0,0,[0,5000,0],[0,5000,0],[0,0,0],0,2,[8,'XAS-nnnn$00$00$00$00$00$00$00$00$00$00$00$00'],[14,'Interlock Trip$00$00$00$00$00$00'],0,[6,'RA-BAS$00$00$00$00$00$00'],[7,'P_Alarm$00$00$00$00$00$00$00$00$00']]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="P_Alarm">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_Exists" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_ResetReqd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_AckReqd" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_AllowShelve" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_AllowDisable" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_PCmdClear" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_Severity" DataType="INT" Radix="Decimal" Value="500"/>
<DataValueMember Name="Cfg_AlmMinOnT" DataType="DINT" Radix="Decimal" Value="5"/>
<DataValueMember Name="Cfg_MaxShelfT" DataType="INT" Radix="Decimal" Value="0"/>
<DataValueMember Name="PCfg_AllowExist" DataType="BOOL" Value="1"/>
<DataValueMember Name="PCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Suppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unsuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Shelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Test" DataType="BOOL" Value="0"/>
<DataValueMember Name="Val_Notify" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_MinToUnshelve" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_SecToUnshelve" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Alm" DataType="BOOL" Value="0"/>
<DataValueMember Name="Ack" DataType="BOOL" Value="1"/>
<DataValueMember Name="Shelved" DataType="BOOL" Value="0"/>
<DataValueMember Name="Suppressed" DataType="BOOL" Value="0"/>
<DataValueMember Name="Disabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_AlmInh" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Err" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Timer" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Severity" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Shelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Test" DataType="BOOL" Value="0"/>
<DataValueMember Name="P_Alarm" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_IntlkOK" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Interlock conditions are OK (accounting for bypass)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_Disabled" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Internal PID is Disabled]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_Bypass" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Internal Bypassable Interlocks are Bypassed flag]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_Reset" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[A Reset of Alarms and Shed Conditions has been requested]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_ManCmd" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Command to put loop in Manual mode was received]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_AutoCmd" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Command to put loop in Auto mode was received]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_CascCmd" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Command to put loop in Cascade mode was received]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_Casc" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Internal Loop Mode latch: 1=Loop Cascade Mode selected]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_Auto" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Internal Loop Mode latch: 1=Loop Auto Mode selected]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_Man" DataType="BOOL" Radix="Decimal" ExternalAccess="None">
<Description>
<![CDATA[Internal Loop Mode latch: 1=Loop Manual Mode selected]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[1]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="1"/>
</DefaultData>
</LocalTag>
<LocalTag Name="Fail" DataType="P_Alarm" ExternalAccess="Read/Write">
<Description>
<![CDATA[Loop (SP, PV or CV) Failure Alarm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[1985,1000,5,0,0,0,0,0,[0,5000,0],[0,5000,0],[0,0,0],0,2,[8,'XAF-nnnn$00$00$00$00$00$00$00$00$00$00$00$00'],[12,'Loop Failure$00$00$00$00$00$00$00$00'],0,[6,'RA-BAS$00$00$00$00$00$00'],[7,'P_Alarm$00$00$00$00$00$00$00$00$00']]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="P_Alarm">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_Exists" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_ResetReqd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_AckReqd" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_AllowShelve" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_AllowDisable" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_PCmdClear" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_Severity" DataType="INT" Radix="Decimal" Value="1000"/>
<DataValueMember Name="Cfg_AlmMinOnT" DataType="DINT" Radix="Decimal" Value="5"/>
<DataValueMember Name="Cfg_MaxShelfT" DataType="INT" Radix="Decimal" Value="0"/>
<DataValueMember Name="PCfg_AllowExist" DataType="BOOL" Value="1"/>
<DataValueMember Name="PCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Suppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unsuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Shelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Test" DataType="BOOL" Value="0"/>
<DataValueMember Name="Val_Notify" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_MinToUnshelve" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_SecToUnshelve" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Alm" DataType="BOOL" Value="0"/>
<DataValueMember Name="Ack" DataType="BOOL" Value="1"/>
<DataValueMember Name="Shelved" DataType="BOOL" Value="0"/>
<DataValueMember Name="Suppressed" DataType="BOOL" Value="0"/>
<DataValueMember Name="Disabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_AlmInh" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Err" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Timer" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Severity" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Ack" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Shelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Unshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Test" DataType="BOOL" Value="0"/>
<DataValueMember Name="P_Alarm" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Cfg_CVNavTag" DataType="STRING_20" ExternalAccess="Read/Write">
<Description>
<![CDATA[Tagname for destination of CV Navigation button]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_20">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DATA" DataType="STRING_20" Radix="ASCII">
<![CDATA[]]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Cfg_PVNavTag" DataType="STRING_20" ExternalAccess="Read/Write">
<Description>
<![CDATA[Tagname for destination of PV Navigation button]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_20">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DATA" DataType="STRING_20" Radix="ASCII">
<![CDATA[]]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Cfg_CascSPNavTag" DataType="STRING_20" ExternalAccess="Read/Write">
<Description>
<![CDATA[Tagname for destination of Cascade SP Navigation button]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_20">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="DATA" DataType="STRING_20" Radix="ASCII">
<![CDATA[]]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Inf_Lib" DataType="STRING_12" ExternalAccess="Read Only">
<Description>
<![CDATA[Display Library for Faceplate call-up]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[6,'RA-BAS$00$00$00$00$00$00']]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="STRING_12">
<DataValueMember Name="LEN" DataType="DINT" Radix="Decimal" Value="6"/>
<DataValueMember Name="DATA" DataType="STRING_12" Radix="ASCII">
<![CDATA['RA-BAS']]>
</DataValueMember>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_Autotune" DataType="PIDE_AUTOTUNE" ExternalAccess="Read/Write">
<Description>
<![CDATA[Autotune tag associated with built-in PID algorithm]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[0,0,0.00000000e+000,0.00000000e+000,0.00000000e+000,0,0,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0]]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="PIDE_AUTOTUNE">
<DataValueMember Name="ProcessType" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="ResponseSpeed" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="TestLength" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="PVTuneLimit" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="StepSize" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="TunedGood" DataType="BOOL" Value="0"/>
<DataValueMember Name="TunedUncertain" DataType="BOOL" Value="0"/>
<DataValueMember Name="ATuneAcquired" DataType="BOOL" Value="0"/>
<DataValueMember Name="UsedProcessType" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Gain" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="TimeConstant" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="DeadTime" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="PGainTunedFast" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="IGainTunedFast" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="DGainTunedFast" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="PGainTunedMed" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="IGainTunedMed" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="DGainTunedMed" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="PGainTunedSlow" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="IGainTunedSlow" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="DGainTunedSlow" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="StepSizeUsed" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="AtuneStatus" DataType="DINT" Radix="Hex" Value="16#0000_0000"/>
<DataValueMember Name="ATuneFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVOutOfLimit" DataType="BOOL" Value="0"/>
<DataValueMember Name="ModeInv" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVWindupFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="StepSizeZero" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVLimitsFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVInitFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="EUSpanChanged" DataType="BOOL" Value="0"/>
<DataValueMember Name="CVChanged" DataType="BOOL" Value="0"/>
<DataValueMember Name="ATuneTimedOut" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVNotSettled" DataType="BOOL" Value="0"/>
<DataValueMember Name="PVChangeTooSmall" DataType="BOOL" Value="0"/>
<DataValueMember Name="StepSizeTooSmall" DataType="BOOL" Value="0"/>
<DataValueMember Name="GainTooLarge" DataType="BOOL" Value="0"/>
<DataValueMember Name="GainTooSmall" DataType="BOOL" Value="0"/>
<DataValueMember Name="LongDeadTime" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="Wrk_PIDE_only" DataType="P_PIDE_only" ExternalAccess="None">
<Description>
<![CDATA[Backing tag for AOI containing PIDE (with optional autotune)]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[[1]]]>
</DefaultData>
<DefaultData Format="Decorated">
<Structure DataType="P_PIDE_only">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="0"/>
</Structure>
</DefaultData>
</LocalTag>
<LocalTag Name="HMI_HasAutotune" DataType="BOOL" Radix="Decimal" ExternalAccess="Read Only">
<Description>
<![CDATA[1=P_PIDE_Only AOI has been modified to include Autotune par. on PIDE block]]>
</Description>
<DefaultData Format="L5K">
<![CDATA[0]]>
</DefaultData>
<DefaultData Format="Decorated">
<DataValue DataType="BOOL" Radix="Decimal" Value="0"/>
</DefaultData>
</LocalTag>
</LocalTags>
<Routines>
<Routine Name="EnableInFalse" Type="RLL">
<Description>
<![CDATA[Disabled is asserted, output is set to configured Interlock CV, alarms are disabled]]>
</Description>
<RLLContent>
<Labels/>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[============================================================
OFF-SCAN (EnableIn is False) STATUS
============================================================
If this device is OFF-SCAN (rung is false or EnableIn is false in FBD), then:
Handle "NO MODE" Selection using the standard P_Mode AOI (EnableInFalse Routine, false scan required!).
NOTE: IN ORDER TO AVOID USING AN "AFI" (which will generate a routine verify warning),
THIS RUNG USES AN XIC of Cfg_PCmdClear, followed by an XIO of the SAME BIT
to ensure P_Mode is SCANNED FALSE ("NO MODE").
THIS IS NOT DEAD CODE AND MUST APPEAR EXACTLY AS SHOWN FOR PROPER OPERATION!]]>
</Comment>
<Text>
<![CDATA[XIC(Cfg_PCmdClear)XIO(Cfg_PCmdClear)P_Mode(Mode);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Comment>
<![CDATA[First-Come First-Served Ownership Arbitration still needs to happen, even when device is disabled.
If a requestor supplies a non-zero Owner ID and the current owner is NONE (zero),
Ownership is assigned to the requesting ID. When that requestor sets the Owner ID back
to zero, Ownership is relinquished back to NONE.]]>
</Comment>
<Text>
<![CDATA[[EQU(PSet_Owner,0) ,EQU(Val_Owner,0) ]MOV(PSet_Owner,Val_Owner);]]>
</Text>
</Rung>
<Rung Number="2" Type="N">
<Comment>
<![CDATA[If this PID Instruction is OFF-SCAN (rung is false or EnableIn is false in FBD), then:
Clear the Alarms
Show the PID as "Disabled"
Set the Output to the configured ("safe") Interlock CV value.
(In simulation, Out_CV is set to zero.)
Other data are left in Last State!
##### V3.0-05 2014-02-28: Added Fail alarm to bits cleared #####
##### V3.1-00 2014-07-02: Added Not Ready reason bits (Nrdy_xxx), #####
##### fixed handling of reverse-scaled CVEU. #####]]>
</Comment>
<Text>
<![CDATA[[OTU(Alm_HiHiDev) OTU(Alm_HiDev) OTU(Alm_LoDev) OTU(Alm_LoLoDev) OTU(Alm_IntlkTrip) OTU(Alm_Fail) ,OTL(Sts_Disabled) OTL(Sts_NotRdy) OTU(Sts_Available) OTL(Sts_AlmInh) OTU(Sts_MaintByp) OTU(Sts_Active) ,OTL(Nrdy_NoMode) OTU(Nrdy_Disabled) OTU(Nrdy_CfgErr) OTU(Nrdy_Intlk) OTU(Nrdy_IOFault) OTU(Nrdy_Init) ,EQU(Cfg_CVEUMax,Cfg_CVEUMin) OTE(Err_CVEU) OTE(Sts_Err) ,XIO(Err_CVEU) MOV(Cfg_IntlkCV,Val_CVOut) CPT(Out_CV,Val_CVOut/100.0*(Cfg_CVEUMax-Cfg_CVEUMin)+Cfg_CVEUMin) ,XIC(Err_CVEU) CLR(Out_CV) ];]]>
</Text>
</Rung>
<Rung Number="3" Type="N">
<Comment>
<![CDATA[This rung publishes the PV and the Values for the scaled range.
If this instruction is reverse scaled by reversing the scaled (EU) min and max configurations,
the values are swapped so the the EUMax Value is always greater than the EUMin Value.
This makes the HMI bargraph and trend coding easier, and provides values
that can be pinned to the EU configuration of an upstream block.]]>
</Comment>
<Text>
<![CDATA[[GEQ(Cfg_PVEUMax,Cfg_PVEUMin) MOV(Cfg_PVEUMin,Val_PVEUMin) MOV(Cfg_PVEUMax,Val_PVEUMax) ,LES(Cfg_PVEUMax,Cfg_PVEUMin) MOV(Cfg_PVEUMin,Val_PVEUMax) MOV(Cfg_PVEUMax,Val_PVEUMin) ,COP(Inp_PV,Val_PV,1) ];]]>
</Text>
</Rung>
<Rung Number="4" Type="N">
<Comment>
<![CDATA[Show enumerated Status as "Disabled".
Show enumerated Fault as "None" (alarms disabled).
Show enumerated State as "At Interlock CV".
Alarms are turned off when off-scan, so clear the Notification Level.]]>
</Comment>
<Text>
<![CDATA[MOV(33,Val_Sts)CLR(Val_Fault)MOV(13,Val_State)CLR(Val_Notify);]]>
</Text>
</Rung>
<Rung Number="5" Type="N">
<Comment>
<![CDATA[Source and Quality for primary values / status (SrcQ)
0 = Good: live, confirmed good; 1 = Good: live, assumed good;
2 = Good: no feedback, assumed good; 8 = Test: Simulated; 9 = Test: Loopback;
10 = Test: Manually Entered; 16 = Uncertain: Live, off-spec;
17 = Uncertain, Substituted at Device / Bus; 18 = Uncertain, Substituted at AOI;
19 = Uncertain, using last known good; 20 = Uncertain, using replacement value;
32 = Bad, Signal Failure; 33 = Bad, Channel Fault;
34 = Bad, Module / Comms Fault; 35 = Bad, Invalid Configuration
##### V3.1-00 2014-06-06: Added rung for Source/Quality enumerations. #####]]>
</Comment>
<Text>
<![CDATA[[MOV(Inp_PVSrcQ,Wrk_SrcQ) ,XIC(Inp_PVUncertain) LES(Wrk_SrcQ,16) MOV(16,Wrk_SrcQ) ,XIC(Inp_PVBad) LES(Wrk_SrcQ,32) MOV(34,Wrk_SrcQ) ,MOV(Wrk_SrcQ,SrcQ_IO) ];]]>
</Text>
</Rung>
<Rung Number="6" Type="N">
<Comment>
<![CDATA[Source and Quality for primary values / status (SrcQ)
0 = Good: live, confirmed good; 1 = Good: live, assumed good;
2 = Good: no feedback, assumed good; 8 = Test: Simulated; 9 = Test: Loopback;
10 = Test: Manually Entered; 16 = Uncertain: Live, off-spec;
17 = Uncertain, Substituted at Device / Bus; 18 = Uncertain, Substituted at AOI;
19 = Uncertain, using last known good; 20 = Uncertain, using replacement value;
32 = Bad, Signal Failure; 33 = Bad, Channel Fault;
34 = Bad, Module / Comms Fault; 35 = Bad, Invalid Configuration
##### V3.1-00 2014-06-06: Added rung for Source/Quality enumerations. #####]]>
</Comment>
<Text>
<![CDATA[MOV(20,SrcQ);]]>
</Text>
</Rung>
<Rung Number="7" Type="N">
<Comment>
<![CDATA["Lurking" Program Commands are cleared if they are set as "Edge" triggered
(cleared by this object as received).
(Lurking Acknowledge Commands are left to perform their action.)
##### V3.0-05 2014-02-28: Added Fail alarm to bits cleared #####]]>
</Comment>
<Text>
<![CDATA[XIC(Cfg_PCmdClear)[OTU(PCmd_Casc) OTU(PCmd_Auto) OTU(PCmd_Man) ,OTU(PCmd_Acq) OTU(PCmd_Rel) OTU(PCmd_Lock) OTU(PCmd_Unlock) ,OTU(PCmd_HiHiDevSuppress) OTU(PCmd_HiHiDevUnsuppress) OTU(PCmd_HiDevSuppress) OTU(PCmd_HiDevUnsuppress) ,OTU(PCmd_LoDevSuppress) OTU(PCmd_LoDevUnsuppress) OTU(PCmd_LoLoDevSuppress) OTU(PCmd_LoLoDevUnsuppress) ,OTU(PCmd_IntlkTripSuppress) OTU(PCmd_IntlkTripUnsuppress) OTU(PCmd_FailSuppress) OTU(PCmd_FailUnsuppress) ];]]>
</Text>
</Rung>
<Rung Number="8" Type="N">
<Comment>
<![CDATA["Lurking" Operator Commands are cleared, as well as a Program Reset.]]>
</Comment>
<Text>
<![CDATA[[OTU(OCmd_Casc) OTU(OCmd_Auto) OTU(OCmd_Man) ,OTU(OCmd_Bypass) OTU(OCmd_Check) OTU(MCmd_Disable) OTU(MCmd_Enable) ,OTU(OCmd_Reset) OTU(OCmd_ResetAckAll) OTU(PCmd_Reset) ];]]>
</Text>
</Rung>
<Rung Number="9" Type="N">
<Comment>
<![CDATA[The Override Command is set to NONE.]]>
</Comment>
<Text>
<![CDATA[CLR(Inp_OvrdCmd);]]>
</Text>
</Rung>
<Rung Number="10" Type="N">
<Comment>
<![CDATA[Since we're not processing Operator Commands or Settings, we're not READY for any of them either!]]>
</Comment>
<Text>
<![CDATA[[OTU(Rdy_Casc) OTU(Rdy_Auto) OTU(Rdy_Man) ,OTU(Rdy_Bypass) OTU(Rdy_Check) ,OTU(Rdy_Disable) OTU(Rdy_Enable) OTU(Rdy_Reset) OTU(Rdy_ResetAckAll) ,OTU(Rdy_Ratio) OTU(Rdy_SP) OTU(Rdy_CV) OTU(Rdy_OSet) ];]]>
</Text>
</Rung>
</RLLContent>
</Routine>
<Routine Name="Logic" Type="ST">
<Description>
<![CDATA[Normal Scan: control PID Loop]]>
</Description>
<STContent>
<Line Number="0">
<![CDATA[// Copyright © Rockwell Automation, Inc. All Rights Reserved.]]>
</Line>
<Line Number="1">
<![CDATA[//================================================================]]>
</Line>
<Line Number="2">
<![CDATA[// P_PIDE : PROCESS -- PROPORTIONAL + INTEGRAL + DERIVATIVE]]>
</Line>
<Line Number="3">
<![CDATA[//================================================================]]>
</Line>
<Line Number="4">
<![CDATA[// Revision 3.5-02 Release 2016-03-22: See V3.5-xx Release Notes for details.]]>
</Line>
<Line Number="5">
<![CDATA[// V3.0 Revsion History archived.]]>
</Line>
<Line Number="6">
<![CDATA[// V3.1-00 2014-07-11: Modified to use P_Alarm, P_Mode 3.1; added]]>
</Line>
<Line Number="7">
<![CDATA[// Sts_InstrFaults1, Sts_InstrFaults2; fixed enumerations; added Not]]>
</Line>
<Line Number="8">
<![CDATA[// Ready reason bits (Nrdy_Xxxxx) and Source/Quality (SrcQ) enums,]]>
</Line>
<Line Number="9">
<![CDATA[// fixed handling of Val_CVSet, reverse-scaled CVEU.]]>
</Line>
<Line Number="10">
<![CDATA[// V3.1-01 2014-09-03: Using P_Alarm, P_Gate, P_Mode 3.1-01. Using]]>
</Line>
<Line Number="11">
<![CDATA[// Inp_PVSrcQ uncertain range OR Inp_PVUncertain.]]>
</Line>
<Line Number="12">
<![CDATA[// V3.1-02 2014-09-30: Unchanged, but using P_Alarm V3.1-02.]]>
</Line>
<Line Number="13">
<![CDATA[// V3.1-04 Patch01 2015-09-25: Modified CV Rate Limiting in Manual; drive Loop Mode to]]>
</Line>
<Line Number="14">
<![CDATA[// Manual on Init (if Cfg'ed), PVBad, CVBad; modified recovery from CVIOFault (1-->0).]]>
</Line>
<Line Number="15">
<![CDATA[// V3.1-05 2016-01-22: Unchanged, but using P_Gate V3.1-05.]]>
</Line>
<Line Number="16">
<![CDATA[// V3.5-01 2016-01-29: Unchanged, using P_Alarm, P_Gate V3.5-01.]]>
</Line>
<Line Number="17">
<![CDATA[// V3.5-02 2016-03-22: Ensure Inp_PVSrcQ >= 32 triggers Manual Loop Mode]]>
</Line>
<Line Number="18">
<![CDATA[// (like Inp_PVBad). Copy CV to CVOper when loop is in init.]]>
</Line>
<Line Number="19">
<![CDATA[//================================================================]]>
</Line>
<Line Number="20">
<![CDATA[//This Instruction is used to provide PID (Proportional + Integral]]>
</Line>
<Line Number="21">
<![CDATA[// + Derivative) feedback loop control and provides:]]>
</Line>
<Line Number="22">
<![CDATA[//* Program and Operator entry of Auto loop mode Setpoint in Engineering Units (PVEU)]]>
</Line>
<Line Number="23">
<![CDATA[//* Program and Operator entry of Manual loop mode Controlled Variable (CV%)]]>
</Line>
<Line Number="24">
<![CDATA[//* Clamping (in EU) of Setpoint at specified limits]]>
</Line>
<Line Number="25">
<![CDATA[//* Clamping (in %) and ramping (in %/sec) of CV at specified limits]]>
</Line>
<Line Number="26">
<![CDATA[//* Scaling of Output CV from Percent to Engineering Units for I/O card]]>
</Line>
<Line Number="27">
<![CDATA[//* Reverse or Direct control action]]>
</Line>
<Line Number="28">
<![CDATA[//* Feedforward (FF) input]]>
</Line>
<Line Number="29">
<![CDATA[//* Velocity (difference) PID form with inputs for "Previous" CV and FF]]>
</Line>
<Line Number="30">
<![CDATA[//* Option for Derivative action based on change in Error or change in PV]]>
</Line>
<Line Number="31">
<![CDATA[//* Option for Proportional action based on Error or PV]]>
</Line>
<Line Number="32">
<![CDATA[//* Monitoring of Interlock which causes CV to shed]]>
</Line>
<Line Number="33">
<![CDATA[//* Monitoring of I/O communication faults]]>
</Line>
<Line Number="34">
<![CDATA[//* Alarms for Interlock Trip, High-High Deviation, High Deviation, Low Deviation,]]>
</Line>
<Line Number="35">
<![CDATA[// and Low-Low Deviation from Setpoint]]>
</Line>
<Line Number="36">
<![CDATA[//* Operation in Hand, Maintenance, Override, Program and Operator ownership Modes]]>
</Line>
<Line Number="37">
<![CDATA[//* Full loop mode control (Cascade, Auto, Manual, Normal) available in Override Mode]]>
</Line>
<Line Number="38">
<![CDATA[//* "Available" status for use by automation logic to know whether loop]]>
</Line>
<Line Number="39">
<![CDATA[// can be controlled in Program Mode by other objects.]]>
</Line>
<Line Number="40">
<![CDATA[//]]>
</Line>
<Line Number="41">
<![CDATA[//Modes (ownership) are provided by a P_Mode Add-On Instruction instance.]]>
</Line>
<Line Number="42">
<![CDATA[//Alarms are provided by P_Alarm Add-On Instruction instances.]]>
</Line>
<Line Number="43">
<![CDATA[]]>
</Line>
<Line Number="44">
<![CDATA[// Mode and Ownership Processing]]>
</Line>
<Line Number="45">
<![CDATA[P_Mode(Mode);]]>
</Line>
<Line Number="46">
<![CDATA[IF ((PSet_Owner=0) OR (Val_Owner=0)) THEN]]>
</Line>
<Line Number="47">
<![CDATA[ Val_Owner := PSet_Owner;]]>
</Line>
<Line Number="48">
<![CDATA[END_IF;]]>
</Line>
<Line Number="49">
<![CDATA[]]>
</Line>
<Line Number="50">
<![CDATA[// Configuration Checks]]>
</Line>
<Line Number="51">
<![CDATA[IF ((Cfg_PGain < 0.0) OR (Cfg_PGain > 3.4E38)) THEN Cfg_PGain := 0.0; END_IF;]]>
</Line>
<Line Number="52">
<![CDATA[IF ((Cfg_IGain < 0.0) OR (Cfg_IGain > 3.4E38)) THEN Cfg_IGain := 0.0; END_IF;]]>
</Line>
<Line Number="53">
<![CDATA[IF ((Cfg_DGain < 0.0) OR (Cfg_DGain > 3.4E38)) THEN Cfg_DGain := 0.0; END_IF;]]>
</Line>
<Line Number="54">
<![CDATA[IF ((Cfg_ZCDB < 0.0) OR (Cfg_ZCDB > 3.4E38)) THEN Cfg_ZCDB := 0.0; END_IF;]]>
</Line>
<Line Number="55">
<![CDATA[// ##### V3.0-05: Fixed IntlkCV range check.]]>
</Line>
<Line Number="56">
<![CDATA[IF (Cfg_IntlkCV < 0.0) THEN Cfg_IntlkCV := 0.0; END_IF;]]>
</Line>
<Line Number="57">
<![CDATA[IF (Cfg_IntlkCV > 100.0) THEN Cfg_IntlkCV := 100.0; END_IF;]]>
</Line>
<Line Number="58">
<![CDATA[IF (Cfg_CVRoCLim < 0.0) THEN Cfg_CVRoCLim := 0.0; END_IF;]]>
</Line>
<Line Number="59">
<![CDATA[IF (Cfg_DevDB < 0.0) THEN Cfg_DevDB := 0.0; END_IF;]]>
</Line>
<Line Number="60">
<![CDATA[]]>
</Line>
<Line Number="61">
<![CDATA[// Device Disable / Enable Commands]]>
</Line>
<Line Number="62">
<![CDATA[IF (MCmd_Disable) THEN]]>
</Line>
<Line Number="63">
<![CDATA[ MCmd_Disable := 0;]]>
</Line>
<Line Number="64">
<![CDATA[ IF (Mode.Rdy_MRel) THEN]]>
</Line>
<Line Number="65">
<![CDATA[ Wrk_Disabled := 1;]]>
</Line>
<Line Number="66">
<![CDATA[ END_IF;]]>
</Line>
<Line Number="67">
<![CDATA[END_IF;]]>
</Line>
<Line Number="68">
<![CDATA[IF (MCmd_Enable) THEN]]>
</Line>
<Line Number="69">
<![CDATA[ MCmd_Enable := 0;]]>
</Line>
<Line Number="70">
<![CDATA[ IF (Mode.Rdy_MRel) THEN]]>
</Line>
<Line Number="71">
<![CDATA[ Wrk_Disabled := 0;]]>
</Line>
<Line Number="72">
<![CDATA[ END_IF;]]>
</Line>
<Line Number="73">
<![CDATA[END_IF;]]>
</Line>
<Line Number="74">
<![CDATA[Sts_Disabled := Wrk_Disabled;]]>
</Line>
<Line Number="75">
<![CDATA[// ##### V3.1-00: Added Not Ready reason bits (Nrdy_xxx)]]>
</Line>
<Line Number="76">
<![CDATA[Nrdy_Disabled := Sts_Disabled;]]>
</Line>
<Line Number="77">
<![CDATA[Rdy_Disable := Mode.Rdy_MRel AND NOT Wrk_Disabled;]]>
</Line>
<Line Number="78">
<![CDATA[Rdy_Enable := Mode.Rdy_MRel AND Wrk_Disabled;]]>
</Line>
<Line Number="79">
<![CDATA[]]>
</Line>
<Line Number="80">
<![CDATA[// Interlock Bypass / Check Commands]]>
</Line>
<Line Number="81">
<![CDATA[IF (OCmd_Bypass) THEN]]>
</Line>
<Line Number="82">
<![CDATA[ OCmd_Bypass := 0;]]>
</Line>
<Line Number="83">
<![CDATA[ Wrk_Bypass := 1;]]>
</Line>
<Line Number="84">
<![CDATA[END_IF;]]>
</Line>
<Line Number="85">
<![CDATA[IF (OCmd_Check) THEN]]>
</Line>
<Line Number="86">
<![CDATA[ OCmd_Check := 0;]]>
</Line>
<Line Number="87">
<![CDATA[ Wrk_Bypass := 0;]]>
</Line>
<Line Number="88">
<![CDATA[END_IF;]]>
</Line>
<Line Number="89">
<![CDATA[Sts_Bypass := Wrk_Bypass;]]>
</Line>
<Line Number="90">
<![CDATA[Sts_BypActive := Sts_Bypass OR Mode.Sts_Maint OR (Mode.Sts_Ovrd AND Cfg_OvrdIntlk);]]>
</Line>
<Line Number="91">
<![CDATA[Sts_MaintByp := Sts_Bypass;]]>
</Line>
<Line Number="92">
<![CDATA[Rdy_Bypass := NOT Wrk_Bypass;]]>
</Line>
<Line Number="93">
<![CDATA[Rdy_Check := Wrk_Bypass;]]>
</Line>
<Line Number="94">
<![CDATA[]]>
</Line>
<Line Number="95">
<![CDATA[// Alarm Reset Commands]]>
</Line>
<Line Number="96">
<![CDATA[Wrk_Reset := Inp_Reset;]]>
</Line>
<Line Number="97">
<![CDATA[If (OCmd_Reset) THEN]]>
</Line>
<Line Number="98">
<![CDATA[ OCmd_Reset := 0;]]>
</Line>
<Line Number="99">
<![CDATA[ Wrk_Reset := 1;]]>
</Line>
<Line Number="100">
<![CDATA[END_IF;]]>
</Line>
<Line Number="101">
<![CDATA[IF (OCmd_ResetAckAll) THEN]]>
</Line>
<Line Number="102">
<![CDATA[ OCmd_ResetAckAll := 0;]]>
</Line>
<Line Number="103">
<![CDATA[ Wrk_Reset := 1;]]>
</Line>
<Line Number="104">
<![CDATA[ HiHiDev.PCmd_Ack := 1;]]>
</Line>
<Line Number="105">
<![CDATA[ HiDev.PCmd_Ack := 1;]]>
</Line>
<Line Number="106">
<![CDATA[ LoDev.PCmd_Ack := 1;]]>
</Line>
<Line Number="107">
<![CDATA[ LoLoDev.PCmd_Ack := 1;]]>
</Line>
<Line Number="108">
<![CDATA[ IntlkTrip.PCmd_Ack := 1;]]>
</Line>
<Line Number="109">
<![CDATA[// ##### V3.0-03: Added next line.]]>
</Line>
<Line Number="110">
<![CDATA[ Fail.PCmd_Ack := 1;]]>
</Line>
<Line Number="111">
<![CDATA[END_IF;]]>
</Line>
<Line Number="112">
<![CDATA[IF (PCmd_Reset) THEN]]>
</Line>
<Line Number="113">
<![CDATA[ IF (Cfg_PCmdClear) THEN PCmd_Reset := 0; END_IF;]]>
</Line>
<Line Number="114">
<![CDATA[ Wrk_Reset := 1;]]>
</Line>
<Line Number="115">
<![CDATA[END_IF;]]>
</Line>
<Line Number="116">
<![CDATA[IF (Wrk_Reset) THEN]]>
</Line>
<Line Number="117">
<![CDATA[ HiHiDev.PCmd_Reset := 1;]]>
</Line>
<Line Number="118">
<![CDATA[ HiDev.PCmd_Reset := 1;]]>
</Line>
<Line Number="119">
<![CDATA[ LoDev.PCmd_Reset := 1;]]>
</Line>
<Line Number="120">
<![CDATA[ LoLoDev.PCmd_Reset := 1;]]>
</Line>
<Line Number="121">
<![CDATA[ IntlkTrip.PCmd_Reset := 1;]]>
</Line>
<Line Number="122">
<![CDATA[// ##### V3.0-03: Added next line, removed reset of Nrdy_Intlk.]]>
</Line>
<Line Number="123">
<![CDATA[ Fail.PCmd_Reset := 1;]]>
</Line>
<Line Number="124">
<![CDATA[END_IF;]]>
</Line>
<Line Number="125">
<![CDATA[]]>
</Line>
<Line Number="126">
<![CDATA[// Interlock Handling]]>
</Line>
<Line Number="127">
<![CDATA[Wrk_IntlkOK := Inp_NBIntlkOK AND (Inp_IntlkOK OR Sts_BypActive);]]>
</Line>
<Line Number="128">
<![CDATA[// ##### V3.0-03: Modified to clear Nrdy_Intlk when Intlk OK.]]>
</Line>
<Line Number="129">
<![CDATA[IF ((NOT Wrk_IntlkOK) AND (NOT Nrdy_Intlk)) THEN]]>
</Line>
<Line Number="130">
<![CDATA[ Sts_IntlkTrip := 1;]]>
</Line>
<Line Number="131">
<![CDATA[ Nrdy_Intlk := 1;]]>
</Line>
<Line Number="132">
<![CDATA[END_IF;]]>
</Line>
<Line Number="133">
<![CDATA[IF (Wrk_IntlkOK) THEN]]>
</Line>
<Line Number="134">
<![CDATA[ Sts_IntlkTrip := 0;]]>
</Line>
<Line Number="135">
<![CDATA[ Nrdy_Intlk := 0;]]>
</Line>
<Line Number="136">
<![CDATA[END_IF;]]>
</Line>
<Line Number="137">
<![CDATA[]]>
</Line>
<Line Number="138">
<![CDATA[// Loop Mode Commands]]>
</Line>
<Line Number="139">
<![CDATA[Wrk_CascCmd := 0;]]>
</Line>
<Line Number="140">
<![CDATA[IF (OCmd_Casc) THEN]]>
</Line>
<Line Number="141">
<![CDATA[ OCmd_Casc := 0;]]>
</Line>
<Line Number="142">
<![CDATA[ IF (Mode.Sts_Oper OR Mode.Sts_Maint) THEN Wrk_CascCmd := 1; END_IF;]]>
</Line>
<Line Number="143">
<![CDATA[END_IF;]]>
</Line>
<Line Number="144">
<![CDATA[IF (PCmd_Casc) THEN]]>
</Line>
<Line Number="145">
<![CDATA[ IF (Cfg_PCmdClear) THEN PCmd_Casc := 0; END_IF;]]>
</Line>
<Line Number="146">
<![CDATA[ IF (Mode.Sts_Prog) THEN Wrk_CascCmd := 1; END_IF;]]>
</Line>
<Line Number="147">
<![CDATA[END_IF;]]>
</Line>
<Line Number="148">
<![CDATA[IF ((Inp_OvrdCmd = 3) AND Mode.Sts_Ovrd) THEN Wrk_CascCmd := 1; END_IF;]]>
</Line>
<Line Number="149">
<![CDATA[]]>
</Line>
<Line Number="150">
<![CDATA[Wrk_AutoCmd := 0;]]>
</Line>
<Line Number="151">
<![CDATA[IF (OCmd_Auto) THEN]]>
</Line>
<Line Number="152">
<![CDATA[ OCmd_Auto := 0;]]>
</Line>
<Line Number="153">
<![CDATA[ IF (Mode.Sts_Oper OR Mode.Sts_Maint) THEN Wrk_AutoCmd := 1; END_IF;]]>
</Line>
<Line Number="154">
<![CDATA[END_IF;]]>
</Line>
<Line Number="155">
<![CDATA[IF (PCmd_Auto) THEN]]>
</Line>
<Line Number="156">
<![CDATA[ IF (Cfg_PCmdClear) THEN PCmd_Auto := 0; END_IF;]]>
</Line>
<Line Number="157">
<![CDATA[ IF (Mode.Sts_Prog) THEN Wrk_AutoCmd := 1; END_IF;]]>
</Line>
<Line Number="158">
<![CDATA[END_IF;]]>
</Line>
<Line Number="159">
<![CDATA[IF ((Inp_OvrdCmd = 2) AND Mode.Sts_Ovrd) THEN Wrk_AutoCmd := 1; END_IF;]]>
</Line>
<Line Number="160">
<![CDATA[]]>
</Line>
<Line Number="161">
<![CDATA[Wrk_ManCmd := 0;]]>
</Line>
<Line Number="162">
<![CDATA[IF (OCmd_Man) THEN]]>
</Line>
<Line Number="163">
<![CDATA[ OCmd_Man := 0;]]>
</Line>
<Line Number="164">
<![CDATA[ IF (Mode.Sts_Oper or Mode.Sts_Maint) THEN Wrk_ManCmd := 1; END_IF;]]>
</Line>
<Line Number="165">
<![CDATA[END_IF;]]>
</Line>
<Line Number="166">
<![CDATA[IF (PCmd_Man) THEN]]>
</Line>
<Line Number="167">
<![CDATA[ IF (Cfg_PCmdClear) THEN PCmd_Man := 0; END_IF;]]>
</Line>
<Line Number="168">
<![CDATA[ IF (Mode.Sts_Prog) THEN Wrk_ManCmd := 1; END_IF;]]>
</Line>
<Line Number="169">
<![CDATA[END_IF;]]>
</Line>
<Line Number="170">
<![CDATA[IF ((NOT PCmd_Casc) AND (NOT PCmd_Auto) AND (NOT Cfg_PCmdClear) AND Mode.Sts_Prog) THEN Wrk_ManCmd := 1; END_IF;]]>
</Line>
<Line Number="171">
<![CDATA[IF ((Inp_OvrdCmd = 1) AND Mode.Sts_Ovrd) THEN Wrk_ManCmd := 1; END_IF;]]>
</Line>
<Line Number="172">
<![CDATA[]]>
</Line>
<Line Number="173">
<![CDATA[IF (Wrk_CascCmd AND Cfg_HasCasc) THEN]]>
</Line>
<Line Number="174">
<![CDATA[ Wrk_Casc := 1;]]>
</Line>
<Line Number="175">
<![CDATA[ Wrk_Auto := 0;]]>
</Line>
<Line Number="176">
<![CDATA[ Wrk_Man := 0;]]>
</Line>
<Line Number="177">
<![CDATA[END_IF;]]>
</Line>
<Line Number="178">
<![CDATA[IF (Wrk_AutoCmd) THEN]]>
</Line>
<Line Number="179">
<![CDATA[ Wrk_Casc := 0;]]>
</Line>
<Line Number="180">
<![CDATA[ Wrk_Auto := 1;]]>
</Line>
<Line Number="181">
<![CDATA[ Wrk_Man := 0;]]>
</Line>
<Line Number="182">
<![CDATA[END_IF;]]>
</Line>
<Line Number="183">
<![CDATA[IF (Wrk_ManCmd) THEN]]>
</Line>
<Line Number="184">
<![CDATA[ Wrk_Casc := 0;]]>
</Line>
<Line Number="185">
<![CDATA[ Wrk_Auto := 0;]]>
</Line>
<Line Number="186">
<![CDATA[ Wrk_Man := 1;]]>
</Line>
<Line Number="187">
<![CDATA[END_IF;]]>
</Line>
<Line Number="188">
<![CDATA[]]>
</Line>
<Line Number="189">
<![CDATA[// ##### V3.0-07: Fixed Loop Mode Rdy_ bits.]]>
</Line>
<Line Number="190">
<![CDATA[IF (Mode.Sts_Oper OR Mode.Sts_Maint) THEN]]>
</Line>
<Line Number="191">
<![CDATA[ Rdy_Casc := 1; Rdy_Auto := 1; Rdy_Man := 1; ]]>
</Line>
<Line Number="192">
<![CDATA[ IF ((NOT Cfg_HasCasc) OR Wrk_Casc) THEN Rdy_Casc := 0; END_IF;]]>
</Line>
<Line Number="193">
<![CDATA[ IF (Wrk_Auto) THEN Rdy_Auto := 0; END_IF;]]>
</Line>
<Line Number="194">
<![CDATA[ IF (Wrk_Man) THEN Rdy_Man := 0; END_IF;]]>
</Line>
<Line Number="195">
<![CDATA[ELSE Rdy_Casc :=0; Rdy_Auto := 0; Rdy_Man := 0;]]>
</Line>
<Line Number="196">
<![CDATA[END_IF;]]>
</Line>
<Line Number="197">
<![CDATA[]]>
</Line>
<Line Number="198">
<![CDATA[// ##### V3.1-04 Patch01: Force Loop Mode to Manual on init (if config'ed), bad PV, or CV fault.]]>
</Line>
<Line Number="199">
<![CDATA[// ##### V3.5-02: Ensure same action on Inp_PVSrcQ >= 32 as on Inp_PVBad = 1]]>
</Line>
<Line Number="200">
<![CDATA[IF ((Inp_UseCVInitVal AND Cfg_InitToMan) OR Inp_PVBad OR (Inp_PVSrcQ >= 32) OR Inp_CVIOFault) THEN]]>
</Line>
<Line Number="201">
<![CDATA[ Rdy_Casc := 0; Rdy_Auto := 0; Rdy_Man := 0;]]>
</Line>
<Line Number="202">
<![CDATA[ Wrk_Casc := 0; Wrk_Auto := 0; Wrk_Man := 1;]]>
</Line>
<Line Number="203">
<![CDATA[END_IF;]]>
</Line>
<Line Number="204">
<![CDATA[]]>
</Line>
<Line Number="205">
<![CDATA[// Ratio Handling]]>
</Line>
<Line Number="206">
<![CDATA[Rdy_Ratio := (Cfg_HasRatio AND (NOT Err_RatioLim) AND ((NOT Cfg_SetTrack) OR Mode.Sts_Oper OR Mode.Sts_Maint OR Mode.Sts_Hand));]]>
</Line>
<Line Number="207">
<![CDATA[IF (Mode.Sts_Oper OR Mode.Sts_Maint) THEN Wrk_PIDE.RatioProg := OSet_Ratio; END_IF;]]>
</Line>
<Line Number="208">
<![CDATA[IF (Mode.Sts_Prog) THEN Wrk_PIDE.RatioProg := PSet_Ratio; END_IF;]]>
</Line>
<Line Number="209">
<![CDATA[IF (Mode.Sts_Ovrd) THEN Wrk_PIDE.RatioProg := Inp_OvrdRatio; END_IF;]]>
</Line>
<Line Number="210">
<![CDATA[]]>
</Line>
<Line Number="211">
<![CDATA[// Setpoint Setting]]>
</Line>
<Line Number="212">
<![CDATA[Rdy_SP := ((NOT Cfg_SetTrack) OR (Mode.Sts_Ovrd AND (NOT Cfg_SetTrackOvrdHand)) OR (((Mode.Sts_Oper OR Mode.Sts_Maint) OR Mode.Sts_Hand) AND (Wrk_Auto OR (Wrk_Man AND (NOT Cfg_PVTrack)))));]]>
</Line>
<Line Number="213">
<![CDATA[IF (Mode.Sts_Oper OR Mode.Sts_Maint) THEN Wrk_PIDE.SPProg := OSet_SP; END_IF;]]>
</Line>
<Line Number="214">
<![CDATA[IF (Mode.Sts_Prog) THEN Wrk_PIDE.SPProg := PSet_SP; END_IF;]]>
</Line>
<Line Number="215">
<![CDATA[IF (Mode.Sts_Ovrd) THEN Wrk_PIDE.SPProg := Inp_OvrdSP; END_IF;]]>
</Line>
<Line Number="216">
<![CDATA[]]>
</Line>
<Line Number="217">
<![CDATA[// CV Setting ##### V3.0-05: Allowance made for user adding Autotune function to sub-AOI.]]>
</Line>
<Line Number="218">
<![CDATA[// ##### V3.5-02: Cannot enter CVOper when loop is in init.]]>
</Line>
<Line Number="219">
<![CDATA[Rdy_CV := (NOT Inp_UseCVInitVal) AND ((NOT Cfg_SetTrack) OR ((Mode.Sts_Oper OR Mode.Sts_Maint) AND Sts_Man AND (NOT Wrk_PIDE.AtuneOn)) OR ((NOT Cfg_SetTrackOvrdHand) AND (Sts_Hand OR Sts_Ovrd)));]]>
</Line>
<Line Number="220">
<![CDATA[IF (NOT Wrk_PIDE.AtuneOn) THEN]]>
</Line>
<Line Number="221">
<![CDATA[ IF (Mode.Sts_Oper OR Mode.Sts_Maint) THEN Wrk_PIDE.CVProg := OSet_CV; END_IF;]]>
</Line>
<Line Number="222">
<![CDATA[ IF (Mode.Sts_Prog) THEN Wrk_PIDE.CVProg := PSet_CV; END_IF;]]>
</Line>
<Line Number="223">
<![CDATA[ IF (Mode.Sts_Ovrd) THEN Wrk_PIDE.CVProg := Inp_OvrdCV; END_IF;]]>
</Line>
<Line Number="224">
<![CDATA[END_IF;]]>
</Line>
<Line Number="225">
<![CDATA[]]>
</Line>
<Line Number="226">
<![CDATA[// Deviation Threshold Settings]]>
</Line>
<Line Number="227">
<![CDATA[Rdy_OSet := (NOT Cfg_SetTrack) OR Sts_Maint OR Sts_Hand OR Sts_Oper;]]>
</Line>
<Line Number="228">
<![CDATA[// ##### V3.0-02: Reversed sense of Lo, LoLo Deviation Limits.]]>
</Line>
<Line Number="229">
<![CDATA[IF (Mode.Sts_Oper OR Mode.Sts_Maint) THEN]]>
</Line>
<Line Number="230">
<![CDATA[ Wrk_PIDE.DevHHLimit := OSet_HiHiDevLim;]]>
</Line>
<Line Number="231">
<![CDATA[ Wrk_PIDE.DevHLimit := OSet_HiDevLim;]]>
</Line>
<Line Number="232">
<![CDATA[ Wrk_PIDE.DevLLimit := -OSet_LoDevLim;]]>
</Line>
<Line Number="233">
<![CDATA[ Wrk_PIDE.DevLLLimit := -OSet_LoLoDevLim;]]>
</Line>
<Line Number="234">
<![CDATA[END_IF;]]>
</Line>
<Line Number="235">
<![CDATA[IF (Mode.Sts_Prog) THEN]]>
</Line>
<Line Number="236">
<![CDATA[ Wrk_PIDE.DevHHLimit := PSet_HiHiDevLim;]]>
</Line>
<Line Number="237">
<![CDATA[ Wrk_PIDE.DevHLimit := PSet_HiDevLim;]]>
</Line>
<Line Number="238">
<![CDATA[ Wrk_PIDE.DevLLimit := -PSet_LoDevLim;]]>
</Line>
<Line Number="239">
<![CDATA[ Wrk_PIDE.DevLLLimit := -PSet_LoLoDevLim;]]>
</Line>
<Line Number="240">
<![CDATA[END_IF;]]>
</Line>
<Line Number="241">
<![CDATA[Val_LoDevLim := -Wrk_PIDE.DevLLimit;]]>
</Line>
<Line Number="242">
<![CDATA[Val_LoLoDevLim := -Wrk_PIDE.DevLLLimit;]]>
</Line>
<Line Number="243">
<![CDATA[]]>
</Line>
<Line Number="244">
<![CDATA[// Set up and execute PIDE]]>
</Line>
<Line Number="245">
<![CDATA[// ##### V3.1-00: Added line below to use input SrcQ.]]>
</Line>
<Line Number="246">
<![CDATA[Wrk_PIDE.PVFault := (Inp_PVBad OR (Inp_PVSrcQ >= 32));]]>
</Line>
<Line Number="247">
<![CDATA[// ##### V3.0-04: Added line below to ensure correct timing mode selected.]]>
</Line>
<Line Number="248">
<![CDATA[Wrk_PIDE.TimingMode := 0;]]>
</Line>
<Line Number="249">
<![CDATA[Wrk_PIDE.ProgValueReset := 1;]]>
</Line>
<Line Number="250">
<![CDATA[Wrk_PIDE.ProgOperReq := 0;]]>
</Line>
<Line Number="251">
<![CDATA[Wrk_PIDE.ProgProgReq := 1;]]>
</Line>
<Line Number="252">
<![CDATA[Wrk_PIDE.ProgCasRatReq := Wrk_Casc;]]>
</Line>
<Line Number="253">
<![CDATA[Wrk_PIDE.ProgAutoReq := Wrk_Auto;]]>
</Line>
<Line Number="254">
<![CDATA[Wrk_PIDE.ProgManualReq := Wrk_Man;]]>
</Line>
<Line Number="255">
<![CDATA[Wrk_PIDE.ProgOverrideReq := Nrdy_Intlk OR Sts_Disabled;]]>
</Line>
<Line Number="256">
<![CDATA[Wrk_PIDE.ProgHandReq := Mode.Sts_Hand;]]>
</Line>
<Line Number="257">
<![CDATA[Sts_IntlkCV := Wrk_PIDE.ProgOverrideReq;]]>
</Line>
<Line Number="258">
<![CDATA[]]>
</Line>
<Line Number="259">
<![CDATA[// ##### V3.0-06: check for existence of Autotune tag, ignore AtuneDataInv instruction fault.]]>
</Line>
<Line Number="260">
<![CDATA[UID();]]>
</Line>
<Line Number="261">
<![CDATA[P_PIDE_only(Wrk_PIDE_only,Wrk_PIDE,Wrk_Autotune);]]>
</Line>
<Line Number="262">
<![CDATA[// ##### V3.0-05: Added check for existence of Autotune tag.]]>
</Line>
<Line Number="263">
<![CDATA[// ##### V3.0-07: Fixed handling of Autotune Data Invalid flag.]]>
</Line>
<Line Number="264">
<![CDATA[IF (Wrk_Autotune.GainTooLarge AND Wrk_Autotune.GainTooSmall) THEN]]>
</Line>
<Line Number="265">
<![CDATA[ HMI_HasAutotune := 0;]]>
</Line>
<Line Number="266">
<![CDATA[ Wrk_PIDE.AtuneDataInv := 0;]]>
</Line>
<Line Number="267">
<![CDATA[END_IF;]]>
</Line>
<Line Number="268">
<![CDATA[IF (S:FS) THEN Wrk_PIDE.AtuneUnacquire := 1; END_IF;]]>
</Line>
<Line Number="269">
<![CDATA[// ##### V3.1-00: Added Sts_InstrFaults1 and Sts_InstrFaults2]]>
</Line>
<Line Number="270">
<![CDATA[Sts_InstrFaults1 := Wrk_PIDE.Status1 AND 16#3eff_eddf;]]>
</Line>
<Line Number="271">
<![CDATA[Sts_InstrFaults2 := Wrk_PIDE.Status2;]]>
</Line>
<Line Number="272">
<![CDATA[IF ((Sts_InstrFaults1 = 1) AND (Sts_InstrFaults2 = 0)) THEN]]>
</Line>
<Line Number="273">
<![CDATA[ Sts_InstrFaults1 := 0;]]>
</Line>
<Line Number="274">
<![CDATA[END_IF;]]>
</Line>
<Line Number="275">
<![CDATA[UIE();]]>
</Line>
<Line Number="276">
<![CDATA[]]>
</Line>
<Line Number="277">
<![CDATA[// Block Values]]>
</Line>
<Line Number="278">
<![CDATA[Val_PV := Wrk_PIDE.PV;]]>
</Line>
<Line Number="279">
<![CDATA[Val_Init := Wrk_PIDE.SP;]]>
</Line>
<Line Number="280">
<![CDATA[Val_SPSet := Wrk_PIDE.SP;]]>
</Line>
<Line Number="281">
<![CDATA[// ##### V3.1-00: Fixed handling of Val_CVSet.]]>
</Line>
<Line Number="282">
<![CDATA[// ##### V3.1-04 Patch01: Handling of Val_CVSet, Val_CVOut, settings tracking]]>
</Line>
<Line Number="283">
<![CDATA[Val_CVSet := Wrk_PIDE.CVProg;]]>
</Line>
<Line Number="284">
<![CDATA[IF (NOT Err_PVEU) THEN]]>
</Line>
<Line Number="285">
<![CDATA[ Val_PVEUMin := Cfg_PVEUMin;]]>
</Line>
<Line Number="286">
<![CDATA[ Val_PVEUMax := Cfg_PVEUMax;]]>
</Line>
<Line Number="287">
<![CDATA[END_IF;]]>
</Line>
<Line Number="288">
<![CDATA[// ##### V3.1-00: Fixed handling of reverse-scaled CVEU.]]>
</Line>
<Line Number="289">
<![CDATA[IF (NOT Err_CVEU) THEN]]>
</Line>
<Line Number="290">
<![CDATA[ IF (Cfg_CVEUMin < Cfg_CVEUMax) THEN]]>
</Line>
<Line Number="291">
<![CDATA[ Val_CVEUMin := Cfg_CVEUMin;]]>
</Line>
<Line Number="292">
<![CDATA[ Val_CVEUMax := Cfg_CVEUMax;]]>
</Line>
<Line Number="293">
<![CDATA[ ELSE]]>
</Line>
<Line Number="294">
<![CDATA[ Val_CVEUMin := Cfg_CVEUMax;]]>
</Line>
<Line Number="295">
<![CDATA[ Val_CVEUMax := Cfg_CVEUMin;]]>
</Line>
<Line Number="296">
<![CDATA[ END_IF;]]>
</Line>
<Line Number="297">
<![CDATA[END_IF;]]>
</Line>
<Line Number="298">
<![CDATA[]]>
</Line>
<Line Number="299">
<![CDATA[]]>
</Line>
<Line Number="300">
<![CDATA[// Block Status]]>
</Line>
<Line Number="301">
<![CDATA[// ##### V3.0-06 2014-04-04: Fixed mode indications when interlocked (removed from aliases)]]>
</Line>
<Line Number="302">
<![CDATA[Sts_Casc := Wrk_Casc;]]>
</Line>
<Line Number="303">
<![CDATA[Sts_Auto := Wrk_Auto;]]>
</Line>
<Line Number="304">
<![CDATA[Sts_Man := Wrk_Man;]]>
</Line>
<Line Number="305">
<![CDATA[Sts_RatioClamped := Wrk_PIDE.RatioHAlarm OR Wrk_PIDE.RatioLAlarm OR Wrk_PIDE.RatioProgInv;]]>
</Line>
<Line Number="306">
<![CDATA[// ##### V3.0-07: Restricted SP clamp indication based on Loop Mode]]>
</Line>
<Line Number="307">
<![CDATA[Sts_SPClamped := Wrk_PIDE.SPHAlarm OR Wrk_PIDE.SPLAlarm OR (Wrk_PIDE.SPProgInv AND NOT Sts_Casc) OR (Wrk_PIDE.SPCascadeInv and Sts_Casc);]]>
</Line>
<Line Number="308">
<![CDATA[Sts_CVClamped := Wrk_PIDE.CVHAlarm OR Wrk_PIDE.CVLAlarm OR Wrk_PIDE.CVROCAlarm OR Wrk_PIDE.CVProgInv OR Wrk_PIDE.CVOverrideInv;]]>
</Line>
<Line Number="309">
<![CDATA[Sts_HandFdbkBad := Wrk_PIDE.HandFBInv OR Wrk_PIDE.HandFBFaulted;]]>
</Line>
<Line Number="310">
<![CDATA[Sts_Active := (Val_CVOut > Cfg_MaxInactiveCV);]]>
</Line>
<Line Number="311">
<![CDATA[// ##### V3.1-00: Added Sts_InstrFaults1, Sts_InstrFaults2, fixed handling of reverse-scaled CVEU.]]>
</Line>
<Line Number="312">
<![CDATA[IF (Cfg_CVEUMax > Cfg_CVEUMin) THEN]]>
</Line>
<Line Number="313">
<![CDATA[ Sts_CVInitValBad := (Inp_CVInitVal > Cfg_CVEUMax) OR (Inp_CVInitVal < Cfg_CVEUMin);]]>
</Line>
<Line Number="314">
<![CDATA[ELSE]]>
</Line>
<Line Number="315">
<![CDATA[ Sts_CVInitValBad := (Inp_CVInitVal > Cfg_CVEUMin) OR (Inp_CVInitVal < Cfg_CVEUMax);]]>
</Line>
<Line Number="316">
<![CDATA[END_IF;]]>
</Line>
<Line Number="317">
<![CDATA[Sts_Fail := Sts_InstrFaults1.0;]]>
</Line>
<Line Number="318">
<![CDATA[// ##### V3.1-01: Check Inp_PVSrcQ for uncertain range.]]>
</Line>
<Line Number="319">
<![CDATA[Sts_PVUncertain := Inp_PVUncertain OR ((Inp_PVSrcQ >= 16) AND (Inp_PVSrcQ < 32));]]>
</Line>
<Line Number="320">
<![CDATA[]]>
</Line>
<Line Number="321">
<![CDATA[// Ratio Settings Tracking]]>
</Line>
<Line Number="322">
<![CDATA[IF ((Cfg_SetTrack AND (((NOT Mode.Sts_Ovrd) AND (NOT Mode.Sts_Hand)) OR Cfg_SetTrackOvrdHand)) OR (NOT Cfg_HasRatio) OR Err_RatioLim) THEN]]>
</Line>
<Line Number="323">
<![CDATA[ PSet_Ratio := Val_Ratio;]]>
</Line>
<Line Number="324">
<![CDATA[ OSet_Ratio := Val_Ratio;]]>
</Line>
<Line Number="325">
<![CDATA[ Inp_OvrdRatio := Val_Ratio;]]>
</Line>
<Line Number="326">
<![CDATA[ELSE]]>
</Line>
<Line Number="327">
<![CDATA[ IF (PSet_Ratio > Cfg_MaxRatio) THEN PSet_Ratio := Cfg_MaxRatio; END_IF;]]>
</Line>
<Line Number="328">
<![CDATA[ IF (PSet_Ratio < Cfg_MinRatio) THEN PSet_Ratio := Cfg_MinRatio; END_IF;]]>
</Line>
<Line Number="329">
<![CDATA[ IF (OSet_Ratio > Cfg_MaxRatio) THEN OSet_Ratio := Cfg_MaxRatio; END_IF;]]>
</Line>
<Line Number="330">
<![CDATA[ IF (OSet_Ratio < Cfg_MinRatio) THEN OSet_Ratio := Cfg_MinRatio; END_IF;]]>
</Line>
<Line Number="331">
<![CDATA[ IF (Inp_OvrdRatio > Cfg_MaxRatio) THEN Inp_OvrdRatio := Cfg_MaxRatio; END_IF;]]>
</Line>
<Line Number="332">
<![CDATA[ IF (Inp_OvrdRatio < Cfg_MinRatio) THEN Inp_OvrdRatio := Cfg_MinRatio; END_IF;]]>
</Line>
<Line Number="333">
<![CDATA[END_IF;]]>
</Line>
<Line Number="334">
<![CDATA[]]>
</Line>
<Line Number="335">
<![CDATA[// SP Settings Tracking]]>
</Line>
<Line Number="336">
<![CDATA[IF (Cfg_SetTrack AND (((NOT Mode.Sts_Ovrd) AND (NOT Mode.Sts_Hand)) OR Cfg_SetTrackOvrdHand OR Wrk_Casc OR (Cfg_PVTrack AND (NOT Wrk_Auto)))) THEN]]>
</Line>
<Line Number="337">
<![CDATA[ PSet_SP := Wrk_PIDE.SP;]]>
</Line>
<Line Number="338">
<![CDATA[ OSet_SP := Wrk_PIDE.SP;]]>
</Line>
<Line Number="339">
<![CDATA[ Inp_OvrdSP := Wrk_PIDE.SP;]]>
</Line>
<Line Number="340">
<![CDATA[ELSE]]>
</Line>
<Line Number="341">
<![CDATA[ IF (PSet_SP > Cfg_MaxSP) THEN PSet_SP := Cfg_MaxSP; END_IF;]]>
</Line>
<Line Number="342">
<![CDATA[ IF (PSet_SP < Cfg_MinSP) THEN PSet_SP := Cfg_MinSP; END_IF;]]>
</Line>
<Line Number="343">
<![CDATA[ IF (OSet_SP > Cfg_MaxSP) THEN OSet_SP := Cfg_MaxSP; END_IF;]]>
</Line>
<Line Number="344">
<![CDATA[ IF (OSet_SP < Cfg_MinSP) THEN OSet_SP := Cfg_MinSP; END_IF;]]>
</Line>
<Line Number="345">
<![CDATA[ IF (Inp_OvrdSP > Cfg_MaxSP) THEN Inp_OvrdSP := Cfg_MaxSP; END_IF;]]>
</Line>
<Line Number="346">
<![CDATA[ IF (Inp_OvrdSP < Cfg_MinSP) THEN Inp_OvrdSP := Cfg_MinSP; END_IF;]]>
</Line>
<Line Number="347">
<![CDATA[END_IF;]]>
</Line>
<Line Number="348">
<![CDATA[]]>
</Line>
<Line Number="349">
<![CDATA[// CV Settings Tracking]]>
</Line>
<Line Number="350">
<![CDATA[// ##### V3.0-05: Modified to block xSet_CV tracking while Autotune is ON.]]>
</Line>
<Line Number="351">
<![CDATA[// ##### V3.1-04 Patch01: Handling of Val_CVSet, Val_CVOut, settings tracking]]>
</Line>
<Line Number="352">
<![CDATA[IF (Cfg_SetTrack AND (NOT Wrk_PIDE.AtuneOn) AND ((NOT Wrk_Man) OR Cfg_SetTrackOvrdHand OR ((NOT Mode.Sts_Ovrd) AND (NOT Mode.Sts_Hand)))) THEN]]>
</Line>
<Line Number="353">
<![CDATA[ PSet_CV := Wrk_PIDE.CVProg;]]>
</Line>
<Line Number="354">
<![CDATA[ OSet_CV := Wrk_PIDE.CVProg;]]>
</Line>
<Line Number="355">
<![CDATA[ Inp_OvrdCV := Wrk_PIDE.CVProg;]]>
</Line>
<Line Number="356">
<![CDATA[ELSE]]>
</Line>
<Line Number="357">
<![CDATA[ IF (PSet_CV > Cfg_MaxCV) THEN PSet_CV := Cfg_MaxCV; END_IF;]]>
</Line>
<Line Number="358">
<![CDATA[ IF (PSet_CV < Cfg_MinCV) THEN PSet_CV := Cfg_MinCV; END_IF;]]>
</Line>
<Line Number="359">
<![CDATA[ IF (OSet_CV > Cfg_MaxCV) THEN OSet_CV := Cfg_MaxCV; END_IF;]]>
</Line>
<Line Number="360">
<![CDATA[ IF (OSet_CV < Cfg_MinCV) THEN OSet_CV := Cfg_MinCV; END_IF;]]>
</Line>
<Line Number="361">
<![CDATA[ IF (Inp_OvrdCV > Cfg_MaxCV) THEN Inp_OvrdCV := Cfg_MaxCV; END_IF;]]>
</Line>
<Line Number="362">
<![CDATA[ IF (Inp_OvrdCV < Cfg_MinCV) THEN Inp_OvrdCV := Cfg_MinCV; END_IF;]]>
</Line>
<Line Number="363">
<![CDATA[END_IF;]]>
</Line>
<Line Number="364">
<![CDATA[// ##### V3.5-02: Copy CV to CVOper when loop is in init.]]>
</Line>
<Line Number="365">
<![CDATA[IF (Inp_UseCVInitVal) THEN]]>
</Line>
<Line Number="366">
<![CDATA[ OSet_CV := Val_CVOut;]]>
</Line>
<Line Number="367">
<![CDATA[END_IF;]]>
</Line>
<Line Number="368">
<![CDATA[]]>
</Line>
<Line Number="369">
<![CDATA[// Deviation Limits Settings Tracking]]>
</Line>
<Line Number="370">
<![CDATA[IF (Cfg_SetTrack) THEN]]>
</Line>
<Line Number="371">
<![CDATA[ PSet_HiHiDevLim := Val_HiHiDevLim; OSet_HiHiDevLim := Val_HiHiDevLim;]]>
</Line>
<Line Number="372">
<![CDATA[ PSet_HiDevLim := Val_HiDevLim; OSet_HiDevLim := Val_HiDevLim;]]>
</Line>
<Line Number="373">
<![CDATA[ PSet_LoDevLim := Val_LoDevLim; OSet_LoDevLim := Val_LoDevLim;]]>
</Line>
<Line Number="374">
<![CDATA[ PSet_LoLoDevLim := Val_LoLoDevLim; OSet_LoLoDevLim := Val_LoLoDevLim;]]>
</Line>
<Line Number="375">
<![CDATA[ELSE]]>
</Line>
<Line Number="376">
<![CDATA[// ##### V3.0-04: Corrected assignments in following 8 THENs.]]>
</Line>
<Line Number="377">
<![CDATA[ IF (PSet_HiHiDevLim < 0.0) THEN PSet_HiHiDevLim := 0.0; END_IF;]]>
</Line>
<Line Number="378">
<![CDATA[ IF (PSet_HiDevLim < 0.0) THEN PSet_HiDevLim := 0.0; END_IF;]]>
</Line>
<Line Number="379">
<![CDATA[// ##### V3.0-02: Reversed sense of Lo, LoLo Deviation Limits.]]>
</Line>
<Line Number="380">
<![CDATA[ IF (PSet_LoDevLim > 0.0) THEN PSet_LoDevLim := 0.0; END_IF;]]>
</Line>
<Line Number="381">
<![CDATA[ IF (PSet_LoLoDevLim > 0.0) THEN PSet_LoLoDevLim := 0.0; END_IF;]]>
</Line>
<Line Number="382">
<![CDATA[]]>
</Line>
<Line Number="383">
<![CDATA[ IF (OSet_HiHiDevLim < 0.0) THEN OSet_HiHiDevLim := 0.0; END_IF;]]>
</Line>
<Line Number="384">
<![CDATA[ IF (OSet_HiDevLim < 0.0) THEN OSet_HiDevLim := 0.0; END_IF;]]>
</Line>
<Line Number="385">
<![CDATA[// ##### V3.0-02: reverse sense of Lo, LoLo Deviation Limits.]]>
</Line>
<Line Number="386">
<![CDATA[ IF (OSet_LoDevLim > 0.0) THEN OSet_LoDevLim := 0.0; END_IF;]]>
</Line>
<Line Number="387">
<![CDATA[ IF (OSet_LoLoDevLim > 0.0) THEN OSet_LoLoDevLim := 0.0; END_IF;]]>
</Line>
<Line Number="388">
<![CDATA[]]>
</Line>
<Line Number="389">
<![CDATA[END_IF;]]>
</Line>
<Line Number="390">
<![CDATA[]]>
</Line>
<Line Number="391">
<![CDATA[// Deviation Threshold Status/Gate Processing]]>
</Line>
<Line Number="392">
<![CDATA[HiHiDevGate.Inp := Wrk_PIDE.DevHHAlarm;]]>
</Line>
<Line Number="393">
<![CDATA[P_Gate(HiHiDevGate);]]>
</Line>
<Line Number="394">
<![CDATA[Sts_HiHiDev := HiHiDevGate.Out;]]>
</Line>
<Line Number="395">
<![CDATA[]]>
</Line>
<Line Number="396">
<![CDATA[HiDevGate.Inp := Wrk_PIDE.DevHAlarm;]]>
</Line>
<Line Number="397">
<![CDATA[P_Gate(HiDevGate);]]>
</Line>
<Line Number="398">
<![CDATA[Sts_HiDev := HiDevGate.Out;]]>
</Line>
<Line Number="399">
<![CDATA[]]>
</Line>
<Line Number="400">
<![CDATA[LoDevGate.Inp := Wrk_PIDE.DevLAlarm;]]>
</Line>
<Line Number="401">
<![CDATA[P_Gate(LoDevGate);]]>
</Line>
<Line Number="402">
<![CDATA[// ##### V3.0-05: Corrected Low Dev status handling.]]>
</Line>
<Line Number="403">
<![CDATA[Sts_LoDev := LoDevGate.Out;]]>
</Line>
<Line Number="404">
<![CDATA[]]>
</Line>
<Line Number="405">
<![CDATA[LoLoDevGate.Inp := Wrk_PIDE.DevLLAlarm;]]>
</Line>
<Line Number="406">
<![CDATA[P_Gate(LoLoDevGate);]]>
</Line>
<Line Number="407">
<![CDATA[Sts_LoLoDev := LoLoDevGate.Out;]]>
</Line>
<Line Number="408">
<![CDATA[]]>
</Line>
<Line Number="409">
<![CDATA[// Alarm Processing]]>
</Line>
<Line Number="410">
<![CDATA[HiHiDev.Cfg_PCmdClear := Cfg_PCmdClear; HiHiDev.PCfg_AllowExist := 1;]]>
</Line>
<Line Number="411">
<![CDATA[HiDev.Cfg_PCmdClear := Cfg_PCmdClear; HiDev.PCfg_AllowExist := 1;]]>
</Line>
<Line Number="412">
<![CDATA[LoDev.Cfg_PCmdClear := Cfg_PCmdClear; LoDev.PCfg_AllowExist := 1;]]>
</Line>
<Line Number="413">
<![CDATA[LoLoDev.Cfg_PCmdClear := Cfg_PCmdClear; LoLoDev.PCfg_AllowExist := 1;]]>
</Line>
<Line Number="414">
<![CDATA[IntlkTrip.Cfg_PCmdClear := Cfg_PCmdClear; IntlkTrip.PCfg_AllowExist := 1;]]>
</Line>
<Line Number="415">
<![CDATA[Fail.Cfg_PCmdClear := Cfg_PCmdClear; Fail.PCfg_AllowExist := 1;]]>
</Line>
<Line Number="416">
<![CDATA[]]>
</Line>
<Line Number="417">
<![CDATA[P_Alarm(HiHiDev);]]>
</Line>
<Line Number="418">
<![CDATA[P_Alarm(HiDev);]]>
</Line>
<Line Number="419">
<![CDATA[P_Alarm(LoDev);]]>
</Line>
<Line Number="420">
<![CDATA[P_Alarm(LoLoDev);]]>
</Line>
<Line Number="421">
<![CDATA[P_Alarm(IntlkTrip);]]>
</Line>
<Line Number="422">
<![CDATA[P_Alarm(Fail);]]>
</Line>
<Line Number="423">
<![CDATA[]]>
</Line>
<Line Number="424">
<![CDATA[Sts_AlmInh := ((HiHiDev.Sts_AlmInh OR HiDev.Sts_AlmInh OR LoDev.Sts_AlmInh) OR (LoLoDev.Sts_AlmInh OR IntlkTrip.Sts_AlmInh OR Fail.Sts_AlmInh));]]>
</Line>
<Line Number="425">
<![CDATA[]]>
</Line>
<Line Number="426">
<![CDATA[// Not Ready, Available]]>
</Line>
<Line Number="427">
<![CDATA[Err_Timer := HiHiDevGate.Sts_Err OR HiDevGate.Sts_Err OR LoDevGate.Sts_Err OR LoLoDevGate.Sts_Err;]]>
</Line>
<Line Number="428">
<![CDATA[Err_Alarm := (HiHiDev.Sts_Err OR HiDev.Sts_Err OR LoDev.Sts_Err or LoLoDev.Sts_Err) OR (Fail.Sts_Err or IntlkTrip.Sts_Err);]]>
</Line>
<Line Number="429">
<![CDATA[Sts_Err := ((Err_RatioLim AND Sts_Casc AND Cfg_HasRatio) OR Err_SPLim OR Err_PVEU OR Err_CVLim) OR (Err_CVEU OR Err_Timer OR Err_DB OR Err_Alarm);]]>
</Line>
<Line Number="430">
<![CDATA[// ##### V3.1-00: Added Not Ready reason bits (Nrdy_xxx)]]>
</Line>
<Line Number="431">
<![CDATA[Nrdy_NoMode := 0;]]>
</Line>
<Line Number="432">
<![CDATA[Nrdy_IOFault := Sts_PVBad OR Sts_FFBad OR Sts_HandFdbkBad OR Sts_CVBad;]]>
</Line>
<Line Number="433">
<![CDATA[Nrdy_Init := Inp_UseCVInitVal AND Cfg_InitToMan;]]>
</Line>
<Line Number="434">
<![CDATA[Nrdy_CfgErr := Sts_Err;]]>
</Line>
<Line Number="435">
<![CDATA[]]>
</Line>
<Line Number="436">
<![CDATA[Sts_NotRdy := (Nrdy_Intlk OR Nrdy_IOFault OR Nrdy_Init) OR (Nrdy_Disabled OR Nrdy_CfgErr);]]>
</Line>
<Line Number="437">
<![CDATA[Sts_Available := Sts_Prog AND NOT Sts_NotRdy;]]>
</Line>
<Line Number="438">
<![CDATA[]]>
</Line>
<Line Number="439">
<![CDATA[// Val_Sts Enumeration]]>
</Line>
<Line Number="440">
<![CDATA[Val_Sts := 0;]]>
</Line>
<Line Number="441">
<![CDATA[IF Sts_Disabled THEN Val_Sts := 33;]]>
</Line>
<Line Number="442">
<![CDATA[ELSIF Sts_Casc THEN]]>
</Line>
<Line Number="443">
<![CDATA[ IF Cfg_HasRatio THEN]]>
</Line>
<Line Number="444">
<![CDATA[ Val_Sts := 4;]]>
</Line>
<Line Number="445">
<![CDATA[ ELSE]]>
</Line>
<Line Number="446">
<![CDATA[ Val_Sts := 3;]]>
</Line>
<Line Number="447">
<![CDATA[ END_IF;]]>
</Line>
<Line Number="448">
<![CDATA[ELSIF Sts_Auto THEN Val_Sts := 2;]]>
</Line>
<Line Number="449">
<![CDATA[ELSIF Sts_Man THEN Val_Sts := 1;]]>
</Line>
<Line Number="450">
<![CDATA[ELSE Val_Sts := 0;]]>
</Line>
<Line Number="451">
<![CDATA[END_IF;]]>
</Line>
<Line Number="452">
<![CDATA[]]>
</Line>
<Line Number="453">
<![CDATA[// Val_State Enumeration]]>
</Line>
<Line Number="454">
<![CDATA[IF Sts_Initializing THEN Val_State := 15;]]>
</Line>
<Line Number="455">
<![CDATA[ELSIF Sts_Hand THEN Val_State := 14;]]>
</Line>
<Line Number="456">
<![CDATA[ELSIF Sts_IntlkCV THEN Val_State := 13;]]>
</Line>
<Line Number="457">
<![CDATA[ELSIF Sts_WindupHi THEN Val_State := 9;]]>
</Line>
<Line Number="458">
<![CDATA[ELSIF Sts_WindupLo THEN Val_State := 8;]]>
</Line>
<Line Number="459">
<![CDATA[ELSIF Sts_CVClamped THEN Val_State := 7;]]>
</Line>
<Line Number="460">
<![CDATA[ELSIF Sts_SPClamped THEN Val_State := 6;]]>
</Line>
<Line Number="461">
<![CDATA[ELSIF Sts_RatioClamped THEN Val_State := 5;]]>
</Line>
<Line Number="462">
<![CDATA[ELSIF (Sts_Auto OR Sts_Casc) THEN]]>
</Line>
<Line Number="463">
<![CDATA[ IF (Sts_ZCDBOn) THEN]]>
</Line>
<Line Number="464">
<![CDATA[ Val_State := 1;]]>
</Line>
<Line Number="465">
<![CDATA[ ELSE]]>
</Line>
<Line Number="466">
<![CDATA[ Val_State := 2;]]>
</Line>
<Line Number="467">
<![CDATA[ END_IF;]]>
</Line>
<Line Number="468">
<![CDATA[ELSE Val_State := 0;]]>
</Line>
<Line Number="469">
<![CDATA[END_IF;]]>
</Line>
<Line Number="470">
<![CDATA[]]>
</Line>
<Line Number="471">
<![CDATA[// Val_Fault Enumeration]]>
</Line>
<Line Number="472">
<![CDATA[IF Sts_Err THEN Val_Fault := 34;]]>
</Line>
<Line Number="473">
<![CDATA[ELSIF Sts_Fail THEN Val_Fault := 32;]]>
</Line>
<Line Number="474">
<![CDATA[ELSIF Nrdy_Intlk THEN Val_Fault := 29;]]>
</Line>
<Line Number="475">
<![CDATA[ELSIF Sts_HiHiDev THEN Val_Fault := 28;]]>
</Line>
<Line Number="476">
<![CDATA[ELSIF Sts_LoLoDev THEN Val_Fault := 27;]]>
</Line>
<Line Number="477">
<![CDATA[ELSIF Sts_HiDev THEN Val_Fault := 23;]]>
</Line>
<Line Number="478">
<![CDATA[ELSIF Sts_LoDev THEN Val_Fault := 22;]]>
</Line>
<Line Number="479">
<![CDATA[ELSE Val_Fault := 0;]]>
</Line>
<Line Number="480">
<![CDATA[END_IF;]]>
</Line>
<Line Number="481">
<![CDATA[]]>
</Line>
<Line Number="482">
<![CDATA[// #####V3.1-00: Added SrcQ enums]]>
</Line>
<Line Number="483">
<![CDATA[Wrk_SrcQ := Inp_PVSrcQ;]]>
</Line>
<Line Number="484">
<![CDATA[IF (Inp_PVUncertain AND (Wrk_SrcQ < 16)) THEN Wrk_SrcQ := 16; END_IF;]]>
</Line>
<Line Number="485">
<![CDATA[IF (Inp_PVBad AND (Wrk_SrcQ < 32)) THEN Wrk_SrcQ := 34; END_IF;]]>
</Line>
<Line Number="486">
<![CDATA[IF (Inp_CVIOFault AND (Wrk_SrcQ < 32)) THEN Wrk_SrcQ := 34; END_IF;]]>
</Line>
<Line Number="487">
<![CDATA[SrcQ_IO := Wrk_SrcQ;]]>
</Line>
<Line Number="488">
<![CDATA[SrcQ := Wrk_SrcQ;]]>
</Line>
<Line Number="489">
<![CDATA[]]>
</Line>
<Line Number="490">
<![CDATA[// Notification Value 0=no alarm, 1=ack/reset reqd, 2=Low/acked, 3=Low/unacked, 4=Med/acked, 5=Med/unacked, 6=High/acked, 7=High/unacked, 8=Urgent/acked, 9=Urgent/undacked]]>
</Line>
<Line Number="491">
<![CDATA[Wrk_Notify := 0;]]>
</Line>
<Line Number="492">
<![CDATA[IF (HiHiDev.Val_Notify>Wrk_Notify) THEN Wrk_Notify := HiHiDev.Val_Notify; END_IF;]]>
</Line>
<Line Number="493">
<![CDATA[IF (HiDev.Val_Notify>Wrk_Notify) THEN Wrk_Notify := HiDev.Val_Notify; END_IF;]]>
</Line>
<Line Number="494">
<![CDATA[IF (LoDev.Val_Notify>Wrk_Notify) THEN Wrk_Notify := LoDev.Val_Notify; END_IF;]]>
</Line>
<Line Number="495">
<![CDATA[IF (LoLoDev.Val_Notify>Wrk_Notify) THEN Wrk_Notify := LoLoDev.Val_Notify; END_IF;]]>
</Line>
<Line Number="496">
<![CDATA[IF (IntlkTrip.Val_Notify>Wrk_Notify) THEN Wrk_Notify := IntlkTrip.Val_Notify; END_IF;]]>
</Line>
<Line Number="497">
<![CDATA[IF (Fail.Val_Notify>Wrk_Notify) THEN Wrk_Notify := Fail.Val_Notify; END_IF;]]>
</Line>
<Line Number="498">
<![CDATA[// ##### V3.1-00: Val_Notify split from reset readies.]]>
</Line>
<Line Number="499">
<![CDATA[Wrk_Notify.0 := ((HiHiDev.Val_Notify.0 OR HiDev.Val_Notify.0 OR LoDev.Val_Notify.0) OR (LoLoDev.Val_Notify.0 OR IntlkTrip.Val_Notify.0 OR Fail.Val_Notify.0));]]>
</Line>
<Line Number="500">
<![CDATA[Val_Notify := Wrk_Notify;]]>
</Line>
<Line Number="501">
<![CDATA[// ##### V3.0-03: Interlock shed 'latch' now clears automatically on Interlocks OK.]]>
</Line>
<Line Number="502">
<![CDATA[Rdy_Reset := ((HiHiDev.Rdy_Reset OR HiDev.Rdy_Reset OR LoDev.Rdy_Reset) OR (LoLoDev.Rdy_Reset OR IntlkTrip.Rdy_Reset OR Fail.Rdy_Reset));]]>
</Line>
<Line Number="503">
<![CDATA[Rdy_ResetAckAll := ((HiHiDev.Rdy_Ack OR HiDev.Rdy_Ack OR LoDev.Rdy_Ack) OR (LoLoDev.Rdy_Ack OR IntlkTrip.Rdy_Ack OR Fail.Rdy_Ack) OR Rdy_Reset);]]>
</Line>
<Line Number="504">
<![CDATA[]]>
</Line>
<Line Number="505">
<![CDATA[//END]]>
</Line>
<Line Number="506">
<![CDATA[]]>
</Line>
</STContent>
</Routine>
<Routine Name="Prescan" Type="RLL">
<Description>
<![CDATA[Clear Ownership. clear "lurking" Commands.]]>
</Description>
<RLLContent>
<Labels/>
<Rung Number="0" Type="N">
<Comment>
<![CDATA[============================================================
PRESCAN (POWERUP) HANDLING
============================================================
On Prescan, set the Ownership to NO OWNER (0).]]>
</Comment>
<Text>
<![CDATA[CLR(PSet_Owner)CLR(Val_Owner);]]>
</Text>
</Rung>
<Rung Number="1" Type="N">
<Comment>
<![CDATA["Lurking" Program Commands are cleared if they are set as "Edge" triggered
(cleared by this object as received).
(Lurking Acknowledge Commands are left to perform their action.)
##### V3.0-05 2014-02-28: Added Fail alarm to bits cleared #####]]>
</Comment>
<Text>
<![CDATA[XIC(Cfg_PCmdClear)[OTU(PCmd_Casc) OTU(PCmd_Auto) OTU(PCmd_Man) ,OTU(PCmd_Acq) OTU(PCmd_Rel) OTU(PCmd_Lock) OTU(PCmd_Unlock) ,OTU(PCmd_HiHiDevSuppress) OTU(PCmd_HiHiDevUnsuppress) OTU(PCmd_HiDevSuppress) OTU(PCmd_HiDevUnsuppress) ,OTU(PCmd_LoDevSuppress) OTU(PCmd_LoDevUnsuppress) OTU(PCmd_LoLoDevSuppress) OTU(PCmd_LoLoDevUnsuppress) ,OTU(PCmd_IntlkTripSuppress) OTU(PCmd_IntlkTripUnsuppress) OTU(PCmd_FailSuppress) OTU(PCmd_FailUnsuppress) ];]]>
</Text>
</Rung>
<Rung Number="2" Type="N">
<Comment>
<![CDATA["Lurking" Operator Commands are cleared, as well as the Program Reset Command.]]>
</Comment>
<Text>
<![CDATA[[OTU(OCmd_Casc) OTU(OCmd_Auto) OTU(OCmd_Man) ,OTU(OCmd_Bypass) OTU(OCmd_Check) OTU(MCmd_Disable) OTU(MCmd_Enable) ,OTU(OCmd_Reset) OTU(OCmd_ResetAckAll) OTU(PCmd_Reset) ];]]>
</Text>
</Rung>
<Rung Number="3" Type="N">
<Comment>
<![CDATA[The Override Command is set to NONE.]]>
</Comment>
<Text>
<![CDATA[CLR(Inp_OvrdCmd);]]>
</Text>
</Rung>
<Rung Number="4" Type="N">
<Comment>
<![CDATA[Since we're not processing Operator Commands or Settings, we're not READY for any of them either!]]>
</Comment>
<Text>
<![CDATA[[OTU(Rdy_Casc) OTU(Rdy_Auto) OTU(Rdy_Man) ,OTU(Rdy_Bypass) OTU(Rdy_Check) OTU(Rdy_Disable) OTU(Rdy_Enable) ,OTU(Rdy_Reset) OTU(Rdy_ResetAckAll) ,OTU(Rdy_Ratio) OTU(Rdy_SP) OTU(Rdy_CV) OTU(Rdy_OSet) ];]]>
</Text>
</Rung>
<Rung Number="5" Type="N">
<Comment>
<![CDATA[============================================================
POWERUP LOOP MODE, SP and CV HANDLING
============================================================
If the Powerup Loop Mode is invalid, or if set to Cascade when
Cascade is not configured to exist, set the Powerup Loop Mode to NONE.]]>
</Comment>
<Text>
<![CDATA[XIO(Cfg_HasCasc)EQU(Cfg_PwrupLM,3)CLR(Cfg_PwrupLM);]]>
</Text>
</Rung>
<Rung Number="6" Type="N">
<Comment>
<![CDATA[If the Powerup Loop Mode is 3, set the Loop Mode to Cascade.]]>
</Comment>
<Text>
<![CDATA[XIC(Cfg_HasCasc)EQU(Cfg_PwrupLM,3)OTU(Wrk_Man)OTU(Wrk_Auto)OTL(Wrk_Casc);]]>
</Text>
</Rung>
<Rung Number="7" Type="N">
<Comment>
<![CDATA[If the Powerup Loop Mode is 2, set the Loop Mode to Auto.]]>
</Comment>
<Text>
<![CDATA[EQU(Cfg_PwrupLM,2)OTU(Wrk_Man)OTL(Wrk_Auto)OTU(Wrk_Casc);]]>
</Text>
</Rung>
<Rung Number="8" Type="N">
<Comment>
<![CDATA[If the Powerup Loop Mode is 1, set the Loop Mode to Manual.]]>
</Comment>
<Text>
<![CDATA[EQU(Cfg_PwrupLM,1)OTL(Wrk_Man)OTU(Wrk_Auto)OTU(Wrk_Casc);]]>
</Text>
</Rung>
<Rung Number="9" Type="N">
<Comment>
<![CDATA[If the Powerup Loop Mode is 0, the Mode, CV, and SP are left in their
last (powerdown) states.
If the Powerup Loop Mode is GREATER THAN 0 (1=Man, 2=Auto, 3=Casc),
then set the initial values of SP and CV.
(There are several places to put each of these: Override Inputs,
Program Settings, Operator Settings, plus the Input for the Cascade Mode SP.)]]>
</Comment>
<Text>
<![CDATA[GRT(Cfg_PwrupLM,0)[[[XIO(Cfg_HasRatio) ,EQU(Val_Ratio,0.0) ] MOV(Cfg_PwrupSP,Inp_CascSP) ,XIC(Cfg_HasRatio) NEQ(Val_Ratio,0.0) DIV(Cfg_PwrupSP,Val_Ratio,Inp_CascSP) ] ,MOV(Cfg_PwrupSP,PSet_SP) MOV(Cfg_PwrupSP,OSet_SP) MOV(Cfg_PwrupSP,Inp_OvrdSP) ,MOV(Cfg_PwrupSP,Val_SP) MOV(Cfg_PwrupCV,PSet_CV) MOV(Cfg_PwrupCV,OSet_CV) ,MOV(Cfg_PwrupCV,Inp_OvrdCV) MOV(Cfg_PwrupCV,Inp_HandFdbk) MOV(Cfg_PwrupCV,Val_CVOut) MOV(Cfg_PwrupCV,Inp_CVPrev) ,CPT(Inp_CVInitVal,Cfg_PwrupCV/100.0*(Cfg_CVEUMax-Cfg_CVEUMin)+Cfg_CVEUMin) ];]]>
</Text>
</Rung>
<Rung Number="10" Type="N">
<Comment>
<![CDATA[If the Powerup Loop Mode was zero, the loop mode must be
checked for consistency (only one Wrk_<mode> bit set).
This rung makes sure the internal mode bits are consistent in case
they were not set above and somehow NO, or MULTIPLE
loop mode internal latches got set.
Only one can be set at a time. Manual wins, then Auto...]]>
</Comment>
<Text>
<![CDATA[[[XIC(Wrk_Man) OTU(Wrk_Auto) ,XIC(Wrk_Auto) ] OTU(Wrk_Casc) ,XIO(Wrk_Man) XIO(Wrk_Auto) XIO(Wrk_Casc) OTL(Wrk_Man) ];]]>
</Text>
</Rung>
<Rung Number="11" Type="N">
<Comment>
<![CDATA[This rung sets the PIDE to attempt to acquire the Autotune on first scan.
If Autotune is acquired, the GainTooHigh and GainTooLow bits will be turned off --
in this case, the HMI_HasAutotune flag is left ON.
If Autotune is NOT acquired, the GainTooHigh and GainTooLow bits will both be left on
(and in normal autotune operation, they will never BOTH be set).
If they are both on, the Autotune tag has NOT been added to the
PIDE sub-AOI, and the HMI_HasAutotune flag is turned OFF.
##### V3.0-05 2014-02-28: Added ability for user to modify to include Autotune #####]]>
</Comment>
<Text>
<![CDATA[OTL(HMI_HasAutotune)OTL(Wrk_Autotune.GainTooLarge)OTL(Wrk_Autotune.GainTooSmall)OTL(Wrk_PIDE.AtuneAcquire);]]>
</Text>
</Rung>
</RLLContent>
</Routine>
</Routines>
</AddOnInstructionDefinition>
</AddOnInstructionDefinitions>
<Tags Use="Context">
<Tag Name="cfg_LevelHigherGains" TagType="Base" DataType="PID_Gains" Constant="false" ExternalAccess="Read/Write">
<Data Format="L5K">
<![CDATA[[4.00000000e-001,1.50000000e+000,0.00000000e+000]]]>
</Data>
<Data Format="Decorated">
<Structure DataType="PID_Gains">
<DataValueMember Name="cfg_PGain" DataType="REAL" Radix="Float" Value="0.4"/>
<DataValueMember Name="cfg_IGain" DataType="REAL" Radix="Float" Value="1.5"/>
<DataValueMember Name="cfg_DGain" DataType="REAL" Radix="Float" Value="0.0"/>
</Structure>
</Data>
</Tag>
<Tag Name="cfg_LevelLowerGains" TagType="Base" DataType="PID_Gains" Constant="false" ExternalAccess="Read/Write">
<Data Format="L5K">
<![CDATA[[8.00000000e-001,1.00000000e+000,5.00000000e-001]]]>
</Data>
<Data Format="Decorated">
<Structure DataType="PID_Gains">
<DataValueMember Name="cfg_PGain" DataType="REAL" Radix="Float" Value="0.8"/>
<DataValueMember Name="cfg_IGain" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="cfg_DGain" DataType="REAL" Radix="Float" Value="0.5"/>
</Structure>
</Data>
</Tag>
<Tag Name="PIDE_Control" TagType="Base" DataType="P_PIDE" Constant="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[PIDE Control Block]]>
</Description>
<Data Format="L5K">
<![CDATA[[268435635,0,0,1.00000000e+000,4.00000000e+001,5.21078224e+001,0,0.00000000e+000,0.00000000e+000
,0.00000000e+000,1.00000000e+000,4.00000000e+001,5.21078224e+001,3.40282347e+038,3.40282347e+038
,-3.40282347e+038,-3.40282347e+038,0,1.00000000e+000,4.00000000e+001,5.21078224e+001,3.40282347e+038
,3.40282347e+038,-3.40282347e+038,-3.40282347e+038,4.00979156e+001,4.00000000e+001,5.21078224e+001
,4.00000000e+001,0.00000000e+000,5.00000000e+002,0.00000000e+000,1.00000000e+002,0,0,2,0,2,0
,0,-3.40282347e+038,-3.40282347e+038,0,0,16777264,10504,[1,-2147423232,4.00979156e+001,5.00000000e+002
,0.00000000e+000,4.00000000e+001,4.00000000e+001,0.00000000e+000,5.00000000e+002,0.00000000e+000
,1.00000000e+000,1.00000000e+000,1.00000000e+000,1.00000000e+000,0.00000000e+000,5.21078224e+001
,5.21078224e+001,0.00000000e+000,0.00000000e+000,1.00000000e+002,0.00000000e+000,5.50000000e+001
,4.00000000e+001,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,8.00000000e-001
,1.00000000e+000,5.00000000e-001,2.50000000e-001,3.40282347e+038,3.40282347e+038,-3.40282347e+038
,-3.40282347e+038,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,3.40282347e+038
,3.40282347e+038,3.40282347e+038,3.40282347e+038,0.00000000e+000,0,0.00000000e+000,1,0,0,1,20971584
,5.21078224e+001,5.21078224e+001,4.00000000e+001,8.00000000e+000,8.01958275e+000,9.79156494e-002
,1.95827484e-002,1.00000000e+000,5.00000035e-003,0,0,0,1.08333559e-034,5.21078224e+001,8.01958275e+000
,1.95827484e-002,1.95827484e-002,8.01958275e+000,8.01958275e+000,8.00000000e-001,6.66666747e-005
,1.59574471e+001,5.00000035e-003,8.00000000e-001,1.00000000e+000,5.00000000e-001,0.00000000e+000
,4.00979156e+001,2.71392995e-011,5.21078224e+001,9.79156494e-002,0.00000000e+000,3.52650099e-038
,9.79156494e-002,8.01958275e+000,8.00000000e+000,5.21078224e+001,0.00000000e+000,0.00000000e+000
,0.00000000e+000,7.00649232e-045,3.02397126e-039,0.00000000e+000,7.89211295e-042,5.00000035e-003
,7.00649232e-045,3.02397126e-039,7.89211295e-042,5.00000035e-003],[6,'P_PIDE$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],[1,' $00$00$00$00$00$00$00'],[8,'PID Loop$00$00$00$00$00$00$00$00$00$00$00$00'],[16,'PID Control Loop$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],[2,'Hz$00$00$00$00$00$00'],[43,0,0,0,[-1608454758,0,0],[0,0,0],[-1608454758,0,0],[20,'PV Low-Low Deviation'
],[6,'RA-BAS$00$00$00$00$00$00'],[6,'P_Gate$00$00$00$00$00$00$00$00$00$00'],[16,'Gating Condition$00$00$00$00'
],0],[1987,750,5,0,0,0,0,0,[0,5000,0],[0,5000,0],[0,0,0],0,290,[10,'XADLL-nnnn$00$00$00$00$00$00$00$00$00$00'],[17,'Low-Low Deviation$00$00$00'
],0,[6,'RA-BAS$00$00$00$00$00$00'],[7,'P_Alarm$00$00$00$00$00$00$00$00$00']],[43,0,0,0,[-1608454558
,0,0],[0,0,0],[-1608454558,0,0],[16,'PV Low Deviation$00$00$00$00'],[6,'RA-BAS$00$00$00$00$00$00'],[6,'P_Gate$00$00$00$00$00$00$00$00$00$00'
],[16,'Gating Condition$00$00$00$00'],0],[1987,500,5,0,0,0,0,0,[0,5000,0],[0,5000,0],[0,0,0],0,290,[9,'XADL-nnnn$00$00$00$00$00$00$00$00$00$00$00'
],[13,'Low Deviation$00$00$00$00$00$00$00'],0,[6,'RA-BAS$00$00$00$00$00$00'],[7,'P_Alarm$00$00$00$00$00$00$00$00$00'
]],[6,'P_PIDE$00$00$00$00$00$00$00$00$00$00'],12,0,[43,0,0,0,[-1608454558,0,0],[0,0,0],[-1608454558,0,0],[18,'PV Hi-Hi Deviation$00$00'
],[6,'RA-BAS$00$00$00$00$00$00'],[6,'P_Gate$00$00$00$00$00$00$00$00$00$00'],[16,'Gating Condition$00$00$00$00'
],0],[1987,750,5,0,0,0,0,0,[0,5000,0],[0,5000,0],[0,0,0],0,290,[10,'XADHH-nnnn$00$00$00$00$00$00$00$00$00$00'],[19,'High-High Deviation$00'
],0,[6,'RA-BAS$00$00$00$00$00$00'],[7,'P_Alarm$00$00$00$00$00$00$00$00$00']],[43,0,0,0,[-1608454371
,0,0],[0,0,0],[-1608454371,0,0],[17,'PV High Deviation$00$00$00'],[6,'RA-BAS$00$00$00$00$00$00'],[6,'P_Gate$00$00$00$00$00$00$00$00$00$00'
],[16,'Gating Condition$00$00$00$00'],0],[1987,500,5,0,0,0,0,0,[0,5000,0],[0,5000,0],[0,0,0],0,290,[9,'XADH-nnnn$00$00$00$00$00$00$00$00$00$00$00'
],[14,'High Deviation$00$00$00$00$00$00'],0,[6,'RA-BAS$00$00$00$00$00$00'],[7,'P_Alarm$00$00$00$00$00$00$00$00$00'
]],[86245491,8,1,[6,'RA-BAS$00$00$00$00$00$00'],[6,'P_Mode$00$00$00$00$00$00$00$00$00$00']],0,[1987
,500,5,0,0,0,0,0,[0,5000,0],[0,5000,0],[0,0,0],0,290,[8,'XAS-nnnn$00$00$00$00$00$00$00$00$00$00$00$00'],[14,'Interlock Trip$00$00$00$00$00$00'
],0,[6,'RA-BAS$00$00$00$00$00$00'],[7,'P_Alarm$00$00$00$00$00$00$00$00$00']],[1987,1000,5,0,0,0,0,0,[0,5000
,0],[0,5000,0],[0,0,0],0,290,[8,'XAF-nnnn$00$00$00$00$00$00$00$00$00$00$00$00'],[12,'Loop Failure$00$00$00$00$00$00$00$00'
],0,[6,'RA-BAS$00$00$00$00$00$00'],[7,'P_Alarm$00$00$00$00$00$00$00$00$00']],[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'],[0,'$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00$00'
],[6,'RA-BAS$00$00$00$00$00$00'],[2,1,0.00000000e+000,0.00000000e+000,1.00000000e+001,0,8,1.00000000e+000
,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000
,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000
,0,[0,0,0,0,10,1124422998,0,1073765596,0,1058870451,1120403456,1116266940,1073765596,0,1073765596,0
,0,0,0,0,0,1049795640,1006834287,11,0,0,0,0,0,0,0,1120403456,0,1125515264,0,1124422998,1124422998,1124422998
,1,981668463,981668463,1065346101,2,1,0,1092616192,1114636288,8,1065353216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1093573846
,1007192201,967754559,1088999710,1007192201,967754559,1080611102,1007192201,967754559,1073765596
,0,1073765596,0,1073765596,0,1073765596,0,1073765596,0,1073765596,0,1073765596,0,1073765596,0,1073765596
,0,1073765596,0,1073765596,0,1073765596,0,1073765596,0,1073765596,0,1073765596,0,1067259123,1068784246
,1070309369,1071834492,1073359615,1074313281,1074313281,1074313281,1074313281,1074313281,1074313281
,1074313281,1074313281,1074313281,1074313281,1074313281,1074313281,1074313281,1074313281,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,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]],[3]]]]>
</Data>
<Data Format="Decorated">
<Structure DataType="P_PIDE">
<DataValueMember Name="EnableIn" DataType="BOOL" Value="1"/>
<DataValueMember Name="EnableOut" DataType="BOOL" Value="1"/>
<DataValueMember Name="Inp_PV" DataType="REAL" Radix="Float" Value="40.097916"/>
<DataValueMember Name="Inp_CascSP" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Inp_FF" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Inp_FFPrev" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Inp_CVInitVal" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Inp_CVPrev" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Inp_PVSrcQ" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Inp_OvrdCmd" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Inp_OvrdRatio" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="Inp_OvrdSP" DataType="REAL" Radix="Float" Value="40.0"/>
<DataValueMember Name="Inp_OvrdCV" DataType="REAL" Radix="Float" Value="52.107822"/>
<DataValueMember Name="Inp_HandFdbk" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Inp_PVBad" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_PVUncertain" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_CVIOFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_UseFFPrev" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_UseCVInitVal" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_UseCVPrev" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_WindupHi" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_WindupLo" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Ovrd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_Hand" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_HandFdbkBad" DataType="BOOL" Value="0"/>
<DataValueMember Name="Inp_IntlkOK" DataType="BOOL" Value="1"/>
<DataValueMember Name="Inp_NBIntlkOK" DataType="BOOL" Value="1"/>
<DataValueMember Name="Inp_HiHiDevGate" DataType="BOOL" Value="1"/>
<DataValueMember Name="Inp_HiDevGate" DataType="BOOL" Value="1"/>
<DataValueMember Name="Inp_LoDevGate" DataType="BOOL" Value="1"/>
<DataValueMember Name="Inp_LoLoDevGate" DataType="BOOL" Value="1"/>
<DataValueMember Name="Inp_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HasRatio" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HasCasc" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_PVTrack" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_CtrlAction" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_Depend" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_DerivSmooth" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_ZCOff" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_LimitManCV" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_InitToMan" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_PropSPAct" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_DerivSPAct" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_PwrupLM" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_SetTrack" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_SetTrackOvrdHand" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HasIntlkObj" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HasCascSPNav" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HasPVNav" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HasCVNav" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_OvrdIntlk" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_PCmdClear" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_ProgDefault" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_HasHiHiDevAlm" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HasHiDevAlm" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HasLoDevAlm" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HasLoLoDevAlm" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HasIntlkTripAlm" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HasFailAlm" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HiHiDevResetReqd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HiDevResetReqd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_LoDevResetReqd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_LoLoDevResetReqd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_IntlkTripResetReqd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_FailResetReqd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Cfg_HiHiDevAckReqd" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_HiDevAckReqd" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_LoDevAckReqd" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_LoLoDevAckReqd" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_IntlkTripAckReqd" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_FailAckReqd" DataType="BOOL" Value="1"/>
<DataValueMember Name="Cfg_HiHiDevSeverity" DataType="INT" Radix="Decimal" Value="750"/>
<DataValueMember Name="Cfg_HiDevSeverity" DataType="INT" Radix="Decimal" Value="500"/>
<DataValueMember Name="Cfg_LoDevSeverity" DataType="INT" Radix="Decimal" Value="500"/>
<DataValueMember Name="Cfg_LoLoDevSeverity" DataType="INT" Radix="Decimal" Value="750"/>
<DataValueMember Name="Cfg_IntlkTripSeverity" DataType="INT" Radix="Decimal" Value="500"/>
<DataValueMember Name="Cfg_FailSeverity" DataType="INT" Radix="Decimal" Value="1000"/>
<DataValueMember Name="Cfg_MinRatio" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="Cfg_MaxRatio" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="Cfg_MinSP" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Cfg_MaxSP" DataType="REAL" Radix="Float" Value="500.0"/>
<DataValueMember Name="Cfg_PVEUMin" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Cfg_PVEUMax" DataType="REAL" Radix="Float" Value="500.0"/>
<DataValueMember Name="Cfg_CVEUMin" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Cfg_CVEUMax" DataType="REAL" Radix="Float" Value="100.0"/>
<DataValueMember Name="Cfg_CVRoCLim" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Cfg_PGain" DataType="REAL" Radix="Float" Value="0.8"/>
<DataValueMember Name="Cfg_IGain" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="Cfg_DGain" DataType="REAL" Radix="Float" Value="0.5"/>
<DataValueMember Name="Cfg_ZCDB" DataType="REAL" Radix="Float" Value="0.25"/>
<DataValueMember Name="Cfg_MinCV" DataType="REAL" Radix="Float" Value="40.0"/>
<DataValueMember Name="Cfg_MaxCV" DataType="REAL" Radix="Float" Value="55.0"/>
<DataValueMember Name="Cfg_MaxInactiveCV" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Cfg_IntlkCV" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Cfg_DevDB" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Cfg_PwrupSP" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Cfg_PwrupCV" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Cfg_HiHiDevOnDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_HiHiDevOffDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_HiHiDevGateDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_HiDevOnDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_HiDevOffDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_HiDevGateDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_LoDevOnDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_LoDevOffDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_LoDevGateDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_LoLoDevOnDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_LoLoDevOffDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Cfg_LoLoDevGateDly" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="PSet_Ratio" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="PSet_SP" DataType="REAL" Radix="Float" Value="40.0"/>
<DataValueMember Name="PSet_CV" DataType="REAL" Radix="Float" Value="52.107822"/>
<DataValueMember Name="PSet_HiHiDevLim" DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
<DataValueMember Name="PSet_HiDevLim" DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
<DataValueMember Name="PSet_LoDevLim" DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
<DataValueMember Name="PSet_LoLoDevLim" DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
<DataValueMember Name="PSet_Owner" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="OSet_Ratio" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="OSet_SP" DataType="REAL" Radix="Float" Value="40.0"/>
<DataValueMember Name="OSet_CV" DataType="REAL" Radix="Float" Value="52.107822"/>
<DataValueMember Name="OSet_HiHiDevLim" DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
<DataValueMember Name="OSet_HiDevLim" DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
<DataValueMember Name="OSet_LoDevLim" DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
<DataValueMember Name="OSet_LoLoDevLim" DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
<DataValueMember Name="PCmd_Casc" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Auto" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Man" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Acq" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Rel" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Lock" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Unlock" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_HiHiDevAck" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_HiHiDevSuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_HiHiDevUnsuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_HiHiDevUnshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_HiDevAck" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_HiDevSuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_HiDevUnsuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_HiDevUnshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_LoDevAck" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_LoDevSuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_LoDevUnsuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_LoDevUnshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_LoLoDevAck" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_LoLoDevSuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_LoLoDevUnsuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_LoLoDevUnshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_IntlkTripAck" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_IntlkTripSuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_IntlkTripUnsuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_IntlkTripUnshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_FailAck" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_FailSuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_FailUnsuppress" DataType="BOOL" Value="0"/>
<DataValueMember Name="PCmd_FailUnshelve" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Casc" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Auto" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Man" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Bypass" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Check" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Acq" DataType="BOOL" Value="0"/>
<DataValueMember Name="MCmd_Rel" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_AcqLock" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Unlock" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="OCmd_ResetAckAll" DataType="BOOL" Value="0"/>
<DataValueMember Name="Out_CV" DataType="REAL" Radix="Float" Value="52.107822"/>
<DataValueMember Name="Val_PV" DataType="REAL" Radix="Float" Value="40.097916"/>
<DataValueMember Name="Val_Ratio" DataType="REAL" Radix="Float" Value="1.0"/>
<DataValueMember Name="Val_SPSet" DataType="REAL" Radix="Float" Value="40.0"/>
<DataValueMember Name="Val_SP" DataType="REAL" Radix="Float" Value="40.0"/>
<DataValueMember Name="Val_E" DataType="REAL" Radix="Float" Value="0.09791565"/>
<DataValueMember Name="Val_CVSet" DataType="REAL" Radix="Float" Value="52.107822"/>
<DataValueMember Name="Val_CVOut" DataType="REAL" Radix="Float" Value="52.107822"/>
<DataValueMember Name="Val_PVPercent" DataType="REAL" Radix="Float" Value="8.019583"/>
<DataValueMember Name="Val_SPPercent" DataType="REAL" Radix="Float" Value="8.0"/>
<DataValueMember Name="Val_EPercent" DataType="REAL" Radix="Float" Value="0.019582748"/>
<DataValueMember Name="Val_ActExecT" DataType="REAL" Radix="Float" Value="5.00000035e-003"/>
<DataValueMember Name="Val_Init" DataType="REAL" Radix="Float" Value="40.0"/>
<DataValueMember Name="Val_PVEUMin" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Val_PVEUMax" DataType="REAL" Radix="Float" Value="500.0"/>
<DataValueMember Name="Val_CVEUMin" DataType="REAL" Radix="Float" Value="0.0"/>
<DataValueMember Name="Val_CVEUMax" DataType="REAL" Radix="Float" Value="100.0"/>
<DataValueMember Name="SrcQ_IO" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="SrcQ" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_Sts" DataType="SINT" Radix="Decimal" Value="2"/>
<DataValueMember Name="Val_Fault" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_State" DataType="SINT" Radix="Decimal" Value="2"/>
<DataValueMember Name="Val_Mode" DataType="SINT" Radix="Decimal" Value="8"/>
<DataValueMember Name="Val_Owner" DataType="DINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_Notify" DataType="SINT" Radix="Decimal" Value="0"/>
<DataValueMember Name="Val_HiHiDevLim" DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
<DataValueMember Name="Val_HiDevLim" DataType="REAL" Radix="Float" Value="3.40282347e+038"/>
<DataValueMember Name="Val_LoDevLim" DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
<DataValueMember Name="Val_LoLoDevLim" DataType="REAL" Radix="Float" Value="-3.40282347e+038"/>
<DataValueMember Name="Sts_InstrFaults1" DataType="DINT" Radix="Binary" Value="2#0000_0000_0000_0000_0000_0000_0000_0000"/>
<DataValueMember Name="Sts_InstrFaults2" DataType="DINT" Radix="Binary" Value="2#0000_0000_0000_0000_0000_0000_0000_0000"/>
<DataValueMember Name="Sts_Casc" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Auto" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_Man" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Initializing" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_InitReq" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_WindupHi" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_WindupLo" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_ZCDBOn" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_RatioClamped" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_SPBad" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_SPClamped" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_PVBad" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_PVUncertain" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_FFBad" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_FFPrevBad" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_CVBad" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_CVPrevBad" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_CVInitValBad" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_HandFdbkBad" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_IntlkCV" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_CVClamped" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_CVRamping" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Active" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_Available" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_Bypass" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_BypActive" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Disabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_NotRdy" DataType="BOOL" Value="0"/>
<DataValueMember Name="Nrdy_Disabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Nrdy_CfgErr" DataType="BOOL" Value="0"/>
<DataValueMember Name="Nrdy_Intlk" DataType="BOOL" Value="0"/>
<DataValueMember Name="Nrdy_Init" DataType="BOOL" Value="0"/>
<DataValueMember Name="Nrdy_IOFault" DataType="BOOL" Value="0"/>
<DataValueMember Name="Nrdy_NoMode" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_MaintByp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_AlmInh" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Err" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_RatioLim" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_SPLim" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_PVEU" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_CVLim" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_CVEU" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Timer" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_DB" DataType="BOOL" Value="0"/>
<DataValueMember Name="Err_Alarm" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Hand" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Maint" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Ovrd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Prog" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_Oper" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_ProgOperLock" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_NoMode" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_MAcqRcvd" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_HiHiDevCmp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_HiHiDevGate" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_HiHiDev" DataType="BOOL" Value="0"/>
<DataValueMember Name="Alm_HiHiDev" DataType="BOOL" Value="0"/>
<DataValueMember Name="Ack_HiHiDev" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_HiHiDevDisabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_HiHiDevShelved" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_HiHiDevSuppressed" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_HiDevCmp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_HiDevGate" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_HiDev" DataType="BOOL" Value="0"/>
<DataValueMember Name="Alm_HiDev" DataType="BOOL" Value="0"/>
<DataValueMember Name="Ack_HiDev" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_HiDevDisabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_HiDevShelved" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_HiDevSuppressed" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_LoDevCmp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_LoDevGate" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_LoDev" DataType="BOOL" Value="0"/>
<DataValueMember Name="Alm_LoDev" DataType="BOOL" Value="0"/>
<DataValueMember Name="Ack_LoDev" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_LoDevDisabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_LoDevShelved" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_LoDevSuppressed" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_LoLoDevCmp" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_LoLoDevGate" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_LoLoDev" DataType="BOOL" Value="0"/>
<DataValueMember Name="Alm_LoLoDev" DataType="BOOL" Value="0"/>
<DataValueMember Name="Ack_LoLoDev" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_LoLoDevDisabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_LoLoDevShelved" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_LoLoDevSuppressed" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_IntlkTrip" DataType="BOOL" Value="0"/>
<DataValueMember Name="Alm_IntlkTrip" DataType="BOOL" Value="0"/>
<DataValueMember Name="Ack_IntlkTrip" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_IntlkTripDisabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_IntlkTripShelved" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_IntlkTripSuppressed" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_Fail" DataType="BOOL" Value="0"/>
<DataValueMember Name="Alm_Fail" DataType="BOOL" Value="0"/>
<DataValueMember Name="Ack_Fail" DataType="BOOL" Value="1"/>
<DataValueMember Name="Sts_FailDisabled" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_FailShelved" DataType="BOOL" Value="0"/>
<DataValueMember Name="Sts_FailSuppressed" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Casc" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Auto" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Man" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Bypass" DataType="BOOL" Value="1"/>
<DataValueMember Name="Rdy_Check" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Disable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Enable" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Reset" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_ResetAckAll" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_Ratio" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_SP" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_CV" DataType="BOOL" Value="0"/>
<DataValueMember Name="Rdy_OSet" DataType="BOOL" Value="0"/>
<DataValueMember Name="P_PIDE" DataType="BOOL" Value="0"/>
</Structure>
</Data>
</Tag>
<Tag Name="sts_PID_Control" TagType="Base" DataType="DINT" Radix="Decimal" Constant="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[PID Control Status
0 = Flow
1 = Intake Pressure
2 = Tubing Pressure
3 = Manual Entry]]>
</Description>
<Data Format="L5K">
<![CDATA[1]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="DINT" Radix="Decimal" Value="1"/>
</Data>
</Tag>
<Tag Name="val_FluidLevel" TagType="Base" DataType="REAL" Radix="Float" Constant="false" ExternalAccess="Read/Write">
<Description>
<![CDATA[Fluid Level in feet above the pump intake]]>
</Description>
<Data Format="L5K">
<![CDATA[4.00979156e+001]]>
</Data>
<Data Format="Decorated">
<DataValue DataType="REAL" Radix="Float" Value="40.097916"/>
</Data>
</Tag>
</Tags>
<Programs Use="Context">
<Program Use="Context" Name="MainProgram">
<Routines Use="Context">
<Routine Use="Context" Name="PID_Control">
<RLLContent Use="Context">
<Rung Use="Target" Number="7" Type="N">
<Text>
<![CDATA[[EQU(sts_PID_Control,1) [CMP(val_FluidLevel >= (PIDE_Control.PSet_SP + 5)) MOV(cfg_LevelHigherGains.cfg_PGain,PIDE_Control.Cfg_PGain) MOV(cfg_LevelHigherGains.cfg_IGain,PIDE_Control.Cfg_IGain) MOV(cfg_LevelHigherGains.cfg_DGain,PIDE_Control.Cfg_DGain) ,CMP(val_FluidLevel < (PIDE_Control.PSet_SP + 5)) MOV(cfg_LevelLowerGains.cfg_PGain,PIDE_Control.Cfg_PGain) MOV(cfg_LevelLowerGains.cfg_IGain,PIDE_Control.Cfg_IGain) MOV(cfg_LevelLowerGains.cfg_DGain,PIDE_Control.Cfg_DGain) ] ,NEQ(sts_PID_Control,1) MOV(cfg_LevelHigherGains.cfg_PGain,PIDE_Control.Cfg_PGain) MOV(cfg_LevelHigherGains.cfg_IGain,PIDE_Control.Cfg_IGain) MOV(cfg_LevelHigherGains.cfg_DGain,PIDE_Control.Cfg_DGain) ];]]>
</Text>
</Rung>
</RLLContent>
</Routine>
</Routines>
</Program>
</Programs>
</Controller>
</RSLogix5000Content>