<?xml version="1.0" encoding="utf-8"?>
<Symbolconfiguration xmlns="http://www.3s-software.com/schemas/Symbolconfiguration.xsd">
  <Header>
    <Version>3.5.14.0</Version>
    <SymbolConfigObject version="4.7.0.0" runtimeid="3.5.20.10" libversion="4.6.0.0" compiler="3.5.21.10" lmm="3.5.21.40" profile="CODESYS V3.5 SP21 Patch 4+" settings="SupportOPCUA, XmlIncludeComments, LayoutCalculator=OptimizedClientSideLayoutCalculator" />
    <ProjectInfo name="cr_barn5" devicename="Device" appname="Application" />
  </Header>
  <TypeList>
    <TypeSimple name="T_BOOL" size="1" swapsize="0" typeclass="Bool" iecname="BOOL" />
    <TypeSimple name="T_DATE_AND_TIME" size="4" swapsize="4" typeclass="DateAndTime" iecname="DATE_AND_TIME" />
    <TypeSimple name="T_DINT" size="4" swapsize="4" typeclass="DInt" iecname="DINT" />
    <TypeSimple name="T_INT" size="2" swapsize="2" typeclass="Int" iecname="INT" />
    <TypeSimple name="T_LDATE_AND_TIME" size="8" swapsize="8" typeclass="LDateAndTime" iecname="LDATE_AND_TIME" />
    <TypeSimple name="T_STRING" size="81" swapsize="0" typeclass="String" iecname="STRING" />
    <TypeSimple name="T_UINT" size="2" swapsize="2" typeclass="UInt" iecname="UINT" />
    <TypeUserDef name="T_atAlarmEventType" size="2" nativesize="2" swapsize="2" typeclass="Enum" iecname="atAlarmEventType" basetype="T_INT">
      <UserDefElement type="T_atAlarmEventType" iecname="null" enumvalue="0" />
      <UserDefElement type="T_atAlarmEventType" iecname="alm" enumvalue="1" />
      <UserDefElement type="T_atAlarmEventType" iecname="rtn" enumvalue="2" />
    </TypeUserDef>
    <TypeUserDef name="T_atMessagingEmailAddress" size="82" nativesize="88" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="atMessagingEmailAddress">
      <UserDefElement iecname="address" type="T_STRING" byteoffset="0" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="enabled" type="T_BOOL" byteoffset="81" vartype="VAR_INPUT" access="ReadWrite" />
    </TypeUserDef>
    <TypeUserDef name="T_atMessagingEmailStatus" size="96" nativesize="96" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="atMessagingEmailStatus">
      <UserDefElement iecname="lastStatusMessage" type="T_STRING" byteoffset="0" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="lastStatus" type="T_BOOL" byteoffset="81" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="lastStatusTime" type="T_LDATE_AND_TIME" byteoffset="88" vartype="VAR_INPUT" access="ReadWrite" />
    </TypeUserDef>
    <TypeArray name="T_ARRAY__0__9__OF_atMessagingEmailAddress" size="820" nativesize="880" typeclass="Array" iecname="ARRAY [0..9] OF atMessagingEmailAddress" basetype="T_atMessagingEmailAddress">
      <ArrayDim minrange="0" maxrange="9" />
    </TypeArray>
    <TypeUserDef name="T_atAlarmStatus" size="168" nativesize="172" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="atAlarmStatus">
      <UserDefElement iecname="timestamp" type="T_DATE_AND_TIME" byteoffset="0" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="event" type="T_atAlarmEventType" byteoffset="4" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="id" type="T_STRING" byteoffset="6" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="description" type="T_STRING" byteoffset="87" vartype="VAR_INPUT" access="ReadWrite" />
    </TypeUserDef>
    <TypeArray name="T_ARRAY__0__249__OF_atAlarmStatus" size="42000" nativesize="43000" typeclass="Array" iecname="ARRAY [0..249] OF atAlarmStatus" basetype="T_atAlarmStatus">
      <ArrayDim minrange="0" maxrange="249" />
    </TypeArray>
    <TypeUserDef name="T_atMessagingEmailSettings" size="1310" nativesize="1380" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="atMessagingEmailSettings">
      <UserDefElement iecname="server" type="T_STRING" byteoffset="0" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="smtpPort" type="T_UINT" byteoffset="82" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="useSSL" type="T_BOOL" byteoffset="84" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="fromName" type="T_STRING" byteoffset="85" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="fromAddress" type="T_STRING" byteoffset="166" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="password" type="T_STRING" byteoffset="247" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="username" type="T_STRING" byteoffset="328" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="toAddress" type="T_ARRAY__0__9__OF_atMessagingEmailAddress" byteoffset="409" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="subject" type="T_STRING" byteoffset="1229" vartype="VAR_INPUT" access="ReadWrite" />
    </TypeUserDef>
    <TypeUserDef name="T_atAlarmManager" size="42000" nativesize="121116" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="atAlarmManager">
      <UserDefElement iecname="all" type="T_ARRAY__0__249__OF_atAlarmStatus" byteoffset="0" vartype="VAR_OUTPUT" access="ReadWrite" />
    </TypeUserDef>
    <TypeUserDef name="T_atMessaging" size="1408" nativesize="1480" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="atMessaging">
      <UserDefElement iecname="emailSettings" type="T_atMessagingEmailSettings" byteoffset="0" vartype="VAR_INPUT" access="ReadWrite" />
      <UserDefElement iecname="emailStatus" type="T_atMessagingEmailStatus" byteoffset="1312" vartype="VAR_OUTPUT" access="ReadWrite" />
    </TypeUserDef>
  </TypeList>
  <NodeList>
    <Node name="Application">
      <Node name="AlarmManager">
        <Node name="AlarmGlobals">
          <Comment> This GVL must be initialized before GVL "GloballyForAlarmStorage", because this GVL
 causes the initialization of the variable g_stApplicationName.
 We only need the date and time format pattern for the converted code, therefore
 we can (and must!) omit the rest from conversion
 We must not use an attribute to hide this GVL, because there are some variables,
 that a developer might use. Additionally it is necessary, that this GVL in considered
 in the data server, but not visible for the user, because some variables of this GVL
 are added to the data source selection implicitely and for this purpose it is necessary,
 that this GVL is a part of the available items tree.</Comment>
          <Node name="g_diAlarmStateTransitionCounter" type="T_DINT" access="Read">
            <Comment> A global counter, that counts all the alarm state transitions, that occur.
 Needed by the alarm table for optimized painting. If this counter doesn't
 change during subsequent paint calls, the same alarms have been active and
 in the same state.
 Conditional show attribute must not be present for this variable, because
 some architectural problems it can lead in a not correct regitration
CHECKED_OMIT</Comment>
          </Node>
          <Node name="g_diAlarmStorageCounter" type="T_DINT" access="Read">
            <Comment> A similar counter, that will be incremented each time an alarm is written
 into the alarm storage. This allows the alarm table to detect, whether
 some kind of processing has to be done, because there exists a new alarm.
 Conditional show attribute must not be present for this variable, because
 some architectural problems it can lead in a not correct regitration
CHECKED_OMIT</Comment>
          </Node>
        </Node>
      </Node>
      <Node name="atGVL">
        <Node name="alarmManager" type="T_atAlarmManager" access="ReadWrite">
          <Comment>Alarm logging and active alarm count</Comment>
        </Node>
      </Node>
      <Node name="Message">
        <Node name="messaging" type="T_atMessaging" access="ReadWrite" />
      </Node>
    </Node>
  </NodeList>
</Symbolconfiguration>