Skip to content

Hardella: IDE for Programmable Logic Controllers (ST 61131 & Co)

License

Notifications You must be signed in to change notification settings

Hardella/ide61131

Repository files navigation

Build Status

Hardella IDE logo        Flattr this

Hardella: IDE for PLC

About

Hardella is an IDE for programmable logic controllers (PLC). The main aim is to provide reasonable ST (61131-3) support (autocomplete, refactoring, etc). The IDE is based on JetBrains MPS and mbeddr.

Download

Just grab the latest version here: https://github.com/vlsi/ide61131/releases/latest

To update previous version, you can download "update...zip". For instance, Hardella-update-from-143-win.zip would update 143 or newer to the relevant release version.

Support, forum

Hardella's user forum is hosted at google groups: https://groups.google.com/forum/#!forum/hardella-forum If you have questions, please feel free to post a message or file an issue

Usage

In order to run Hardella, Java 1.8+ is required. Grab one here: https://www.java.com/en/download

Donate

Hardella is a free product. You can use it as you wish, hover if you like, please consider donating some money to support the project. Here are the ways you can donate money:

Flattr: Flattr this

Yandex.money: http://yasobe.ru/na/hardellaide or https://money.yandex.ru/to/410013031807962

Paypal: https://www.paypal.me/VladimirSitnikov

Videos

Samples

Autocomplete menu

autocomplete

Diagram editor

diagram editor

Sample ST program

sample ST program

PROGRAM PLC_PRG
  variables:
    input in : BOOL;
    output v1 : BOOL;
    input v2 : BOOL;
    superStruct : ARRAY[1..8#34] OF BOOL;
    tik : TON;
    ton : F_TRIG;
    a : WORD;
    q : COMPLEX;

  body:
    IF TON(IN := a.4, PT := T#4s).Q THEN
      v1 := TRUE + BYTE_TO_BOOL(2);
      v1 := TRUE;
      v1 := TRUE;
    END_IF;

    superStruct;
END_PROGRAM

License

This IDE is distributed under terms of MIT license.

Development

  1. Download Hardella sources (e.g. git clone https://github.com/Hardella/ide61131.git)
  2. Download dependencies: ./gradlew downloadDependencies
  3. Download MPS 2018.2.+ (see https://www.jetbrains.com/mps/download/ )
  4. Open ide61131 project in MPS

Changelog

Next:

  • MPS updated to 2018.2.5

v1.7.2: 16 June 2017

  • Fixed: variable initializers are executed in PRU programs

v1.7.1: 6 May 2017

  • Fixed: compilation errors when project is stored in a path with spaces
  • Fixed: remove unused variables in generated PruMemoryTransfer program
  • Fixed: added a compilation error when FAST_INPUTS is used in PRU1 program (only PRU0 programs can access fast inputs for now)
  • Fixed: PRU_ABZ_ENCODER.initialOffset was renamed to positionOfLastZ
  • Fixed: support for VAR_IN_OUT (for PRU and for CoDeSys)
  • Fixed: PRU1 programs (init, memory read/write) will not run if PRU0 init was skipped

v1.7.0: 20 March 2017

  • Fixed: PRU-host communication (it was broken in 1.6.2)
  • Fixed: PDM_DW output was inversed
  • New feature: PRU cycle statistics (duration of the PRU program, and duration of PRU cycle)
  • New feature: comments after IF, ELSIF, etc

v1.6.2: 24 January 2017

  • Case-insensitive mode for autocomplete
  • Removed extra braces from NOT expressions
  • PRU: MemoryTransfer programs was split into MemoryRead and MemoryWrite
  • PRU: pruAccessLib.lib is no longer required

v1.6.1: 25 December 2016

  • Arguments are no longer red when replacing one FB call with another (e.g. TON(...) -> TOF(...))
  • Implemented automatic updates, so updates will be small and fast

v1.6.0: 19 December 2016

  • Both PRU cores can now be programmed. You can freely control 4 fast outputs and 2 fast inputs
  • Standard library is improved. For instance, there's a block for step motor control, a block for ABZ encoder, and several others
  • hardella.com has been launched
  • EXIT statement was added, so you can break loops early
  • Autocomplete menu now includes variable comments

v1.5.0: 27 October 2016

  • Support for TI AM1808 PRU code generation

v1.4.0: 12 June 2016

v1.3.0: 30 April 2016

v1.2.0: 15 February 2016

  • Simple CFC editor

v1.1.0: 14 February 2016

  • Array, struct, enum: typesystem, initializers
  • pointers: ADR, ^ dereference

v1.0.0

  • Proof of concept release

Author

Vladimir Sitnikov sitnikov.vladimir@gmail.com