New languages

shaun_v

Member
Join Date
Apr 2016
Location
Edmonton
Posts
3
Hello all.

Are there any new PLC programming languages on the horizon that anyone is aware of? Other than the 6 IEC languages, I mean.

A little background to why I ask:
My background with industrial automation began at a company that produces equipment for the drilling industry. They used WAGO 750 series remote I/O, controlled by Beckhoff Industrial PC's running their own proprietary controller software written in Java. The controllers are very responsive and have some impressive features.

After I left that company, I found myself working with traditional PLCs. With my background with Java, C/C++ and some tinkering with Pascal in my youth, I found myself somewhat comfortable with Structured Text.

Sometimes a PLC manufacturer only supports Ladder, and I loathe it. I am not comfortable with it, I don't like building pages of rungs just to do some fairly straight forward math; it makes me angry... maybe I just make myself angry.

Anyways, I am starting to write my own controller software to run on industrial PC. I thought about having a controller hard coded in Java or C++, and then the PLC logic written in some other scripting language. Something that is easy to learn, but powerful enough to build up complex and high-performance programs (python, lua, groovy, scala, etc). A language that is type-safe that doesn't require you to specify if you are working with an int, long, float, double, word, double word, etc etc. unless it was needed.

If I can adopt a language that is already making an appearance in industrial automation, then that would be even better.

Thanks all.
 
I doubt there is anything in the works for additional languages.

Trying to create an essentially proprietary controller for the reasons you stated seem like a waste. Unless of course you intend to bring a new product to the marketplace. Generally speaking a soft PLC isn't that common.

There are C based controllers out there, Mitsubishi has one and you can get mobile controllers as well so high level language options exist, but not typical.

Ladder is popular for a reason, while your frustrations have some merit, you are letting your computer science skill set get in the way of understanding the world of industrial control. If this is just an exercise Python seems obvious.
 
I've used Beckhoff soft plc but it was a long time ago. If I remember correctly it was C not Java.

Ladder is good for logic control. Better than any high level language.
It's also straight forward with timers, delays and simple stuff like that.

Most ladder implementation sucks when it comes to calculations and math. Here high level languages shines in comparison.
So both is needed in the same program in my opinion. Right tool for the right job so to speak.

What I dislike and I think can be improved is the organization and structure of large programs. A lot of systems uses blocks but there are no hierarchy. I'd also like to see some kind of object-oriented approach.
 
Pete - the company I was working for developed their own controller in Java, they didnt use the Beckhoff software.

I understand the reasoning of having environments like Ladder diagram where they have an easy to follow structure and are readable and maintainable by nearly anyone. It will always have a place in IA, and I appreciate it's importance. I just prefer a more object oriented approach and will opt for ST or even IL given the chance.

In the case of my previous company, the products were their own and ranged from small pumps all the way up to entire $40 million drilling rigs that had every subsystem fully integrated. When you have a 2000HP drawworks with 12-line block capable of hoisting 1,000,000+ lbs at 300ft/min... you don't want just any electrical contractor to come along thinking he can fix it. In that case, it probably should be a proprietary system where you can ensure that your technicians are fully trained on that product before they can work on it.

I know alot of hardware needs to support or be backwards compatible to replace legacy systems. But, and maybe I am just missing it, there doesn't seem to be much evolution on the controller side.

Which is weird because I am seeing more and more talk of IIoT for SCADA, integrated ERP, analytics, etc.

Anyways, I will keep plugging away. I may post some questions now and again asking how to do things in ladder. :)
 
Your partial answer is IEC 6-1131

The only other 'OTS' system I know of is GE PAC system that includes "C" with the other 5 languages.

If you do not conform to the people who will eventually maintain your system you will be villified rather than given an upstanding legacy. YMMV :eek:

Hello all.

Are there any new PLC programming languages on the horizon that anyone is aware of? Other than the 6 IEC languages, I mean.

