# Recommendations for Getting Into the PLC Business



## swimmer (Mar 19, 2011)

I'd like to get into the PLC programming business.
I'm a one man, one truck electrical contractor working from my garage. I do mostly residential and maybe 5% commercial. I've taken 2 semesters on the SLC-500, a 2 day class from the power company on the Micrologix 1200. I also built a trainer with a ClickPLC. So far, I have done no work professionally. Ideally, I'd like to convert my electrical business into a PLC (automation and controls) business. Does anyone have any advise on what to do and what not to do?

Thanks


----------



## MechanicalDVR (Dec 29, 2007)

Take all the training you can on various control systems while getting as many other jobs as you can handle to pay for it all.

The various software programs and hardware to run them isn't going to be cheap.

You will find some of the older programs needs windows xp to run them or another operating system that will require a separate laptop rather than trying to split your hard drive to run several.


----------



## splatz (May 23, 2015)

swimmer said:


> I'd like to get into the PLC programming business.
> I'm a one man, one truck electrical contractor working from my garage. I do mostly residential and maybe 5% commercial. I've taken 2 semesters on the SLC-500, a 2 day class from the power company on the Micrologix 1200. I also built a trainer with a ClickPLC. So far, I have done no work professionally. Ideally, I'd like to convert my electrical business into a PLC (automation and controls) business. Does anyone have any advise on what to do and what not to do?
> 
> Thanks


IMO it's a hard transition because there's no step by step path from where you're at to where you're doing all automation. I don't know of anyone that stays busy with small automation projects, you have to do bigger things. But you're a ways from where you can handle that kind of thing, it's hard to get prepared for those projects doing little projects. 

It's hard to be in that business as a small shop, the overhead is brutal - training, software licenses, lab / shop, insurance, etc. etc. So you'd probably have a significant investment to get into it and it could be a while before it starts paying off.


----------



## just the cowboy (Sep 4, 2013)

Hate to say this but without any real world control experience you would have a very hard time entering the field. 
The reason I say this is due to insurance costs, PLC programming IS A SAFETY thing they would not want to insure. When I shut down my one man shop insurance was out of this world because of the personnel safety and machine and building safety.
One way since you do some commercial work is think about building automation, controlling heat ac and lights.


----------



## macmikeman (Jan 23, 2007)

We had a member here named Dronai who built up a business exactly as the type Swimmer is asking about , but he quit after some time to go work for some sort of place where they ran large conveyor systems that he couldn't talk about. You might want to try contacting him thru PM.


----------



## tates1882 (Sep 3, 2010)

Its possible to transition but without a very thorough background in controls its a though road. Maybe find a local factory and take a part time electrical maintenance position for a year or so, or find another EC that does industrial service, sell yourself cheap to learn. Without real world experience you may as well be a first year apprentice.


----------



## nolabama (Oct 3, 2007)

Get an engineering degree. 

Sent from my Pixel XL using Tapatalk


----------



## Rora (Jan 31, 2017)

I'm an instrument tech, we essentially cover everything automation related as a trade. You're not the first person who wants to get into automation solo, and I'd have to agree with others that it's very difficult to do commissioning as a small shop. The only guys I've heard of working in automation in a small-time capacity are in on-call maintenance for areas that have mills and other various facilities in remote areas, and even then it's a fairly competitive business.

To be brutally honest, a few training programs is not going to make you competitive. I have extensive training and if I were even to consider going into the on-call maintenance business, I'd want 10-15+ years of experience. Don't think I ever will, though. Just easier to join a controls company and avoid all the risk and overhead.

Here's why: comissioning control systems is not just learning a couple brands of PLCs, automating anything involves a LOT more than that. Depending on the application, there's motors/VFDs and all the associated wiring (can you legally carry out an industrial-grade install?), valves and actuators (do you have all the tools to bench-set and install 100+ lb. process control equipment, do you have experience interfacing with pipefitters so this stuff actually gets put in correctly?), not to mention installing and wiring cabinets, integrating the PLC with the customers' existing DCS, HMIs, and management level monitoring systems?

