Skip to content

Commit a984c13

Browse files
committed
Updated SimPyLCHowTo and readme.rst 3
1 parent f28a8ff commit a984c13

File tree

2 files changed

+25
-48
lines changed

2 files changed

+25
-48
lines changed

README.rst

Lines changed: 24 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@
66
**Simulate your PLC controls and controlled systems to save lots of commissioning time**
77

88
PLC?
9+
----
910

1011
Real world industrial control systems DO NOT consist of a bunch of communicating sequential processes. Semaphores, threads and priority jugling are far too error prone to control anything else but a model railway. Most control systems are surprisingly simple, consisting of only one program loop that nevertheless seems to do many things in parallel and with reliable timing. Such a control system is called a PLC (Programmable Logic Controller) and all major industries rely on it. PLC's control trains, cranes, ships and your washing machine.
1112

12-
What SimPyLC is not:
13+
What SimPyLC is not
14+
-------------------
1315

1416
SimPyLC does not attempt to mimic any particular PLC instruction set or graphical representation like ladder logic or graphcet. There are enough tools that do. Anyone with experience in the field and an IT background knows that such archaic, bulky, hard to edit representations get in the way of clear thinking. By the way, graphcet is stateful per definition, which is the absolute enemy of safety. Though its bigger brother written in C++ according to exactly the same principles has been reliably controlling container cranes, grab unloaders and production lines for more than 20 years now, SimPyLC is FUNDAMENTALLY UNSUITABLE for controlling real world systems and should never be used as a definitive validation of anything. You're only allowed to use SimPyLC under the conditions specified in the qQuickLicence that's part of the distribution.
1517

16-
What it is:
18+
What it is
19+
----------
1720

1821
SimPyLC functionally behaves like a PLC or a set of interconnected PLC's and controlled systems. It is a very powerful tool to gain insight in the behaviour of real time controls and controlled systems. It allows you to force values, to freeze time, to draw timing charts and to visualize your system. This is all done in a very simple and straightforward way. But make no mistake, simulating systems in this way has a track record of reducing months of commissioning time to mere days. SimPyLC is Form Follows Function at its best, it does what it has to do in a robust no-nonsense way. Its sourcecode is tiny and fully open to understanding. The accompanying document `simpylc_howto <http://www.qquick.org/simpylc_howto>`_ condenses decenia of practical experience in control systems in a few clear design rules that can save you lots of trouble and prevent accidents. In addition to this SimPyLC can generate C code for the Arduino processor boards.
1922

@@ -22,11 +25,13 @@ SimPyLC functionally behaves like a PLC or a set of interconnected PLC's and con
2225

2326
**SimPyLC is able to generate C code for Arduino processor boards, making Arduino development MUCH easier**
2427

25-
So:
28+
So
29+
--
2630

2731
Are you looking for impressive graphics: Look elsewhere. Do you want to gain invaluable insight in real time behaviour of controls and control systems with minimal effort: Use SimPyLC, curse at its anachronistic simplicity and grow to love it more and more.
2832

29-
What's new:
33+
What's new
34+
----------
3035

3136
- Parameter attitude added to Thing.__call__ to be able to use rotation matrix rather than Euler angles
3237
- Document simpylc_howto updated and renamed to pothole case
@@ -41,56 +46,26 @@ What's new:
4146

4247
*REMARK: All complete Arduino examples were tested on the Arduino Due, since that's the one I own, but they should run on the One with only slight I/O modifications (PWM instead of true analog output, using a shift register if you run short of I/O pins etc.)*
4348

44-
Bugs fixed:
49+
Bugs fixed
50+
----------
4551

4652
- No known bugs currently
4753

4854
**Bug reports and feature requests are most welcome and will be taken under serious consideration on a non-committal basis**
4955

