Automation studio 5.0 full
- Automation studio 5.0 full update#
- Automation studio 5.0 full software#
- Automation studio 5.0 full code#
Some components can handle multiple PVs such as the graph or single PVs such as text inputs. These components have been integrated with a data connection layer which handles, input and output, meta-data for labels, limits, precision, alarm sensitivity and initialization from the pvServer. We have integrated selected components from the Material-UI React component framework and the React-vis graphing framework with our system to create user interfaces with the same features that we use in our current CS-Studio operator interfaces.
The UI interfaces that we have created are highly responsive and offer a real-time experience as is shown in the example of a mobile view in in Fig. React was chosen to develop the frontend for the PWA as it enables us to develop the frontend in a single language, i.e JavaScript as opposed to conventional web development in HTML, JavaScript and CSS. Similarly for writes to an EPICS variable, depending on the access rights, the client is either granted or denied permission to write to the variable. The only difference between the read-only and read-write rooms is that the write-access field of the meta-data has been changed to read-only based on the access rights and that for a read-write room the write access field is inherited from security rights defined by the EPICS IOC or gateway.
Automation studio 5.0 full update#
This allows efficient asynchronous update of each listening component when the pvServer emits the PVs event update. In the data connection layer of the clients components, an event listener that is tied to the PV name is registered on the Socket-IO connection for each instantiation of the component. EPICS CA to the required process variables are established and the PyEpics PV is stored in a list, the connection and value change call backs of the PyEpics CA are used to emit meta-data, connection status and value changes to the read-only and read-write rooms. Depending if authentication is enabled the client will first be authenticated, thereafter the data connection wrapper will emit Socket-IO events to the pvServer requesting access to the EPICS variable.ĭepending on the clients access rights, access is either denied or the socket connection is placed in a Socket-IO room with read-only or read-write privileges but with same name as PV. The client initially makes a Socket-IO connection to the pvServer. It is layered on the Flask and Flask-Socket-IO web application frameworks to serve the EPICS process variables to clients.Ĭommunication between clients and the pvServer occurs between the data connection wrapper in the client components and the pvServer as follows: This is the python process variable server. The microservices that form part of React Automation StudioĪn overview of the system components are give below: 1 and an overview of the system components are give below:įig 1. The microservices that form part of React Automation Studio are shown in Fig. These containerised environments allows for precise versioning of packages used and prevents deployment dependency issues. Separate Docker commands exist to load the development and production version. If you wish to create a standalone AlarmHandler project you should clone this project:Įach of the Docker containers are deployed as micro services and environment variables can be configured to deploy the system on different ports, or to enable user authentication and authorisation or to serve the application on a unique URL or on the localhost.
Automation studio 5.0 full code#
If you wish to customize the project and create user interfaces for your EPICS control system then you should clone the boiler plate repository at which pulls in this code base as a Git submodule: Contributors can also add components and add in features. The repository can be checked out and the demos can be explored.
This repository is the master repository which contains the code base and demos for each the component and interactive UI's that depend on the demo IOC micro service. The system has been containerized with Docker and version controlled as a mono-repository using Git.
Automation studio 5.0 full software#
React Automation Studio is a new software platform to enable the control of large scientific equipment through EPICS.