Coder Social home page Coder Social logo

openplc's Introduction

Logo

Introduction

What is OpenPLC?

OpenPLC is an open source Programmable Logic Controller(PLC). Our hardware/s are functionally PLCs that can be programmed using Ladder Logic diagram (LD), as well as Function Block diagram (FBD). We have designed the systems for academic purpose and to enable effective learning of programming PLCs. For this reason, we are also providing a set of modules that supplement the PLCs, which can be used to perform experiments like simple traffic light, elevator, conveyor belt etc.

Our story

Few years ago we came across the need for an affordable and functional PLC for educational purposes. Every year, a large number of students in our colleges are undergoing training in PLCs without proper hands-on experience. The sky-high cost of the setup is a reason, also is the high maintenance because of being used by students. Vendor specific tools and work-flow, which are often complex, is another hindrance.

Our solutions

Hardware

OpenPLC consists of two versions

  • OpenPLC Version 1 : Hardware based on AVR's ATmega16A and programmed using LD
  • OpenPLC Version 2 : Hardware based on Raspberry Pi and programmed using FBD

As mentioned earlier, we are also providing a set of plug-and-play modules for practising a range of experiments. The current ones are

  • Elevator/Conveyor belt : Consists of a timing bet, a motor and a motor driver that can be controlled.
  • Temperature Sensing and control.
  • Switches : an array of normally-open, normally-closed and latch switches.
  • Simple traffic light.

Software

The two versions of PLCs uses two different software for programming.

  • LDMicro : A simple and intuitive LD programming IDE, used for programming OpenPLC Version 1. It is a forked and locally maintained version of Jonathan Westhues software.
  • 4diac : A system, used for OpenPLC version 2, that consists of an IDE and a runtime environment for FBD programming and deployment. At present we directly use the Eclipse 4diac project with the Raspberry Pi work-flow.

Note : Detailed documentation regarding each of the above are present in the respective directories.


Community and contributing

OpenPLC is developed by FOSSEE and by users like you. We welcome both pull requests and issues on GitHub. How to and guides pertaining to both software and hardware can be found in the respective directories.

Forking and cloning

The repository consists of a few git submodules. To clone them along with this repo use the following command.

git clone --recurse-submodules -j8 https://github.com/VishnuEaswaran/OpenPLC.git


Directory Structure

  .
  ├── OpenPLC_modules     # OpenPLC modules resources including designs
  ├── OpenPLC_version_1   # OpenPLC version 1 resources including designs
  ├── OpenPLC_version_2   # OpenPLC version 2 resources including designs
  ├── LICENSE             # license
  └── README.md           # this readme

The OpenPLC setup is shown below:

OpenPLC Version 2


Licence

OpenPLC is released under the MIT license. Some part of the software are released under other licences specified.

openplc's People

Contributors

vishnueaswaran avatar rtniveditait avatar akshay-c avatar shaunakm avatar akshaim avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.