A little background to why I ask:
My background with industrial automation began at a company that produces equipment for the drilling industry. They used WAGO 750 series remote I/O, controlled by Beckhoff Industrial PC's running their own proprietary controller software written in Java. The controllers are very responsive and have some impressive features.

After I left that company, I found myself working with traditional PLCs. With my background with Java, C/C++ and some tinkering with Pascal in my youth, I found myself somewhat comfortable with Structured Text.

Sometimes a PLC manufacturer only supports Ladder, and I loathe it. I am not comfortable with it, I don't like building pages of rungs just to do some fairly straight forward math; it makes me angry... maybe I just make myself angry.

Anyways, I am starting to write my own controller software to run on industrial PC. I thought about having a controller hard coded in Java or C++, and then the PLC logic written in some other scripting language. Something that is easy to learn, but powerful enough to build up complex and high-performance programs (python, lua, groovy, scala, etc). A language that is type-safe that doesn't require you to specify if you are working with an int, long, float, double, word, double word, etc etc. unless it was needed.

If I can adopt a language that is already making an appearance in industrial automation, then that would be even better.

Thanks all.
 
Last edited:
I know alot of hardware needs to support or be backwards compatible to replace legacy systems. But, and maybe I am just missing it, there doesn't seem to be much evolution on the controller side.

You would have to elaborate on your PLC experience, there has been substantial evolution on the controller side. Many controllers allow multiple languages as already discussed, based on and industrial standard as already discussed. However how well one adheres to IEC-61131-3 is up to each vendor to to decide.

On a ControlLogix/CompactLogix you can create your own structures(UDTs), create your own objects (AOIs) both of which can be instantiated multiple times over. You have the ability to create multiple programs, configure task timing and priority. You can also create your own variables(tags) w/o having to use any predetermined memory address. This is leaps and bounds ahead of previous controllers (SLC/PLC5..etc). Studio 5000 Logix Designer feels 'modern'. Heck I use Exce/VBA, Python to generate a lot of the code for me as you can import .CSV files as well as .L5X (basically xml) files. If you really wanted too you could in theory (keep in mind the massive library/configuration options), reproduce the .L5K file for a Logix PLC using some 3rd party software and import it into Studio 5000 and download it to the PLC w/o ever doing a thing in Studio 5000 besides letting it create the .ACD file, compile and download.

Of course not all PLC development software feels 'modern', which might be why you don't feel it is evolving. RSLogix5/500 are dated, Codesys v2 is dated, Codesys v3 is much better. Last I played with GE's Proficy it felt a mix of modern w/significant limitations (mainly in the ladder editor). Mitsubishi's GX Developer, GX Works 2 are dated, GX Works 3 is a mix of modern w/significant limitations (I think it's 10 years behind Rockwell).

I can't comment on many other development platforms, but if you are hitting a wall because the only option is Ladder, perhaps you need to opt for a different controller.

As mentioned, you can get C/C++ controllers in a PLC form factor if you really want/need it. Much less hassle than rolling your own controller. They have their place but generally speaking are not common.

Which is weird because I am seeing more and more talk of IIoT for SCADA, integrated ERP, analytics, etc.

These are all items that don't exist w/o the PLC running the control logic. As these systems become more and more business-integrated the more and more IT folks take ownership. Which isn't a bad thing as it forces these products to evolve much faster than they traditionally have. This level of software can easily be influenced by what the trend in business software is whereas a PLC and it's controller are not. There is NO direct danger (damaging equipment or people) to fiddling and experimenting with software at this level, the PLC does the dirty work. Of course there is downtime danger, and you could reach really far and discuss security loop-holes and major bugs that could write incorrect data to a PLC causing a danger event. The PLC is still in control.

Also remember that plenty of embedded/proprietary systems are in operation for very good reasons.

You really need to decide if a PLC will do the job or it won't. If it will, then conform to the intentions of a PLC, they do a bang-up job especially if the person(s) programming it knows their stuff.
 
