Skip to content

risyasin/aktos-dcs

 
 

Repository files navigation

#Python bindings for Distributed Control System Library

aktos_dcs is designed for creating fault tolerant, realtime, massively concurrent, distributed (even behind firewalls), io-bound (eg. heavy-traffic web server), scalable (both vertically and horizontally), cross-platform and language agnostic applications.

This library is developed for distributed automation projects in mind. Any PLC or motion controller related work (including HMI and SCADA) can be performed easily. Simulation of a real component of the target system becomes a trivial work to do. Graphical User Interface can be built by using desktop and mobile frameworks (Qt, GTK, ...) or by web technologies (HTML5, Javascript, CSS, ...).

Message transport layer is built on top of ZeroMQ library, which has Python, Java, Node.js, C, C++ , C# and many other bindings. This means, any number of these languages can be used together to build a single project. Developers can work with their favourite language.

Gevent based actor model (inspired from Erlang) is used for concurrency. This means, concurrency comes for free. Since there are no real threads or subprocesses, debugging is easy. N-to-N connections are managed out of the box, so there is no single point of failure exists.

Distributed coding

Actors can be run concurrently

  • in the same process
  • in the same machine (can take advantage of multiple CPU cores)
  • distributed in Local Area Network
  • distributed across networks and connected via proxies/tunnels (eg. ssh tunnel)

Platforms

Should work on any platform, tested on:

  • Windows (XP, 7, 8.1)
  • Linux (Debian, Ubuntu, Raspbian)
  • Os X (El capitan tested)

Examples

  1. TESTS.md can be considered as a short tutorial.
  2. Serial port usage example: https://github.com/ceremcem/aktos-dcs-pyserial-example
  3. aktos-dcs-lib: https://github.com/ceremcem/aktos-dcs-lib
  4. aktos-scada as the SCADA and HMI infrastructure: https://github.com/ceremcem/aktos-scada

Other Implementations

  1. Java: https://github.com/Canburakt/aktos-dcs-java
  2. Node.js (in LiveScript): https://github.com/ceremcem/aktos-website/tree/master/app/modules/aktos-dcs

Recommended Tools and Libraries

Install

Compilations may take around 3 minutes.

Windows:

Linux:

Os X - El Capitan:

Guides for further implementations

See: Developer Guide

Similar Projects

License

BSD License.

Contact and Support

A.K.T.O.S. Electronics, the Open Source Telemetry and Automation Systems company, Turkey

info@aktos-elektronik.com

https://aktos-elektronik.com

About

Distributed Control System Library for Python

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 93.2%
  • Shell 6.4%
  • Batchfile 0.4%