Welcome to Heinz Page for Industrial Programming.

This page provides an overview and internet resources for developing embedded applications for reliability, portability, vendor independence, distributed computing and interoperability. The page is still under construction.

Open PLC IEC-1131-3 programming on standard hardware with a realtime operating system.

Today a lot of embedded software is developed in C without an operating system, A low cost hardware platform such as PC/104 can be much better utilised with a proper operating system than with DOS or without operating system. PLC type programs are very well suited for analog/digital inputs/outputs, sequences, control and other routine tasks. Many PLC languages are awkward and not well suited for "general purpose" programming. The IEC-1131-3 is a standard for programming PLC functionality. As well as targeting standard PLC hardware it can be run on standard personal computers or industrial computers. With a suitable operating system you can run one or several PLC-programs at the same time as you run other tasks in parallell. The PLC-programs manages analog/digital I/O, sequences, control functions etc. A separate task handles communication over network or fieldbus. Still other tasks for operator interaction, computation, data logging and presentation can be run in parallell.

IEC-1131-3 Open PLC software development standard:

The IEC-1131-3 specifies 5 languages for PLC programming.

Graphical Languages:

Textual Languages:

The IEC-1131-3 promises:

There are several independent IEC 1131-3 products available. For example:

Other IEC-1131-3 related links:

Critique

An attempt to create a standard language for can be claimed to be counterproductive .

Object orientation ideas are not incorporated in the standard. This makes it harder to incorporate in a OO development process where the analysis and design phases should be easily mapped on to the language. Some interesting object oriented analysis and design links:

For plant engineering and large scale automation there are very well designed PLC/DCS/OCS solutions which are not yet much affected by the "standard". Two good examples are ABB Advant OCS and Siemens Simatic

When you evaluate a IEC-1131 package you should be extra careful to examine what ready to use function blocks exist. This can very well make the difference between a complete language and a complete PLC solution.

Industrial Computing, SCADA, Real Time Computing and Operating Systems, Embedded systems:

Real time operating systems suited in this context:

A few things a real time operating should offer:

Standard Hardware Platforms/Buses:

Fieldbuses:

A standard fieldbus promises real distributed control in industrial computing.

Fieldbus communication, (in general):

Networking:

Modern well designed general purpose programming languages

C++ is without doubt the most used object oriented language. Regardless of its strengths and weaknesses it is not well designed. See Ian Joiners C++ critique . It is quite clear that a modern general purpose language must have the necessary elements for object orientation. Usually Encapsulation, Inheritance and Polymorphism, are stated. For application programming it is clear that automatic memory management ( no explicit pointer variables, garbage collection) should be added to the list. Object orientation can be elegantly implemented without leaving the the Algol, Simula, Pascal, Ada tradition. A well designed type system, strict compile time type checking, clear syntax and orthogonality are very important software engineering issues. Don't forget that Simula was the first object oriented language and that it is still modern after 30 years.

I have used Modula-2 a lot. It also comes in OO flavours. Its successor Oberon-2 is my favourite. Ada-95 has got everything that Ada-83 has and also qualifies as an object oriented language. Both Oberon-2 and Ada-95 use the type extension concept rather than the class concept. In principal both acheives the same goals but there are differences.

Don't forget to investigate Eiffel if you are looking for a language suited for large projects. Eiffel has a good and versatile standard library and is very well thought out in every OO detail.

Java borrows its syntax from C and a lot of object orientation philosophy from Smalltalk. But Java also has elements from the above languages. It could very well be a very good alternative in the embedded/real time arena in the future.


Any comments to the content and validity of the information on this page are welcome. If you are a vendor of a related product please supply me with information or a web address and I will include it on this page. (If I think it is relevant).

Other comments and questions are welcome by email

Heinz Ericson <heinz@lysator.liu.se>


Music

Frédéric Chopin, The Greatest Piano Composer, just listen ...
A Chopin Biography
Chopin Selected recordings
J.S. Bach
And more J.S. Bach
Organ Resources
Zappa
A very good musical page!!!



Kashmir

Is Kashmir a part of India, a part of Pakistan, both or neither. Some views and info (+propaganda):

1 Kashmir

2 Kashmir

3 Kashmir

4 Kashmir

5 Kashmir