They have been around for many years. Omron had one but it did not sell. Then there was the French company - name eludes me - that were bought out and shut down.
The biggest problem I face is that if I have someone 1 1/2 days away with ladder I can usually get them to look at things in ladder and tell me what is going on. Beats the hell out of traveling 1 1/2 days, 5 minutes work and 1 1/2 days back home again!
I dislike soft PLCs with a vengeance - give me something industrially hardened any day. PC power supplies are not and fail regularly - then no control. And all the other bits in a computer!
You can use ST in Function Blocks and protect them with a password if you wish - then the electrician cannot get at the tricky stuff.
I use FBs for some maths (floating point) and that is about all - saves me flying about the country for days.
 
Siemens have SCL for high level, Schneider have EFB toolkit (for Unity) they are both extra package with extra cost.
Pretty sure that also others have something similar. You only need to choose right PLC before starting, not all PLCs have same functions.
 
Once you realize that ladder is basically a "Visual Assembly Language" you understand why some things take so many rings to do in ladder.

If you follow the trend, IEC61131 is gaining popularity because it is NOT one language. The strength is that you can use the appropriate language for each part of your system. We rarely have programs that are all one language anymore. For us it's mostly mixtures of ladder and ST.

I see writing your own function blocks as 1/2 OOP from the computer science perspective. It has multiple instantiation. I don't see inheritance taking off for most industrial systems although CODESYS has some inheritance I think this is not strictly part of IEC 61131.

If object type is a major concern and you are set on not using an existing industrial language you might have a look at Swift. It has type inferencing and maybe some of its other features would lend themselves nicely to help prevent crashes on an industrial platform. It is open source.
 
Siemens have SCL for high level, Schneider have EFB toolkit (for Unity) they are both extra package with extra cost.

SCL is not an extra cost on Siemens, at least not on a per PLC basis.
You just need the pro version of step7 to program in SCL - which a pro should have anyway.
 
SCL is not an extra cost on Siemens, at least not on a per PLC basis.
You just need the pro version of step7 to program in SCL - which a pro should have anyway.

SCL is update for basic programing software, you need to buy it only one time only. Same for EFB toolkit by Schneider
 
As everyone else has said, the IEC 61131 languages are the basis, but they are somewhat locked in stone and progress moves much faster than the standards.

I hope, eventually, that C++,C#, or some other mainstream Object-oriented language starts becoming standard in PLCs. There is nothing wrong with SCL, but I think we can do a lot better, for the parts of programs where serious text based programming makes sense (that maintenance guys shouldn't be poking around in).

On the other side of the spectrum, I was introduced to Matrix Programming in PCS7 (a DCS from Siemens), and I'm a huge fan. At least in the process world, Safety logic is often documented in a spreadsheet, with inputs on the left and outputs across the top. You pretty much put a mark in any box where you want the input to affect the output, and there are a few options so you can do some basic AND/OR/2oo3 logic. It is intentionally simplistic, and makes it very easy to quickly turn documentation into a programmed system. I really hope it starts making its way out of the DCS and into some of their other controllers.
 
SCL is update for basic programing software, you need to buy it only one time only. Same for EFB toolkit by Schneider

SCL could be bought as an update if you get the basic version of step 7 but why would anyone doing programming buy the basic version?

If you buy the real step7 professional you already have the SCL programming without having to buy anything.

Siemens themselves refers to the basic version as a "price-optimized subset of STEP 7 Professional controller software". For maintenance people who just want to look at some ladder it makes sense to buy the basic version. Anyone who wants to program should of course have the professional version.
 

Similar Topics

So Ladder is easy to read graphically, most everything can be coded in ladder, and it represents wiring diagrams the closest. SCL and ST are good...
Replies
5
Views
1,729
This article has a nice shout out to Ladder Logic which has risen 5 places on the IEEE list of most popular programming languages to 34th...
Replies
0
Views
2,005
Hello everyone! I am trying to determine the most commonly used advanced controls languages in PLC and HMI programming in order to determine my...
Replies
8
Views
3,066
I would like to ask if there is a way to convert between unity pro languages? i.e how to convert ST to ladder or FB ?
Replies
0
Views
1,301
Back
Top Bottom