PLCgen TwinCAT self-certification: variables from MAIN not recognized in FUNCTION
**Test report** | Tool | Version | | ------ | ------ | | ESCET | nightly-20241023-115319 | | TwinCAT | v3.1 build 4020.56 | | Test suite | v27 | Setup of TwinCAT as described here: https://cstweb.wtb.tue.nl/4tc00/twincat/setup.html#twincat-install. Project generated as described here: https://eclipse.dev/escet/cif/tools/plcgen/twincat.html#twincat-usage. **Test case**: `iter_limit3_funcs_event.cif`, `iter_limit3_funcs_scope.cif`, `sync_events_funcs_event.cif`, `sync_events_funcs_scope.cif` _Encountered errors_ I get a long list of errors, all caused by variables declared in `MAIN` not being recognized in the two `FUNCTION`s `tryEvent_a_c` and `tryEvent_a_u`. This is an example of the generated error messages: - `Unknown type: '(a_x > 0)'` in `\Untitled1\POUs\tryEvent_a_c.TcPOU` at line 30 - `Identifier 'a_y' not defined` in `\Untitled1\POUs\tryEvent_a_c.TcPOU` at line 30 - `Identifier 'a_x' not defined` in `\Untitled1\POUs\tryEvent_a_c.TcPOU` at line 30 The relevant piece of generated code is for the three errors above is ``` IF a_x > 0 AND a_y > 0 THEN edge_a := 0; ELSE ``` The problematic variables are declared in `MAIN` as follows: ``` PROGRAM MAIN VAR a_x: DINT; a_y: DINT; firstRun: BOOL := TRUE; loopsExhausted: INT; END_VAR ``` Error seems to be independent from #1038. Addresses #1020 #679 (Edit: clean format error messages.)
issue

Copyright © Eclipse Foundation AISBL. All rights reserved.     Privacy Policy | Terms of Use | Copyright Agent