README - Last Revised April 11, 2001 1. Introduction: This software is designed to make the implementation of industrial control systems easy, using a Linux based controller. The software is very modular and makes extensive use of dynamically linked libraries. ======================== 2. Features: - Loads modules dynamically, can do hot swap of modules (i.e. on-line programming) - Runs modules as threads to split execution - A shared variable storage area - Has error logging facility - can send email - a telnet able client can be used to access the LPC - a logic engine that can process basic ladder logic programs - a Java based HMI - a (slightly broken) Java ladder logic programming tool - a common shared directory to isolate potential security breaches ======================== Getting Started: 1. At this point in time the best place to start looking is in the 'docs' directory at the 'io_specs.doc' file. It has been written in StarOffice (but saved in Word format) to make it easier to modify and share. 2. Have a look at this directories: loader - the core loader routines iec61131 - a directory containing the IEC61131 code from Scott Cambell (not working yet) io - software sourcecode that is interface oriented logic - software sourcecode that is more decision making in nature lib - where the compiled libraries are stored include - contains include files shared by all modules docs - document files for the LPC in general bin - the binary executable for the LPC core module shared - a shared file directory that can be used for writing external files 3. Make the software with the following commands. (Note: my current makefiles are crappy, so it is possible to gat a failure during compilation or cleaning. In the worst case use 'make; make clean; make'.) make clean; make; 4. Try a sample application with the following command. This will run the command file 'boot.cmd'. It loads multiple modules and gives a screen menu for interaction. Messages will be logged to the file 'boot.cmd'. ./lpcd 5. If you have a simple serial device, hook it to 'com1' and try the following. ./lpcd echo_test_serial.cmd 6. You may run some of the web clients by following the instructions below. Note: You don't need to compile the Java programs unless you plan to change them, I have included the compiled class files. cd java ; make install - this will copy the appropriate files in the 'java' directory to a web accessible directory. You may need to change the web server homepage directory. ./lpcd plc.cmd - The LPC should be run to start the right programs. 7. Try other things, write some code, send me suggestions and fixes. ======================== HISTORY March-December 2000 (Hugh Jack) - the first prototype of the system was developed (<= 0.0.6.x) December 31, 2000 (Hugh Jack) - Starting the new program architecture (>= 0.0.7.x) February 20, 2001 (Hugh Jack) - Many services integrated, and documentation written April 11, 2001 (Hugh Jack) - Addition of java HMI, and improved ladder logic engine