etisserant@49: /* etisserant@49: * Functions and variables provied by generated C softPLC etisserant@49: **/ etisserant@49: extern int common_ticktime__; etisserant@49: etisserant@49: /* etisserant@49: * Functions and variables provied by plc.c etisserant@49: **/ etisserant@49: void run(long int tv_sec, long int tv_nsec); etisserant@49: etisserant@49: #define maxval(a,b) ((a>b)?a:b) etisserant@49: etisserant@49: #include "iec_types.h" etisserant@49: etisserant@49: /* etisserant@49: * Functions and variables provied by generated C softPLC etisserant@49: **/ etisserant@49: void config_run__(int tick); etisserant@49: void config_init__(void); etisserant@49: etisserant@49: /* etisserant@49: * Functions and variables to export to generated C softPLC etisserant@49: **/ etisserant@49: etisserant@49: IEC_TIME __CURRENT_TIME; etisserant@49: etisserant@49: static int tick = 0; etisserant@57: static int init_level=0; etisserant@49: etisserant@54: /* lbessard@137: * Prototypes of functions exported by plugins etisserant@54: **/ etisserant@49: %(calls_prototypes)s etisserant@49: etisserant@54: /* lbessard@137: * Retrieve input variables, run PLC and publish output variables etisserant@54: **/ etisserant@49: void __run() etisserant@49: { lbessard@137: %(retrieve_calls)s etisserant@54: etisserant@49: config_run__(tick++); etisserant@54: etisserant@49: %(publish_calls)s etisserant@49: } etisserant@49: etisserant@54: /* etisserant@54: * Initialize variables according to PLC's defalut values, etisserant@54: * and then init plugins with that values etisserant@54: **/ etisserant@57: int __init(int argc,char **argv) etisserant@49: { etisserant@57: int res; etisserant@49: config_init__(); etisserant@49: %(init_calls)s etisserant@57: return 0; etisserant@49: } etisserant@54: /* etisserant@54: * Calls plugin cleanup proc. etisserant@54: **/ etisserant@49: void __cleanup() etisserant@49: { etisserant@49: %(cleanup_calls)s etisserant@49: } etisserant@49: