tests/syntax/sfc/sfc.txt
changeset 109 3af0b849b9c6
equal deleted inserted replaced
108:f9e001952488 109:3af0b849b9c6
       
     1 PROGRAM MAIN_TEST
       
     2   VAR
       
     3     QX1 AT %QX1 : BOOL := 1;
       
     4     QX2 AT %QX2 : BOOL := 0;
       
     5     QX3 AT %QX3 : BOOL;
       
     6     IX1 AT %IX1 : BOOL;
       
     7     IX2 AT %IX2 : BOOL;
       
     8     IX3 AT %IX3 : BOOL;
       
     9   END_VAR
       
    10 
       
    11   INITIAL_STEP GO:
       
    12   END_STEP
       
    13 
       
    14   TRANSITION FROM GO TO STEP1
       
    15     := IX1 = FALSE;
       
    16   END_TRANSITION
       
    17 
       
    18   STEP STEP1:
       
    19     ONSTEP1(N);
       
    20   END_STEP
       
    21 
       
    22   ACTION ONSTEP1:
       
    23     QX1 := TRUE;
       
    24     QX2 := TRUE;
       
    25   END_ACTION
       
    26 
       
    27   TRANSITION FROM STEP1 TO STEP2
       
    28     := IX2 = TRUE;
       
    29   END_TRANSITION
       
    30 
       
    31   STEP STEP2:
       
    32     INLINE1(P);
       
    33   END_STEP
       
    34 
       
    35   ACTION INLINE1:
       
    36     QX1 := QX2 XOR QX1; QX2 := NOT QX2;
       
    37   END_ACTION
       
    38 
       
    39   TRANSITION FROM STEP2 TO A1
       
    40     := QX1 = FALSE AND QX2 = FALSE;
       
    41   END_TRANSITION
       
    42 
       
    43   STEP A1:
       
    44     INLINE2(N);
       
    45   END_STEP
       
    46 
       
    47   ACTION INLINE2:
       
    48     IX1 := TRUE;
       
    49   END_ACTION
       
    50 
       
    51   TRANSITION FROM A1 TO STEP2
       
    52     := IX1 = TRUE;
       
    53   END_TRANSITION
       
    54 
       
    55   TRANSITION FROM STEP2 TO (D1, D2, D3)
       
    56     := QX1 = TRUE AND QX2 = TRUE;
       
    57   END_TRANSITION
       
    58 
       
    59   STEP D1:
       
    60     INLINE5(N);
       
    61   END_STEP
       
    62 
       
    63   ACTION INLINE5:
       
    64     QX1 := FALSE;
       
    65   END_ACTION
       
    66 
       
    67   TRANSITION FROM D1 TO E1
       
    68     := NOT ( QX1 OR QX2 OR QX3 );
       
    69   END_TRANSITION
       
    70 
       
    71   STEP E1:
       
    72     INLINE8(N);
       
    73   END_STEP
       
    74 
       
    75   ACTION INLINE8:
       
    76     QX1 := TRUE;
       
    77   END_ACTION
       
    78 
       
    79   TRANSITION FROM (E1, E2, E3) TO GO
       
    80     := QX1 AND QX2 AND QX3;
       
    81   END_TRANSITION
       
    82 
       
    83   STEP D2:
       
    84     INLINE6(N);
       
    85   END_STEP
       
    86 
       
    87   ACTION INLINE6:
       
    88     QX2 := FALSE;
       
    89   END_ACTION
       
    90 
       
    91   TRANSITION FROM D2 TO E2
       
    92     := NOT ( QX1 OR QX2 OR QX3 );
       
    93   END_TRANSITION
       
    94 
       
    95   STEP E2:
       
    96     INLINE9(N);
       
    97   END_STEP
       
    98 
       
    99   ACTION INLINE9:
       
   100     QX2 := TRUE;
       
   101   END_ACTION
       
   102 
       
   103   STEP D3:
       
   104     INLINE7(N);
       
   105   END_STEP
       
   106 
       
   107   ACTION INLINE7:
       
   108     QX2 := FALSE;
       
   109   END_ACTION
       
   110 
       
   111   TRANSITION FROM D3 TO E3
       
   112     := NOT ( QX1 OR QX2 OR QX3 );
       
   113   END_TRANSITION
       
   114 
       
   115   STEP E3:
       
   116     INLINE10(N);
       
   117   END_STEP
       
   118 
       
   119   ACTION INLINE10:
       
   120     QX3 := TRUE;
       
   121   END_ACTION
       
   122 
       
   123   TRANSITION FROM STEP2 TO A3
       
   124     := QX1 = TRUE AND QX2 = FALSE;
       
   125   END_TRANSITION
       
   126 
       
   127   STEP A3:
       
   128     INLINE4(N);
       
   129   END_STEP
       
   130 
       
   131   ACTION INLINE4:
       
   132     IX1 := TRUE;
       
   133   END_ACTION
       
   134 
       
   135   TRANSITION FROM A3 TO STEP2
       
   136     := IX1 = TRUE;
       
   137   END_TRANSITION
       
   138 
       
   139   TRANSITION FROM STEP2 TO A2
       
   140     := QX1 = FALSE AND QX2 = TRUE;
       
   141   END_TRANSITION
       
   142 
       
   143   STEP A2:
       
   144     INLINE3(N);
       
   145   END_STEP
       
   146 
       
   147   ACTION INLINE3:
       
   148     IX1 := FALSE;
       
   149   END_ACTION
       
   150 
       
   151   TRANSITION FROM A2 TO STEP2
       
   152     := IX1 = FALSE;
       
   153   END_TRANSITION
       
   154 
       
   155 END_PROGRAM
       
   156 
       
   157 
       
   158 CONFIGURATION STD_CONF
       
   159 
       
   160   RESOURCE STD_RESSOURCE ON BEREMIZ
       
   161     TASK STD_TASK(INTERVAL := t#100ms,PRIORITY := 0);
       
   162     PROGRAM MAIN_INSTANCE : MAIN_TEST;
       
   163   END_RESOURCE
       
   164 END_CONFIGURATION