50-
Installing on Windows:
51-
52-
1. Install MiniConda for Python 3.6 from https://conda.io/miniconda.html
53-
2. Open a command prompt
54-
3. Type `conda install numpy`
55-
4. Type `conda install pyopengl`
56-
5. Type `python -m pip install simpylc`
57-
6. Perform one of the following alternatives:
58-
1. Install freeglut as explained on http://freeglut.sourceforge.net/index.php#download
59-
2. Copy `SimPyLC\SimPyLC\freeglut.dll` to any directory in the Windows DLL path
60-
7. Optionally copy `SimPyLC\SimPyLC\QuartzMS.TTF` to `C:\\Windows\\Fonts`
61-
62-
Installing on Linux:
63-
64-
1. Install MiniConda for Python 3.6 from https://conda.io/miniconda.html
65-
2. Open a command prompt
66-
3. Type `conda install numpy`
67-
4. Type `conda install pyopengl`
68-
5. Type `python -m pip install simpylc`
69-
6. Perform one of the following alternatives:
70-
1. Install freeglut as explained on http://freeglut.sourceforge.net/index.php#download.
71-
2. Type the following command sequence:
72-
- `sudo apt-get update`
73-
- `sudo apt-get install build-essential`
74-
- `sudo apt-get install freeglut3-dev`
75-
76-
Installing on OSX:
77-
78-
1. Install MiniConda for Python 3.6 from https://conda.io/miniconda.html
79-
2. Open a command prompt
80-
3. Type `conda install numpy`
81-
4. Type `conda install pyopengl`
82-
5. Type `python -m pip install simpylc`
83-
6. Perform one of the following alternatives:
84-
1. Install FreeGlut as explained on http://freeglut.sourceforge.net/index.php#download
85-
2. Type `brew install freeglut`
86-
7. Install the XQuartz X-window system from https://www.xquartz.org
87-
88-
Usage:
56+
Installation
57+
------------
58+
59+
Installation for Windows, Linux and OSX is described `here <http://www.qquick.org/simpylc_howto#_Toc508123208>`_.
60+
61+
Usage
62+
-----
8963

9064
1. Go to directory SimPyLC/simulations/oneArmedRobot
9165
2. Click on world.py or run world.py from the command line
9266

93-
GUI Operation:
67+
GUI Operation
68+
-------------
9469

9570
- [LEFT CLICK] on a field or [ENTER] gets you into edit mode.
9671
- [LEFT CLICK] or [ENTER] again gets you out of edit mode and into forced mode, values coloured orange are frozen.
@@ -100,7 +75,8 @@ GUI Operation:
10075
- [WHEEL ROTATION] changes the value of a register field, without freezing it.
10176

10277

103-
For a test run of oneArmedRobot:
78+
For a test run of oneArmedRobot
79+
-------------------------------
10480

10581
1. Enter setpoints in degrees for the joint angles (e.g. torAngSet for the torso of the robot) on the movement control page.
10682
2. After that set 'go' to 1 and watch what happens.
@@ -112,7 +88,8 @@ If you want to experiment yourself, read `SimPyLCHowTo <http://www.qquick.org/si
11288

11389
**Coding is text oriented, enabling simple and fast editing, but functional behaviour resembles circuit logic, with elements like markers, timers, oneshots, latches and registers**
11490

115-
Other packages you might like:
91+
Other packages you might like
92+
-----------------------------
11693

11794
- Lean and mean Python to JavaScript transpiler featuring multiple inheritance https://pypi.python.org/pypi/Transcrypt
11895
- Multi-module Python source code obfuscator https://pypi.python.org/pypi/Opy

SimPyLC/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
from inspect import *
3030

3131
programName = 'SimPyLC'
32-
programVersion = '3.6.16'
32+
programVersion = '3.6.17'
3333
programNameAndVersion = '{0} {1}'.format (programName, programVersion)
3434
programDir = os.getcwd () .replace ('\\', '/') .rsplit ('/', 3) [-1]
3535

0 commit comments

Comments
 (0)