Not trying to discourage you, but it's a very big job... a very complicated job--which is why it's usually done by control companies that have enough staff and specialists to handle every aspect of it. Once it's all in, sure, one guy could walk in and fix a specific problem, but that could be just about anything, and you'd better know a LOT to be able to effectively and efficiently fix anything since your billable rate would be pretty high.

Being interested in automation is great, I am as well... but take it from someone who is neck deep in this industry, try to expand your skill set and find a role with an established company.


----------



## Westward (Mar 3, 2018)

swimmer said:


> I'd like to get into the PLC programming business.
> I'm a one man, one truck electrical contractor working from my garage. I do mostly residential and maybe 5% commercial. I've taken 2 semesters on the SLC-500, a 2 day class from the power company on the Micrologix 1200. I also built a trainer with a ClickPLC. So far, I have done no work professionally. Ideally, I'd like to convert my electrical business into a PLC (automation and controls) business. Does anyone have any advise on what to do and what not to do?
> 
> Thanks


What not to do is to take on work that your not qualified to do. The costs and penalties would bury your business.

What you could do is make yourself available as a sub contractor to do the hard wiring side of things. Even that will be a large step for a resi, as the bulk of PLC work is industrial.
You could look for work as an industrial electrician to get exposure to that aspect of the trade. They will have the tools, and likely a mentor or two that could propel you along. 
You could also concentrate on building automation systems. That would be closer to your commercial experience, and is no less technically complex.
Successful PLC programming isn't really about Inputs and Outputs. It's more to do with understanding the dynamics of process, motion, and interaction.


----------



## sparkiez (Aug 1, 2015)

I am with the others. You would want to expand your horizons, possibly start looking for work with a controls engineering company. I started out in industrial controls, then moved to electrical. You need much more than electrical experience and PLC training classes. I've taught myself a large majority of what I now with PLC's as you are doing now, and learned through experience of dealing with issues while working in the maintenance and IT department for manufacturing facilities.

You need communication skills, computer skills, computer networking skills, mechanical skills, process analytical skills (process management philosophy, basic chemistry understanding, intuition to understand that operators will find a way to break it) and so much more. The programming is quite honestly the easiest part. Even after 4 years of doing nothing but instrumentation and controls work on top of a mechatronics tech degree, I'm going for an EE degree due to the complexity and nature of the systems involved.

I'm taking on a job with the EC I currently work for, and here is everything that it entails:
Designing the system to the customers needs, when even the customer doesn't know exactly what they want
Selecting hardware that meets process needs a budget
Actually building all panels and drafting of schematics
Figuring out what needs to interface, what the IO requirements are and programming the PLC
Setting up a PC and building an HMI
Setting up redundancy
Integrating the process metrics with customer demands
Interfacing with customer's data collection program
SMS-based alarming
Remote site access
Handling all associated data wiring and network configuration
Working with engineers for process control equipment so I get the interfacing I need, within budget

The list goes on and on. Consider either going to work for a company with the assurance you will learn about automation, going back to school, or going to work for an automation company, as breaking into industrial controls from a residential standpoint is a tall order, and just bidding a job alone takes a massive amount of time. That being said, your work history and electrical prowess will help you land a position with a company, provided you show an eagerness to grow. You may have to relocate in this process as well.


----------



## MadSparky (Mar 2, 2018)

just the cowboy said:


> Hate to say this but without any real world control experience you would have a very hard time entering the field.
> The reason I say this is due to insurance costs, PLC programming IS A SAFETY thing they would not want to insure. When I shut down my one man shop insurance was out of this world because of the personnel safety and machine and building safety.
> One way since you do some commercial work is think about building automation, controlling heat ac and lights.


This is precisely why we do not rely solely on the programming for safety measures. We always use mechanical limits

