PLCs like as siemens S7 use STL language that are very similar to assembly langauge of controllers this method of programming is very low level and user should manage many things,why manufacturer does not use an alternative like as JAVA language for developing and executing programs in PLCs that is more better than STL?
A PLC is typically based on a 'simple' microcontroller (like a 8051) and has a limited memory capacity.
This, and because of safety related issues I guess (a 'real' programming language would require an elaborate compiler, which might introduce possible compiler errors) makes using a very 'basic' language a good choice. Any 'error' is the result of a programmers error, and not of the compiler.
but STL is ugly langauge and is suitable for technicians with little programming knowledge,but with very complex tasks nowadays like as fuzzy logic control and many other complex tasks and algorithms ,it is better the vendors add an alternative to STL,LAD,FBD.
Languages like as JAVA realtime and others (or simpler version of java without some OOP aspects ) is a good alternative.
If compilers have bugs that are not used for real time,why we use many c/c++ compilers in embedded systems for critical tasks?
I think we can use high level langauges for PLC(as a new feature)
the PLCs are originally designed for engineers in the industry, those people are more familiar with the production process than programming language, so the ladder programming language is better for them to understand and implement logic control, but now, besides logic control, more advanced control algorithms are need for project, it is a little difficulty to implement even a simple algorithm using these low level language.