Skip to content

Reactor PLC

Mikayla edited this page Mar 3, 2023 · 22 revisions

Reactor Programmable Logic Controller

Unlike the RTUs, this device both provides an interface to a peripheral (the reactor) to the supervisor, but also takes actions on its own. This application offers:

  • The Reactor Protection System (RPS)
  • Communications interface with the supervisor for manual and automatic control and reporting of build and status information
  • Burn rate setpoint ramping
  • Crash-resilient "threaded" application

Standalone vs Networked Mode

Unlike every other application, the reactor PLC can be valuable by itself. While in standalone (non-networked) mode, the RPS can still function as a safety system without having a full facility set up. To do this, instead of continuously holding the reactor in SCRAM on a safety problem, the RPS SCRAMs the reactor ONCE, then resets the RPS. The user is now able to use the start button in the reactor's GUI (Mekanism) unlike in networked mode where the supervisor has to send the RESET RPS command.

In standalone mode, the system will also boot successfully (not in a degraded state) if the wireless modem is not present.

Reactor Protection System

The RPS checks for unsafe conditions and then SCRAMs the reactor if those conditions are met. Even if someone tries to re-enable the reactor through the Mekanism interface, it will re-SCRAM the reactor until it is RESET (unless it is in manual mode).

RPS SCRAM Conditions

  • Critical/High Reactor Damage
  • High Core Temperature
  • Low Coolant
  • Excess Waste
  • Excess Heated Coolant
  • No Fuel
  • PPM Fault
  • Supervisor Connection Timeout (if in networked mode)
  • Manual SCRAM via Supervisor (if in networked mode)
  • Automatic SCRAM via Supervisor (if in networked mode)
  • PLC System Failure (reactor not formed)
  • Force Disabled (reactor force disabled by Mekanism itself due to having "melted down" on a server with meltdowns disabled)

Critical/high damage is defined in scada-common/constants.lua as 90% damage.

High core temperature is defined in scada-common/constants.lua as 1200K.

Low coolant (Coolant Level Low Low on annuncaitor) is defined in scada-common/constants.lua as <10% coolant fill.

Excess waste is defined in scada-common/constants.lua as > 95% waste fill.

Clone this wiki locally