Sent from my A574BL using Tapatalk


----------



## MadSparky (Mar 2, 2018)

swimmer said:


> I'd like to get into the PLC programming business.
> I'm a one man, one truck electrical contractor working from my garage. I do mostly residential and maybe 5% commercial. I've taken 2 semesters on the SLC-500, a 2 day class from the power company on the Micrologix 1200. I also built a trainer with a ClickPLC. So far, I have done no work professionally. Ideally, I'd like to convert my electrical business into a PLC (automation and controls) business. Does anyone have any advise on what to do and what not to do?
> 
> Thanks


I would recommend learning Verilog. Also C++ would be a good general purpose language to start with.

You need to know the difference between MCUs and PLCs or FPGAs and when to use either.

Try tinkering around with Arduinos. It's a great way to get acquainted with programming as well as GPIOs. The Atmel chips are very reliable. You could also get into PICs which use BASIC to program which IMHO is much easier than C.

Sent from my A574BL using Tapatalk


----------



## Westward (Mar 3, 2018)

electrokinetix said:


> I would recommend learning Verilog. Also C++ would be a good general purpose language to start with.
> 
> You need to know the difference between MCUs and PLCs or FPGAs and when to use either.
> 
> ...


I’m deep into the micros, but I wouldn’t support this path for the Op’s quest. Agreed that C style programming can be ported over to structured text, but beyond that, your talking an entirely different field.


----------



## MadSparky (Mar 2, 2018)

Westward said:


> I’m deep into the micros, but I wouldn’t support this path for the Op’s quest. Agreed that C style programming can be ported over to structured text, but beyond that, your talking an entirely different field.


Actually MCUs are replacing hardware more and more in the control and automation field. But your right. Most companies like turnkey solutions

Sent from my A574BL using Tapatalk


----------



## John Valdes (May 17, 2007)

After the thread you started regrading the manual contactor, I would encourage you to learn more about how things work in an industrial facility. How machines and support equipment operate mechanically and electrically.
Learn basic motor control and instrumentation. You cannot program without knowing how it all comes together.

I have yet to meet a programmer that started out programming. Most have degrees (most manufactures require it) in mechanical or electrical engineering.
To even get an interview with a manufacturer you need the degree in most every case.
Some get a lucky break and get in with a distributor, but they have very strong controls backgrounds.

I'm not saying you cannot do it. I suggest you make a decision. Stick with your current job or get one in manufacturing.
Without a degree its possible to get in the back door with experience and some luck.
This is rare. But possible.


----------



## MadSparky (Mar 2, 2018)

John Valdes said:


> After the thread you started regrading the manual contactor, I would encourage you to learn more about how things work in an industrial facility. How machines and support equipment operate mechanically and electrically.
> Learn basic motor control and instrumentation. You cannot program without knowing how it all comes together.
> 
> I have yet to meet a programmer that started out programming. Most have degrees (most manufactures require it) in mechanical or electrical engineering.
> ...


Very well put

Sent from my A574BL using Tapatalk


----------



## MadSparky (Mar 2, 2018)

John Valdes said:


> After the thread you started regrading the manual contactor, I would encourage you to learn more about how things work in an industrial facility. How machines and support equipment operate mechanically and electrically.
> Learn basic motor control and instrumentation. You cannot program without knowing how it all comes together.
> 
> I have yet to meet a programmer that started out programming. Most have degrees (most manufactures require it) in mechanical or electrical engineering.
> ...


FYI you now know an electrician who started out as a programmer

Sent from my A574BL using Tapatalk


----------



## indel99 (Mar 5, 2018)

Definitely, go to get an engineering degree. Programming the rungs of a PLC is not big deal, a high school student can do it for a science program. How to use and, moreover, how to interface a PLC is not a trifle.
Not to brag, I started designing with vacuum tubes for my masters project and I have retired, at 72, programming microcontrollers in C. 
A time, in my years, I had to learn rung programming, I liked it. My boss wanted to use a PLC whose processor didn’t have the square root instruction, so I went to the basics, Newton-Raphson algorithm to calculate square root. It took some milliseconds but it did the trick. I try to say than it takes more than enthusiasm and will power to excel in the business. And, indeed, it starts with an engineering degree.


