diff -r 000000000000 -r fb772792efd1 stage4/generate_cc/plciec.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stage4/generate_cc/plciec.cc Wed Jan 31 15:32:38 2007 +0100 @@ -0,0 +1,62 @@ +/* + * (c) 2003 Mario de Sousa + * + * Offered to the public under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * This code is made available on the understanding that it will not be + * used in safety-critical situations without a full and competent review. + */ + +/* + * An IEC 61131-3 IL and ST compiler. + * + * Based on the + * FINAL DRAFT - IEC 61131-3, 2nd Ed. (2001-12-10) + * + */ + + +/* + * Code to be included into the code generated by the 4th stage. + * + * This is part of the 4th stage that generates + * a c++ source program equivalent to the IL and ST + * code. + */ + + +TIME __CURRENT_TIME; + +int main(int argc, char **argv) { + struct timespec tp; + + if (plc_init(DEFAULT_MODULE_NAME, argc, argv) < 0) { + printf("Error connecting to PLC.\n"); + exit(EXIT_FAILURE); + } + __configuration_c config; + /* loop... */ + while (1) { + plc_scan_beg(); + plc_update(); + if (clock_gettime(CLOCK_REALTIME, &tp) < 0) + IEC_error(); + __CURRENT_TIME = tp; + config.run(); + plc_update(); + plc_scan_end(); + } /* while (1) */ +return -1; +} + + + + +