744 lines
27 KiB
Plaintext
Executable File
744 lines
27 KiB
Plaintext
Executable File
network model =
|
|
assets :
|
|
#Digital
|
|
tempSensor1; #CS/CDA
|
|
tempSensor2; #CS/CDA
|
|
seismicSensor1; #CS/CDA
|
|
automaticScram; #CS/CDA
|
|
operator; #CS/CDA
|
|
controlRodController; #CS/CDA
|
|
controlBlade1; #CS/CDA
|
|
controlBlade2; #CS/CDA
|
|
controlBlade5; #CS/CDA
|
|
controlBlade4; #CS/CDA
|
|
pulseControlRod; #CS/CDA
|
|
buildingCompressedAir; # Affects control rod movment, which is a CS, thus CDA
|
|
pressureTankSolenoidValve; # Affects control rod movment, which is a CS, thus CDA
|
|
linearPowerSensor;#aka CIC #CS/CDA
|
|
nlogPowerSensor; #CS/CDA
|
|
pulsePowerSensor;#aka UIC #CS/CDA
|
|
controlSystemRecorder; #Listed as CS in Fig 2., thus CDA if digital
|
|
buildingEvacAlarm; #CS/CDA (S/EP)
|
|
beamRoomScramChain; #CS/CDA if digital
|
|
highFluxMonitor; #CS/CDA
|
|
periodSensor; #CS/CDA
|
|
logNHVFailureSensor; #CS/CDA
|
|
linearHVFailureSensor; #CS/CDA
|
|
pulseHVFailureSensor; #CS/CDA
|
|
continuousAirMonitor; #CS/CDA (Safety)
|
|
areaMonitoringSystem; #CS/CDA (Safety)
|
|
diffuser; #CS/CDA (Safety)
|
|
coolantLevelSensor; #Can casue operator to be instructed to SCRAM, thus CDA
|
|
backupPower; #CS/CDA
|
|
bridge; #CDA since it can affect radiation levels, which is safety-realted
|
|
|
|
#water purification system
|
|
waterMakeupPump; #CS, CDA if digital
|
|
purificationRecirculationPump; #CS, CDA if digital
|
|
flowmeter; #Not normally visible, doesn't communicate... not a CS...
|
|
conductivityCell1; #CS/CDA
|
|
conductivityCell2; #CS/CDA
|
|
ionExchanger; #Not digital
|
|
poolTotalizer; #Not digital, but would be a CDA if replaced with a digital component
|
|
|
|
#heat exchange system
|
|
coolantTempSensor; #CS/CDA
|
|
heatExchangePump1; #CS/CDA
|
|
heatExchangePump2; #CS/CDA
|
|
conductivityCell3; #CS/CDA
|
|
towerTotalizer; #Not digital, but problably a CS. If so, would be a CDA if digital
|
|
coolingTowerFan; #Probably CS/CDA. Want to check on consequences of failure and update asset list
|
|
|
|
#Ventilation System
|
|
ventilationController; #CS/CDA
|
|
ventilationIntakeFan; #CS/CDA
|
|
ventilationOuttakeFan; #CS/CDA
|
|
ventilationAirDetector; #CS/CDA
|
|
ventilationDampers; #CS/CDA
|
|
ventilationDiluteFan; #CS/CDA
|
|
|
|
#Physical
|
|
#combining values
|
|
reactor; #CS
|
|
coolant; #CS
|
|
airborneRadiation; #CS
|
|
buildingPower;
|
|
seismicActivity;
|
|
|
|
# For CDA Generation
|
|
finishTag;
|
|
|
|
facts :
|
|
# Initial Critical Assets List
|
|
quality:reactor,critical=true;
|
|
|
|
# Statement of which assets are digital
|
|
quality:tempSensor1,digital=true;
|
|
quality:tempSensor2,digital=true;
|
|
quality:seismicSensor1,digital=true;
|
|
quality:automaticScram,digital=true;
|
|
quality:operator,digital=true;
|
|
quality:controlRodController,digital=true;
|
|
quality:controlBlade1,digital=true;
|
|
quality:controlBlade2,digital=true;
|
|
quality:controlBlade5,digital=true;
|
|
quality:controlBlade4,digital=true;
|
|
quality:pulseControlRod,digital=true;
|
|
quality:buildingCompressedAir,digital=true;
|
|
quality:pressureTankSolenoidValve,digital=true;
|
|
quality:linearPowerSensor,digital=true;
|
|
quality:nlogPowerSensor,digital=true;
|
|
quality:pulsePowerSensor,digital=true;
|
|
quality:controlSystemRecorder,digital=true;
|
|
quality:buildingEvacAlarm,digital=true;
|
|
quality:beamRoomScramChain,digital=true;
|
|
quality:highFluxMonitor,digital=true;
|
|
quality:periodSensor,digital=true;
|
|
quality:logNHVFailureSensor,digital=true;
|
|
quality:linearHVFailureSensor,digital=true;
|
|
quality:pulseHVFailureSensor,digital=true;
|
|
quality:continuousAirMonitor,digital=true;
|
|
quality:areaMonitoringSystem,digital=true;
|
|
quality:diffuser,digital=true;
|
|
quality:coolantLevelSensor,digital=true;
|
|
quality:backupPower,digital=true;
|
|
quality:bridge,digital=true;
|
|
|
|
# Tag for when CDAs can no longer be generated
|
|
quality:finishTag,completed=false;
|
|
|
|
#TempSensor Facts
|
|
quality:tempSensor1,status=ok;
|
|
quality:tempSensor2,status=ok;
|
|
quality:tempSensor1,temp:=50;
|
|
quality:tempSensor2,temp:=50;
|
|
quality:tempSensor1,calibration=normal;
|
|
quality:tempSensor2,calibration=normal;
|
|
quality:tempSensor1,powerStatus=on;
|
|
quality:tempSensor2,powerStatus=on;
|
|
|
|
topology:tempSensor1->automaticScram,connected_modbus_slave;
|
|
quality:tempSensor1,spoofed=false;
|
|
topology:tempSensor2->automaticScram,connected_modbus_slave;
|
|
quality:tempSensor2,spoofed=false;
|
|
topology:tempSensor1->controlSystemRecorder,connected_modbus_slave;
|
|
topology:tempSensor2->controlSystemRecorder,connected_modbus_slave;
|
|
topology:tempSensor1->operator,connected_modbus_slave;
|
|
quality:tempSensor1,spoofed=false;
|
|
topology:tempSensor2->operator,connected_modbus_slave;
|
|
quality:tempSensor2,spoofed=false;
|
|
topology:reactor<->tempSensor1,physical;
|
|
topology:reactor<->tempSensor2,physical;
|
|
topology:buildingPower->tempSensor1,power:=120;
|
|
topology:buildingPower->tempSensor2,power:=120;
|
|
|
|
quality:tempSensor1,platform=tempSensor;
|
|
quality:tempSensor2,platform=tempSensor;
|
|
|
|
#SeismicSensor Facts
|
|
quality:seismicSensor1,status=ok;
|
|
quality:seismicSensor1,powerStatus=on;
|
|
quality:seismicSensor1,magnitude:=.003;
|
|
|
|
topology:seismicSensor1->automaticScram,connected_modbus_slave;
|
|
quality:seismicSensor1,spoofed=false;
|
|
topology:seismicActivity<->seismicSensor1,physical;
|
|
topology:buildingPower->seismicSensor1,power:=120;
|
|
|
|
quality:seismicSensor1,platform=seismicSensor;
|
|
|
|
#Automatic Scram Facts
|
|
quality:automaticScram,status=ok;
|
|
quality:automaticScram,powerStatus=on;
|
|
quality:automaticScram,mode=manual;
|
|
quality:automaticScram,activated=false;
|
|
|
|
topology:automaticScram->controlRodController,connected_emag_power;
|
|
topology:automaticScram->tempSensor1,connected_modbus_master;
|
|
topology:automaticScram->tempSensor2,connected_modbus_master;
|
|
topology:automaticScram->seismicSensor1,connected_modbus_master;
|
|
topology:automaticScram->highFluxMonitor,connected_modbus_master;
|
|
topology:automaticScram->buildingEvacAlarm,connected_modbus_master;
|
|
topology:automaticScram->beamRoomScramChain,connected_modbus_master;
|
|
topology:automaticScram->logNHVFailureSensor,connected_modbus_master;
|
|
topology:automaticScram->linearHVFailureSensor,connected_modbus_master;
|
|
topology:automaticScram->pulseHVFailureSensor,connected_modbus_master;
|
|
topology:automaticScram->operator,connected_modbus_master;
|
|
topology:buildingPower->automaticScram,power:=120;
|
|
|
|
quality:automaticScram,platform=scramUnit;
|
|
|
|
#Operator Facts
|
|
quality:operator,status=ok;
|
|
quality:operator,powerStatus=on;
|
|
quality:operator,manualScram=false;
|
|
quality:operator,operationMode=manual;
|
|
quality:operator,consoleKey=inserted;
|
|
|
|
topology:operator->automaticScram,connected_modbus_slave;
|
|
quality:operator,spoofed=false;
|
|
topology:operator->coolantLevelSensor,audible;
|
|
topology:operator->coolantTempSensor,connected_modbus_master;
|
|
topology:operator->controlRodController,connected_modbus_master;
|
|
topology:operator->buildingEvacAlarm,connected_modbus_master;
|
|
topology:operator->tempSensor1,connected_modbus_master;
|
|
topology:operator->tempSensor2,connected_modbus_master;
|
|
topology:operator->linearPowerSensor,connected_modbus_master;
|
|
topology:operator->nlogPowerSensor,connected_modbus_master;
|
|
topology:operator->pulsePowerSensor,connected_modbus_master;
|
|
topology:operator->continuousAirMonitor,connected_modbus_master;
|
|
topology:operator->bridge,connected_modbus_master;
|
|
topology:operator->periodSensor,connected_modbus_master;
|
|
topology:operator->areaMonitoringSystem,connected_modbus_master;
|
|
topology:operator->ventilationAirDetector,connected_modbus_master;
|
|
topology:operator->conductivityCell1,connected_modbus_master;
|
|
topology:operator->conductivityCell2,connected_modbus_master;
|
|
topology:operator->conductivityCell3,connected_modbus_master;
|
|
topology:operator->heatExchangePump1,connected_modbus_master;
|
|
topology:operator->heatExchangePump2,connected_modbus_master;
|
|
topology:operator->diffuser,connected_modbus_master;
|
|
topology:buildingPower->operator,power:=120;
|
|
|
|
quality:operator,platform=operatorStation;
|
|
|
|
#Control Rod Facts
|
|
quality:controlRodController,status=ok;
|
|
quality:controlRodController,powerStatus=on;
|
|
quality:controlRodController,emagPower=on;
|
|
|
|
topology:controlRodController->operator,connected_modbus_slave;
|
|
quality:controlRodController,spoofed=false;
|
|
topology:controlRodController->pressureTankSolenoidValve,connected_modbus_master;
|
|
topology:controlRodController->nlogPowerSensor,connected_modbus_master;
|
|
topology:buildingPower->controlRodController,power:=120;
|
|
|
|
quality:controlRodController,platform=controlRodController;
|
|
|
|
#Control rod position intended to represent percent of max height
|
|
quality:controlBlade1,motorStatus=ok;
|
|
quality:controlBlade2,motorStatus=ok;
|
|
quality:controlBlade4,motorStatus=ok;
|
|
quality:controlBlade5,motorStatus=ok;
|
|
|
|
quality:controlBlade1,scrammable=true;
|
|
quality:controlBlade2,scrammable=true;
|
|
quality:controlBlade4,scrammable=true;
|
|
quality:controlBlade5,scrammable=false;
|
|
|
|
quality:controlBlade1,actualPosition:=.5;
|
|
quality:controlBlade2,actualPosition:=.5;
|
|
quality:controlBlade5,actualPosition:=1;
|
|
quality:controlBlade4,actualPosition:=.5;
|
|
|
|
quality:controlBlade1,reportedPosition:=.5;
|
|
quality:controlBlade2,reportedPosition:=.5;
|
|
quality:controlBlade5,reportedPosition:=1;
|
|
quality:controlBlade4,reportedPosition:=.5;
|
|
|
|
quality:pulseControlRod,actualPosition:=1;
|
|
quality:pulseControlRod,cylinderPosition:=1;
|
|
quality:pulseControlRod,reportedPosition:=1;
|
|
quality:pulseControlRod,pulsed=false;
|
|
quality:pulseControlRod,scrammable=true;
|
|
|
|
quality:controlBlade1,register=0;
|
|
quality:controlBlade2,register=4;
|
|
quality:controlBlade5,register=16;
|
|
quality:controlBlade4,register=12;
|
|
quality:pulseControlRod,register=8;
|
|
|
|
quality:controlBlade1,platform=controlBlade;
|
|
quality:controlBlade2,platform=controlBlade;
|
|
quality:controlBlade5,platform=controlBlade;
|
|
quality:controlBlade4,platform=controlBlade;
|
|
quality:pulseControlRod,platform=pulseControlRod;
|
|
|
|
#Subcomponent Connections
|
|
topology:controlBlade1->controlRodController,subcomponent;
|
|
topology:controlBlade2->controlRodController,subcomponent;
|
|
topology:controlBlade5->controlRodController,subcomponent;
|
|
topology:controlBlade4->controlRodController,subcomponent;
|
|
topology:pulseControlRod->controlRodController,subcomponent;
|
|
#pressureTankSolenoidValve conncetion is unidirectional
|
|
|
|
#Building Compressed Air
|
|
quality:buildingCompressedAir,status=ok;
|
|
quality:buildingCompressedAir,powerStatus=on;
|
|
quality:buildingCompressedAir,compressor=on;
|
|
quality:buildingCompressedAir,ctValve=open;#Compressor to Tank
|
|
quality:buildingCompressedAir,tankPressure:=80;#psi
|
|
|
|
topology:buildingCompressedAir->pressureTankSolenoidValve,pneumatic_closed;
|
|
topology:buildingPower->buildingCompressedAir,power:=120;
|
|
|
|
quality:buildingCompressedAir,platform=airCompressor;
|
|
|
|
#Pressure Tank Solenoid Valve
|
|
quality:pressureTankSolenoidValve,status=ok;
|
|
quality:pressureTankSolenoidValve,powerStatus=on;
|
|
quality:pressureTankSolenoidValve,tankPressure=80;#psi
|
|
|
|
topology:pressureTankSolenoidValve->controlRodController,connected_modbus_slave;
|
|
topology:pressureTankSolenoidValve->pulseControlRod,pneumatic_closed;
|
|
#buildingCompressedAir conncetion is unidirectional
|
|
|
|
#Power Sensors
|
|
#Power units are in percent max
|
|
#Linear
|
|
quality:linearPowerSensor,status=ok;
|
|
quality:linearPowerSensor,powerStatus=on;
|
|
quality:linearPowerSensor,powerLevel:=0.1;
|
|
|
|
topology:linearPowerSensor->highFluxMonitor,connected_modbus_slave;
|
|
topology:linearPowerSensor->controlSystemRecorder,connected_modbus_slave;
|
|
topology:linearPowerSensor->operator,connected_modbus_slave;
|
|
quality:linearPowerSensor,spoofed=false;
|
|
|
|
topology:reactor<->linearPowerSensor,physical;
|
|
topology:buildingPower->linearPowerSensor,power:=120;
|
|
|
|
quality:linearPowerSensor,platform=powerSensor;
|
|
|
|
#nlog
|
|
quality:nlogPowerSensor,status=ok;
|
|
quality:nlogPowerSensor,powerStatus=on;
|
|
quality:nlogPowerSensor,powerLevel:=0.1;
|
|
|
|
topology:nlogPowerSensor->operator,connected_modbus_slave;
|
|
quality:nlogPowerSensor,spoofed=false;
|
|
topology:nlogPowerSensor->controlRodController,connected_modbus_slave;
|
|
topology:reactor<->nlogPowerSensor,physical;
|
|
topology:buildingPower->nlogPowerSensor,power:=120;
|
|
|
|
quality:nlogPowerSensor,platform=powerSensor;
|
|
|
|
#Pulse
|
|
quality:pulsePowerSensor,status=ok;
|
|
quality:pulsePowerSensor,powerStatus=on;
|
|
quality:pulsePowerSensor,powerLevel:=0.1;
|
|
|
|
topology:pulsePowerSensor->highFluxMonitor,connected_modbus_slave;
|
|
topology:pulsePowerSensor->operator,connected_modbus_slave;
|
|
quality:pulsePowerSensor,spoofed=false;
|
|
topology:reactor<->pulsePowerSensor,physical;
|
|
topology:buildingPower->pulsePowerSensor,power:=120;
|
|
|
|
quality:pulsePowerSensor,platform=powerSensor;
|
|
|
|
#Control System Recorder
|
|
quality:controlSystemRecorder,status=ok;
|
|
quality:controlSystemRecorder,powerStatus=on;
|
|
quality:controlSystemRecorder,dataValid=true;
|
|
|
|
topology:controlSystemRecorder->tempSensor1,connected_modbus_master;
|
|
topology:controlSystemRecorder->tempSensor2,connected_modbus_master;
|
|
topology:controlSystemRecorder->linearPowerSensor,connected_modbus_master;
|
|
topology:buildingPower->controlSystemRecorder,power:=120;
|
|
|
|
quality:controlSystemRecorder,platform=controlSystemRecorder;
|
|
|
|
#Building Evacuation Alarm
|
|
quality:buildingEvacAlarm,status=ok;
|
|
quality:buildingEvacAlarm,powerStatus=on;
|
|
quality:buildingEvacAlarm,activated=false;
|
|
|
|
topology:buildingEvacAlarm->areaMonitoringSystem,connected_modbus_master;
|
|
topology:buildingEvacAlarm->coolingTowerFan,connected_modbus_slave;
|
|
topology:buildingEvacAlarm->operator,connected_modbus_slave;
|
|
quality:buildingEvacAlarm,spoofed=false;
|
|
topology:buildingEvacAlarm->automaticScram,connected_modbus_slave;
|
|
quality:buildingEvacAlarm,spoofed=false;
|
|
topology:buildingPower->buildingEvacAlarm,power:=120;
|
|
|
|
quality:buildingEvacAlarm,platform=evacuationAlarm;
|
|
|
|
#Beam Room Scram Chain
|
|
quality:beamRoomScramChain,status=ok;
|
|
quality:beamRoomScramChain,powerStatus=on;
|
|
quality:beamRoomScramChain,activated=false;
|
|
quality:beamRoomScramChain,accessGate=closed;
|
|
quality:beamRoomScramChain,keysInserted=true;
|
|
|
|
topology:beamRoomScramChain->automaticScram,connected_modbus_slave;
|
|
quality:beamRoomScramChain,spoofed=false;
|
|
topology:buildingPower->beamRoomScramChain,power:=120;
|
|
|
|
quality:beamRoomScramChain,platform=scramInput;#Need to check
|
|
|
|
#High Flux Monitor
|
|
quality:highFluxMonitor,status=ok;
|
|
quality:highFluxMonitor,powerStatus=on;
|
|
quality:highFluxMonitor,alarmActivated=false;
|
|
quality:highFluxMonitor,scramActivated=false;
|
|
|
|
topology:highFluxMonitor->linearPowerSensor,connected_modbus_master;
|
|
topology:highFluxMonitor->pulsePowerSensor,connected_modbus_master;
|
|
topology:highFluxMonitor->automaticScram,connected_modbus_slave;
|
|
quality:highFluxMonitor,spoofed=false;
|
|
topology:buildingPower->highFluxMonitor,power:=120;
|
|
|
|
quality:highFluxMonitor,platform=fluxMonitor;
|
|
|
|
#Period Sensor
|
|
quality:periodSensor,status=ok;
|
|
quality:periodSensor,powerStatus=on;
|
|
quality:periodSensor,output=5;#Period in seconds
|
|
|
|
topology:periodSensor->operator,connected_modbus_slave;
|
|
quality:periodSensor,spoofed=false;
|
|
topology:buildingPower->periodSensor,power:=120;
|
|
|
|
quality:periodSensor,platform=periodSensor;
|
|
|
|
#HV Failure Sensors
|
|
quality:logNHVFailureSensor,status=ok;
|
|
quality:logNHVFailureSensor,powerStatus=on;
|
|
quality:logNHVFailureSensor,activated=false;
|
|
quality:linearHVFailureSensor,status=ok;
|
|
quality:linearHVFailureSensor,powerStatus=on;
|
|
quality:linearHVFailureSensor,activated=false;
|
|
quality:pulseHVFailureSensor,status=ok;
|
|
quality:pulseHVFailureSensor,powerStatus=on;
|
|
quality:pulseHVFailureSensor,activated=false;
|
|
|
|
topology:logNHVFailureSensor->automaticScram,connected_modbus_slave;
|
|
quality:logNHVFailureSensor,spoofed=false;
|
|
topology:linearHVFailureSensor->automaticScram,connected_modbus_slave;
|
|
quality:linearHVFailureSensor,spoofed=false;
|
|
topology:pulseHVFailureSensor->automaticScram,connected_modbus_slave;
|
|
quality:pulseHVFailureSensor,spoofed=false;
|
|
topology:logNHVFailureSensor->nlogPowerSensor,power_monitor;
|
|
topology:linearHVFailureSensor->linearPowerSensor,power_monitor;
|
|
topology:pulseHVFailureSensor->pulsePowerSensor,power_monitor;
|
|
topology:buildingPower->logNHVFailureSensor,power:=120;
|
|
topology:buildingPower->linearHVFailureSensor,power:=120;
|
|
topology:buildingPower->pulseHVFailureSensor,power:=120;
|
|
|
|
quality:logNHVFailureSensor,platform=HVSensor;
|
|
quality:linearHVFailureSensor,platform=HVSensor;
|
|
quality:pulseHVFailureSensor,platform=HVSensor;
|
|
|
|
#Continous Air Monitor
|
|
quality:continuousAirMonitor,status=ok;
|
|
quality:continuousAirMonitor,powerStatus=on;
|
|
quality:continuousAirMonitor,airborneRadiation:=50;#cpm
|
|
quality:continuousAirMonitor,alarmActivated=false;
|
|
|
|
topology:continuousAirMonitor->operator,connected_modbus_slave;
|
|
quality:continuousAirMonitor,spoofed=false;
|
|
topology:continuousAirMonitor->ventilationController,connected_modbus_slave;
|
|
topology:airborneRadiation<->continuousAirMonitor,physical;
|
|
topology:buildingPower->continuousAirMonitor,power:=120;
|
|
|
|
quality:continuousAirMonitor,platform=CAM;
|
|
|
|
#Area Monitoring System
|
|
quality:areaMonitoringSystem,status=ok;
|
|
quality:areaMonitoringSystem,powerStatus=on;
|
|
quality:areaMonitoringSystem,cave_N16_level:=0;#mrem/hr
|
|
quality:areaMonitoringSystem,nBeamRoom_N16_level:=0;
|
|
quality:areaMonitoringSystem,sBeamRoom_N16_level:=0;
|
|
quality:areaMonitoringSystem,sample_N16_level:=0;
|
|
quality:areaMonitoringSystem,bridge_N16_level:=0;
|
|
quality:areaMonitoringSystem,room101_N16_level:=0;
|
|
|
|
topology:areaMonitoringSystem->buildingEvacAlarm,connected_modbus_slave;
|
|
topology:areaMonitoringSystem->coolingTowerFan,connected_modbus_slave;
|
|
topology:areaMonitoringSystem->operator,connected_modbus_slave;
|
|
quality:areaMonitoringSystem,spoofed=false;
|
|
topology:airborneRadiation<->areaMonitoringSystem,physical;
|
|
topology:buildingPower->areaMonitoringSystem,power:=120;
|
|
|
|
quality:areaMonitoringSystem,platform=N16Detector;
|
|
|
|
#Diffuser
|
|
quality:diffuser,status=ok;
|
|
quality:diffuser,powerStatus=on;
|
|
quality:diffuser,pressure=30;#psi
|
|
|
|
topology:diffuser->operator,connected_modbus_slave;
|
|
quality:diffuser,spoofed=false;
|
|
topology:buildingPower->diffuser,power:=120;
|
|
|
|
quality:diffuser,platform=diffuser;
|
|
|
|
#Coolant Level Sensor
|
|
quality:coolantLevelSensor,status=ok;
|
|
quality:coolantLevelSensor,powerStatus=on;
|
|
quality:coolantLevelSensor,level:=0.0;#defining 0 as neutral
|
|
|
|
topology:coolantLevelSensor->operator,connected_modbus_slave;
|
|
quality:coolantLevelSensor,spoofed=false;
|
|
topology:coolant<->coolantLevelSensor,physical;
|
|
topology:buildingPower->coolantLevelSensor,power:=120;
|
|
|
|
quality:coolantLevelSensor,platform=coolantLevelSensor;
|
|
|
|
#Backup power and connections
|
|
quality:backupPower,status=ok;
|
|
quality:backupPower,powerStatus=on;
|
|
quality:backupPower,chargeLevel:=1;#percent, 1 down to 0
|
|
|
|
#Only provides power when main power is off
|
|
topology:backupPower->buildingEvacAlarm,power:=0.0;
|
|
topology:backupPower->continuousAirMonitor,power:=0.0;
|
|
topology:backupPower->areaMonitoringSystem,power:=0.0;
|
|
topology:backupPower->coolantLevelSensor,power:=0.0;
|
|
topology:backupPower->seismicSensor1,power:=0.0;
|
|
topology:backupPower->nlogPowerSensor,power:=0.0;
|
|
topology:backupPower->linearPowerSensor,power:=0.0;
|
|
topology:backupPower->pulsePowerSensor,power:=0.0;
|
|
topology:buildingPower->backupPower,power:=120;#needs to charge
|
|
|
|
quality:backupPower,platform=backupPower;
|
|
|
|
#Bridge
|
|
quality:bridge,status=ok;
|
|
quality:bridge,powerStatus=on;
|
|
quality:bridge,actualPosition:=7.0;
|
|
quality:bridge,reportedPosition:=7.0;
|
|
|
|
topology:bridge->operator,connected_modbus_slave;
|
|
quality:bridge,spoofed=false;
|
|
topology:buildingPower->backupPower,power:=120;#needs power to move
|
|
|
|
quality:bridge,platform=bridge;
|
|
|
|
|
|
#Water Puritfication Systems
|
|
|
|
#Water Makeup Pump
|
|
quality:waterMakeupPump,status=ok;
|
|
quality:waterMakeupPump,powerStatus=on;
|
|
quality:waterMakeupPump,pumpStatus=off;
|
|
|
|
topology:coolant<->waterMakeupPump,physical;
|
|
topology:buildingPower->waterMakeupPump,power:=120;
|
|
#poolTotalizer connection is unidirectional
|
|
|
|
quality:waterMakeupPump,platform=pump;
|
|
|
|
#Purification Recirculation Pump
|
|
quality:purificationRecirculationPump,status=ok;
|
|
quality:purificationRecirculationPump,powerStatus=on;
|
|
quality:purificationRecirculationPump,pumpStatus=on;
|
|
|
|
topology:coolant<->purificationRecirculationPump,physical;
|
|
topology:buildingPower->purificationRecirculationPump,power:=120;
|
|
|
|
quality:purificationRecirculationPump,platform=pump;
|
|
|
|
#Flowmeter
|
|
quality:flowmeter,status=ok;
|
|
quality:flowmeter,powerStatus=on;
|
|
quality:flowmeter,flowRate:=10;#gpm
|
|
|
|
topology:coolant<->flowmeter,physical;
|
|
topology:buildingPower->flowmeter,power:=120;
|
|
|
|
quality:flowmeter,platform=flowmeter;
|
|
|
|
#Conductivity Cells 1 and 2
|
|
quality:conductivityCell1,status=ok;
|
|
quality:conductivityCell1,powerStatus=on;
|
|
quality:conductivityCell1,conductivity:=0.4;#in micromhos/cm
|
|
quality:conductivityCell2,status=ok;
|
|
quality:conductivityCell2,powerStatus=on;
|
|
quality:conductivityCell2,resistance:=0.1;#in MOhms
|
|
|
|
topology:conductivityCell1->operator,connected_modbus_slave;
|
|
quality:conductivityCell1,spoofed=false;
|
|
topology:conductivityCell2->operator,connected_modbus_slave;
|
|
quality:conductivityCell2,spoofed=false;
|
|
topology:coolant<->conductivityCell1,physical;
|
|
topology:coolant<->conductivityCell2,physical;
|
|
topology:buildingPower->conductivityCell1,power:=120;
|
|
topology:buildingPower->conductivityCell2,power:=120;
|
|
|
|
quality:conductivityCell1,platform=conductivitySensor;
|
|
quality:conductivityCell2,platform=conductivitySensor;
|
|
|
|
#Ion Exchanger (no power)
|
|
quality:ionExchanger,status=ok;
|
|
|
|
topology:coolant<->ionExchanger,physical;
|
|
|
|
quality:ionExchanger,platform=ionExchanger;
|
|
|
|
#Pool Totalizer (no power)
|
|
quality:poolTotalizer,status=ok;
|
|
|
|
topology:poolTotalizer<->waterMakeupPump,physical_switch;
|
|
topology:coolant<->poolTotalizer,physical;
|
|
|
|
quality:poolTotalizer,platform=totalizer;
|
|
|
|
|
|
|
|
#Heat Exchange System
|
|
|
|
#Coolant Temperature Sensor
|
|
quality:coolantTempSensor,status=ok;
|
|
quality:coolantTempSensor,powerStatus=on;
|
|
quality:coolantTempSensor,temp:=35;
|
|
|
|
topology:coolantTempSensor->operator,connected_modbus_slave;
|
|
quality:coolantTempSensor,spoofed=false;
|
|
topology:coolant<->coolantTempSensor,physical;
|
|
topology:buildingPower->coolantTempSensor,power:=120;
|
|
|
|
quality:coolantTempSensor,platform=coolantTempSensor;
|
|
|
|
#Heat Exchange Pumps
|
|
quality:heatExchangePump1,status=ok;
|
|
quality:heatExchangePump1,powerStatus=on;
|
|
quality:heatExchangePump1,pressureIn:=1.2;#psi
|
|
quality:heatExchangePump1,pressureOut:=1;
|
|
|
|
quality:heatExchangePump2,status=ok;
|
|
quality:heatExchangePump2,powerStatus=on;
|
|
quality:heatExchangePump2,pressureIn:=21.1;#psi
|
|
quality:heatExchangePump2,pressureOut:=3.7;
|
|
|
|
topology:heatExchangePump1->operator,connected_modbus_slave;
|
|
quality:heatExchangePump1,spoofed=false;
|
|
topology:heatExchangePump2->operator,connected_modbus_slave;
|
|
quality:heatExchangePump2,spoofed=false;
|
|
topology:coolant<->heatExchangePump1,physical;
|
|
topology:coolant<->heatExchangePump2,physical;
|
|
topology:buildingPower->heatExchangePump1,power:=120;
|
|
topology:buildingPower->heatExchangePump2,power:=120;
|
|
|
|
quality:heatExchangePump1,platform=pump;
|
|
quality:heatExchangePump2,platform=pump;
|
|
|
|
#Conductivity Cell 3
|
|
quality:conductivityCell3,status=ok;
|
|
quality:conductivityCell3,powerStatus=on;
|
|
quality:conductivityCell3,conductivity:=.75;#in micromhos/cm
|
|
|
|
topology:conductivityCell3->operator,connected_modbus_slave;
|
|
quality:conductivityCell3,spoofed=false;
|
|
topology:coolant<->conductivityCell3,physical;
|
|
topology:buildingPower->conductivityCell3,power:=120;
|
|
|
|
quality:conductivityCell3,platform=conductivitySensor;
|
|
|
|
#Tower Totalizer (no power)
|
|
quality:towerTotalizer,status=ok;
|
|
|
|
topology:coolant<->towerTotalizer,physical;
|
|
|
|
quality:towerTotalizer,platform=totalizer;
|
|
|
|
#Cooling Tower Fan
|
|
quality:coolingTowerFan,status=ok;
|
|
quality:coolingTowerFan,powerStatus=on;
|
|
quality:coolingTowerFan,fan=on;
|
|
quality:coolingTowerFan,secondaryCoolantTemp:=25;
|
|
|
|
topology:coolingTowerFan->buildingEvacAlarm,connected_modbus_master;
|
|
topology:coolingTowerFan->areaMonitoringSystem,connected_modbus_master;
|
|
topology:buildingPower->coolingTowerFan,power:=120;
|
|
|
|
quality:coolingTowerFan,platform=fan;
|
|
|
|
#Ventilation System
|
|
|
|
#Ventilaton Controller
|
|
quality:ventilationController,status=ok;
|
|
quality:ventilationController,powerStatus=on;
|
|
quality:ventilationController,mode=normal;
|
|
|
|
topology:ventilationController->ventilationIntakeFan,connected_modbus_master;
|
|
topology:ventilationController->ventilationOuttakeFan,connected_modbus_master;
|
|
topology:ventilationController->ventilationDiluteFan,connected_modbus_master;
|
|
topology:ventilationController->continuousAirMonitor,connected_modbus_master;
|
|
topology:ventilationController->ventilationDampers,connected_modbus_master;
|
|
topology:ventilationController->operator,connected_modbus_slave;
|
|
quality:ventilationController,spoofed=false;
|
|
topology:buildingPower->ventilationController,power:=120;
|
|
|
|
quality:ventilationController,platform=ventilationController;
|
|
|
|
#Intake Fan
|
|
quality:ventilationIntakeFan,status=ok;
|
|
quality:ventilationIntakeFan,powerStatus=on;
|
|
quality:ventilationIntakeFan,fan=on;
|
|
|
|
topology:ventilationIntakeFan->ventilationController,connected_modbus_slave;
|
|
topology:buildingPower->ventilationIntakeFan,power:=120;
|
|
|
|
quality:ventilationIntakeFan,platform=fan;
|
|
|
|
#Outtake Fan
|
|
quality:ventilationOuttakeFan,status=ok;
|
|
quality:ventilationOuttakeFan,powerStatus=on;
|
|
quality:ventilationOuttakeFan,fan=on;
|
|
|
|
topology:ventilationOuttakeFan->ventilationController,connected_modbus_slave;
|
|
topology:buildingPower->ventilationOuttakeFan,power:=120;
|
|
|
|
quality:ventilationOuttakeFan,platform=fan;
|
|
|
|
#Ventilation Air Detector
|
|
quality:ventilationAirDetector,status=ok;
|
|
quality:ventilationAirDetector,powerStatus=on;
|
|
quality:ventilationAirDetector,Ar41_level:=9.9;#cpm
|
|
quality:ventilationAirDetector,alarmActivated=false;
|
|
|
|
topology:ventilationAirDetector->operator,connected_modbus_slave;
|
|
quality:ventilationAirDetector,spoofed=false;
|
|
topology:buildingPower->ventilationAirDetector,power:=120;
|
|
topology:airborneRadiation<->ventilationAirDetector,physical;
|
|
|
|
quality:ventilationAirDetector,platform=Ar41Detector;
|
|
|
|
#Ventilation Dampers
|
|
quality:ventilationDampers,status=ok;
|
|
quality:ventilationDampers,powerStatus=on;
|
|
quality:ventilationDampers,dampers=open;
|
|
|
|
topology:ventilationDampers->ventilationController,connected_modbus_slave;
|
|
topology:buildingPower->ventilationDampers,power:=120;
|
|
|
|
quality:ventilationDampers,platform=dampers;
|
|
|
|
|
|
#Ventilation Dilute Fan
|
|
quality:ventilationDiluteFan,status=ok;
|
|
quality:ventilationDiluteFan,powerStatus=on;
|
|
quality:ventilationDiluteFan,fan=off;
|
|
|
|
topology:ventilationDiluteFan->ventilationController,connected_modbus_slave;
|
|
topology:buildingPower->ventilationDiluteFan,power:=120;
|
|
|
|
quality:ventilationDiluteFan,platform=fan;
|
|
|
|
|
|
#Physical qualites
|
|
#This is probably bad practice, reusing these names
|
|
quality:reactor,fuelTemp:=50;
|
|
quality:reactor,reactorPower:=0.1;
|
|
quality:coolant,coolantLevel:=0.0;
|
|
quality:coolant,coolantTemp:=35;
|
|
quality:airborneRadiation,cave_N16_level:=0;#mrem/hr appears to be the appropriate measurement.
|
|
quality:airborneRadiation,nBeamRoom_N16_level:=0;
|
|
quality:airborneRadiation,sBeamRoom_N16_level:=0;
|
|
quality:airborneRadiation,sample_N16_level:=0;
|
|
quality:airborneRadiation,bridge_N16_level:=0;
|
|
quality:airborneRadiation,room101_N16_level:=0;
|
|
quality:airborneRadiation,Ar41_level:=0;
|
|
quality:airborneRadiation,airborneRadiationLevel:=50;#cpm
|
|
quality:buildingPower,buildingPower=on;
|
|
quality:seismicActivity,seismicActivity:=0.003;
|
|
|
|
#Physical items are of the "physical" platform for now.
|
|
quality:reactor,platform=physical;
|
|
quality:coolant,platform=physical;
|
|
quality:airborneRadiation,platform=physical;
|
|
quality:buildingPower,platform=physical;
|
|
quality:seismicActivity,platform=physical;
|
|
tags:
|
|
.
|