----------



## MadSparky (Mar 2, 2018)

Download a ladder logic simulator

Sent from my A574BL using Tapatalk


----------



## macmikeman (Jan 23, 2007)

The reason there are more electricians doing the actual PLC work around most manufacturing facilities, is because they started off learning ladder logic and good old fashioned mechanical ice cube relays and general purpose contactors. When that get's burned into your mind completely, then the PLC parts are a whole lot easier to understand. A generation of dinosaur's is slowly walking off into the sunset, and they built the relay boards that are all obsolete now. The sound of the old phone exchange buildings, elevator rooms and jetway control panels is music to my dying ears. I programmed the first Klockner Mueller PLC in Hawaii at a chicken farm some thirty five years ago, with the instructions that were written entirely in German.


----------



## MadSparky (Mar 2, 2018)

A lot of controls Engineers are using fpga and Verilog. Also microcontrollers are more frequently used

Sent from my A574BL using Tapatalk


----------



## Westward (Mar 3, 2018)

electrokinetix said:


> A lot of controls Engineers are using fpga and Verilog. Also microcontrollers are more frequently used
> 
> Sent from my A574BL using Tapatalk


The lowly 8051 and it's derivatives have been a workhorse for many years in industry. ARM kernelled SoCs with fpga personalities are a wonderful thing, but that's all black box stuff.


----------



## paulengr (Oct 8, 2017)

Verilog IS C. Unfortunately most universities teach VHDL which is ADA and not used commercially. Structured text is Pascal, another almost dead language. C (not C++) is one step above machine code and easier to work with from a hardware point of view. Heck if you do something “illegal” and you know what you are doing you just cast it...tell the compiler “it’s OK not a mistake, I’m a hardware guy and I know what I’m doing”. There is a reason virtually every operating system, PLC system (the backend), device driver, etc. is written in C. Allen Bradley Controllogux processors are 100% done by C programmers. If you know C the whole system is easy.

C++ is not. It was originally an add on intended to turn C into something like Java. It makes some things easier, everything more complicated, and you’re so far removed from the hardware that you really need to have a deep understanding of programming to make it work well without turning it into modern day spaghetti code. But computer science departments live the complexity so you have to deal with it.



Sent from my iPhone using Tapatalk


----------



## Instrumentation (Mar 11, 2018)

Do any of you see instruction list being used anymore?


----------



## MDShunk (Jan 7, 2007)

Instrumentation said:


> Do any of you see instruction list being used anymore?


Only for math heavy things. 

When I see someone programming in anything besides ladder, that automatically makes me think they're either an engineer or a recent college grad. Electricians think in ladder, because that's how the prints we're used to reading are made. Engineers think in function block, because that's how their brains are wired. College grads often pick structured text because its close enough to other languages they were taught in college. Pneumatic/Hydraulic guys like sequential function chart because that's how they were used to troubleshooting fluid power. Instruction list is really compact, so it's good for tiny controllers that might be at risk of running out of memory. Instruction list is very very similar to the old 650x machine language used on Commodore and Atari.


----------



## MDShunk (Jan 7, 2007)

If you only ever learn ladder and structured text, you'll be good for 99% of what's out there. Function block being third.


----------



## paulengr (Oct 8, 2017)

Instrumentation said:


> Do any of you see instruction list being used anymore?


Instruction list was only ever popular in Europe. Elsewhere it was almost never used. So it's not common.


Sent from my SM-T350 using Tapatalk


----------



## tates1882 (Sep 3, 2010)

MDShunk said:


> If you only ever learn ladder and structured text, you'll be good for 99% of what's out there. Function block being third.


