{ProgramFile}
 ├──verificationOptions: <empty>
 ├──globalVariables: <empty>
 └──programUnits: 
    {FunctionBlock name=TYPE1_State_12 builtIn=false}
     ├──attributes: <null>
     ├──declarationSection: 
     │  {DeclarationSection}
     │   ├──variableDeclarations: 
     │   │  {VariableDeclarationBlock direction=VAR_INPUT retain=false}
     │   │   └──variables: 
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=DemandAvailability reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=BOOL}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=AvailabilityChanged reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=BOOL}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=ComponentSetup_Done reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=BOOL}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=CommandIn reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=BYTE}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=Unit_is_Type1 reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=BOOL}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=Sig1_from_Type2 reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=BOOL}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=Sig2_from_Type2 reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=BOOL}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=Orientation_Valid reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=BOOL}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │  {VariableDeclarationBlock direction=VAR_OUTPUT retain=false}
     │   │   └──variables: 
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=State_Type1 reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=INT}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=Type1_SetupDone reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=BOOL}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │  {VariableDeclarationBlock direction=VAR retain=false}
     │   │   └──variables: 
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=Setup_State_Type1_T_ON reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {FbOrUdtDT type:{NamedElement name=TOnDelay}}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=LockCond reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=BOOL}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=Communication_Test_Command reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=BOOL}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=Communication_Test_Command_Old reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=BOOL}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   │      {VariableDeclarationLine initialized=false bounded=false}
     │   │       ├──variables: 
     │   │       │  {Variable name=State_Type1_Old reference=false ref:<null>}
     │   │       ├──type: 
     │   │       │  {ElementaryDT type=INT}
     │   │       ├──initialization: <null>
     │   │       ├──lowerBound: <null>
     │   │       └──upperBound: <null>
     │   ├──constantDeclarations: 
     │   │  {ConstDeclarationBlock}
     │   │   └──constants: 
     │   │      {NamedConstantDeclaration name=CMD_BASIC}
     │   │       └──value: 
     │   │          {IntConstant value=BYTE#251}
     │   │      {NamedConstantDeclaration name=CMD_FINISHED}
     │   │       └──value: 
     │   │          {IntConstant value=BYTE#252}
     │   │      {NamedConstantDeclaration name=CMD_ABORTED}
     │   │       └──value: 
     │   │          {IntConstant value=BYTE#254}
     │   │      {NamedConstantDeclaration name=CMD_UNAVAILABLE}
     │   │       └──value: 
     │   │          {IntConstant value=BYTE#255}
     │   └──labelDeclarations: <empty>
     └──statements: 
        {SclStatementList}
         └──statements: 
            {SclIfStatement else=false}
             ├──condition: 
             │  {UnaryExpression op=NOT}
             │   └──expr: 
             │      {DirectNamedRef ref:{NamedElement name=Unit_is_Type1}}
             ├──thenBranch: 
             │  {SclStatementList}
             │   └──statements: 
             │      {SclAssignmentStatement}
             │       ├──leftValue: 
             │       │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
             │       └──rightValue: 
             │          {IntConstant value=INT#0}
             ├──elsifBranches: <empty>
             └──elseBranch: <null>
            {SclIfStatement else=false}
             ├──condition: 
             │  {AndExpression opString=AND}
             │   ├──left: 
             │   │  {DirectNamedRef ref:{NamedElement name=Unit_is_Type1}}
             │   └──right: 
             │      {EqualityExpression operator==}
             │       ├──left: 
             │       │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
             │       └──right: 
             │          {IntConstant value=INT#0}
             ├──thenBranch: 
             │  {SclStatementList}
             │   └──statements: 
             │      {SclAssignmentStatement}
             │       ├──leftValue: 
             │       │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
             │       └──rightValue: 
             │          {IntConstant value=INT#10}
             ├──elsifBranches: <empty>
             └──elseBranch: <null>
            {SclAssignmentStatement}
             ├──leftValue: 
             │  {DirectNamedRef ref:{NamedElement name=Type1_SetupDone}}
             └──rightValue: 
                {AndExpression opString=AND}
                 ├──left: 
                 │  {UnaryExpression op=NOT}
                 │   └──expr: 
                 │      {EqualityExpression operator==}
                 │       ├──left: 
                 │       │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
                 │       └──right: 
                 │          {IntConstant value=INT#0}
                 └──right: 
                    {UnaryExpression op=NOT}
                     └──expr: 
                        {EqualityExpression operator==}
                         ├──left: 
                         │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
                         └──right: 
                            {IntConstant value=INT#10}
            {SclSubroutineCall hasExplicitDataBlock=false calledUnit:{NamedElement name=Setup_State_Type1_T_ON} dataBlock:<null>}
             └──callParameter: 
                {CallParameterList}
                 └──parameters: 
                    {NamedCallParameterItem assignmentOperator=:= parameter:{NamedElement name=In}}
                     └──value: 
                        {AndExpression opString=AND}
                         ├──left: 
                         │  {EqualityExpression operator==}
                         │   ├──left: 
                         │   │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
                         │   └──right: 
                         │      {IntConstant value=INT#10}
                         └──right: 
                            {DirectNamedRef ref:{NamedElement name=ComponentSetup_Done}}
                    {NamedCallParameterItem assignmentOperator=:= parameter:{NamedElement name=TimeOnDelay}}
                     └──value: 
                        {TimeConstant value=T#10000MS}
                    {NamedCallParameterItem assignmentOperator=:= parameter:{NamedElement name=InitState}}
                     └──value: 
                        {BoolConstant value=FALSE}
            {SclAssignmentStatement}
             ├──leftValue: 
             │  {DirectNamedRef ref:{NamedElement name=LockCond}}
             └──rightValue: 
                {BoolConstant value=FALSE}
            {SclIfStatement else=false}
             ├──condition: 
             │  {OrExpression}
             │   ├──left: 
             │   │  {QualifiedRef}
             │   │   ├──prefix: 
             │   │   │  {DirectNamedRef ref:{NamedElement name=Setup_State_Type1_T_ON}}
             │   │   └──ref: 
             │   │      {DirectNamedRef ref:{NamedElement name=Out}}
             │   └──right: 
             │      {AndExpression opString=AND}
             │       ├──left: 
             │       │  {AndExpression opString=AND}
             │       │   ├──left: 
             │       │   │  {UnaryExpression op=NOT}
             │       │   │   └──expr: 
             │       │   │      {EqualityExpression operator==}
             │       │   │       ├──left: 
             │       │   │       │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
             │       │   │       └──right: 
             │       │   │          {IntConstant value=INT#0}
             │       │   └──right: 
             │       │      {UnaryExpression op=NOT}
             │       │       └──expr: 
             │       │          {EqualityExpression operator==}
             │       │           ├──left: 
             │       │           │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
             │       │           └──right: 
             │       │              {IntConstant value=INT#10}
             │       └──right: 
             │          {OrExpression}
             │           ├──left: 
             │           │  {OrExpression}
             │           │   ├──left: 
             │           │   │  {EqualityExpression operator==}
             │           │   │   ├──left: 
             │           │   │   │  {DirectNamedRef ref:{NamedElement name=CommandIn}}
             │           │   │   └──right: 
             │           │   │      {IntConstant value=BYTE#0}
             │           │   └──right: 
             │           │      {XorExpression}
             │           │       ├──left: 
             │           │       │  {DirectNamedRef ref:{NamedElement name=Sig1_from_Type2}}
             │           │       └──right: 
             │           │          {DirectNamedRef ref:{NamedElement name=Sig2_from_Type2}}
             │           └──right: 
             │              {UnaryExpression op=NOT}
             │               └──expr: 
             │                  {DirectNamedRef ref:{NamedElement name=Orientation_Valid}}
             ├──thenBranch: 
             │  {SclStatementList}
             │   └──statements: 
             │      {SclAssignmentStatement}
             │       ├──leftValue: 
             │       │  {DirectNamedRef ref:{NamedElement name=LockCond}}
             │       └──rightValue: 
             │          {BoolConstant value=TRUE}
             ├──elsifBranches: <empty>
             └──elseBranch: <null>
            {SclIfStatement else=false}
             ├──condition: 
             │  {DirectNamedRef ref:{NamedElement name=LockCond}}
             ├──thenBranch: 
             │  {SclStatementList}
             │   └──statements: 
             │      {SclAssignmentStatement}
             │       ├──leftValue: 
             │       │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
             │       └──rightValue: 
             │          {IntConstant value=INT#15}
             ├──elsifBranches: <empty>
             └──elseBranch: <null>
            {SclIfStatement else=false}
             ├──condition: 
             │  {AndExpression opString=AND}
             │   ├──left: 
             │   │  {AndExpression opString=AND}
             │   │   ├──left: 
             │   │   │  {EqualityExpression operator==}
             │   │   │   ├──left: 
             │   │   │   │  {DirectNamedRef ref:{NamedElement name=CommandIn}}
             │   │   │   └──right: 
             │   │   │      {DirectNamedRef ref:{NamedElement name=CMD_BASIC}}
             │   │   └──right: 
             │   │      {EqualityExpression operator==}
             │   │       ├──left: 
             │   │       │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
             │   │       └──right: 
             │   │          {IntConstant value=INT#15}
             │   └──right: 
             │      {UnaryExpression op=NOT}
             │       └──expr: 
             │          {DirectNamedRef ref:{NamedElement name=LockCond}}
             ├──thenBranch: 
             │  {SclStatementList}
             │   └──statements: 
             │      {SclAssignmentStatement}
             │       ├──leftValue: 
             │       │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
             │       └──rightValue: 
             │          {IntConstant value=INT#20}
             ├──elsifBranches: <empty>
             └──elseBranch: <null>
            {SclAssignmentStatement}
             ├──leftValue: 
             │  {DirectNamedRef ref:{NamedElement name=Communication_Test_Command}}
             └──rightValue: 
                {SclSubroutineCall hasExplicitDataBlock=false calledUnit:{NamedElement name=RangeOfCommTest} dataBlock:<null>}
                 └──callParameter: 
                    {SingleCallParameter}
                     └──parameter: 
                        {DirectNamedRef ref:{NamedElement name=CommandIn}}
            {SclIfStatement else=false}
             ├──condition: 
             │  {AndExpression opString=AND}
             │   ├──left: 
             │   │  {AndExpression opString=AND}
             │   │   ├──left: 
             │   │   │  {AndExpression opString=AND}
             │   │   │   ├──left: 
             │   │   │   │  {EqualityExpression operator==}
             │   │   │   │   ├──left: 
             │   │   │   │   │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
             │   │   │   │   └──right: 
             │   │   │   │      {IntConstant value=INT#20}
             │   │   │   └──right: 
             │   │   │      {UnaryExpression op=NOT}
             │   │   │       └──expr: 
             │   │   │          {DirectNamedRef ref:{NamedElement name=Communication_Test_Command_Old}}
             │   │   └──right: 
             │   │      {DirectNamedRef ref:{NamedElement name=Communication_Test_Command}}
             │   └──right: 
             │      {UnaryExpression op=NOT}
             │       └──expr: 
             │          {DirectNamedRef ref:{NamedElement name=LockCond}}
             ├──thenBranch: 
             │  {SclStatementList}
             │   └──statements: 
             │      {SclAssignmentStatement}
             │       ├──leftValue: 
             │       │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
             │       └──rightValue: 
             │          {IntConstant value=INT#30}
             ├──elsifBranches: <empty>
             └──elseBranch: <null>
            {SclIfStatement else=false}
             ├──condition: 
             │  {AndExpression opString=AND}
             │   ├──left: 
             │   │  {AndExpression opString=AND}
             │   │   ├──left: 
             │   │   │  {AndExpression opString=AND}
             │   │   │   ├──left: 
             │   │   │   │  {EqualityExpression operator==}
             │   │   │   │   ├──left: 
             │   │   │   │   │  {DirectNamedRef ref:{NamedElement name=State_Type1_Old}}
             │   │   │   │   └──right: 
             │   │   │   │      {IntConstant value=INT#30}
             │   │   │   └──right: 
             │   │   │      {EqualityExpression operator==}
             │   │   │       ├──left: 
             │   │   │       │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
             │   │   │       └──right: 
             │   │   │          {IntConstant value=INT#30}
             │   │   └──right: 
             │   │      {UnaryExpression op=NOT}
             │   │       └──expr: 
             │   │          {DirectNamedRef ref:{NamedElement name=LockCond}}
             │   └──right: 
             │      {OrExpression}
             │       ├──left: 
             │       │  {OrExpression}
             │       │   ├──left: 
             │       │   │  {AndExpression opString=AND}
             │       │   │   ├──left: 
             │       │   │   │  {UnaryExpression op=NOT}
             │       │   │   │   └──expr: 
             │       │   │   │      {DirectNamedRef ref:{NamedElement name=AvailabilityChanged}}
             │       │   │   └──right: 
             │       │   │      {UnaryExpression op=NOT}
             │       │   │       └──expr: 
             │       │   │          {DirectNamedRef ref:{NamedElement name=DemandAvailability}}
             │       │   └──right: 
             │       │      {EqualityExpression operator==}
             │       │       ├──left: 
             │       │       │  {DirectNamedRef ref:{NamedElement name=CommandIn}}
             │       │       └──right: 
             │       │          {DirectNamedRef ref:{NamedElement name=CMD_BASIC}}
             │       └──right: 
             │          {EqualityExpression operator==}
             │           ├──left: 
             │           │  {DirectNamedRef ref:{NamedElement name=CommandIn}}
             │           └──right: 
             │              {DirectNamedRef ref:{NamedElement name=CMD_ABORTED}}
             ├──thenBranch: 
             │  {SclStatementList}
             │   └──statements: 
             │      {SclAssignmentStatement}
             │       ├──leftValue: 
             │       │  {DirectNamedRef ref:{NamedElement name=State_Type1}}
             │       └──rightValue: 
             │          {IntConstant value=INT#20}
             ├──elsifBranches: <empty>
             └──elseBranch: <null>
            {SclAssignmentStatement}
             ├──leftValue: 
             │  {DirectNamedRef ref:{NamedElement name=Communication_Test_Command_Old}}
             └──rightValue: 
                {DirectNamedRef ref:{NamedElement name=Communication_Test_Command}}
            {SclAssignmentStatement}
             ├──leftValue: 
             │  {DirectNamedRef ref:{NamedElement name=State_Type1_Old}}
             └──rightValue: 
                {DirectNamedRef ref:{NamedElement name=State_Type1}}
