Skip to content
/ wago Public

A small controller for WAGOs Linux-based industrial control computers

Notifications You must be signed in to change notification settings

smurfix/wago

Folders and files

NameName
Last commit message
Last commit date

Latest commit

391c9cb · May 31, 2015

History

67 Commits
Oct 15, 2011
May 31, 2015
Apr 24, 2012
Mar 26, 2012
Oct 18, 2011
Oct 27, 2011
Oct 16, 2011
Nov 15, 2014
Apr 26, 2012
May 14, 2012
Apr 27, 2012
Oct 16, 2011

Repository files navigation

===========
wago access
===========

This program runs on a Wago Linux controller.
Its job is to export the external inputs and outputs in a controlled fashion.

It implements the following features (in parentheses: the commands in question; no command means TODO):

 * read inputs (i)
 
 * read and write outputs (s c I)
 
 * set or clear an output for a pre-set time (s c)

 * periodically set+clear an output (Pulse Width Modulation) (s c)

 * send a notification whenever an input changes (m+)

 * count input transitions, with report timer (i.e. don't send a network message at every transition) (m#)

as well as some auxiliary functions

 * measure controller's cycle time (dc)

 * set program's poll time (d)

 * (re)initialize outputs, in case of network outage

 * keepalive messages and timer

 * report the kernel-exported CSV list of I/O fields (D)

The controller has a 3 msec debounce filter on its input. The minimum sensible cycle time therefore is 2 msec.
If you know that no input will change faster than once a second, increasing the timer values will save some power
and allow the program to react faster (since it usually doesn't need to wait for the controller to finish processing
its input+output list).

There can be more than one active server connection.
Monitors, re-inits and keepalives are specific to the connection they have been issued on.

A challenge/response mechanism is used to authorize the remote side.


Building and installing
=======================

This program depends on uClibc and libevent2.

uClibc is available from Wago.

For libevent2, download the source and configure as

	sh configure LDFLAGS=-Wl,-elf2flt CC=/usr/local/bin/arm-uclinux-elf-gcc --host=arm-uclinux-elf --disable-openssl --disable-thread-support --disable-malloc-replacement --disable-shared --prefix=/usr/local/arm-linux-uclibc/

The line protocol
=================

The interface to the daemon consists of a simple command/response
protocol.

Commands are single letters. They might have arguments.

Responses are each introduced with a single special character:

 *  A spontaneous one-line message, not in response to a command.

 +  a single-line positive response.
    Depending on the command, it may include data.

 ?  A single-line negative response, indicating an error.

 =  a multi-line response, terminated by a single dot. (cf. SMTP.)
    Used primarily for help messages.

The following messages contain a monitor number after the initial character(s).

 !+ a monitor has been created.

 !  a signal from a monitor. Parameters depend on the type of signal requested.

 !- the monitor has been cleared.


Commands
--------

Use 'h' for basic help, and a command list.

Use 'hX' for basic help, and a command list.

About

A small controller for WAGOs Linux-based industrial control computers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published