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.
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:
Graphical Languages:
The IEC-1131-3 promises:
There are several independent IEC 1131-3 products available. For example:
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:
Fieldbus communication, (in general):
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>
Is Kashmir a part of India, a part of Pakistan, both or neither. Some views and info (+propaganda):