Function block is my favorite, it was the first "programming" I ever did, easy to self learn. I can use ladder but it takes me a bit longer. structure text is something I've only ever briefly read about.


----------



## Rora (Jan 31, 2017)

I find different languages are better for different things. Ladder logic is ideal for visualizing conditional logic, as well as troubleshooting condition statuses online. Function block works best when your logic is mostly complex blocks rather than simple conditions. Structured text is the least visual, but it's more intuitive if your logic contains lots of conditions or layers of embedded conditions since they can be formatted in a list, whereas ladder and function block gets convoluted.

Ladder is my favorite for standard controls, function block for algorithm-based controls.


----------



## paulengr (Oct 8, 2017)

Electricians will tell you that ladder is the easiest and just about crucify you (initially) for using anything but. It is the easiest one to read for things like turning a bunch of motors on and off and doing any kind of conditions and sequences.

BUT if you are doing lots of analog things, the ladder tends to look like condition --> math operation, over and over again. It is easy to follow the logic part of it but the math part kind of gets stuffed at the end.

Function block is basically a signal flow language. So if you are used to reading signal flow diagrams in some of the more exotic drives or P&ID's or pneumatic or hydraulic diagrams, these will be much easier to read because it reads like how an analog system actually works.

Structured text IS PASCAL. So if you are trying to do something that is more of a programming that would normally be done in say a PC, it is possible to write it in the others but it will be much easier in structured text. And this is where we need to be careful. An electrician probably won't and can't be expected to troubleshoot a discrete fourier transform or something similar. So even if you wrote it in one of the other languages, it will not make it any easier to troubleshoot so don't bother. What you don't want to do is to do anything that would best be done in one of the other languages. Leave the sequencing and analog signal processing out in the rest of the languages and reserve structured text for the algorithm stuff in its own module that gets called from the other operations. Otherwise it just gets ugly.

SFC's are kind of an interesting animal. Basically it's GRAFCET. What they are best for is sequences like batch operations, particularly if you have multiple things going on at once (parallel branches). HOWEVER it's more of an organizational tool and all of the actual processing is going on in other languages that the SFC calls. And they are VERY rare. Most of the time the only thing I see them for is some kind of high level program organization tool and they really just make things more complicated to figure out. My suggestion is not to use them.

There is a function in a lot of PLC's called a drum sequencer and my suggestion with that one is...DO NOT USE IT. It is a pain in the rear to troubleshoot and far more limited than other options. An actual drum sequencer was used decades ago. These were rotating drums that had a bunch of cams on them that triggered switches to do various things. Think of one of those music players that uses a disk with a bunch of holes punched in it. As the drum rotated it triggered multiple relays and contactors in a sequence. The drum sequencer function works almost identical. It has a block of bits that drive how and when the drum sequencer can index, and a bunch of bits that it outputs as the sequence number updates. It's OK if you can make your program into step 1, step 2, step 3...but if you need to skip step 2, this is not your friend. And since all the logic and flow is hidden in the drum sequencer, it is extremely hard to follow. I have a spreadsheet that helps but it's just not very intuitive.

Another way around this is with onion logic. I see this a lot and I suggest you DO NOT do this. Onion logic looks like this. First we look for say an "auto" signal. The auto signal usually has a start/stop button arrangement like a starter. Then we have say "open valve" that triggers on auto. Then we have say "run agitator" when the auto signal, open valve signal, and level is more than say halfway. So far you can see why it looks like layers of an onion. Then we have close valve when we have auto, open valve, level over halfway, and agitator running. This is when it gets ugly though because now the agitator stops if the valve is closed. So we end up with some goofy extra layer to get around this. And what if the level sensor is faulty or the level is right at the halfway mark or the material has foam or starts sloshing around or the sensor is dirty? Yep, the code goes wild and the layers and layers are really hard to figure out what is going on. This is basic ladder logic without any extra thought and it gets almost impossible to troubleshoot very quickly. Do NOT do onion logic.

