SourceForge Logo


This is pre-alpha code and information. You assume all responsibility for its use.

DANGER: DON'T connect to a PLC unless you are certain it is safe to do so!!! It is assumed that you are experienced in PLC programming/troubleshooting and that you know EXACTLY what you are doing. PLC's are used to control industrial processes, motors, steam valves, hydraulic presses, etc. You are ABSOLUTELY RESPONSIBLE for ensuring that NO-ONE is in danger of being injured or killed because you affected the operation of a running PLC.
Also expect that buggy drivers could write data even when you expect that they will read only !!!

PLC-Drivers provide a connection to external devices (PLCs, measuring devices). Devices may be connected via serial interfaces or ethernet.
A PLC-Driver will be loaded at program start. For each driver to load you need an entry in the configuration file visual.cfg. The Driver is executed in it's own parallell process (thread). This makes sure that a driver waiting for a response from some device will not stop the whole program while waiting. The Threads share a common memory space. The driver transfers blocks of data between the spreadsheet and the external device. A list of transfer instructions defines address, size and direction of transfer for each block. The file name of this list must be given on the respective line in the configuration file.
The details of the file format are driver specific. The lists can be edited with a normal text editor.

All PLC drivers use blocks of data. The first and last element in PLC memory are used to specify a block. For the corresponding area in the spreadsheet, the first cell coordinate is specified. Further data elements are copied to or taken from consecutive row of the same column.

Available PLC drivers:

PLCProtocolshared objectstate
Allen Bradley SLC 50/3 via RS 232DF1 (half duplex?)allen_b.sonot well tested,read only
GE Fanuc via programmer interfaceSNPX protocoll alspadrv.sonot well tested
This driver works also for and was tested with
ALSTOM/Cegelec ALSPA 80-35 series
, hence the name. The CPU was a 341.
BECKHOFF BC9000/BK9000 via ethernetModbus/TCPbeckhoff.sonot complete
Siemens S5 family via programmer interfaceAS 511s5_drv.sonot well tested