项目作者: hutcheb

项目描述 :
Industrial SCADA Based on Kafka
高级语言: JavaScript
项目地址: git://github.com/hutcheb/ckSCADA.git
创建时间: 2020-06-23T10:50:48Z
项目社区:https://github.com/hutcheb/ckSCADA

开源协议:Apache License 2.0

下载


Introduction

ckSCADA is an open source SCADA system built using Kafka.

https://ckscada.readthedocs.io/

The primary aim is to be an open source alternate to proprietry SCADA systems.

Using Kafka allows the system to be easily extended using third party
components. Kafka is a very well supported framework for messaging between
components. The system is able to be scaled easily with the addition of additional
Kafka brokers.

Roadmap

The system is currently in the very early stage of development and is not suitable
for production use.

  • v0.1

    1. * Basic framework has been setup and proof of concept implemented.

Future Release Milestones

  • v0.2

    1. * Add exception handling to server code
    2. * Document server code
    3. * Fix issues around server redundancy
    4. * Add additional devices including server metric tags
    5. * Discuss Python implementation for server components
  • v0.3

    1. * Investigate PLC4X project to use for PLC communication.

Server Installation

To install the server components.

Firstly make sure your Kafka broker/cluster has been setup already. There are
plenty of tutorials on how to setup a Kafka cluster such as this one:-

https://kafka.apache.org/quickstart

Working under the assumption that your machine is connected to the internet.

Windows Installation

For Windows you will need to install node.js manually:-

https://nodejs.org/en/download/

Install Python 3

https://www.python.org/downloads/

make sure that python is included in your path.

Following this, download the ckscada package and download the npm/python packages.

  1. make.bat

Linux Installation

For Debian/Ubuntu use apt to install dependancies

  1. sudo apt install npm python3

Following this, download the ckscada package and download the npm/python packages.

  1. cd ckSCADA
  2. make

Edit the config.json file in the config folders.
Include the nodeId, ip address and the port of one of your Kafka brokers.

We will next run the server components, opening a new terminal between each set of commands:-

  1. cd ckscada-server/server/src
  2. python3 ckagent.py --config ../../config/config.json
  3. cd ckscada-server/admin-server/src
  4. python3 ckadminserver.py --config ../../config/config.json
  5. cd ckscada-server/admin-client
  6. npm start .

There is a helper script to setup a few tags on a simulation device and start
publishing them, the sample page on the client uses these.

  1. cd ckscada-server/server/src
  2. ./simulate_plant.sh

Client Installation

Viewer Only

To install the viewer download the Node.js package from nodejs.org for your
operating system.

Windows Installation

Install node.js manually:-

https://nodejs.org/en/download/

Following this, download the ckscada package, npm packages and
remove the folders that aren’t needed.

  1. del ckscada-server
  2. cd ckscada-client
  3. npm install .

Linux Installation

For Debian/Ubuntu use apt to install it

  1. sudo apt install npm

Following this, download the ckscada package and build the npm packages.

  1. rm -r cksacda-server
  2. cd ckscada-client
  3. npm install .

Edit the config.json file in the config folder.
Include the nodeId, ip address and the port of one of your Kafka brokers.

Assuming you have already setup your server you should then be able to run the viewer.

  1. cd ckscada-client
  2. npm start

This will open the welcome.svg screen and then open the Sample-Screen.svg file.
This is just an example page using built-in tags from the standard server install.
For production you will need to create your own HMI pages.