#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.
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)
Should work on any platform, tested on:
- Windows (XP, 7, 8.1)
- Linux (Debian, Ubuntu, Raspbian)
- Os X (El capitan tested)
- TESTS.md can be considered as a short tutorial.
- Serial port usage example: https://github.com/ceremcem/aktos-dcs-pyserial-example
- aktos-dcs-lib: https://github.com/ceremcem/aktos-dcs-lib
- aktos-scada as the SCADA and HMI infrastructure: https://github.com/ceremcem/aktos-scada
- Qt desktop application: https://github.com/ceremcem/weighing-machine-testing
- Java: https://github.com/Canburakt/aktos-dcs-java
- Node.js (in LiveScript): https://github.com/ceremcem/aktos-website/tree/master/app/modules/aktos-dcs
- C#: https://github.com/ceremcem/aktos-dcs-cs
- https://github.com/ceremcem/aktos-dcs-tools : for easy remote development
- https://github.com/ceremcem/link-with-server : for easy proxy connection of iot devices
- https://github.com/ceremcem/aktos-dcs-lib: library for automation projects
- https://github.com/ceremcem/aktos-scada: Web based SCADA system which is live at https://aktos-elektronik.com
Compilations may take around 3 minutes.
- install Python 2.7.x
- install http://aka.ms/vcpython27
- clone or download aktos-dcs
- run (double click on) "
aktos-dcs\
install-on-windows.cmd
- clone or download aktos-dcs
$ cd aktos-dcs && sudo
./install-on-linux.sh
- Requires homebrew if it's not installed already.
- clone or download aktos-dcs
$ cd aktos-dcs &&
./install-on-osx.sh
See: Developer Guide
- Crossbar.io: https://github.com/crossbario
BSD License.
A.K.T.O.S. Electronics, the Open Source Telemetry and Automation Systems company, Turkey