Benutzer-Werkzeuge

Webseiten-Werkzeuge


freesigs:start

Dies ist eine alte Version des Dokuments!


Free Signals

Overview

Free Signals is a power logic control (PLC) in the works. It has some unique features:

  • First of all, Freesigs is distributed under the Eclipse Public License, that means it is freely available. No dongles, no licence fees. Neither for the runtime, nor for the development tool. – Open source for automation developers.
  • Freesigs PLC user programs are written in Lua. This is a powerful and easy to use scripting language. No more awkward Structured Text or Ladder Diagrams!
    Whats more, by using a scripting language, there is no intermediate compile cycle. You can try out your code directly.
  • Freesigs doesn't need a development environment. In fact, your web browser is the IDE. This works on every computer and operation system. No need to install anything. All you need is a network connection.
  • Freesigs works event based. Even though it is possible to write traditional cyclic code, it is not recommended . Events are more flexible and effective to work with, and are more CPU friendly. See the examples below.
  • Freesigs is extensible. To cope with the multitude of different fieldbusses around, the application is split into a core process and one or more IO processes (connectors). To add support for a certain fieldbus, just the IO connector needs to be written. It is not necessary to modify the core. Currently Modbus/TCP is implemented.

Requriements - What do I need?

Hardware

  • Any Computer designed to run 24/7, e.g. a SheevaPlug
  • At least one fieldbus coupler (bus controller). The Wago 750-341, 750-342 and the B&R BC 0087 are known to work.

Software

  • A unix-like operating system, e.g. Slackware. For the SheevaPlug I recommend ARMedslack.
  • C-Compiler (GCC) and Glib
  • Optionally Google Go for some test and development utilities and probably for the web interface (later)

Current State / Download

Freesigs is still a young project. The Modbus IO connector is completed. The core system is currently in the works. Code is available at Bitbucket.

Code Examples

A latching relay in Freesigs / Lua

-- A latching relay (impulse relay, Stromstoßschalter) with 2 inputs
 
-- Function to control the relay output:
function ctrl_latch_relay()
    -- just invert output:
    if bc1.do[1].value() then -- returns true or false
        bc1.do[1].set(false)
    else
        bc1.do[1].set(true)
    end
end
 
-- Register the function to be called when the digital input #1 of IO device (bus controller) "bc1" rises:
bc1.di[1].on_true(ctrl_latch_relay)
 
-- Register the function to be called when the digital input #2 of IO device (bus controller) "bc1" rises:
bc1.di[2].on_true(ctrl_latch_relay)

The same, but shorter

bc1.di[1].on_true(
    function() bc1.do[1].set(not bc1.do[1].value()) end
)
 
bc1.di[2].on_true(
    function() bc1.do[1].set(not bc1.do[1].value()) end
)

The same, even shorter

bc1.di[1].on_true(
    function() bc1.do[1].invert() end
)
 
bc1.di[2].on_true(
    function() bc1.do[1].invert() end
)
Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website. Weitere Information
freesigs/start.1314083637.txt.gz · Zuletzt geändert: 2011-08-24 10:22 (Externe Bearbeitung)

Impressum - Datenschutzerklärung