If you write sequences (step 1, step 2, step 3...) so far it looks like your choices are SFC or drum sequencers but there is a third option. It is NOT available as an actual programming language or anything like that on any PLC that I know of but it is common with programmers that know how to use it. It's called a state machine. With a state machine you have a bunch of "states" which are usually drawn on a chart as a box or a circle. Whatever the state DOES is inside the circle. This makes the output logic really simple. If we're in state X, we do A. So ladder logic for the outputs is very simple. Then we have a bunch of arrows connecting the different states. On the arrow we label what has to happen to change states. So again...ladder logic is simple. If we are in state X and conditions C, D, and E are true then we change the state to Y. It's as simple as that. When you're debugging you can just focus on one state. You just use the chart and follow what's happening. It's also easy to do work arounds and fix problems by manually changing the state to whatever you need. The upside/downside is that with SFC's you can have multiple states all running simultaneously so it gets a lot more confusing but more flexible. You can still do this with state machines though by having more than one. Unlike an SFC and drum sequencers the arrows can go anywhere without following any kind of pattern. This makes error/fault states especially easy to do.

The downside is that state machines aren't self documenting. If you lose the chart, you're screwed. They are very hard to figure out without the diagram. But they are pretty easy to redraw if you recognize when you are dealing with one.

So the lesson is learn ladder, learn function block, and some basic algorithm stuff, and it won't hurt to learn C (you don't learn as much about machines with other languages). Learn about but don't use the others 99% of the time except when you are dealing with someone else's code.


----------



## Instrumentation (Mar 11, 2018)

MDShunk said:


> Only for math heavy things.
> 
> When I see someone programming in anything besides ladder, that automatically makes me think they're either an engineer or a recent college grad. Electricians think in ladder, because that's how the prints we're used to reading are made. Engineers think in function block, because that's how their brains are wired. College grads often pick structured text because its close enough to other languages they were taught in college. Pneumatic/Hydraulic guys like sequential function chart because that's how they were used to troubleshooting fluid power. Instruction list is really compact, so it's good for tiny controllers that might be at risk of running out of memory. Instruction list is very very similar to the old 650x machine language used on Commodore and Atari.


I've mostly been exposed to ladder where they do all counting using bcd and double words. 

Where do you even learn IL? I don't wanna master it, I just want some familiarity with it.


----------



## MDShunk (Jan 7, 2007)

Instrumentation said:


> I've mostly been exposed to ladder where they do all counting using bcd and double words.
> 
> Where do you even learn IL? I don't wanna master it, I just want some familiarity with it.


I did most of my learning on the other "languages" with Allen Bradley's "procedure manuals" and "reference manuals". They're free. Might need to sign up for knowledge base. I did take actual AB classroom training on structured text and sequential function chart, but it was a waste of a couple grand, in my opinion.


----------



## Instrumentation (Mar 11, 2018)

MDShunk said:


> I did most of my learning on the other "languages" with Allen Bradley's "procedure manuals" and "reference manuals". They're free. Might need to sign up for knowledge base. I did take actual AB classroom training on structured text and sequential function chart, but it was a waste of a couple grand, in my opinion.


I didn't know AB have information about IL, I'll look into it. I heard CodeSys is a good environment to learn IL too and I meant to find some materials for it.


----------



## paulengr (Oct 8, 2017)

Instrumentation said:


> I didn't know AB have information about IL, I'll look into it. I heard CodeSys is a good environment to learn IL too and I meant to find some materials for it.


AB doesn't do IL. Except maybe the micro or nano Pics which are Codesys. Codesys by the way is like Siemens...The instruction set initially is so limited you pretty much have to write your own library of modules to extend the base system. That's the problem thpugh...it means each program and programmer is unique, and you have to wade through layers of code to figure it out. Very slow troubleshooting. Also a reason S7 sucks for electricians.

Sent from my SM-T350 using Tapatalk


----------

