Web based tool to automatically generate logic flow diagrams for Foxboro I/A series DCS based on configuration files dumped from the ICC.
Warning
This app is entirely experimental and an early work in progress, designed for one specific control system and may need to be adapted for others.
-
packages/appis the main web application built on Quart, broken up into blueprints and extensions detailed in sections below. -
packages/foxdataencapsulates the data side of the application, i.e. data models and parsing. -
packages/pyd3graphvizserves distribution files from the d3-graphviz Node package. -
packages/pyfastmurmur3is a thin wrapper around the Rust crate fastmurmur3, used for fast non-cryptographic string hashing. -
packages/pyhtmxserves distribution files from the HTMX Node package and provides helper functionality for using HTMX with Python. -
packages/utilcontains various helper functions and utilities not specific to the project.
-
blockshas the block detail/diagram views and graphing logic. -
mainhas the main page templates, navigation, error handling, etc. -
searchhas the block search view for querying and filtering blocks from the data source.
-
D3Graphvizintegratespyd3graphvizto serve static files from the Node package. -
FoxDataintegratesfoxdatafor initialising and querying data from the context of a Quart app. -
Htmxintegratespyhtmxto serve static files from the Node package and inserts HTMX related functionality into the QuartRequestandResponseobjects.
Important
Docker is required and the directory containing your ICC configuration files must be accessible locally.
- Build the
icc_dumpsvolume by runningscripts/build_volume.batwith the path to the directory containing your ICC configuration files as an argument, i.e../scripts/build_volume ../icc_dumps - Start the server using
docker-compose up - Access the application in the browser at
127.0.0.1:5000