Newer
Older
SCADA / plc / GRFICS_Workstation_Docs / Documents / chemical / build / POUS.c
root on 8 May 2022 37 KB playing with modbus day #1
  1. void LOGGER_init__(LOGGER *data__, BOOL retain) {
  2. __INIT_VAR(data__->EN,__BOOL_LITERAL(TRUE),retain)
  3. __INIT_VAR(data__->ENO,__BOOL_LITERAL(TRUE),retain)
  4. __INIT_VAR(data__->TRIG,__BOOL_LITERAL(FALSE),retain)
  5. __INIT_VAR(data__->MSG,__STRING_LITERAL(0,""),retain)
  6. __INIT_VAR(data__->LEVEL,LOGLEVEL__INFO,retain)
  7. __INIT_VAR(data__->TRIG0,__BOOL_LITERAL(FALSE),retain)
  8. }
  9.  
  10. // Code part
  11. void LOGGER_body__(LOGGER *data__) {
  12. // Control execution
  13. if (!__GET_VAR(data__->EN)) {
  14. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  15. return;
  16. }
  17. else {
  18. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  19. }
  20. // Initialise TEMP variables
  21.  
  22. if ((__GET_VAR(data__->TRIG,) && !(__GET_VAR(data__->TRIG0,)))) {
  23. #define GetFbVar(var,...) __GET_VAR(data__->var,__VA_ARGS__)
  24. #define SetFbVar(var,val,...) __SET_VAR(data__->,var,__VA_ARGS__,val)
  25.  
  26. LogMessage(GetFbVar(LEVEL),(char*)GetFbVar(MSG, .body),GetFbVar(MSG, .len));
  27. #undef GetFbVar
  28. #undef SetFbVar
  29. ;
  30. };
  31. __SET_VAR(data__->,TRIG0,,__GET_VAR(data__->TRIG,));
  32.  
  33. goto __end;
  34.  
  35. __end:
  36. return;
  37. } // LOGGER_body__()
  38.  
  39.  
  40.  
  41.  
  42.  
  43. void PYTHON_EVAL_init__(PYTHON_EVAL *data__, BOOL retain) {
  44. __INIT_VAR(data__->EN,__BOOL_LITERAL(TRUE),retain)
  45. __INIT_VAR(data__->ENO,__BOOL_LITERAL(TRUE),retain)
  46. __INIT_VAR(data__->TRIG,__BOOL_LITERAL(FALSE),retain)
  47. __INIT_VAR(data__->CODE,__STRING_LITERAL(0,""),retain)
  48. __INIT_VAR(data__->ACK,__BOOL_LITERAL(FALSE),retain)
  49. __INIT_VAR(data__->RESULT,__STRING_LITERAL(0,""),retain)
  50. __INIT_VAR(data__->STATE,0,retain)
  51. __INIT_VAR(data__->BUFFER,__STRING_LITERAL(0,""),retain)
  52. __INIT_VAR(data__->PREBUFFER,__STRING_LITERAL(0,""),retain)
  53. __INIT_VAR(data__->TRIGM1,__BOOL_LITERAL(FALSE),retain)
  54. __INIT_VAR(data__->TRIGGED,__BOOL_LITERAL(FALSE),retain)
  55. }
  56.  
  57. // Code part
  58. void PYTHON_EVAL_body__(PYTHON_EVAL *data__) {
  59. // Control execution
  60. if (!__GET_VAR(data__->EN)) {
  61. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  62. return;
  63. }
  64. else {
  65. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  66. }
  67. // Initialise TEMP variables
  68.  
  69. #define GetFbVar(var,...) __GET_VAR(data__->var,__VA_ARGS__)
  70. #define SetFbVar(var,val,...) __SET_VAR(data__->,var,__VA_ARGS__,val)
  71. extern void __PythonEvalFB(int, PYTHON_EVAL*);__PythonEvalFB(0, data__);
  72. #undef GetFbVar
  73. #undef SetFbVar
  74. ;
  75.  
  76. goto __end;
  77.  
  78. __end:
  79. return;
  80. } // PYTHON_EVAL_body__()
  81.  
  82.  
  83.  
  84.  
  85.  
  86. void PYTHON_POLL_init__(PYTHON_POLL *data__, BOOL retain) {
  87. __INIT_VAR(data__->EN,__BOOL_LITERAL(TRUE),retain)
  88. __INIT_VAR(data__->ENO,__BOOL_LITERAL(TRUE),retain)
  89. __INIT_VAR(data__->TRIG,__BOOL_LITERAL(FALSE),retain)
  90. __INIT_VAR(data__->CODE,__STRING_LITERAL(0,""),retain)
  91. __INIT_VAR(data__->ACK,__BOOL_LITERAL(FALSE),retain)
  92. __INIT_VAR(data__->RESULT,__STRING_LITERAL(0,""),retain)
  93. __INIT_VAR(data__->STATE,0,retain)
  94. __INIT_VAR(data__->BUFFER,__STRING_LITERAL(0,""),retain)
  95. __INIT_VAR(data__->PREBUFFER,__STRING_LITERAL(0,""),retain)
  96. __INIT_VAR(data__->TRIGM1,__BOOL_LITERAL(FALSE),retain)
  97. __INIT_VAR(data__->TRIGGED,__BOOL_LITERAL(FALSE),retain)
  98. }
  99.  
  100. // Code part
  101. void PYTHON_POLL_body__(PYTHON_POLL *data__) {
  102. // Control execution
  103. if (!__GET_VAR(data__->EN)) {
  104. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  105. return;
  106. }
  107. else {
  108. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  109. }
  110. // Initialise TEMP variables
  111.  
  112. #define GetFbVar(var,...) __GET_VAR(data__->var,__VA_ARGS__)
  113. #define SetFbVar(var,val,...) __SET_VAR(data__->,var,__VA_ARGS__,val)
  114. extern void __PythonEvalFB(int, PYTHON_EVAL*);__PythonEvalFB(1,(PYTHON_EVAL*)(void*)data__);
  115. #undef GetFbVar
  116. #undef SetFbVar
  117. ;
  118.  
  119. goto __end;
  120.  
  121. __end:
  122. return;
  123. } // PYTHON_POLL_body__()
  124.  
  125.  
  126.  
  127.  
  128.  
  129. void PYTHON_GEAR_init__(PYTHON_GEAR *data__, BOOL retain) {
  130. __INIT_VAR(data__->EN,__BOOL_LITERAL(TRUE),retain)
  131. __INIT_VAR(data__->ENO,__BOOL_LITERAL(TRUE),retain)
  132. __INIT_VAR(data__->N,0,retain)
  133. __INIT_VAR(data__->TRIG,__BOOL_LITERAL(FALSE),retain)
  134. __INIT_VAR(data__->CODE,__STRING_LITERAL(0,""),retain)
  135. __INIT_VAR(data__->ACK,__BOOL_LITERAL(FALSE),retain)
  136. __INIT_VAR(data__->RESULT,__STRING_LITERAL(0,""),retain)
  137. PYTHON_EVAL_init__(&data__->PY_EVAL,retain);
  138. __INIT_VAR(data__->COUNTER,0,retain)
  139. __INIT_VAR(data__->ADD10_OUT,0,retain)
  140. __INIT_VAR(data__->EQ13_OUT,__BOOL_LITERAL(FALSE),retain)
  141. __INIT_VAR(data__->SEL15_OUT,0,retain)
  142. __INIT_VAR(data__->AND7_OUT,__BOOL_LITERAL(FALSE),retain)
  143. }
  144.  
  145. // Code part
  146. void PYTHON_GEAR_body__(PYTHON_GEAR *data__) {
  147. // Control execution
  148. if (!__GET_VAR(data__->EN)) {
  149. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  150. return;
  151. }
  152. else {
  153. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  154. }
  155. // Initialise TEMP variables
  156.  
  157. __SET_VAR(data__->,ADD10_OUT,,ADD__UINT__UINT(
  158. (BOOL)__BOOL_LITERAL(TRUE),
  159. NULL,
  160. (UINT)2,
  161. (UINT)__GET_VAR(data__->COUNTER,),
  162. (UINT)1));
  163. __SET_VAR(data__->,EQ13_OUT,,EQ__BOOL__UINT(
  164. (BOOL)__BOOL_LITERAL(TRUE),
  165. NULL,
  166. (UINT)2,
  167. (UINT)__GET_VAR(data__->N,),
  168. (UINT)__GET_VAR(data__->ADD10_OUT,)));
  169. __SET_VAR(data__->,SEL15_OUT,,SEL__UINT__BOOL__UINT__UINT(
  170. (BOOL)__BOOL_LITERAL(TRUE),
  171. NULL,
  172. (BOOL)__GET_VAR(data__->EQ13_OUT,),
  173. (UINT)__GET_VAR(data__->ADD10_OUT,),
  174. (UINT)0));
  175. __SET_VAR(data__->,COUNTER,,__GET_VAR(data__->SEL15_OUT,));
  176. __SET_VAR(data__->,AND7_OUT,,AND__BOOL__BOOL(
  177. (BOOL)__BOOL_LITERAL(TRUE),
  178. NULL,
  179. (UINT)2,
  180. (BOOL)__GET_VAR(data__->EQ13_OUT,),
  181. (BOOL)__GET_VAR(data__->TRIG,)));
  182. __SET_VAR(data__->PY_EVAL.,TRIG,,__GET_VAR(data__->AND7_OUT,));
  183. __SET_VAR(data__->PY_EVAL.,CODE,,__GET_VAR(data__->CODE,));
  184. PYTHON_EVAL_body__(&data__->PY_EVAL);
  185. __SET_VAR(data__->,ACK,,__GET_VAR(data__->PY_EVAL.ACK,));
  186. __SET_VAR(data__->,RESULT,,__GET_VAR(data__->PY_EVAL.RESULT,));
  187.  
  188. goto __end;
  189.  
  190. __end:
  191. return;
  192. } // PYTHON_GEAR_body__()
  193.  
  194.  
  195.  
  196.  
  197.  
  198. void SCALE_TO_REAL_init__(SCALE_TO_REAL *data__, BOOL retain) {
  199. __INIT_VAR(data__->EN,__BOOL_LITERAL(TRUE),retain)
  200. __INIT_VAR(data__->ENO,__BOOL_LITERAL(TRUE),retain)
  201. __INIT_VAR(data__->RAW_INPUT_VALUE,0,retain)
  202. __INIT_VAR(data__->SCALED_REAL,0,retain)
  203. __INIT_VAR(data__->REAL_MAX,0,retain)
  204. __INIT_VAR(data__->REAL_MIN,0,retain)
  205. __INIT_VAR(data__->RAW_MAX,65535,retain)
  206. __INIT_VAR(data__->RAW_MIN,0,retain)
  207. __INIT_VAR(data__->RATE,0,retain)
  208. __INIT_VAR(data__->OFFSET,0,retain)
  209. }
  210.  
  211. // Code part
  212. void SCALE_TO_REAL_body__(SCALE_TO_REAL *data__) {
  213. // Control execution
  214. if (!__GET_VAR(data__->EN)) {
  215. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  216. return;
  217. }
  218. else {
  219. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  220. }
  221. // Initialise TEMP variables
  222.  
  223. __SET_VAR(data__->,RATE,,((__GET_VAR(data__->REAL_MAX,) - __GET_VAR(data__->REAL_MIN,)) / UINT_TO_REAL(
  224. (BOOL)__BOOL_LITERAL(TRUE),
  225. NULL,
  226. (UINT)(__GET_VAR(data__->RAW_MAX,) - __GET_VAR(data__->RAW_MIN,)))));
  227. __SET_VAR(data__->,OFFSET,,(__GET_VAR(data__->REAL_MIN,) - (UINT_TO_REAL(
  228. (BOOL)__BOOL_LITERAL(TRUE),
  229. NULL,
  230. (UINT)__GET_VAR(data__->RAW_MIN,)) * __GET_VAR(data__->RATE,))));
  231. __SET_VAR(data__->,SCALED_REAL,,((UINT_TO_REAL(
  232. (BOOL)__BOOL_LITERAL(TRUE),
  233. NULL,
  234. (UINT)__GET_VAR(data__->RAW_INPUT_VALUE,)) * __GET_VAR(data__->RATE,)) + __GET_VAR(data__->OFFSET,)));
  235.  
  236. goto __end;
  237.  
  238. __end:
  239. return;
  240. } // SCALE_TO_REAL_body__()
  241.  
  242.  
  243.  
  244.  
  245.  
  246. void SCALE_TO_UINT_init__(SCALE_TO_UINT *data__, BOOL retain) {
  247. __INIT_VAR(data__->EN,__BOOL_LITERAL(TRUE),retain)
  248. __INIT_VAR(data__->ENO,__BOOL_LITERAL(TRUE),retain)
  249. __INIT_VAR(data__->REAL_IN,0,retain)
  250. __INIT_VAR(data__->UINT_OUT,0,retain)
  251. __INIT_VAR(data__->DIV1_OUT,0,retain)
  252. __INIT_VAR(data__->MUL4_OUT,0,retain)
  253. __INIT_VAR(data__->REAL_TO_UINT6_OUT,0,retain)
  254. }
  255.  
  256. // Code part
  257. void SCALE_TO_UINT_body__(SCALE_TO_UINT *data__) {
  258. // Control execution
  259. if (!__GET_VAR(data__->EN)) {
  260. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  261. return;
  262. }
  263. else {
  264. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  265. }
  266. // Initialise TEMP variables
  267.  
  268. __SET_VAR(data__->,DIV1_OUT,,DIV__REAL__REAL__REAL(
  269. (BOOL)__BOOL_LITERAL(TRUE),
  270. NULL,
  271. (REAL)__GET_VAR(data__->REAL_IN,),
  272. (REAL)100.0));
  273. __SET_VAR(data__->,MUL4_OUT,,MUL__REAL__REAL(
  274. (BOOL)__BOOL_LITERAL(TRUE),
  275. NULL,
  276. (UINT)2,
  277. (REAL)__GET_VAR(data__->DIV1_OUT,),
  278. (REAL)65535.0));
  279. __SET_VAR(data__->,REAL_TO_UINT6_OUT,,REAL_TO_UINT(
  280. (BOOL)__BOOL_LITERAL(TRUE),
  281. NULL,
  282. (REAL)__GET_VAR(data__->MUL4_OUT,)));
  283. __SET_VAR(data__->,UINT_OUT,,__GET_VAR(data__->REAL_TO_UINT6_OUT,));
  284.  
  285. goto __end;
  286.  
  287. __end:
  288. return;
  289. } // SCALE_TO_UINT_body__()
  290.  
  291.  
  292.  
  293.  
  294.  
  295. void COMPOSITION_CONTROL_init__(COMPOSITION_CONTROL *data__, BOOL retain) {
  296. __INIT_VAR(data__->EN,__BOOL_LITERAL(TRUE),retain)
  297. __INIT_VAR(data__->ENO,__BOOL_LITERAL(TRUE),retain)
  298. __INIT_VAR(data__->A_IN_PURGE_REAL,47.00,retain)
  299. __INIT_VAR(data__->A_IN_PURGE,32000,retain)
  300. __INIT_VAR(data__->A_SETPOINT_REAL,47.00,retain)
  301. __INIT_VAR(data__->A_SETPOINT,32000,retain)
  302. __INIT_VAR(data__->CURR_POS,16000,retain)
  303. __INIT_VAR(data__->VALVE_POS_REAL,25.0,retain)
  304. __INIT_VAR(data__->POS_UPDATE_REAL,0.0,retain)
  305. __INIT_VAR(data__->VALVE_POS_NOMINAL,25.0,retain)
  306. __INIT_VAR(data__->NEW_POS,16000,retain)
  307. __INIT_VAR(data__->COMPOSITION_K,1.0,retain)
  308. __INIT_VAR(data__->COMPOSITION_TI,99.0,retain)
  309. __INIT_VAR(data__->CYCLE_TIME,__time_to_timespec(1, 50, 0, 0, 0, 0),retain)
  310. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL3,retain);
  311. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL2,retain);
  312. SCALE_TO_UINT_init__(&data__->SCALE_TO_UINT0,retain);
  313. __INIT_VAR(data__->COMP_MAX,100.0,retain)
  314. __INIT_VAR(data__->COMP_MIN,0.0,retain)
  315. __INIT_VAR(data__->POS_MAX,100.0,retain)
  316. __INIT_VAR(data__->POS_MIN,0.0,retain)
  317. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL0,retain);
  318. __INIT_VAR(data__->SUB45_OUT,0,retain)
  319. __INIT_VAR(data__->MUL46_OUT,0,retain)
  320. __INIT_VAR(data__->ADD42_OUT,0,retain)
  321. __INIT_VAR(data__->LIMIT44_OUT,0,retain)
  322. }
  323.  
  324. // Code part
  325. void COMPOSITION_CONTROL_body__(COMPOSITION_CONTROL *data__) {
  326. // Control execution
  327. if (!__GET_VAR(data__->EN)) {
  328. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  329. return;
  330. }
  331. else {
  332. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  333. }
  334. // Initialise TEMP variables
  335.  
  336. __SET_VAR(data__->SCALE_TO_REAL3.,RAW_INPUT_VALUE,,__GET_VAR(data__->A_IN_PURGE,));
  337. __SET_VAR(data__->SCALE_TO_REAL3.,REAL_MAX,,__GET_VAR(data__->COMP_MAX,));
  338. __SET_VAR(data__->SCALE_TO_REAL3.,REAL_MIN,,__GET_VAR(data__->COMP_MIN,));
  339. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL3);
  340. __SET_VAR(data__->,A_IN_PURGE_REAL,,__GET_VAR(data__->SCALE_TO_REAL3.SCALED_REAL,));
  341. __SET_VAR(data__->SCALE_TO_REAL2.,RAW_INPUT_VALUE,,__GET_VAR(data__->A_SETPOINT,));
  342. __SET_VAR(data__->SCALE_TO_REAL2.,REAL_MAX,,__GET_VAR(data__->COMP_MAX,));
  343. __SET_VAR(data__->SCALE_TO_REAL2.,REAL_MIN,,__GET_VAR(data__->COMP_MIN,));
  344. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL2);
  345. __SET_VAR(data__->,A_SETPOINT_REAL,,__GET_VAR(data__->SCALE_TO_REAL2.SCALED_REAL,));
  346. __SET_VAR(data__->,SUB45_OUT,,SUB__REAL__REAL__REAL(
  347. (BOOL)__BOOL_LITERAL(TRUE),
  348. NULL,
  349. (REAL)__GET_VAR(data__->A_SETPOINT_REAL,),
  350. (REAL)__GET_VAR(data__->A_IN_PURGE_REAL,)));
  351. __SET_VAR(data__->,MUL46_OUT,,MUL__REAL__REAL(
  352. (BOOL)__BOOL_LITERAL(TRUE),
  353. NULL,
  354. (UINT)2,
  355. (REAL)__GET_VAR(data__->SUB45_OUT,),
  356. (REAL)__GET_VAR(data__->COMPOSITION_K,)));
  357. __SET_VAR(data__->,POS_UPDATE_REAL,,__GET_VAR(data__->MUL46_OUT,));
  358. __SET_VAR(data__->SCALE_TO_REAL0.,RAW_INPUT_VALUE,,__GET_VAR(data__->CURR_POS,));
  359. __SET_VAR(data__->SCALE_TO_REAL0.,REAL_MAX,,__GET_VAR(data__->POS_MAX,));
  360. __SET_VAR(data__->SCALE_TO_REAL0.,REAL_MIN,,__GET_VAR(data__->POS_MIN,));
  361. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL0);
  362. __SET_VAR(data__->,VALVE_POS_REAL,,__GET_VAR(data__->SCALE_TO_REAL0.SCALED_REAL,));
  363. __SET_VAR(data__->,ADD42_OUT,,ADD__REAL__REAL(
  364. (BOOL)__BOOL_LITERAL(TRUE),
  365. NULL,
  366. (UINT)2,
  367. (REAL)__GET_VAR(data__->VALVE_POS_REAL,),
  368. (REAL)__GET_VAR(data__->POS_UPDATE_REAL,)));
  369. __SET_VAR(data__->,LIMIT44_OUT,,LIMIT__REAL__REAL__REAL__REAL(
  370. (BOOL)__BOOL_LITERAL(TRUE),
  371. NULL,
  372. (REAL)__GET_VAR(data__->POS_MIN,),
  373. (REAL)__GET_VAR(data__->ADD42_OUT,),
  374. (REAL)__GET_VAR(data__->POS_MAX,)));
  375. __SET_VAR(data__->SCALE_TO_UINT0.,REAL_IN,,__GET_VAR(data__->LIMIT44_OUT,));
  376. SCALE_TO_UINT_body__(&data__->SCALE_TO_UINT0);
  377. __SET_VAR(data__->,NEW_POS,,__GET_VAR(data__->SCALE_TO_UINT0.UINT_OUT,));
  378.  
  379. goto __end;
  380.  
  381. __end:
  382. return;
  383. } // COMPOSITION_CONTROL_body__()
  384.  
  385.  
  386.  
  387.  
  388.  
  389. void INITIALIZE_SP_init__(INITIALIZE_SP *data__, BOOL retain) {
  390. __INIT_VAR(data__->EN,__BOOL_LITERAL(TRUE),retain)
  391. __INIT_VAR(data__->ENO,__BOOL_LITERAL(TRUE),retain)
  392. __INIT_VAR(data__->FLOW_SP_C,13107,retain)
  393. __INIT_VAR(data__->A_SP_C,30801,retain)
  394. __INIT_VAR(data__->PRESS_SP_C,55295,retain)
  395. __INIT_VAR(data__->OVER_SP_C,31675,retain)
  396. __INIT_VAR(data__->LEVEL_SP_C,28835,retain)
  397. __INIT_VAR(data__->FLOW_SP,0,retain)
  398. __INIT_VAR(data__->A_SP,0,retain)
  399. __INIT_VAR(data__->PRESS_SP,0,retain)
  400. __INIT_VAR(data__->OVER_SP,0,retain)
  401. __INIT_VAR(data__->LEVEL_SP,0,retain)
  402. __INIT_VAR(data__->MOVE3_OUT,0,retain)
  403. __INIT_VAR(data__->MOVE7_OUT,0,retain)
  404. __INIT_VAR(data__->MOVE11_OUT,0,retain)
  405. __INIT_VAR(data__->MOVE15_OUT,0,retain)
  406. __INIT_VAR(data__->MOVE19_OUT,0,retain)
  407. }
  408.  
  409. // Code part
  410. void INITIALIZE_SP_body__(INITIALIZE_SP *data__) {
  411. // Control execution
  412. if (!__GET_VAR(data__->EN)) {
  413. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  414. return;
  415. }
  416. else {
  417. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  418. }
  419. // Initialise TEMP variables
  420.  
  421. __SET_VAR(data__->,MOVE3_OUT,,MOVE__UINT__UINT(
  422. (BOOL)__BOOL_LITERAL(TRUE),
  423. NULL,
  424. (UINT)__GET_VAR(data__->A_SP_C,)));
  425. __SET_VAR(data__->,A_SP,,__GET_VAR(data__->MOVE3_OUT,));
  426. __SET_VAR(data__->,MOVE7_OUT,,MOVE__UINT__UINT(
  427. (BOOL)__BOOL_LITERAL(TRUE),
  428. NULL,
  429. (UINT)__GET_VAR(data__->FLOW_SP_C,)));
  430. __SET_VAR(data__->,FLOW_SP,,__GET_VAR(data__->MOVE7_OUT,));
  431. __SET_VAR(data__->,MOVE11_OUT,,MOVE__UINT__UINT(
  432. (BOOL)__BOOL_LITERAL(TRUE),
  433. NULL,
  434. (UINT)__GET_VAR(data__->OVER_SP_C,)));
  435. __SET_VAR(data__->,OVER_SP,,__GET_VAR(data__->MOVE11_OUT,));
  436. __SET_VAR(data__->,MOVE15_OUT,,MOVE__UINT__UINT(
  437. (BOOL)__BOOL_LITERAL(TRUE),
  438. NULL,
  439. (UINT)__GET_VAR(data__->LEVEL_SP_C,)));
  440. __SET_VAR(data__->,LEVEL_SP,,__GET_VAR(data__->MOVE15_OUT,));
  441. __SET_VAR(data__->,MOVE19_OUT,,MOVE__UINT__UINT(
  442. (BOOL)__BOOL_LITERAL(TRUE),
  443. NULL,
  444. (UINT)__GET_VAR(data__->PRESS_SP_C,)));
  445. __SET_VAR(data__->,PRESS_SP,,__GET_VAR(data__->MOVE19_OUT,));
  446.  
  447. goto __end;
  448.  
  449. __end:
  450. return;
  451. } // INITIALIZE_SP_body__()
  452.  
  453.  
  454.  
  455.  
  456.  
  457. void PRESSURE_CONTROL_init__(PRESSURE_CONTROL *data__, BOOL retain) {
  458. __INIT_VAR(data__->EN,__BOOL_LITERAL(TRUE),retain)
  459. __INIT_VAR(data__->ENO,__BOOL_LITERAL(TRUE),retain)
  460. __INIT_VAR(data__->PRESSURE_REAL,2700.0,retain)
  461. __INIT_VAR(data__->PRESSURE,58981,retain)
  462. __INIT_VAR(data__->PRESSURE_SP_REAL,2700.0,retain)
  463. __INIT_VAR(data__->PRESSURE_SP,58981,retain)
  464. __INIT_VAR(data__->CURR_POS,30000,retain)
  465. __INIT_VAR(data__->VALVE_POS_REAL,39.25,retain)
  466. __INIT_VAR(data__->POS_UPDATE_REAL,0.0,retain)
  467. __INIT_VAR(data__->VALVE_POS_NOMINAL,39.25,retain)
  468. __INIT_VAR(data__->VALVE_POS,25886,retain)
  469. __INIT_VAR(data__->PRESSURE_K,20.0,retain)
  470. __INIT_VAR(data__->PRESSURE_TI,999.0,retain)
  471. __INIT_VAR(data__->CYCLE_TIME,__time_to_timespec(1, 50, 0, 0, 0, 0),retain)
  472. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL5,retain);
  473. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL4,retain);
  474. SCALE_TO_UINT_init__(&data__->SCALE_TO_UINT0,retain);
  475. __INIT_VAR(data__->PRESSURE_MAX,3200.00,retain)
  476. __INIT_VAR(data__->PRESSURE_MIN,0.0,retain)
  477. __INIT_VAR(data__->POS_MIN,0.0,retain)
  478. __INIT_VAR(data__->POS_MAX,100.0,retain)
  479. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL0,retain);
  480. __INIT_VAR(data__->SUB57_OUT,0,retain)
  481. __INIT_VAR(data__->MUL60_OUT,0,retain)
  482. __INIT_VAR(data__->SUB53_OUT,0,retain)
  483. __INIT_VAR(data__->LIMIT55_OUT,0,retain)
  484. }
  485.  
  486. // Code part
  487. void PRESSURE_CONTROL_body__(PRESSURE_CONTROL *data__) {
  488. // Control execution
  489. if (!__GET_VAR(data__->EN)) {
  490. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  491. return;
  492. }
  493. else {
  494. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  495. }
  496. // Initialise TEMP variables
  497.  
  498. __SET_VAR(data__->SCALE_TO_REAL5.,RAW_INPUT_VALUE,,__GET_VAR(data__->PRESSURE,));
  499. __SET_VAR(data__->SCALE_TO_REAL5.,REAL_MAX,,__GET_VAR(data__->PRESSURE_MAX,));
  500. __SET_VAR(data__->SCALE_TO_REAL5.,REAL_MIN,,__GET_VAR(data__->PRESSURE_MIN,));
  501. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL5);
  502. __SET_VAR(data__->,PRESSURE_REAL,,__GET_VAR(data__->SCALE_TO_REAL5.SCALED_REAL,));
  503. __SET_VAR(data__->SCALE_TO_REAL4.,RAW_INPUT_VALUE,,__GET_VAR(data__->PRESSURE_SP,));
  504. __SET_VAR(data__->SCALE_TO_REAL4.,REAL_MAX,,__GET_VAR(data__->PRESSURE_MAX,));
  505. __SET_VAR(data__->SCALE_TO_REAL4.,REAL_MIN,,__GET_VAR(data__->PRESSURE_MIN,));
  506. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL4);
  507. __SET_VAR(data__->,PRESSURE_SP_REAL,,__GET_VAR(data__->SCALE_TO_REAL4.SCALED_REAL,));
  508. __SET_VAR(data__->,SUB57_OUT,,SUB__REAL__REAL__REAL(
  509. (BOOL)__BOOL_LITERAL(TRUE),
  510. NULL,
  511. (REAL)__GET_VAR(data__->PRESSURE_SP_REAL,),
  512. (REAL)__GET_VAR(data__->PRESSURE_REAL,)));
  513. __SET_VAR(data__->,MUL60_OUT,,MUL__REAL__REAL(
  514. (BOOL)__BOOL_LITERAL(TRUE),
  515. NULL,
  516. (UINT)2,
  517. (REAL)__GET_VAR(data__->SUB57_OUT,),
  518. (REAL)__GET_VAR(data__->PRESSURE_K,)));
  519. __SET_VAR(data__->,POS_UPDATE_REAL,,__GET_VAR(data__->MUL60_OUT,));
  520. __SET_VAR(data__->SCALE_TO_REAL0.,RAW_INPUT_VALUE,,__GET_VAR(data__->CURR_POS,));
  521. __SET_VAR(data__->SCALE_TO_REAL0.,REAL_MAX,,__GET_VAR(data__->POS_MAX,));
  522. __SET_VAR(data__->SCALE_TO_REAL0.,REAL_MIN,,__GET_VAR(data__->POS_MIN,));
  523. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL0);
  524. __SET_VAR(data__->,VALVE_POS_REAL,,__GET_VAR(data__->SCALE_TO_REAL0.SCALED_REAL,));
  525. __SET_VAR(data__->,SUB53_OUT,,SUB__REAL__REAL__REAL(
  526. (BOOL)__BOOL_LITERAL(TRUE),
  527. NULL,
  528. (REAL)__GET_VAR(data__->VALVE_POS_REAL,),
  529. (REAL)__GET_VAR(data__->POS_UPDATE_REAL,)));
  530. __SET_VAR(data__->,LIMIT55_OUT,,LIMIT__REAL__REAL__REAL__REAL(
  531. (BOOL)__BOOL_LITERAL(TRUE),
  532. NULL,
  533. (REAL)__GET_VAR(data__->POS_MIN,),
  534. (REAL)__GET_VAR(data__->SUB53_OUT,),
  535. (REAL)__GET_VAR(data__->POS_MAX,)));
  536. __SET_VAR(data__->SCALE_TO_UINT0.,REAL_IN,,__GET_VAR(data__->LIMIT55_OUT,));
  537. SCALE_TO_UINT_body__(&data__->SCALE_TO_UINT0);
  538. __SET_VAR(data__->,VALVE_POS,,__GET_VAR(data__->SCALE_TO_UINT0.UINT_OUT,));
  539.  
  540. goto __end;
  541.  
  542. __end:
  543. return;
  544. } // PRESSURE_CONTROL_body__()
  545.  
  546.  
  547.  
  548.  
  549.  
  550. void FLOW_CONTROL_init__(FLOW_CONTROL *data__, BOOL retain) {
  551. __INIT_VAR(data__->EN,__BOOL_LITERAL(TRUE),retain)
  552. __INIT_VAR(data__->ENO,__BOOL_LITERAL(TRUE),retain)
  553. __INIT_VAR(data__->FLOW_K,1.0,retain)
  554. __INIT_VAR(data__->FLOW_TI,999.0,retain)
  555. __INIT_VAR(data__->FLOW_TD,0.0,retain)
  556. __INIT_VAR(data__->PRODUCT_FLOW,6554,retain)
  557. __INIT_VAR(data__->PRODUCT_FLOW_REAL,100.0,retain)
  558. __INIT_VAR(data__->CYCLE_TIME,__time_to_timespec(1, 50, 0, 0, 0, 0),retain)
  559. __INIT_VAR(data__->POS_UPDATE_REAL,0.0,retain)
  560. __INIT_VAR(data__->CURR_POS_REAL,60.9,retain)
  561. __INIT_VAR(data__->NEW_POS,35000,retain)
  562. __INIT_VAR(data__->CURR_POS,35000,retain)
  563. __INIT_VAR(data__->FLOW_SET_REAL,100.0,retain)
  564. __INIT_VAR(data__->FLOW_SET_IN,6554,retain)
  565. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL0,retain);
  566. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL1,retain);
  567. __INIT_VAR(data__->FLOW_MAX,500.0,retain)
  568. __INIT_VAR(data__->FLOW_MIN,0.0,retain)
  569. __INIT_VAR(data__->POS_MIN,0.0,retain)
  570. __INIT_VAR(data__->POS_MAX,100.0,retain)
  571. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL2,retain);
  572. SCALE_TO_UINT_init__(&data__->SCALE_TO_UINT0,retain);
  573. __INIT_VAR(data__->SUB59_OUT,0,retain)
  574. __INIT_VAR(data__->MUL60_OUT,0,retain)
  575. __INIT_VAR(data__->ADD58_OUT,0,retain)
  576. __INIT_VAR(data__->LIMIT40_OUT,0,retain)
  577. }
  578.  
  579. // Code part
  580. void FLOW_CONTROL_body__(FLOW_CONTROL *data__) {
  581. // Control execution
  582. if (!__GET_VAR(data__->EN)) {
  583. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  584. return;
  585. }
  586. else {
  587. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  588. }
  589. // Initialise TEMP variables
  590.  
  591. __SET_VAR(data__->SCALE_TO_REAL0.,RAW_INPUT_VALUE,,__GET_VAR(data__->PRODUCT_FLOW,));
  592. __SET_VAR(data__->SCALE_TO_REAL0.,REAL_MAX,,__GET_VAR(data__->FLOW_MAX,));
  593. __SET_VAR(data__->SCALE_TO_REAL0.,REAL_MIN,,__GET_VAR(data__->FLOW_MIN,));
  594. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL0);
  595. __SET_VAR(data__->,PRODUCT_FLOW_REAL,,__GET_VAR(data__->SCALE_TO_REAL0.SCALED_REAL,));
  596. __SET_VAR(data__->SCALE_TO_REAL1.,RAW_INPUT_VALUE,,__GET_VAR(data__->FLOW_SET_IN,));
  597. __SET_VAR(data__->SCALE_TO_REAL1.,REAL_MAX,,__GET_VAR(data__->FLOW_MAX,));
  598. __SET_VAR(data__->SCALE_TO_REAL1.,REAL_MIN,,__GET_VAR(data__->FLOW_MIN,));
  599. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL1);
  600. __SET_VAR(data__->,FLOW_SET_REAL,,__GET_VAR(data__->SCALE_TO_REAL1.SCALED_REAL,));
  601. __SET_VAR(data__->,SUB59_OUT,,SUB__REAL__REAL__REAL(
  602. (BOOL)__BOOL_LITERAL(TRUE),
  603. NULL,
  604. (REAL)__GET_VAR(data__->FLOW_SET_REAL,),
  605. (REAL)__GET_VAR(data__->PRODUCT_FLOW_REAL,)));
  606. __SET_VAR(data__->,MUL60_OUT,,MUL__REAL__REAL(
  607. (BOOL)__BOOL_LITERAL(TRUE),
  608. NULL,
  609. (UINT)2,
  610. (REAL)__GET_VAR(data__->SUB59_OUT,),
  611. (REAL)__GET_VAR(data__->FLOW_K,)));
  612. __SET_VAR(data__->,POS_UPDATE_REAL,,__GET_VAR(data__->MUL60_OUT,));
  613. __SET_VAR(data__->SCALE_TO_REAL2.,RAW_INPUT_VALUE,,__GET_VAR(data__->CURR_POS,));
  614. __SET_VAR(data__->SCALE_TO_REAL2.,REAL_MAX,,__GET_VAR(data__->POS_MAX,));
  615. __SET_VAR(data__->SCALE_TO_REAL2.,REAL_MIN,,__GET_VAR(data__->POS_MIN,));
  616. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL2);
  617. __SET_VAR(data__->,CURR_POS_REAL,,__GET_VAR(data__->SCALE_TO_REAL2.SCALED_REAL,));
  618. __SET_VAR(data__->,ADD58_OUT,,ADD__REAL__REAL(
  619. (BOOL)__BOOL_LITERAL(TRUE),
  620. NULL,
  621. (UINT)2,
  622. (REAL)__GET_VAR(data__->CURR_POS_REAL,),
  623. (REAL)__GET_VAR(data__->POS_UPDATE_REAL,)));
  624. __SET_VAR(data__->,LIMIT40_OUT,,LIMIT__REAL__REAL__REAL__REAL(
  625. (BOOL)__BOOL_LITERAL(TRUE),
  626. NULL,
  627. (REAL)__GET_VAR(data__->POS_MIN,),
  628. (REAL)__GET_VAR(data__->ADD58_OUT,),
  629. (REAL)__GET_VAR(data__->POS_MAX,)));
  630. __SET_VAR(data__->SCALE_TO_UINT0.,REAL_IN,,__GET_VAR(data__->LIMIT40_OUT,));
  631. SCALE_TO_UINT_body__(&data__->SCALE_TO_UINT0);
  632. __SET_VAR(data__->,NEW_POS,,__GET_VAR(data__->SCALE_TO_UINT0.UINT_OUT,));
  633.  
  634. goto __end;
  635.  
  636. __end:
  637. return;
  638. } // FLOW_CONTROL_body__()
  639.  
  640.  
  641.  
  642.  
  643.  
  644. void LEVEL_CONTROL_init__(LEVEL_CONTROL *data__, BOOL retain) {
  645. __INIT_VAR(data__->EN,__BOOL_LITERAL(TRUE),retain)
  646. __INIT_VAR(data__->ENO,__BOOL_LITERAL(TRUE),retain)
  647. __INIT_VAR(data__->LIQUID_LEVEL,0,retain)
  648. __INIT_VAR(data__->LEVEL_SP,30000,retain)
  649. __INIT_VAR(data__->CURR_POS,0,retain)
  650. __INIT_VAR(data__->NEW_POS,0,retain)
  651. __INIT_VAR(data__->CYCLE_TIME,__time_to_timespec(1, 50, 0, 0, 0, 0),retain)
  652. __INIT_VAR(data__->LEVEL_K,10.0,retain)
  653. __INIT_VAR(data__->LEVEL_TI,99999.0,retain)
  654. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL0,retain);
  655. __INIT_VAR(data__->LEVEL_MAX,100.0,retain)
  656. __INIT_VAR(data__->LEVEL_MIN,0.0,retain)
  657. __INIT_VAR(data__->POS_MAX,100.0,retain)
  658. __INIT_VAR(data__->POS_MIN,0.0,retain)
  659. __INIT_VAR(data__->LEVEL_REAL,44.18,retain)
  660. __INIT_VAR(data__->POS_REAL,47.0,retain)
  661. __INIT_VAR(data__->POS_UPDATE_REAL,0.0,retain)
  662. __INIT_VAR(data__->SP_REAL,44.18,retain)
  663. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL1,retain);
  664. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL2,retain);
  665. SCALE_TO_UINT_init__(&data__->SCALE_TO_UINT0,retain);
  666. __INIT_VAR(data__->SUB32_OUT,0,retain)
  667. __INIT_VAR(data__->MUL33_OUT,0,retain)
  668. __INIT_VAR(data__->SUB30_OUT,0,retain)
  669. __INIT_VAR(data__->LIMIT25_OUT,0,retain)
  670. }
  671.  
  672. // Code part
  673. void LEVEL_CONTROL_body__(LEVEL_CONTROL *data__) {
  674. // Control execution
  675. if (!__GET_VAR(data__->EN)) {
  676. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  677. return;
  678. }
  679. else {
  680. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  681. }
  682. // Initialise TEMP variables
  683.  
  684. __SET_VAR(data__->SCALE_TO_REAL0.,RAW_INPUT_VALUE,,__GET_VAR(data__->LIQUID_LEVEL,));
  685. __SET_VAR(data__->SCALE_TO_REAL0.,REAL_MAX,,__GET_VAR(data__->LEVEL_MAX,));
  686. __SET_VAR(data__->SCALE_TO_REAL0.,REAL_MIN,,__GET_VAR(data__->LEVEL_MIN,));
  687. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL0);
  688. __SET_VAR(data__->,LEVEL_REAL,,__GET_VAR(data__->SCALE_TO_REAL0.SCALED_REAL,));
  689. __SET_VAR(data__->SCALE_TO_REAL1.,RAW_INPUT_VALUE,,__GET_VAR(data__->CURR_POS,));
  690. __SET_VAR(data__->SCALE_TO_REAL1.,REAL_MAX,,__GET_VAR(data__->POS_MAX,));
  691. __SET_VAR(data__->SCALE_TO_REAL1.,REAL_MIN,,__GET_VAR(data__->POS_MIN,));
  692. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL1);
  693. __SET_VAR(data__->,POS_REAL,,__GET_VAR(data__->SCALE_TO_REAL1.SCALED_REAL,));
  694. __SET_VAR(data__->SCALE_TO_REAL2.,RAW_INPUT_VALUE,,__GET_VAR(data__->LEVEL_SP,));
  695. __SET_VAR(data__->SCALE_TO_REAL2.,REAL_MAX,,__GET_VAR(data__->LEVEL_MAX,));
  696. __SET_VAR(data__->SCALE_TO_REAL2.,REAL_MIN,,__GET_VAR(data__->LEVEL_MIN,));
  697. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL2);
  698. __SET_VAR(data__->,SP_REAL,,__GET_VAR(data__->SCALE_TO_REAL2.SCALED_REAL,));
  699. __SET_VAR(data__->,SUB32_OUT,,SUB__REAL__REAL__REAL(
  700. (BOOL)__BOOL_LITERAL(TRUE),
  701. NULL,
  702. (REAL)__GET_VAR(data__->SP_REAL,),
  703. (REAL)__GET_VAR(data__->LEVEL_REAL,)));
  704. __SET_VAR(data__->,MUL33_OUT,,MUL__REAL__REAL(
  705. (BOOL)__BOOL_LITERAL(TRUE),
  706. NULL,
  707. (UINT)2,
  708. (REAL)__GET_VAR(data__->SUB32_OUT,),
  709. (REAL)__GET_VAR(data__->LEVEL_K,)));
  710. __SET_VAR(data__->,POS_UPDATE_REAL,,__GET_VAR(data__->MUL33_OUT,));
  711. __SET_VAR(data__->,SUB30_OUT,,SUB__REAL__REAL__REAL(
  712. (BOOL)__BOOL_LITERAL(TRUE),
  713. NULL,
  714. (REAL)__GET_VAR(data__->POS_REAL,),
  715. (REAL)__GET_VAR(data__->POS_UPDATE_REAL,)));
  716. __SET_VAR(data__->,LIMIT25_OUT,,LIMIT__REAL__REAL__REAL__REAL(
  717. (BOOL)__BOOL_LITERAL(TRUE),
  718. NULL,
  719. (REAL)__GET_VAR(data__->POS_MIN,),
  720. (REAL)__GET_VAR(data__->SUB30_OUT,),
  721. (REAL)__GET_VAR(data__->POS_MAX,)));
  722. __SET_VAR(data__->SCALE_TO_UINT0.,REAL_IN,,__GET_VAR(data__->LIMIT25_OUT,));
  723. SCALE_TO_UINT_body__(&data__->SCALE_TO_UINT0);
  724. __SET_VAR(data__->,NEW_POS,,__GET_VAR(data__->SCALE_TO_UINT0.UINT_OUT,));
  725.  
  726. goto __end;
  727.  
  728. __end:
  729. return;
  730. } // LEVEL_CONTROL_body__()
  731.  
  732.  
  733.  
  734.  
  735.  
  736. void PRESSURE_OVERRIDE_init__(PRESSURE_OVERRIDE *data__, BOOL retain) {
  737. __INIT_VAR(data__->EN,__BOOL_LITERAL(TRUE),retain)
  738. __INIT_VAR(data__->ENO,__BOOL_LITERAL(TRUE),retain)
  739. __INIT_VAR(data__->PRESSURE_REAL,2700.0,retain)
  740. __INIT_VAR(data__->PRESSURE,58981,retain)
  741. __INIT_VAR(data__->CURR_SP,58981,retain)
  742. __INIT_VAR(data__->CURR_SP_REAL,2700.0,retain)
  743. __INIT_VAR(data__->PRODUCT_SP_REAL,100.0,retain)
  744. __INIT_VAR(data__->SP_UPDATE,0.0,retain)
  745. __INIT_VAR(data__->PRODUCT_SP_NOMINL,100.0,retain)
  746. __INIT_VAR(data__->PRODUCT_SP,13107,retain)
  747. __INIT_VAR(data__->OVERRIDE_SP_REAL,2900.0,retain)
  748. __INIT_VAR(data__->OVERRIDE_SP,63350,retain)
  749. __INIT_VAR(data__->OVERRIDE_K,1.0,retain)
  750. __INIT_VAR(data__->OVERRIDE_TI,99999.0,retain)
  751. __INIT_VAR(data__->CYCLE_TIME,__time_to_timespec(1, 50, 0, 0, 0, 0),retain)
  752. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL7,retain);
  753. __INIT_VAR(data__->PRESSURE_MAX,3000.0,retain)
  754. __INIT_VAR(data__->PRESSURE_MIN,0.0,retain)
  755. __INIT_VAR(data__->FLOW_MAX,500.0,retain)
  756. __INIT_VAR(data__->FLOW_MIN,0.0,retain)
  757. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL0,retain);
  758. __INIT_VAR(data__->SUB86_OUT,0,retain)
  759. __INIT_VAR(data__->MUL87_OUT,0,retain)
  760. __INIT_VAR(data__->MAX84_OUT,0,retain)
  761. __INIT_VAR(data__->ADD85_OUT,0,retain)
  762. __INIT_VAR(data__->LIMIT67_OUT,0,retain)
  763. __INIT_VAR(data__->DIV73_OUT,0,retain)
  764. __INIT_VAR(data__->MUL75_OUT,0,retain)
  765. __INIT_VAR(data__->REAL_TO_UINT79_OUT,0,retain)
  766. }
  767.  
  768. // Code part
  769. void PRESSURE_OVERRIDE_body__(PRESSURE_OVERRIDE *data__) {
  770. // Control execution
  771. if (!__GET_VAR(data__->EN)) {
  772. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  773. return;
  774. }
  775. else {
  776. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  777. }
  778. // Initialise TEMP variables
  779.  
  780. __SET_VAR(data__->SCALE_TO_REAL7.,RAW_INPUT_VALUE,,__GET_VAR(data__->PRESSURE,));
  781. __SET_VAR(data__->SCALE_TO_REAL7.,REAL_MAX,,__GET_VAR(data__->PRESSURE_MAX,));
  782. __SET_VAR(data__->SCALE_TO_REAL7.,REAL_MIN,,__GET_VAR(data__->PRESSURE_MIN,));
  783. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL7);
  784. __SET_VAR(data__->,PRESSURE_REAL,,__GET_VAR(data__->SCALE_TO_REAL7.SCALED_REAL,));
  785. __SET_VAR(data__->,SUB86_OUT,,SUB__REAL__REAL__REAL(
  786. (BOOL)__BOOL_LITERAL(TRUE),
  787. NULL,
  788. (REAL)__GET_VAR(data__->OVERRIDE_SP_REAL,),
  789. (REAL)__GET_VAR(data__->PRESSURE_REAL,)));
  790. __SET_VAR(data__->,MUL87_OUT,,MUL__REAL__REAL(
  791. (BOOL)__BOOL_LITERAL(TRUE),
  792. NULL,
  793. (UINT)2,
  794. (REAL)__GET_VAR(data__->SUB86_OUT,),
  795. (REAL)__GET_VAR(data__->OVERRIDE_K,)));
  796. __SET_VAR(data__->,MAX84_OUT,,MAX__REAL__REAL(
  797. (BOOL)__BOOL_LITERAL(TRUE),
  798. NULL,
  799. (UINT)2,
  800. (REAL)__GET_VAR(data__->MUL87_OUT,),
  801. (REAL)0.0));
  802. __SET_VAR(data__->,SP_UPDATE,,__GET_VAR(data__->MAX84_OUT,));
  803. __SET_VAR(data__->SCALE_TO_REAL0.,RAW_INPUT_VALUE,,__GET_VAR(data__->CURR_SP,));
  804. __SET_VAR(data__->SCALE_TO_REAL0.,REAL_MAX,,__GET_VAR(data__->FLOW_MAX,));
  805. __SET_VAR(data__->SCALE_TO_REAL0.,REAL_MIN,,__GET_VAR(data__->FLOW_MIN,));
  806. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL0);
  807. __SET_VAR(data__->,CURR_SP_REAL,,__GET_VAR(data__->SCALE_TO_REAL0.SCALED_REAL,));
  808. __SET_VAR(data__->,ADD85_OUT,,ADD__REAL__REAL(
  809. (BOOL)__BOOL_LITERAL(TRUE),
  810. NULL,
  811. (UINT)2,
  812. (REAL)__GET_VAR(data__->CURR_SP_REAL,),
  813. (REAL)__GET_VAR(data__->SP_UPDATE,)));
  814. __SET_VAR(data__->,LIMIT67_OUT,,LIMIT__REAL__REAL__REAL__REAL(
  815. (BOOL)__BOOL_LITERAL(TRUE),
  816. NULL,
  817. (REAL)50.0,
  818. (REAL)__GET_VAR(data__->ADD85_OUT,),
  819. (REAL)150.0));
  820. __SET_VAR(data__->,PRODUCT_SP_REAL,,__GET_VAR(data__->LIMIT67_OUT,));
  821. __SET_VAR(data__->,DIV73_OUT,,DIV__REAL__REAL__REAL(
  822. (BOOL)__BOOL_LITERAL(TRUE),
  823. NULL,
  824. (REAL)__GET_VAR(data__->PRODUCT_SP_REAL,),
  825. (REAL)500.0));
  826. __SET_VAR(data__->,MUL75_OUT,,MUL__REAL__REAL(
  827. (BOOL)__BOOL_LITERAL(TRUE),
  828. NULL,
  829. (UINT)2,
  830. (REAL)__GET_VAR(data__->DIV73_OUT,),
  831. (REAL)65535.0));
  832. __SET_VAR(data__->,REAL_TO_UINT79_OUT,,REAL_TO_UINT(
  833. (BOOL)__BOOL_LITERAL(TRUE),
  834. NULL,
  835. (REAL)__GET_VAR(data__->MUL75_OUT,)));
  836. __SET_VAR(data__->,PRODUCT_SP,,__GET_VAR(data__->REAL_TO_UINT79_OUT,));
  837.  
  838. goto __end;
  839.  
  840. __end:
  841. return;
  842. } // PRESSURE_OVERRIDE_body__()
  843.  
  844.  
  845.  
  846.  
  847.  
  848. inline UINT __MAIN_MOVE__UINT__UINT1(BOOL EN,
  849. UINT IN,
  850. MAIN *data__)
  851. {
  852. UINT __res;
  853. BOOL __TMP_ENO = __GET_VAR(data__->MOVE99_ENO,);
  854. __res = MOVE__UINT__UINT(EN,
  855. &__TMP_ENO,
  856. IN);
  857. __SET_VAR(,data__->MOVE99_ENO,,__TMP_ENO);
  858. return __res;
  859. }
  860.  
  861. inline UINT __MAIN_MOVE__UINT__UINT2(BOOL EN,
  862. UINT IN,
  863. MAIN *data__)
  864. {
  865. UINT __res;
  866. BOOL __TMP_ENO = __GET_VAR(data__->MOVE4_ENO,);
  867. __res = MOVE__UINT__UINT(EN,
  868. &__TMP_ENO,
  869. IN);
  870. __SET_VAR(,data__->MOVE4_ENO,,__TMP_ENO);
  871. return __res;
  872. }
  873.  
  874. inline UINT __MAIN_MOVE__UINT__UINT3(BOOL EN,
  875. UINT IN,
  876. MAIN *data__)
  877. {
  878. UINT __res;
  879. BOOL __TMP_ENO = __GET_VAR(data__->MOVE5_ENO,);
  880. __res = MOVE__UINT__UINT(EN,
  881. &__TMP_ENO,
  882. IN);
  883. __SET_VAR(,data__->MOVE5_ENO,,__TMP_ENO);
  884. return __res;
  885. }
  886.  
  887. inline UINT __MAIN_MOVE__UINT__UINT4(BOOL EN,
  888. UINT IN,
  889. MAIN *data__)
  890. {
  891. UINT __res;
  892. BOOL __TMP_ENO = __GET_VAR(data__->MOVE7_ENO,);
  893. __res = MOVE__UINT__UINT(EN,
  894. &__TMP_ENO,
  895. IN);
  896. __SET_VAR(,data__->MOVE7_ENO,,__TMP_ENO);
  897. return __res;
  898. }
  899.  
  900. void MAIN_init__(MAIN *data__, BOOL retain) {
  901. FLOW_CONTROL_init__(&data__->FLOW_CONTROL0,retain);
  902. __INIT_VAR(data__->FIRST_RUN,__BOOL_LITERAL(TRUE),retain)
  903. __INIT_VAR(data__->FLOW_SET,0,retain)
  904. __INIT_VAR(data__->A_SETPOINT,0,retain)
  905. __INIT_VAR(data__->PRESSURE_SP,0,retain)
  906. __INIT_VAR(data__->OVERRIDE_SP,0,retain)
  907. __INIT_VAR(data__->LEVEL_SP,0,retain)
  908. COMPOSITION_CONTROL_init__(&data__->COMPOSITION_CONTROL0,retain);
  909. __INIT_VAR(data__->F1_VALVE_POS,0,retain)
  910. __INIT_VAR(data__->F1_FLOW,0,retain)
  911. __INIT_VAR(data__->F2_VALVE_POS,0,retain)
  912. __INIT_VAR(data__->F2_FLOW,0,retain)
  913. __INIT_VAR(data__->PURGE_VALVE_POS,0,retain)
  914. __INIT_VAR(data__->PURGE_FLOW,0,retain)
  915. __INIT_VAR(data__->PRODUCT_VALVE_POS,0,retain)
  916. __INIT_VAR(data__->PRODUCT_FLOW,0,retain)
  917. __INIT_VAR(data__->PRESSURE,0,retain)
  918. __INIT_VAR(data__->LEVEL,0,retain)
  919. __INIT_VAR(data__->A_IN_PURGE,0,retain)
  920. __INIT_VAR(data__->B_IN_PURGE,0,retain)
  921. __INIT_VAR(data__->C_IN_PURGE,0,retain)
  922. __INIT_VAR(data__->F1_VALVE_SP,0,retain)
  923. __INIT_VAR(data__->F2_VALVE_SP,0,retain)
  924. __INIT_VAR(data__->PURGE_VALVE_SP,0,retain)
  925. __INIT_VAR(data__->PRODUCT_VALVE_SP,0,retain)
  926. __INIT_VAR(data__->PRODUCT_VALVE_SAFE,0,retain)
  927. __INIT_VAR(data__->PURGE_VALVE_SAFE,65535,retain)
  928. __INIT_VAR(data__->F1_VALVE_SAFE,0,retain)
  929. __INIT_VAR(data__->F2_VALVE_SAFE,0,retain)
  930. PRESSURE_CONTROL_init__(&data__->PRESSURE_CONTROL0,retain);
  931. __INIT_VAR(data__->HMI_PRESSURE,0,retain)
  932. __INIT_VAR(data__->HMI_LEVEL,0,retain)
  933. __INIT_VAR(data__->HMI_F1_VALVE_POS,0,retain)
  934. __INIT_VAR(data__->HMI_F1_FLOW,0,retain)
  935. __INIT_VAR(data__->HMI_F2_VALVE_POS,0,retain)
  936. __INIT_VAR(data__->HMI_F2_FLOW,0,retain)
  937. __INIT_VAR(data__->HMI_PURGE_VALVE_POS,0,retain)
  938. __INIT_VAR(data__->HMI_PURGE_FLOW,0,retain)
  939. __INIT_VAR(data__->HMI_PRODUCT_VALVE_POS,0,retain)
  940. __INIT_VAR(data__->HMI_PRODUCT_FLOW,0,retain)
  941. __INIT_VAR(data__->SCAN_COUNT,0,retain)
  942. PRESSURE_OVERRIDE_init__(&data__->PRESSURE_OVERRIDE0,retain);
  943. LEVEL_CONTROL_init__(&data__->LEVEL_CONTROL0,retain);
  944. __INIT_VAR(data__->RUN_BIT,__BOOL_LITERAL(FALSE),retain)
  945. __INIT_VAR(data__->RUN_BIT0,__BOOL_LITERAL(TRUE),retain)
  946. INITIALIZE_SP_init__(&data__->INITIALIZE_SP0,retain);
  947. __INIT_VAR(data__->MOVE99_ENO,__BOOL_LITERAL(FALSE),retain)
  948. __INIT_VAR(data__->MOVE99_OUT,0,retain)
  949. __INIT_VAR(data__->MOVE4_ENO,__BOOL_LITERAL(FALSE),retain)
  950. __INIT_VAR(data__->MOVE4_OUT,0,retain)
  951. __INIT_VAR(data__->MOVE5_ENO,__BOOL_LITERAL(FALSE),retain)
  952. __INIT_VAR(data__->MOVE5_OUT,0,retain)
  953. __INIT_VAR(data__->MOVE7_ENO,__BOOL_LITERAL(FALSE),retain)
  954. __INIT_VAR(data__->MOVE7_OUT,0,retain)
  955. }
  956.  
  957. // Code part
  958. void MAIN_body__(MAIN *data__) {
  959. // Initialise TEMP variables
  960.  
  961. __SET_VAR(data__->INITIALIZE_SP0.,EN,,__GET_VAR(data__->FIRST_RUN,));
  962. INITIALIZE_SP_body__(&data__->INITIALIZE_SP0);
  963. if (__GET_VAR(data__->INITIALIZE_SP0.ENO,)) {
  964. __SET_VAR(data__->,FIRST_RUN,,__BOOL_LITERAL(FALSE));
  965. };
  966. if (__GET_VAR(data__->INITIALIZE_SP0.ENO,)) {
  967. __SET_VAR(data__->,FLOW_SET,,__GET_VAR(data__->INITIALIZE_SP0.FLOW_SP,));
  968. };
  969. if (__GET_VAR(data__->INITIALIZE_SP0.ENO,)) {
  970. __SET_VAR(data__->,A_SETPOINT,,__GET_VAR(data__->INITIALIZE_SP0.A_SP,));
  971. };
  972. if (__GET_VAR(data__->INITIALIZE_SP0.ENO,)) {
  973. __SET_VAR(data__->,PRESSURE_SP,,__GET_VAR(data__->INITIALIZE_SP0.PRESS_SP,));
  974. };
  975. if (__GET_VAR(data__->INITIALIZE_SP0.ENO,)) {
  976. __SET_VAR(data__->,OVERRIDE_SP,,__GET_VAR(data__->INITIALIZE_SP0.OVER_SP,));
  977. };
  978. if (__GET_VAR(data__->INITIALIZE_SP0.ENO,)) {
  979. __SET_VAR(data__->,LEVEL_SP,,__GET_VAR(data__->INITIALIZE_SP0.LEVEL_SP,));
  980. };
  981. __SET_VAR(data__->FLOW_CONTROL0.,PRODUCT_FLOW,,__GET_VAR(data__->PRODUCT_FLOW,));
  982. __SET_VAR(data__->FLOW_CONTROL0.,CURR_POS,,__GET_VAR(data__->F1_VALVE_POS,));
  983. __SET_VAR(data__->FLOW_CONTROL0.,FLOW_SET_IN,,__GET_VAR(data__->FLOW_SET,));
  984. FLOW_CONTROL_body__(&data__->FLOW_CONTROL0);
  985. __SET_VAR(data__->,F1_VALVE_SP,,__GET_VAR(data__->FLOW_CONTROL0.NEW_POS,));
  986. __SET_VAR(data__->PRESSURE_CONTROL0.,PRESSURE,,__GET_VAR(data__->PRESSURE,));
  987. __SET_VAR(data__->PRESSURE_CONTROL0.,PRESSURE_SP,,__GET_VAR(data__->PRESSURE_SP,));
  988. __SET_VAR(data__->PRESSURE_CONTROL0.,CURR_POS,,__GET_VAR(data__->PURGE_VALVE_POS,));
  989. PRESSURE_CONTROL_body__(&data__->PRESSURE_CONTROL0);
  990. __SET_VAR(data__->,PURGE_VALVE_SP,,__GET_VAR(data__->PRESSURE_CONTROL0.VALVE_POS,));
  991. __SET_VAR(data__->COMPOSITION_CONTROL0.,A_IN_PURGE,,__GET_VAR(data__->A_IN_PURGE,));
  992. __SET_VAR(data__->COMPOSITION_CONTROL0.,A_SETPOINT,,__GET_VAR(data__->A_SETPOINT,));
  993. __SET_VAR(data__->COMPOSITION_CONTROL0.,CURR_POS,,__GET_VAR(data__->F2_VALVE_POS,));
  994. COMPOSITION_CONTROL_body__(&data__->COMPOSITION_CONTROL0);
  995. __SET_VAR(data__->,F2_VALVE_SP,,__GET_VAR(data__->COMPOSITION_CONTROL0.NEW_POS,));
  996. __SET_VAR(data__->PRESSURE_OVERRIDE0.,PRESSURE,,__GET_VAR(data__->PRESSURE,));
  997. __SET_VAR(data__->PRESSURE_OVERRIDE0.,CURR_SP,,__GET_VAR(data__->FLOW_SET,));
  998. __SET_VAR(data__->PRESSURE_OVERRIDE0.,OVERRIDE_SP,,__GET_VAR(data__->OVERRIDE_SP,));
  999. PRESSURE_OVERRIDE_body__(&data__->PRESSURE_OVERRIDE0);
  1000. __SET_VAR(data__->,FLOW_SET,,__GET_VAR(data__->PRESSURE_OVERRIDE0.PRODUCT_SP,));
  1001. __SET_VAR(data__->LEVEL_CONTROL0.,LIQUID_LEVEL,,__GET_VAR(data__->LEVEL,));
  1002. __SET_VAR(data__->LEVEL_CONTROL0.,LEVEL_SP,,__GET_VAR(data__->LEVEL_SP,));
  1003. __SET_VAR(data__->LEVEL_CONTROL0.,CURR_POS,,__GET_VAR(data__->PRODUCT_VALVE_POS,));
  1004. LEVEL_CONTROL_body__(&data__->LEVEL_CONTROL0);
  1005. __SET_VAR(data__->,PRODUCT_VALVE_SP,,__GET_VAR(data__->LEVEL_CONTROL0.NEW_POS,));
  1006. __SET_VAR(data__->,MOVE99_OUT,,__MAIN_MOVE__UINT__UINT1(
  1007. (BOOL)__GET_VAR(data__->RUN_BIT,),
  1008. (UINT)0,
  1009. data__));
  1010. if (__GET_VAR(data__->MOVE99_ENO,)) {
  1011. __SET_VAR(data__->,F1_VALVE_SP,,__GET_VAR(data__->MOVE99_OUT,));
  1012. };
  1013. __SET_VAR(data__->,MOVE4_OUT,,__MAIN_MOVE__UINT__UINT2(
  1014. (BOOL)__GET_VAR(data__->MOVE99_ENO,),
  1015. (UINT)0,
  1016. data__));
  1017. if (__GET_VAR(data__->MOVE4_ENO,)) {
  1018. __SET_VAR(data__->,F2_VALVE_SP,,__GET_VAR(data__->MOVE4_OUT,));
  1019. };
  1020. __SET_VAR(data__->,MOVE5_OUT,,__MAIN_MOVE__UINT__UINT3(
  1021. (BOOL)__GET_VAR(data__->MOVE4_ENO,),
  1022. (UINT)65535,
  1023. data__));
  1024. if (__GET_VAR(data__->MOVE5_ENO,)) {
  1025. __SET_VAR(data__->,PURGE_VALVE_SP,,__GET_VAR(data__->MOVE5_OUT,));
  1026. };
  1027. __SET_VAR(data__->,MOVE7_OUT,,__MAIN_MOVE__UINT__UINT4(
  1028. (BOOL)__GET_VAR(data__->MOVE5_ENO,),
  1029. (UINT)65535,
  1030. data__));
  1031. if (__GET_VAR(data__->MOVE7_ENO,)) {
  1032. __SET_VAR(data__->,PRODUCT_VALVE_SP,,__GET_VAR(data__->MOVE7_OUT,));
  1033. };
  1034.  
  1035. goto __end;
  1036.  
  1037. __end:
  1038. return;
  1039. } // MAIN_body__()
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
Buy Me A Coffee