Newer
Older
SCADA / plc / GRFICS_Workstation_Docs / Documents / attack / build / POUS.c
root on 8 May 2022 39 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,65535,retain)
  394. __INIT_VAR(data__->PRESS_SP_C,65535,retain)
  395. __INIT_VAR(data__->OVER_SP_C,65535,retain)
  396. __INIT_VAR(data__->LEVEL_SP_C,65535,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 SCALE_TO_SIGNED_init__(SCALE_TO_SIGNED *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__->INPUT_UINT,0,retain)
  740. __INIT_VAR(data__->OUTPUT_INT,0,retain)
  741. __INIT_VAR(data__->DIV3_OUT,0,retain)
  742. __INIT_VAR(data__->ABS8_OUT,0,retain)
  743. __INIT_VAR(data__->UINT_TO_INT9_OUT,0,retain)
  744. }
  745.  
  746. // Code part
  747. void SCALE_TO_SIGNED_body__(SCALE_TO_SIGNED *data__) {
  748. // Control execution
  749. if (!__GET_VAR(data__->EN)) {
  750. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  751. return;
  752. }
  753. else {
  754. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  755. }
  756. // Initialise TEMP variables
  757.  
  758. __SET_VAR(data__->,DIV3_OUT,,DIV__UINT__UINT__UINT(
  759. (BOOL)__BOOL_LITERAL(TRUE),
  760. NULL,
  761. (UINT)__GET_VAR(data__->INPUT_UINT,),
  762. (UINT)2));
  763. __SET_VAR(data__->,ABS8_OUT,,ABS__UINT__UINT(
  764. (BOOL)__BOOL_LITERAL(TRUE),
  765. NULL,
  766. (UINT)__GET_VAR(data__->DIV3_OUT,)));
  767. __SET_VAR(data__->,UINT_TO_INT9_OUT,,UINT_TO_INT(
  768. (BOOL)__BOOL_LITERAL(TRUE),
  769. NULL,
  770. (UINT)__GET_VAR(data__->ABS8_OUT,)));
  771. __SET_VAR(data__->,OUTPUT_INT,,__GET_VAR(data__->UINT_TO_INT9_OUT,));
  772.  
  773. goto __end;
  774.  
  775. __end:
  776. return;
  777. } // SCALE_TO_SIGNED_body__()
  778.  
  779.  
  780.  
  781.  
  782.  
  783. void PRESSURE_OVERRIDE_init__(PRESSURE_OVERRIDE *data__, BOOL retain) {
  784. __INIT_VAR(data__->EN,__BOOL_LITERAL(TRUE),retain)
  785. __INIT_VAR(data__->ENO,__BOOL_LITERAL(TRUE),retain)
  786. __INIT_VAR(data__->PRESSURE_REAL,2700.0,retain)
  787. __INIT_VAR(data__->PRESSURE,58981,retain)
  788. __INIT_VAR(data__->CURR_SP,58981,retain)
  789. __INIT_VAR(data__->CURR_SP_REAL,2700.0,retain)
  790. __INIT_VAR(data__->PRODUCT_SP_REAL,100.0,retain)
  791. __INIT_VAR(data__->SP_UPDATE,0.0,retain)
  792. __INIT_VAR(data__->PRODUCT_SP_NOMINL,100.0,retain)
  793. __INIT_VAR(data__->PRODUCT_SP,13107,retain)
  794. __INIT_VAR(data__->OVERRIDE_SP_REAL,2900.0,retain)
  795. __INIT_VAR(data__->OVERRIDE_SP,63350,retain)
  796. __INIT_VAR(data__->OVERRIDE_K,1.0,retain)
  797. __INIT_VAR(data__->OVERRIDE_TI,99999.0,retain)
  798. __INIT_VAR(data__->CYCLE_TIME,__time_to_timespec(1, 50, 0, 0, 0, 0),retain)
  799. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL7,retain);
  800. __INIT_VAR(data__->PRESSURE_MAX,3000.0,retain)
  801. __INIT_VAR(data__->PRESSURE_MIN,0.0,retain)
  802. __INIT_VAR(data__->FLOW_MAX,500.0,retain)
  803. __INIT_VAR(data__->FLOW_MIN,0.0,retain)
  804. SCALE_TO_REAL_init__(&data__->SCALE_TO_REAL0,retain);
  805. __INIT_VAR(data__->SUB86_OUT,0,retain)
  806. __INIT_VAR(data__->MUL87_OUT,0,retain)
  807. __INIT_VAR(data__->MAX84_OUT,0,retain)
  808. __INIT_VAR(data__->ADD85_OUT,0,retain)
  809. __INIT_VAR(data__->LIMIT67_OUT,0,retain)
  810. __INIT_VAR(data__->DIV73_OUT,0,retain)
  811. __INIT_VAR(data__->MUL75_OUT,0,retain)
  812. __INIT_VAR(data__->REAL_TO_UINT79_OUT,0,retain)
  813. }
  814.  
  815. // Code part
  816. void PRESSURE_OVERRIDE_body__(PRESSURE_OVERRIDE *data__) {
  817. // Control execution
  818. if (!__GET_VAR(data__->EN)) {
  819. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(FALSE));
  820. return;
  821. }
  822. else {
  823. __SET_VAR(data__->,ENO,,__BOOL_LITERAL(TRUE));
  824. }
  825. // Initialise TEMP variables
  826.  
  827. __SET_VAR(data__->SCALE_TO_REAL7.,RAW_INPUT_VALUE,,__GET_VAR(data__->PRESSURE,));
  828. __SET_VAR(data__->SCALE_TO_REAL7.,REAL_MAX,,__GET_VAR(data__->PRESSURE_MAX,));
  829. __SET_VAR(data__->SCALE_TO_REAL7.,REAL_MIN,,__GET_VAR(data__->PRESSURE_MIN,));
  830. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL7);
  831. __SET_VAR(data__->,PRESSURE_REAL,,__GET_VAR(data__->SCALE_TO_REAL7.SCALED_REAL,));
  832. __SET_VAR(data__->,SUB86_OUT,,SUB__REAL__REAL__REAL(
  833. (BOOL)__BOOL_LITERAL(TRUE),
  834. NULL,
  835. (REAL)__GET_VAR(data__->OVERRIDE_SP_REAL,),
  836. (REAL)__GET_VAR(data__->PRESSURE_REAL,)));
  837. __SET_VAR(data__->,MUL87_OUT,,MUL__REAL__REAL(
  838. (BOOL)__BOOL_LITERAL(TRUE),
  839. NULL,
  840. (UINT)2,
  841. (REAL)__GET_VAR(data__->SUB86_OUT,),
  842. (REAL)__GET_VAR(data__->OVERRIDE_K,)));
  843. __SET_VAR(data__->,MAX84_OUT,,MAX__REAL__REAL(
  844. (BOOL)__BOOL_LITERAL(TRUE),
  845. NULL,
  846. (UINT)2,
  847. (REAL)__GET_VAR(data__->MUL87_OUT,),
  848. (REAL)0.0));
  849. __SET_VAR(data__->,SP_UPDATE,,__GET_VAR(data__->MAX84_OUT,));
  850. __SET_VAR(data__->SCALE_TO_REAL0.,RAW_INPUT_VALUE,,__GET_VAR(data__->CURR_SP,));
  851. __SET_VAR(data__->SCALE_TO_REAL0.,REAL_MAX,,__GET_VAR(data__->FLOW_MAX,));
  852. __SET_VAR(data__->SCALE_TO_REAL0.,REAL_MIN,,__GET_VAR(data__->FLOW_MIN,));
  853. SCALE_TO_REAL_body__(&data__->SCALE_TO_REAL0);
  854. __SET_VAR(data__->,CURR_SP_REAL,,__GET_VAR(data__->SCALE_TO_REAL0.SCALED_REAL,));
  855. __SET_VAR(data__->,ADD85_OUT,,ADD__REAL__REAL(
  856. (BOOL)__BOOL_LITERAL(TRUE),
  857. NULL,
  858. (UINT)2,
  859. (REAL)__GET_VAR(data__->CURR_SP_REAL,),
  860. (REAL)__GET_VAR(data__->SP_UPDATE,)));
  861. __SET_VAR(data__->,LIMIT67_OUT,,LIMIT__REAL__REAL__REAL__REAL(
  862. (BOOL)__BOOL_LITERAL(TRUE),
  863. NULL,
  864. (REAL)50.0,
  865. (REAL)__GET_VAR(data__->ADD85_OUT,),
  866. (REAL)150.0));
  867. __SET_VAR(data__->,PRODUCT_SP_REAL,,__GET_VAR(data__->LIMIT67_OUT,));
  868. __SET_VAR(data__->,DIV73_OUT,,DIV__REAL__REAL__REAL(
  869. (BOOL)__BOOL_LITERAL(TRUE),
  870. NULL,
  871. (REAL)__GET_VAR(data__->PRODUCT_SP_REAL,),
  872. (REAL)500.0));
  873. __SET_VAR(data__->,MUL75_OUT,,MUL__REAL__REAL(
  874. (BOOL)__BOOL_LITERAL(TRUE),
  875. NULL,
  876. (UINT)2,
  877. (REAL)__GET_VAR(data__->DIV73_OUT,),
  878. (REAL)65535.0));
  879. __SET_VAR(data__->,REAL_TO_UINT79_OUT,,REAL_TO_UINT(
  880. (BOOL)__BOOL_LITERAL(TRUE),
  881. NULL,
  882. (REAL)__GET_VAR(data__->MUL75_OUT,)));
  883. __SET_VAR(data__->,PRODUCT_SP,,__GET_VAR(data__->REAL_TO_UINT79_OUT,));
  884.  
  885. goto __end;
  886.  
  887. __end:
  888. return;
  889. } // PRESSURE_OVERRIDE_body__()
  890.  
  891.  
  892.  
  893.  
  894.  
  895. inline UINT __MAIN_MOVE__UINT__UINT1(BOOL EN,
  896. UINT IN,
  897. MAIN *data__)
  898. {
  899. UINT __res;
  900. BOOL __TMP_ENO = __GET_VAR(data__->MOVE92_ENO,);
  901. __res = MOVE__UINT__UINT(EN,
  902. &__TMP_ENO,
  903. IN);
  904. __SET_VAR(,data__->MOVE92_ENO,,__TMP_ENO);
  905. return __res;
  906. }
  907.  
  908. void MAIN_init__(MAIN *data__, BOOL retain) {
  909. FLOW_CONTROL_init__(&data__->FLOW_CONTROL0,retain);
  910. __INIT_VAR(data__->FIRST_RUN,__BOOL_LITERAL(TRUE),retain)
  911. __INIT_VAR(data__->FLOW_SET,0,retain)
  912. __INIT_VAR(data__->A_SETPOINT,0,retain)
  913. __INIT_VAR(data__->PRESSURE_SP,0,retain)
  914. __INIT_VAR(data__->OVERRIDE_SP,0,retain)
  915. __INIT_VAR(data__->LEVEL_SP,0,retain)
  916. COMPOSITION_CONTROL_init__(&data__->COMPOSITION_CONTROL0,retain);
  917. SCALE_TO_SIGNED_init__(&data__->SCALE_TO_SIGNED0,retain);
  918. __INIT_VAR(data__->F1_VALVE_POS,0,retain)
  919. __INIT_VAR(data__->F1_FLOW,0,retain)
  920. __INIT_VAR(data__->F2_VALVE_POS,0,retain)
  921. __INIT_VAR(data__->F2_FLOW,0,retain)
  922. __INIT_VAR(data__->PURGE_VALVE_POS,0,retain)
  923. __INIT_VAR(data__->PURGE_FLOW,0,retain)
  924. __INIT_VAR(data__->PRODUCT_VALVE_POS,0,retain)
  925. __INIT_VAR(data__->PRODUCT_FLOW,0,retain)
  926. __INIT_VAR(data__->PRESSURE,0,retain)
  927. __INIT_VAR(data__->LEVEL,0,retain)
  928. __INIT_VAR(data__->A_IN_PURGE,0,retain)
  929. __INIT_VAR(data__->B_IN_PURGE,0,retain)
  930. __INIT_VAR(data__->C_IN_PURGE,0,retain)
  931. __INIT_VAR(data__->F1_VALVE_SP,0,retain)
  932. __INIT_VAR(data__->F2_VALVE_SP,0,retain)
  933. __INIT_VAR(data__->PURGE_VALVE_SP,0,retain)
  934. __INIT_VAR(data__->PRODUCT_VALVE_SP,0,retain)
  935. __INIT_VAR(data__->PRODUCT_VALVE_SAFE,0,retain)
  936. __INIT_VAR(data__->PURGE_VALVE_SAFE,65535,retain)
  937. __INIT_VAR(data__->F1_VALVE_SAFE,0,retain)
  938. __INIT_VAR(data__->F2_VALVE_SAFE,0,retain)
  939. PRESSURE_CONTROL_init__(&data__->PRESSURE_CONTROL0,retain);
  940. __INIT_VAR(data__->HMI_PRESSURE,0,retain)
  941. __INIT_VAR(data__->HMI_LEVEL,0,retain)
  942. __INIT_VAR(data__->HMI_F1_VALVE_POS,0,retain)
  943. __INIT_VAR(data__->HMI_F1_FLOW,0,retain)
  944. __INIT_VAR(data__->HMI_F2_VALVE_POS,0,retain)
  945. __INIT_VAR(data__->HMI_F2_FLOW,0,retain)
  946. __INIT_VAR(data__->HMI_PURGE_VALVE_POS,0,retain)
  947. __INIT_VAR(data__->HMI_PURGE_FLOW,0,retain)
  948. __INIT_VAR(data__->HMI_PRODUCT_VALVE_POS,0,retain)
  949. __INIT_VAR(data__->HMI_PRODUCT_FLOW,0,retain)
  950. __INIT_VAR(data__->SCAN_COUNT,0,retain)
  951. SCALE_TO_SIGNED_init__(&data__->SCALE_TO_SIGNED1,retain);
  952. SCALE_TO_SIGNED_init__(&data__->SCALE_TO_SIGNED2,retain);
  953. SCALE_TO_SIGNED_init__(&data__->SCALE_TO_SIGNED3,retain);
  954. SCALE_TO_SIGNED_init__(&data__->SCALE_TO_SIGNED4,retain);
  955. SCALE_TO_SIGNED_init__(&data__->SCALE_TO_SIGNED5,retain);
  956. SCALE_TO_SIGNED_init__(&data__->SCALE_TO_SIGNED6,retain);
  957. SCALE_TO_SIGNED_init__(&data__->SCALE_TO_SIGNED7,retain);
  958. SCALE_TO_SIGNED_init__(&data__->SCALE_TO_SIGNED8,retain);
  959. SCALE_TO_SIGNED_init__(&data__->SCALE_TO_SIGNED9,retain);
  960. PRESSURE_OVERRIDE_init__(&data__->PRESSURE_OVERRIDE0,retain);
  961. LEVEL_CONTROL_init__(&data__->LEVEL_CONTROL0,retain);
  962. __INIT_EXTERNAL(BOOL,RUN_BIT,data__->RUN_BIT,retain)
  963. __INIT_VAR(data__->RUN_BIT0,__BOOL_LITERAL(TRUE),retain)
  964. INITIALIZE_SP_init__(&data__->INITIALIZE_SP0,retain);
  965. __INIT_VAR(data__->ADD87_OUT,0,retain)
  966. __INIT_VAR(data__->GE91_OUT,__BOOL_LITERAL(FALSE),retain)
  967. __INIT_VAR(data__->MOVE92_ENO,__BOOL_LITERAL(FALSE),retain)
  968. __INIT_VAR(data__->MOVE92_OUT,0,retain)
  969. }
  970.  
  971. // Code part
  972. void MAIN_body__(MAIN *data__) {
  973. // Initialise TEMP variables
  974.  
  975. __SET_VAR(data__->INITIALIZE_SP0.,EN,,__GET_VAR(data__->FIRST_RUN,));
  976. INITIALIZE_SP_body__(&data__->INITIALIZE_SP0);
  977. if (__GET_VAR(data__->INITIALIZE_SP0.ENO,)) {
  978. __SET_VAR(data__->,FIRST_RUN,,__BOOL_LITERAL(FALSE));
  979. };
  980. if (__GET_VAR(data__->INITIALIZE_SP0.ENO,)) {
  981. __SET_VAR(data__->,FLOW_SET,,__GET_VAR(data__->INITIALIZE_SP0.FLOW_SP,));
  982. };
  983. if (__GET_VAR(data__->INITIALIZE_SP0.ENO,)) {
  984. __SET_VAR(data__->,A_SETPOINT,,__GET_VAR(data__->INITIALIZE_SP0.A_SP,));
  985. };
  986. if (__GET_VAR(data__->INITIALIZE_SP0.ENO,)) {
  987. __SET_VAR(data__->,PRESSURE_SP,,__GET_VAR(data__->INITIALIZE_SP0.PRESS_SP,));
  988. };
  989. if (__GET_VAR(data__->INITIALIZE_SP0.ENO,)) {
  990. __SET_VAR(data__->,OVERRIDE_SP,,__GET_VAR(data__->INITIALIZE_SP0.OVER_SP,));
  991. };
  992. if (__GET_VAR(data__->INITIALIZE_SP0.ENO,)) {
  993. __SET_VAR(data__->,LEVEL_SP,,__GET_VAR(data__->INITIALIZE_SP0.LEVEL_SP,));
  994. };
  995. __SET_VAR(data__->FLOW_CONTROL0.,PRODUCT_FLOW,,__GET_VAR(data__->PRODUCT_FLOW,));
  996. __SET_VAR(data__->FLOW_CONTROL0.,CURR_POS,,__GET_VAR(data__->F1_VALVE_POS,));
  997. __SET_VAR(data__->FLOW_CONTROL0.,FLOW_SET_IN,,__GET_VAR(data__->FLOW_SET,));
  998. FLOW_CONTROL_body__(&data__->FLOW_CONTROL0);
  999. __SET_VAR(data__->,F1_VALVE_SP,,__GET_VAR(data__->FLOW_CONTROL0.NEW_POS,));
  1000. __SET_VAR(data__->PRESSURE_CONTROL0.,PRESSURE,,__GET_VAR(data__->PRESSURE,));
  1001. __SET_VAR(data__->PRESSURE_CONTROL0.,PRESSURE_SP,,__GET_VAR(data__->PRESSURE_SP,));
  1002. __SET_VAR(data__->PRESSURE_CONTROL0.,CURR_POS,,__GET_VAR(data__->PURGE_VALVE_POS,));
  1003. PRESSURE_CONTROL_body__(&data__->PRESSURE_CONTROL0);
  1004. __SET_VAR(data__->,PURGE_VALVE_SP,,__GET_VAR(data__->PRESSURE_CONTROL0.VALVE_POS,));
  1005. __SET_VAR(data__->COMPOSITION_CONTROL0.,A_IN_PURGE,,__GET_VAR(data__->A_IN_PURGE,));
  1006. __SET_VAR(data__->COMPOSITION_CONTROL0.,A_SETPOINT,,__GET_VAR(data__->A_SETPOINT,));
  1007. __SET_VAR(data__->COMPOSITION_CONTROL0.,CURR_POS,,__GET_VAR(data__->F2_VALVE_POS,));
  1008. COMPOSITION_CONTROL_body__(&data__->COMPOSITION_CONTROL0);
  1009. __SET_VAR(data__->,F2_VALVE_SP,,__GET_VAR(data__->COMPOSITION_CONTROL0.NEW_POS,));
  1010. __SET_VAR(data__->PRESSURE_OVERRIDE0.,PRESSURE,,__GET_VAR(data__->PRESSURE,));
  1011. __SET_VAR(data__->PRESSURE_OVERRIDE0.,CURR_SP,,__GET_VAR(data__->FLOW_SET,));
  1012. __SET_VAR(data__->PRESSURE_OVERRIDE0.,OVERRIDE_SP,,__GET_VAR(data__->OVERRIDE_SP,));
  1013. PRESSURE_OVERRIDE_body__(&data__->PRESSURE_OVERRIDE0);
  1014. __SET_VAR(data__->,FLOW_SET,,__GET_VAR(data__->PRESSURE_OVERRIDE0.PRODUCT_SP,));
  1015. __SET_VAR(data__->LEVEL_CONTROL0.,LIQUID_LEVEL,,__GET_VAR(data__->LEVEL,));
  1016. __SET_VAR(data__->LEVEL_CONTROL0.,LEVEL_SP,,__GET_VAR(data__->LEVEL_SP,));
  1017. __SET_VAR(data__->LEVEL_CONTROL0.,CURR_POS,,__GET_VAR(data__->PRODUCT_VALVE_POS,));
  1018. LEVEL_CONTROL_body__(&data__->LEVEL_CONTROL0);
  1019. __SET_VAR(data__->,PRODUCT_VALVE_SP,,__GET_VAR(data__->LEVEL_CONTROL0.NEW_POS,));
  1020. __SET_VAR(data__->SCALE_TO_SIGNED0.,INPUT_UINT,,__GET_VAR(data__->PRESSURE,));
  1021. SCALE_TO_SIGNED_body__(&data__->SCALE_TO_SIGNED0);
  1022. __SET_VAR(data__->,HMI_PRESSURE,,__GET_VAR(data__->SCALE_TO_SIGNED0.OUTPUT_INT,));
  1023. __SET_VAR(data__->SCALE_TO_SIGNED1.,INPUT_UINT,,__GET_VAR(data__->LEVEL,));
  1024. SCALE_TO_SIGNED_body__(&data__->SCALE_TO_SIGNED1);
  1025. __SET_VAR(data__->,HMI_LEVEL,,__GET_VAR(data__->SCALE_TO_SIGNED1.OUTPUT_INT,));
  1026. __SET_VAR(data__->SCALE_TO_SIGNED2.,INPUT_UINT,,__GET_VAR(data__->F1_VALVE_POS,));
  1027. SCALE_TO_SIGNED_body__(&data__->SCALE_TO_SIGNED2);
  1028. __SET_VAR(data__->,HMI_F1_VALVE_POS,,__GET_VAR(data__->SCALE_TO_SIGNED2.OUTPUT_INT,));
  1029. __SET_VAR(data__->SCALE_TO_SIGNED3.,INPUT_UINT,,__GET_VAR(data__->F2_VALVE_POS,));
  1030. SCALE_TO_SIGNED_body__(&data__->SCALE_TO_SIGNED3);
  1031. __SET_VAR(data__->,HMI_F2_VALVE_POS,,__GET_VAR(data__->SCALE_TO_SIGNED3.OUTPUT_INT,));
  1032. __SET_VAR(data__->SCALE_TO_SIGNED4.,INPUT_UINT,,__GET_VAR(data__->PURGE_VALVE_POS,));
  1033. SCALE_TO_SIGNED_body__(&data__->SCALE_TO_SIGNED4);
  1034. __SET_VAR(data__->,HMI_PURGE_VALVE_POS,,__GET_VAR(data__->SCALE_TO_SIGNED4.OUTPUT_INT,));
  1035. __SET_VAR(data__->SCALE_TO_SIGNED5.,INPUT_UINT,,__GET_VAR(data__->PRODUCT_VALVE_POS,));
  1036. SCALE_TO_SIGNED_body__(&data__->SCALE_TO_SIGNED5);
  1037. __SET_VAR(data__->,HMI_PRODUCT_VALVE_POS,,__GET_VAR(data__->SCALE_TO_SIGNED5.OUTPUT_INT,));
  1038. __SET_VAR(data__->SCALE_TO_SIGNED6.,INPUT_UINT,,__GET_VAR(data__->F1_FLOW,));
  1039. SCALE_TO_SIGNED_body__(&data__->SCALE_TO_SIGNED6);
  1040. __SET_VAR(data__->,HMI_F1_FLOW,,__GET_VAR(data__->SCALE_TO_SIGNED6.OUTPUT_INT,));
  1041. __SET_VAR(data__->SCALE_TO_SIGNED7.,INPUT_UINT,,__GET_VAR(data__->F2_FLOW,));
  1042. SCALE_TO_SIGNED_body__(&data__->SCALE_TO_SIGNED7);
  1043. __SET_VAR(data__->,HMI_F2_FLOW,,__GET_VAR(data__->SCALE_TO_SIGNED7.OUTPUT_INT,));
  1044. __SET_VAR(data__->SCALE_TO_SIGNED8.,INPUT_UINT,,__GET_VAR(data__->PURGE_FLOW,));
  1045. SCALE_TO_SIGNED_body__(&data__->SCALE_TO_SIGNED8);
  1046. __SET_VAR(data__->,HMI_PURGE_FLOW,,__GET_VAR(data__->SCALE_TO_SIGNED8.OUTPUT_INT,));
  1047. __SET_VAR(data__->SCALE_TO_SIGNED9.,INPUT_UINT,,__GET_VAR(data__->PRODUCT_FLOW,));
  1048. SCALE_TO_SIGNED_body__(&data__->SCALE_TO_SIGNED9);
  1049. __SET_VAR(data__->,HMI_PRODUCT_FLOW,,__GET_VAR(data__->SCALE_TO_SIGNED9.OUTPUT_INT,));
  1050. __SET_VAR(data__->,ADD87_OUT,,ADD__UINT__UINT(
  1051. (BOOL)__BOOL_LITERAL(TRUE),
  1052. NULL,
  1053. (UINT)2,
  1054. (UINT)__GET_VAR(data__->SCAN_COUNT,),
  1055. (UINT)1));
  1056. __SET_VAR(data__->,SCAN_COUNT,,__GET_VAR(data__->ADD87_OUT,));
  1057. __SET_VAR(data__->,GE91_OUT,,GE__BOOL__UINT(
  1058. (BOOL)__BOOL_LITERAL(TRUE),
  1059. NULL,
  1060. (UINT)2,
  1061. (UINT)__GET_VAR(data__->SCAN_COUNT,),
  1062. (UINT)32000));
  1063. __SET_VAR(data__->,MOVE92_OUT,,__MAIN_MOVE__UINT__UINT1(
  1064. (BOOL)__GET_VAR(data__->GE91_OUT,),
  1065. (UINT)0,
  1066. data__));
  1067. if (__GET_VAR(data__->MOVE92_ENO,)) {
  1068. __SET_VAR(data__->,SCAN_COUNT,,__GET_VAR(data__->MOVE92_OUT,));
  1069. };
  1070.  
  1071. goto __end;
  1072.  
  1073. __end:
  1074. return;
  1075. } // MAIN_body__()
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
Buy Me A Coffee