-
Notifications
You must be signed in to change notification settings - Fork 6
smurfix/wago
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
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 0
No packages published