Adds what the folder was missing for someone picking it up cold.
as-built/ the STruC++ output copied out of the live container - the C++
the PLC is actually executing, plus program.st and the Modbus
buffer config. The running image was made with docker commit
and exists in no registry, so this is the only other copy of
the compiled form.
Verified while copying: the deployed program.st matches
build/wrps.st generated from src/. Identical POU structure,
ZERO differences in non-declaration lines. src/ is genuinely
canonical and the running PLC agrees with it.
VERSIONS.md every version read from the running system, not from
documentation: runtime v4.1.10, STruC++ 0.6.2, Editor
4.2.11, Debian 12, g++ 12.2, pymodbus 3.11.2, CI
Server R1.03. Plus which plugins are enabled -
ethercat is on for no reason - and a v3-vs-v4 table,
since most OpenPLC guidance online is for v3 and the
%MW HR1024 change silently produces wrong data.
GETTING-STARTED.md three questions answered in a page: how to modify the
program, how to stand up a new PLC container from
scratch, how to move this one. Includes the compose
file, the Editor steps that are not generated and are
always missed, and a symptom-to-document table.
157 lines
No EOL
19 KiB
C++
157 lines
No EOL
19 KiB
C++
// Generated by STruC++ - IEC 61131-3 Structured Text to C++ Compiler
|
|
// Do not edit this file manually.
|
|
|
|
#include "generated.hpp"
|
|
|
|
namespace strucpp {
|
|
|
|
Program_IO_MUX::Program_IO_MUX(GlobalVar<IEC_INT>* IW_LIT101_ref, GlobalVar<IEC_INT>* IW_FIT201_ref, GlobalVar<IEC_INT>* IW_FIT301_ref, GlobalVar<IEC_INT>* IW_PIT302_ref, GlobalVar<IEC_INT>* IW_PIT311_ref, GlobalVar<IEC_INT>* IW_PIT321_ref, GlobalVar<IEC_INT>* IW_PIT331_ref, GlobalVar<IEC_INT>* IW_VE314_ref, GlobalVar<IEC_INT>* IW_VE324_ref, GlobalVar<IEC_INT>* IW_VE334_ref, GlobalVar<IEC_BOOL>* IX_LSHH102_ref, GlobalVar<IEC_BOOL>* IX_LSLL103_ref, GlobalVar<IEC_BOOL>* IX_LSH104_ref, GlobalVar<IEC_BOOL>* IX_TE312_ref, GlobalVar<IEC_BOOL>* IX_TE322_ref, GlobalVar<IEC_BOOL>* IX_TE332_ref, GlobalVar<IEC_BOOL>* IX_MSE313_ref, GlobalVar<IEC_BOOL>* IX_MSE323_ref, GlobalVar<IEC_BOOL>* IX_MSE333_ref, GlobalVar<IEC_BOOL>* IX_XA502_ref, GlobalVar<IEC_BOOL>* QX_RUNCMD1_ref, GlobalVar<IEC_BOOL>* QX_RUNCMD2_ref, GlobalVar<IEC_BOOL>* QX_RUNCMD3_ref, GlobalVar<IEC_BOOL>* QX_RUNNING1_ref, GlobalVar<IEC_BOOL>* QX_RUNNING2_ref, GlobalVar<IEC_BOOL>* QX_RUNNING3_ref, GlobalVar<IEC_BOOL>* QX_AVAIL1_ref, GlobalVar<IEC_BOOL>* QX_AVAIL2_ref, GlobalVar<IEC_BOOL>* QX_AVAIL3_ref, GlobalVar<IEC_BOOL>* QX_INAUTO_ref, GlobalVar<IEC_BOOL>* QX_HIGHLEVEL_ref, GlobalVar<IEC_BOOL>* QX_SPILLACTIVE_ref, GlobalVar<IEC_BOOL>* QX_TRIPPED1_ref, GlobalVar<IEC_BOOL>* QX_TRIPPED2_ref, GlobalVar<IEC_BOOL>* QX_TRIPPED3_ref, GlobalVar<IEC_INT>* QW_LEVEL_ref, GlobalVar<IEC_INT>* QW_INFLOW_ref, GlobalVar<IEC_INT>* QW_DISCHARGE_ref, GlobalVar<IEC_INT>* QW_PUMPSRUNNING_ref, GlobalVar<IEC_INT>* QW_SPEED_ref, GlobalVar<IEC_INT>* QW_TIMETOSPILL_ref, GlobalVar<IEC_INT>* QW_TIMETOLSHH_ref, GlobalVar<IEC_INT>* QW_NETACCUM_ref, GlobalVar<IEC_INT>* QW_RUNHOURS1_ref, GlobalVar<IEC_INT>* QW_RUNHOURS2_ref, GlobalVar<IEC_INT>* QW_RUNHOURS3_ref, GlobalVar<IEC_INT>* QW_VOLTOSPILL_ref, GlobalVar<IEC_INT>* QW_STATIONSTATE_ref, GlobalVar<IEC_INT>* QW_PUMPSTATE1_ref, GlobalVar<IEC_INT>* QW_PUMPSTATE2_ref, GlobalVar<IEC_INT>* QW_PUMPSTATE3_ref, GlobalVar<IEC_INT>* QW_DUTYPUMP_ref, GlobalVar<IEC_INT>* QW_ALARMWORD_ref, GlobalVar<IEC_INT>* QW_CMDACK_ref, GlobalVar<IEC_INT>* MW_MODE_ref, GlobalVar<IEC_INT>* MW_CMDWORD_ref, GlobalVar<IEC_INT>* MW_CMDPARAM_ref, GlobalVar<IEC_INT>* MW_SPLEVEL_ref, GlobalVar<IEC_INT>* MW_STARTDUTY_ref, GlobalVar<IEC_INT>* MW_STARTP2_ref, GlobalVar<IEC_INT>* MW_STARTP3_ref, GlobalVar<IEC_INT>* MW_STOPALL_ref, GlobalVar<IEC_INT>* MW_HIGHALARM_ref, GlobalVar<IEC_INT>* MW_MINSPEED_ref, GlobalVar<IEC_INT>* MW_SERVICEHRS_ref, GlobalVar<IEC_INT>* MW_SIMINFLOW_ref, GlobalVar<IEC_INT>* MW_SIMMODE_ref, GlobalVar<IEC_INT>* MW_SIMRESET_ref, GlobalVar<IEC_INT>* MW_SIMTIMESCALE_ref, GlobalVar<IEC_INT>* G_LEVELRAW_MM_ref, GlobalVar<IEC_INT>* G_LEVEL_MM_ref, GlobalVar<IEC_REAL>* G_LEVEL_M_ref, GlobalVar<IEC_REAL>* G_INFLOW_LPS_ref, GlobalVar<IEC_REAL>* G_DISCH_LPS_ref, GlobalVar<IEC_REAL>* G_MANIFOLDP_KPA_ref, GlobalVar<Array1D<IEC_REAL, 1, 3>>* G_PUMPP_KPA_ref, GlobalVar<Array1D<IEC_REAL, 1, 3>>* G_VIB_MMS_ref, GlobalVar<IEC_BOOL>* G_LSHH_ref, GlobalVar<IEC_BOOL>* G_LSLL_WET_ref, GlobalVar<IEC_BOOL>* G_SPILLDETECTED_ref, GlobalVar<Array1D<IEC_BOOL, 1, 3>>* G_THERMALOK_ref, GlobalVar<Array1D<IEC_BOOL, 1, 3>>* G_SEALLEAK_ref, GlobalVar<IEC_BOOL>* G_MAINSOK_ref, GlobalVar<IEC_INT>* G_CMD_MODE_ref, GlobalVar<IEC_INT>* G_CMD_WORD_ref, GlobalVar<IEC_INT>* G_CMD_PARAM_ref, GlobalVar<IEC_INT>* G_SP_LEVEL_ref, GlobalVar<IEC_INT>* G_SP_STARTDUTY_ref, GlobalVar<IEC_INT>* G_SP_STARTP2_ref, GlobalVar<IEC_INT>* G_SP_STARTP3_ref, GlobalVar<IEC_INT>* G_SP_STOPALL_ref, GlobalVar<IEC_INT>* G_SP_HIGHALARM_ref, GlobalVar<IEC_INT>* G_SP_MINSPEED_ref, GlobalVar<IEC_INT>* G_SP_SERVICEHRS_ref, GlobalVar<Array1D<IEC_BOOL, 1, 3>>* G_O_RUNCMD_ref, GlobalVar<Array1D<IEC_BOOL, 1, 3>>* G_O_RUNNING_ref, GlobalVar<Array1D<IEC_BOOL, 1, 3>>* G_O_AVAILABLE_ref, GlobalVar<Array1D<IEC_BOOL, 1, 3>>* G_O_TRIPPED_ref, GlobalVar<IEC_BOOL>* G_O_INAUTO_ref, GlobalVar<IEC_BOOL>* G_O_HIGHLEVEL_ref, GlobalVar<IEC_BOOL>* G_O_SPILLACTIVE_ref, GlobalVar<IEC_INT>* G_O_LEVEL_MM_ref, GlobalVar<IEC_INT>* G_O_INFLOW_X10_ref, GlobalVar<IEC_INT>* G_O_DISCH_X10_ref, GlobalVar<IEC_INT>* G_O_PUMPSRUN_ref, GlobalVar<IEC_INT>* G_O_SPEED_X10_ref, GlobalVar<IEC_INT>* G_O_TIMETOSPILL_ref, GlobalVar<IEC_INT>* G_O_TIMETOLSHH_ref, GlobalVar<IEC_INT>* G_O_NETACCUM_ref, GlobalVar<Array1D<IEC_INT, 1, 3>>* G_O_RUNHOURS_ref, GlobalVar<IEC_INT>* G_O_VOLTOSPILL_ref, GlobalVar<IEC_INT>* G_O_STATIONSTATE_ref, GlobalVar<Array1D<IEC_INT, 1, 3>>* G_O_PUMPSTATE_ref, GlobalVar<IEC_INT>* G_O_DUTYPUMP_ref, GlobalVar<IEC_INT>* G_O_ALARMWORD_ref, GlobalVar<IEC_INT>* G_O_CMDACK_ref, GlobalVar<IEC_INT>* DEF_MODE_ref, GlobalVar<IEC_INT>* DEF_SP_LEVEL_ref, GlobalVar<IEC_INT>* DEF_START_DUTY_ref, GlobalVar<IEC_INT>* DEF_START_P2_ref, GlobalVar<IEC_INT>* DEF_START_P3_ref, GlobalVar<IEC_INT>* DEF_STOP_ALL_ref, GlobalVar<IEC_INT>* DEF_HIGH_ALARM_ref, GlobalVar<IEC_INT>* DEF_MIN_SPEED_ref, GlobalVar<IEC_INT>* DEF_SERVICE_HRS_ref, GlobalVar<IEC_BOOL>* G_SIMACTIVE_ref, GlobalVar<IEC_BOOL>* G_SIM_CLEARRESET_ref, GlobalVar<IEC_INT>* G_SIMCMD_INFLOW_ref, GlobalVar<IEC_INT>* G_SIMCMD_MODE_ref, GlobalVar<IEC_INT>* G_SIMCMD_RESET_ref, GlobalVar<IEC_INT>* G_SIMCMD_TIMESCALE_ref, GlobalVar<IEC_INT>* G_SIM_LEVEL_MM_ref, GlobalVar<IEC_INT>* G_SIM_INFLOW_X10_ref, GlobalVar<IEC_INT>* G_SIM_DISCH_X10_ref, GlobalVar<IEC_INT>* G_SIM_MANIFOLDP_ref, GlobalVar<Array1D<IEC_INT, 1, 3>>* G_SIM_PUMPP_ref, GlobalVar<Array1D<IEC_INT, 1, 3>>* G_SIM_VIB_X10_ref, GlobalVar<IEC_BOOL>* G_SIM_LSHH_ref, GlobalVar<IEC_BOOL>* G_SIM_LSLL_WET_ref, GlobalVar<IEC_BOOL>* G_SIM_SPILL_ref, GlobalVar<Array1D<IEC_BOOL, 1, 3>>* G_SIM_THERMALOK_ref, GlobalVar<Array1D<IEC_BOOL, 1, 3>>* G_SIM_SEALLEAK_ref, GlobalVar<IEC_BOOL>* G_SIM_MAINSOK_ref)
|
|
: SEEDED(false), IW_LIT101(IW_LIT101_ref), IW_FIT201(IW_FIT201_ref), IW_FIT301(IW_FIT301_ref), IW_PIT302(IW_PIT302_ref), IW_PIT311(IW_PIT311_ref), IW_PIT321(IW_PIT321_ref), IW_PIT331(IW_PIT331_ref), IW_VE314(IW_VE314_ref), IW_VE324(IW_VE324_ref), IW_VE334(IW_VE334_ref), IX_LSHH102(IX_LSHH102_ref), IX_LSLL103(IX_LSLL103_ref), IX_LSH104(IX_LSH104_ref), IX_TE312(IX_TE312_ref), IX_TE322(IX_TE322_ref), IX_TE332(IX_TE332_ref), IX_MSE313(IX_MSE313_ref), IX_MSE323(IX_MSE323_ref), IX_MSE333(IX_MSE333_ref), IX_XA502(IX_XA502_ref), QX_RUNCMD1(QX_RUNCMD1_ref), QX_RUNCMD2(QX_RUNCMD2_ref), QX_RUNCMD3(QX_RUNCMD3_ref), QX_RUNNING1(QX_RUNNING1_ref), QX_RUNNING2(QX_RUNNING2_ref), QX_RUNNING3(QX_RUNNING3_ref), QX_AVAIL1(QX_AVAIL1_ref), QX_AVAIL2(QX_AVAIL2_ref), QX_AVAIL3(QX_AVAIL3_ref), QX_INAUTO(QX_INAUTO_ref), QX_HIGHLEVEL(QX_HIGHLEVEL_ref), QX_SPILLACTIVE(QX_SPILLACTIVE_ref), QX_TRIPPED1(QX_TRIPPED1_ref), QX_TRIPPED2(QX_TRIPPED2_ref), QX_TRIPPED3(QX_TRIPPED3_ref), QW_LEVEL(QW_LEVEL_ref), QW_INFLOW(QW_INFLOW_ref), QW_DISCHARGE(QW_DISCHARGE_ref), QW_PUMPSRUNNING(QW_PUMPSRUNNING_ref), QW_SPEED(QW_SPEED_ref), QW_TIMETOSPILL(QW_TIMETOSPILL_ref), QW_TIMETOLSHH(QW_TIMETOLSHH_ref), QW_NETACCUM(QW_NETACCUM_ref), QW_RUNHOURS1(QW_RUNHOURS1_ref), QW_RUNHOURS2(QW_RUNHOURS2_ref), QW_RUNHOURS3(QW_RUNHOURS3_ref), QW_VOLTOSPILL(QW_VOLTOSPILL_ref), QW_STATIONSTATE(QW_STATIONSTATE_ref), QW_PUMPSTATE1(QW_PUMPSTATE1_ref), QW_PUMPSTATE2(QW_PUMPSTATE2_ref), QW_PUMPSTATE3(QW_PUMPSTATE3_ref), QW_DUTYPUMP(QW_DUTYPUMP_ref), QW_ALARMWORD(QW_ALARMWORD_ref), QW_CMDACK(QW_CMDACK_ref), MW_MODE(MW_MODE_ref), MW_CMDWORD(MW_CMDWORD_ref), MW_CMDPARAM(MW_CMDPARAM_ref), MW_SPLEVEL(MW_SPLEVEL_ref), MW_STARTDUTY(MW_STARTDUTY_ref), MW_STARTP2(MW_STARTP2_ref), MW_STARTP3(MW_STARTP3_ref), MW_STOPALL(MW_STOPALL_ref), MW_HIGHALARM(MW_HIGHALARM_ref), MW_MINSPEED(MW_MINSPEED_ref), MW_SERVICEHRS(MW_SERVICEHRS_ref), MW_SIMINFLOW(MW_SIMINFLOW_ref), MW_SIMMODE(MW_SIMMODE_ref), MW_SIMRESET(MW_SIMRESET_ref), MW_SIMTIMESCALE(MW_SIMTIMESCALE_ref), G_LEVELRAW_MM(G_LEVELRAW_MM_ref), G_LEVEL_MM(G_LEVEL_MM_ref), G_LEVEL_M(G_LEVEL_M_ref), G_INFLOW_LPS(G_INFLOW_LPS_ref), G_DISCH_LPS(G_DISCH_LPS_ref), G_MANIFOLDP_KPA(G_MANIFOLDP_KPA_ref), G_PUMPP_KPA(G_PUMPP_KPA_ref), G_VIB_MMS(G_VIB_MMS_ref), G_LSHH(G_LSHH_ref), G_LSLL_WET(G_LSLL_WET_ref), G_SPILLDETECTED(G_SPILLDETECTED_ref), G_THERMALOK(G_THERMALOK_ref), G_SEALLEAK(G_SEALLEAK_ref), G_MAINSOK(G_MAINSOK_ref), G_CMD_MODE(G_CMD_MODE_ref), G_CMD_WORD(G_CMD_WORD_ref), G_CMD_PARAM(G_CMD_PARAM_ref), G_SP_LEVEL(G_SP_LEVEL_ref), G_SP_STARTDUTY(G_SP_STARTDUTY_ref), G_SP_STARTP2(G_SP_STARTP2_ref), G_SP_STARTP3(G_SP_STARTP3_ref), G_SP_STOPALL(G_SP_STOPALL_ref), G_SP_HIGHALARM(G_SP_HIGHALARM_ref), G_SP_MINSPEED(G_SP_MINSPEED_ref), G_SP_SERVICEHRS(G_SP_SERVICEHRS_ref), G_O_RUNCMD(G_O_RUNCMD_ref), G_O_RUNNING(G_O_RUNNING_ref), G_O_AVAILABLE(G_O_AVAILABLE_ref), G_O_TRIPPED(G_O_TRIPPED_ref), G_O_INAUTO(G_O_INAUTO_ref), G_O_HIGHLEVEL(G_O_HIGHLEVEL_ref), G_O_SPILLACTIVE(G_O_SPILLACTIVE_ref), G_O_LEVEL_MM(G_O_LEVEL_MM_ref), G_O_INFLOW_X10(G_O_INFLOW_X10_ref), G_O_DISCH_X10(G_O_DISCH_X10_ref), G_O_PUMPSRUN(G_O_PUMPSRUN_ref), G_O_SPEED_X10(G_O_SPEED_X10_ref), G_O_TIMETOSPILL(G_O_TIMETOSPILL_ref), G_O_TIMETOLSHH(G_O_TIMETOLSHH_ref), G_O_NETACCUM(G_O_NETACCUM_ref), G_O_RUNHOURS(G_O_RUNHOURS_ref), G_O_VOLTOSPILL(G_O_VOLTOSPILL_ref), G_O_STATIONSTATE(G_O_STATIONSTATE_ref), G_O_PUMPSTATE(G_O_PUMPSTATE_ref), G_O_DUTYPUMP(G_O_DUTYPUMP_ref), G_O_ALARMWORD(G_O_ALARMWORD_ref), G_O_CMDACK(G_O_CMDACK_ref), DEF_MODE(DEF_MODE_ref), DEF_SP_LEVEL(DEF_SP_LEVEL_ref), DEF_START_DUTY(DEF_START_DUTY_ref), DEF_START_P2(DEF_START_P2_ref), DEF_START_P3(DEF_START_P3_ref), DEF_STOP_ALL(DEF_STOP_ALL_ref), DEF_HIGH_ALARM(DEF_HIGH_ALARM_ref), DEF_MIN_SPEED(DEF_MIN_SPEED_ref), DEF_SERVICE_HRS(DEF_SERVICE_HRS_ref), G_SIMACTIVE(G_SIMACTIVE_ref), G_SIM_CLEARRESET(G_SIM_CLEARRESET_ref), G_SIMCMD_INFLOW(G_SIMCMD_INFLOW_ref), G_SIMCMD_MODE(G_SIMCMD_MODE_ref), G_SIMCMD_RESET(G_SIMCMD_RESET_ref), G_SIMCMD_TIMESCALE(G_SIMCMD_TIMESCALE_ref), G_SIM_LEVEL_MM(G_SIM_LEVEL_MM_ref), G_SIM_INFLOW_X10(G_SIM_INFLOW_X10_ref), G_SIM_DISCH_X10(G_SIM_DISCH_X10_ref), G_SIM_MANIFOLDP(G_SIM_MANIFOLDP_ref), G_SIM_PUMPP(G_SIM_PUMPP_ref), G_SIM_VIB_X10(G_SIM_VIB_X10_ref), G_SIM_LSHH(G_SIM_LSHH_ref), G_SIM_LSLL_WET(G_SIM_LSLL_WET_ref), G_SIM_SPILL(G_SIM_SPILL_ref), G_SIM_THERMALOK(G_SIM_THERMALOK_ref), G_SIM_SEALLEAK(G_SIM_SEALLEAK_ref), G_SIM_MAINSOK(G_SIM_MAINSOK_ref)
|
|
{
|
|
}
|
|
|
|
void Program_IO_MUX::run() {
|
|
if (!SEEDED) {
|
|
SEEDED = true;
|
|
MW_MODE->write(DEF_MODE->read());
|
|
MW_CMDWORD->write(0);
|
|
MW_CMDPARAM->write(0);
|
|
MW_SPLEVEL->write(DEF_SP_LEVEL->read());
|
|
MW_STARTDUTY->write(DEF_START_DUTY->read());
|
|
MW_STARTP2->write(DEF_START_P2->read());
|
|
MW_STARTP3->write(DEF_START_P3->read());
|
|
MW_STOPALL->write(DEF_STOP_ALL->read());
|
|
MW_HIGHALARM->write(DEF_HIGH_ALARM->read());
|
|
MW_MINSPEED->write(DEF_MIN_SPEED->read());
|
|
MW_SERVICEHRS->write(DEF_SERVICE_HRS->read());
|
|
MW_SIMINFLOW->write(750);
|
|
MW_SIMMODE->write(0);
|
|
MW_SIMRESET->write(0);
|
|
MW_SIMTIMESCALE->write(1);
|
|
}
|
|
QX_RUNCMD1->write(G_O_RUNCMD->with_lock([&](auto* __glk){ return (*__glk).at(1); }));
|
|
QX_RUNCMD2->write(G_O_RUNCMD->with_lock([&](auto* __glk){ return (*__glk).at(2); }));
|
|
QX_RUNCMD3->write(G_O_RUNCMD->with_lock([&](auto* __glk){ return (*__glk).at(3); }));
|
|
QX_RUNNING1->write(G_O_RUNNING->with_lock([&](auto* __glk){ return (*__glk).at(1); }));
|
|
QX_RUNNING2->write(G_O_RUNNING->with_lock([&](auto* __glk){ return (*__glk).at(2); }));
|
|
QX_RUNNING3->write(G_O_RUNNING->with_lock([&](auto* __glk){ return (*__glk).at(3); }));
|
|
QX_AVAIL1->write(G_O_AVAILABLE->with_lock([&](auto* __glk){ return (*__glk).at(1); }));
|
|
QX_AVAIL2->write(G_O_AVAILABLE->with_lock([&](auto* __glk){ return (*__glk).at(2); }));
|
|
QX_AVAIL3->write(G_O_AVAILABLE->with_lock([&](auto* __glk){ return (*__glk).at(3); }));
|
|
QX_INAUTO->write(G_O_INAUTO->read());
|
|
QX_HIGHLEVEL->write(G_O_HIGHLEVEL->read());
|
|
QX_SPILLACTIVE->write(G_O_SPILLACTIVE->read());
|
|
QX_TRIPPED1->write(G_O_TRIPPED->with_lock([&](auto* __glk){ return (*__glk).at(1); }));
|
|
QX_TRIPPED2->write(G_O_TRIPPED->with_lock([&](auto* __glk){ return (*__glk).at(2); }));
|
|
QX_TRIPPED3->write(G_O_TRIPPED->with_lock([&](auto* __glk){ return (*__glk).at(3); }));
|
|
QW_LEVEL->write(G_O_LEVEL_MM->read());
|
|
QW_INFLOW->write(G_O_INFLOW_X10->read());
|
|
QW_DISCHARGE->write(G_O_DISCH_X10->read());
|
|
QW_PUMPSRUNNING->write(G_O_PUMPSRUN->read());
|
|
QW_SPEED->write(G_O_SPEED_X10->read());
|
|
QW_TIMETOSPILL->write(G_O_TIMETOSPILL->read());
|
|
QW_TIMETOLSHH->write(G_O_TIMETOLSHH->read());
|
|
QW_NETACCUM->write(G_O_NETACCUM->read());
|
|
QW_RUNHOURS1->write(G_O_RUNHOURS->with_lock([&](auto* __glk){ return (*__glk).at(1); }));
|
|
QW_RUNHOURS2->write(G_O_RUNHOURS->with_lock([&](auto* __glk){ return (*__glk).at(2); }));
|
|
QW_RUNHOURS3->write(G_O_RUNHOURS->with_lock([&](auto* __glk){ return (*__glk).at(3); }));
|
|
QW_VOLTOSPILL->write(G_O_VOLTOSPILL->read());
|
|
QW_STATIONSTATE->write(G_O_STATIONSTATE->read());
|
|
QW_PUMPSTATE1->write(G_O_PUMPSTATE->with_lock([&](auto* __glk){ return (*__glk).at(1); }));
|
|
QW_PUMPSTATE2->write(G_O_PUMPSTATE->with_lock([&](auto* __glk){ return (*__glk).at(2); }));
|
|
QW_PUMPSTATE3->write(G_O_PUMPSTATE->with_lock([&](auto* __glk){ return (*__glk).at(3); }));
|
|
QW_DUTYPUMP->write(G_O_DUTYPUMP->read());
|
|
QW_ALARMWORD->write(G_O_ALARMWORD->read());
|
|
QW_CMDACK->write(G_O_CMDACK->read());
|
|
G_CMD_MODE->write(MW_MODE->read());
|
|
G_CMD_WORD->write(MW_CMDWORD->read());
|
|
G_CMD_PARAM->write(MW_CMDPARAM->read());
|
|
G_SP_LEVEL->write(MW_SPLEVEL->read());
|
|
G_SP_STARTDUTY->write(MW_STARTDUTY->read());
|
|
G_SP_STARTP2->write(MW_STARTP2->read());
|
|
G_SP_STARTP3->write(MW_STARTP3->read());
|
|
G_SP_STOPALL->write(MW_STOPALL->read());
|
|
G_SP_HIGHALARM->write(MW_HIGHALARM->read());
|
|
G_SP_MINSPEED->write(MW_MINSPEED->read());
|
|
G_SP_SERVICEHRS->write(MW_SERVICEHRS->read());
|
|
G_SIMCMD_INFLOW->write(MW_SIMINFLOW->read());
|
|
G_SIMCMD_MODE->write(MW_SIMMODE->read());
|
|
G_SIMCMD_RESET->write(MW_SIMRESET->read());
|
|
G_SIMCMD_TIMESCALE->write(MW_SIMTIMESCALE->read());
|
|
if (G_SIM_CLEARRESET->read()) {
|
|
MW_SIMRESET->write(0);
|
|
}
|
|
if (G_SIMACTIVE->read()) {
|
|
G_LEVELRAW_MM->write(G_SIM_LEVEL_MM->read());
|
|
G_LEVEL_MM->write(G_SIM_LEVEL_MM->read());
|
|
G_LEVEL_M->write(TO_REAL(G_SIM_LEVEL_MM->read()) / 1000.0);
|
|
G_INFLOW_LPS->write(TO_REAL(G_SIM_INFLOW_X10->read()) / 10.0);
|
|
G_DISCH_LPS->write(TO_REAL(G_SIM_DISCH_X10->read()) / 10.0);
|
|
G_MANIFOLDP_KPA->write(TO_REAL(G_SIM_MANIFOLDP->read()));
|
|
auto __gwv_22 = TO_REAL(G_SIM_PUMPP->with_lock([&](auto* __glk){ return (*__glk).at(1); }));
|
|
G_PUMPP_KPA->with_lock([&](auto* __glk){ (*__glk).at(1) = __gwv_22; });
|
|
auto __gwv_23 = TO_REAL(G_SIM_PUMPP->with_lock([&](auto* __glk){ return (*__glk).at(2); }));
|
|
G_PUMPP_KPA->with_lock([&](auto* __glk){ (*__glk).at(2) = __gwv_23; });
|
|
auto __gwv_24 = TO_REAL(G_SIM_PUMPP->with_lock([&](auto* __glk){ return (*__glk).at(3); }));
|
|
G_PUMPP_KPA->with_lock([&](auto* __glk){ (*__glk).at(3) = __gwv_24; });
|
|
auto __gwv_25 = TO_REAL(G_SIM_VIB_X10->with_lock([&](auto* __glk){ return (*__glk).at(1); })) / 10.0;
|
|
G_VIB_MMS->with_lock([&](auto* __glk){ (*__glk).at(1) = __gwv_25; });
|
|
auto __gwv_26 = TO_REAL(G_SIM_VIB_X10->with_lock([&](auto* __glk){ return (*__glk).at(2); })) / 10.0;
|
|
G_VIB_MMS->with_lock([&](auto* __glk){ (*__glk).at(2) = __gwv_26; });
|
|
auto __gwv_27 = TO_REAL(G_SIM_VIB_X10->with_lock([&](auto* __glk){ return (*__glk).at(3); })) / 10.0;
|
|
G_VIB_MMS->with_lock([&](auto* __glk){ (*__glk).at(3) = __gwv_27; });
|
|
G_LSHH->write(G_SIM_LSHH->read());
|
|
G_LSLL_WET->write(G_SIM_LSLL_WET->read());
|
|
G_SPILLDETECTED->write(G_SIM_SPILL->read());
|
|
auto __gwv_28 = G_SIM_THERMALOK->with_lock([&](auto* __glk){ return (*__glk).at(1); });
|
|
G_THERMALOK->with_lock([&](auto* __glk){ (*__glk).at(1) = __gwv_28; });
|
|
auto __gwv_29 = G_SIM_THERMALOK->with_lock([&](auto* __glk){ return (*__glk).at(2); });
|
|
G_THERMALOK->with_lock([&](auto* __glk){ (*__glk).at(2) = __gwv_29; });
|
|
auto __gwv_30 = G_SIM_THERMALOK->with_lock([&](auto* __glk){ return (*__glk).at(3); });
|
|
G_THERMALOK->with_lock([&](auto* __glk){ (*__glk).at(3) = __gwv_30; });
|
|
auto __gwv_31 = G_SIM_SEALLEAK->with_lock([&](auto* __glk){ return (*__glk).at(1); });
|
|
G_SEALLEAK->with_lock([&](auto* __glk){ (*__glk).at(1) = __gwv_31; });
|
|
auto __gwv_32 = G_SIM_SEALLEAK->with_lock([&](auto* __glk){ return (*__glk).at(2); });
|
|
G_SEALLEAK->with_lock([&](auto* __glk){ (*__glk).at(2) = __gwv_32; });
|
|
auto __gwv_33 = G_SIM_SEALLEAK->with_lock([&](auto* __glk){ return (*__glk).at(3); });
|
|
G_SEALLEAK->with_lock([&](auto* __glk){ (*__glk).at(3) = __gwv_33; });
|
|
G_MAINSOK->write(G_SIM_MAINSOK->read());
|
|
} else {
|
|
G_LEVELRAW_MM->write(IW_LIT101->read());
|
|
G_LEVEL_MM->write(IW_LIT101->read());
|
|
G_LEVEL_M->write(TO_REAL(IW_LIT101->read()) / 1000.0);
|
|
G_INFLOW_LPS->write(TO_REAL(IW_FIT201->read()) / 10.0);
|
|
G_DISCH_LPS->write(TO_REAL(IW_FIT301->read()) / 10.0);
|
|
G_MANIFOLDP_KPA->write(TO_REAL(IW_PIT302->read()));
|
|
auto __gwv_34 = TO_REAL(IW_PIT311->read());
|
|
G_PUMPP_KPA->with_lock([&](auto* __glk){ (*__glk).at(1) = __gwv_34; });
|
|
auto __gwv_35 = TO_REAL(IW_PIT321->read());
|
|
G_PUMPP_KPA->with_lock([&](auto* __glk){ (*__glk).at(2) = __gwv_35; });
|
|
auto __gwv_36 = TO_REAL(IW_PIT331->read());
|
|
G_PUMPP_KPA->with_lock([&](auto* __glk){ (*__glk).at(3) = __gwv_36; });
|
|
auto __gwv_37 = TO_REAL(IW_VE314->read()) / 10.0;
|
|
G_VIB_MMS->with_lock([&](auto* __glk){ (*__glk).at(1) = __gwv_37; });
|
|
auto __gwv_38 = TO_REAL(IW_VE324->read()) / 10.0;
|
|
G_VIB_MMS->with_lock([&](auto* __glk){ (*__glk).at(2) = __gwv_38; });
|
|
auto __gwv_39 = TO_REAL(IW_VE334->read()) / 10.0;
|
|
G_VIB_MMS->with_lock([&](auto* __glk){ (*__glk).at(3) = __gwv_39; });
|
|
G_LSHH->write(IX_LSHH102->read());
|
|
G_LSLL_WET->write(IX_LSLL103->read());
|
|
G_SPILLDETECTED->write(IX_LSH104->read());
|
|
auto __gwv_40 = IX_TE312->read();
|
|
G_THERMALOK->with_lock([&](auto* __glk){ (*__glk).at(1) = __gwv_40; });
|
|
auto __gwv_41 = IX_TE322->read();
|
|
G_THERMALOK->with_lock([&](auto* __glk){ (*__glk).at(2) = __gwv_41; });
|
|
auto __gwv_42 = IX_TE332->read();
|
|
G_THERMALOK->with_lock([&](auto* __glk){ (*__glk).at(3) = __gwv_42; });
|
|
auto __gwv_43 = IX_MSE313->read();
|
|
G_SEALLEAK->with_lock([&](auto* __glk){ (*__glk).at(1) = __gwv_43; });
|
|
auto __gwv_44 = IX_MSE323->read();
|
|
G_SEALLEAK->with_lock([&](auto* __glk){ (*__glk).at(2) = __gwv_44; });
|
|
auto __gwv_45 = IX_MSE333->read();
|
|
G_SEALLEAK->with_lock([&](auto* __glk){ (*__glk).at(3) = __gwv_45; });
|
|
G_MAINSOK->write(IX_XA502->read());
|
|
}
|
|
}
|
|
|
|
} // namespace strucpp
|