What is the C++ language used for in this field?

hemiplc

Member
Join Date
Apr 2017
Location
US
Posts
2
So I'm coming from a maintenance controls tech position, but have been looking to get into a controls engineering position and I have noticed a lot of job postings list C++ as a preferred skill to have. (Some postings also list java and json).

I was just wondering what are some things that c++ is used for in a manufacturing type controls position?

Also, I am currently taking a class that is teaching c++, and am wondering if anyone could give me some advice on what c++ projects I could build at home that would be helpful building my skill set for a controls engineer position. (Really I'm just trying to do something with c++ outside of the command prompt :) )

Thanks for all the advice!
 
Last edited:
C++ and C are used to write firmware. A PLC or motion controller provides 95-99% of the code already done for the user. The user may think he is adding a lot of code but it is just a drop in the bucket.


Write a simple real time operating system or download a ready to go RTOS and port it onto an Arduino or Arm CPU.

If you can swing it get a job writing firmware rather than writing PLC programs.
Then you might get a job at Rockwell or a similar place writing firmware for products that people on this forum will use.
 
That makes sense.

Why do you think lots of control engineering job postings ask for c++, if it's mainly just used to write firmware then?

Many of the control engineering job postings seem to be typical PLC programming and control system design, not designing the controllers themselves.
 
I'm from the UK and one thing that confused me was that jobs for automation engineers asked these skills... Only after a bit of a search did I realise that there are engineers that automate IT processes and they are also called automation engineers.

Perhaps this is the case?

Other than that, I believe Siemens was pushing people to write "scripts" in C instead of VB for their WinCC software.

One other place where I was asked for C/C++ skills when applying for a control systems engineer was at a technology company that is building their own robots for automated distribution centers. They work with PLC's and also have created their line of robots to interface with the automation system and people with understanding of how a C/C++ program runs is useful.

Off the top of my head, although you could write just software in C/C++ to run in a computer, as a controls guy that will probably not entice you as much, so my advice would be to get an Arduino board, a few sensors and actuators and write something that you can see moving. A home thermostat, a home temperature monitoring system, an automated garden sprinkler system, a robot, a PID test bench to control temperature in a jug of water or to control the position of a ping pong ball inside a tube with a fan.

This, will allow you to start from something that is done and working and then you can adapt or create your own library to do whatever you want and pick up C++ basic syntax and C along the way.

On the other hand, a PLC programmer with knowledge of C++ is probably quite good at encapsulation, which is something that hasn't quite taken on as a standard of programming in PLC's and makes sense.
 
My first industrial programming project was a controller for a porcelain firing kiln installed on a PC hardware with 8088 processor and Analog Devices cards for digital and analog inputs and outputs.
The program was at same time controller and SCADA, all in one!
I used Borland Turbo C as a programming tool. It was the year 1988. And it was working more than 20 years.

Surely still similar systems exist in factories and even more now that there are much faster and more reliable hardware, like those small marvels called Arduino or Raspberry.
 
Surely still similar systems exist in factories and even more now that there are much faster and more reliable hardware, like those small marvels called Arduino or Raspberry.

Faster yes, reliable... not so much. But at the end of the day, it's hobby grade electronics that allows people to put up automated controls if needed so we can't complain much.
 
If you're going for an automation job, you will sometimes be expected to know how to program robots as well. I know KUKA uses a C - type language. Also, this is just personal speculation, but programming any device requires a special type of mindset, especially when it comes to troubleshooting and debugging. If you can program in C/C++, then ladder and even structured text will either be familiar, easily learned, or just a breeze for you.
 
That makes sense.
Why do you think lots of control engineering job postings ask for c++, if it's mainly just used to write firmware then?
It is an easy questions to ask to separate skill levels. To write firmware one must know how to use a make file, linker and locator, and a program that actually makes the binary file. In the firmware there is a boot loader that loads the rest of the program. You need to provide a means of updating the program without 'bricking' the module. All of this one top of actually knowing everything about the application you need to write as well as a means to test it.
Just knowing c++ is not enough.

Many of the control engineering job postings seem to be typical PLC programming and control system design, not designing the controllers themselves.
Yes, very few on this forum actually write firmware. Maybe 1% and that is probably not their main job.
 
I see a couple different possibilities:

1) HR is dumb, and often just puts stuff in the Job Req without any understanding of reality,

2) I see a lot of jobs titles that span multiple industries, and it can be hard to tell which are which.

3) The company thinks they are more likely to take a programmer and teach him PLCs than to take an electrician and teach him programming.

4) Many SCADA systems require more modern programming for scripting. VB/C/Java requirements could easily come from that.

5) A few PLC brands allow for C/C++ programming.

6) It is possible that they have a custom/in-house HMI package they use that you'd need to work with, programmed directly in C/Java/Whatever.

7) it is possible that some other system you'd need to work with requries C, like maybe the robots.

The majority of the jobs that I've seen have absolutely no need for traditional PC programming languagues, but they would be useful in maybe a third ofthe cases.
 
3) The company thinks they are more likely to take a programmer and teach him PLCs than to take an electrician and teach him programming.

It would still be a better result than the other option as far as programming methods go. However, traditional programmers are less likely to take up PLC programming in my opinion.
 
It is the road that I have traveled. Having had a strong interest from early childhood in all things electrical and mechanical has helped me land my first job in industrial automation. Learning LD and ST was easy because I already had a decent foundation to build on.

I haven't met many other programmers with more than a basic interest in electrical and mechanical issues. I suspect that is an important factor that inhibits inflow of programmers from other backgrounds into the PLC automation world.
 

Similar Topics

Q.1 what programming language used in the following image ? Q.2 is it using sinapic manager if so which version? Thanks for you time
Replies
4
Views
2,103
hello friends i wan't to know about memory bits used in s7 language.what are they.what they used for.pls explain with 1 or 2 examples.
Replies
5
Views
9,351
Hello Friends I have 2 languages in my app, en-US, es-MX. I need to send CurrentLanguage to PLC, I am trying with Macro in Global Connections...
Replies
5
Views
177
So, I'm new to the PLC world (fresh graduate) and at my job I've been pretty much only helping out the other programmers with simpler tasks while...
Replies
1
Views
616
Hello, I was wondering if anyone could let me know how to change the audit trail messages language on Factory Talk ME. I am currently working...
Replies
0
Views
453
Back
Top Bottom