This is a Python implementation of the ROC industrial communications protocol and a virtual outstation framwork utilising that protocol. This was created to aid in testing of SCADA masters and ownership of the software resides with my employer. As such, source for the protocol and outstation implementation is not publicly available.
In addition to a generic implementation of a virtual outstation communicating via the ROC protocol, the software can be configured to match a range of real-world FloBoss/ROC outstations. The inputs and outputs can be configured to read from/write to virtual IO, such as having inputs supplying system information or replaying recorded inputs from a real outstation, or to read from and control actual system IO, such as the GPIO pins on a Raspberry Pi.