Learning automation efficiently. What is the way to do it.

Thread Starter

Mikeysp

Joined May 11, 2016
37
I want to learn automation technology. Is there a zero to hero approach to learning this? Book, course, other?

My ultimate goal is to be able to integrate automation into a product(s) I will develop in my garage.

PLC, Arduino, ESP32, Rasberry Pi all seem to do the same thing, Input a = output b?

I have tried for days to know what category all these are in. I read, watched all the differences, but I have yet to know what they are. It seems they are all essentially the same: an input can be made to output something else. Some will only do less actions, others can do multiple actions. Some are made for harsh environments; others are more hobby focused.

Where do I start?
Do I skip Arduino and go straight to ESP32?
Just running around in circles online has been helpful, but not very efficient.

Thanks for some direction.

-Mike
 

nsaspook

Joined Aug 27, 2009
12,266
The key to automation is not Input a = output b, that's dumb I/O that almost anything can handle. The key is understanding the relationships of cause and effect.

What do you want to do and what makes it do it. Start simple.
 

MrChips

Joined Oct 2, 2009
29,809
Automation is a a very broad field.

It could mean choosing lottery numbers at random.
It could mean turning on your porch lights when someone approaches the front door.
It could mean having a hot meal ready for you when you come home at 5:30pm from work.
It could mean building a space booster rocket with a 3D printer.
It could mean launching and landing a Mars explorer on the surface of the planet.

You need to be specific on what you mean by automation and provide us with some examples of what you want to accomplish.
 

Thread Starter

Mikeysp

Joined May 11, 2016
37
OK, I see PLCs, Arduino, Rasberry Pi, ESP32, and associated terms such as RTOS. However, I want an overview in understandable terms of the whole.

I am not trying to build anything specific yet. So, I don't need info on RTOS to build an engine computer. I need a broad knowledge, so I know when to use what. So, in somple terms, How would I gain the knowledge to answer which tech to use for each of the situations above. Mind you, I don't want the solutions, I want the broad understanding, an overview, of the technologies.

This would be a start.

Thanks.
 

Papabravo

Joined Feb 24, 2006
20,598
OK, I see PLCs, Arduino, Rasberry Pi, ESP32, and associated terms such as RTOS. However, I want an overview in understandable terms of the whole.

I am not trying to build anything specific yet. So, I don't need info on RTOS to build an engine computer. I need a broad knowledge, so I know when to use what. So, in somple terms, How would I gain the knowledge to answer which tech to use for each of the situations above. Mind you, I don't want the solutions, I want the broad understanding, an overview, of the technologies.

This would be a start.

Thanks.
IMHO there are no shortcuts. I couldn't even tell you where to begin and I was in the automation business for three decades.
 

MaxHeadRoom

Joined Jul 18, 2013
28,024
I have worked in factory automation practically all my working life that covers many decades.
And this now covers many disciplines under the umbrella title of Mechatronics.
It includes a combination of robotics, electrical, electronics, computer science, telecommunications, CNC systems control,
If intending to start with some DIY products, you could start with PLC in a small way such as one of the Smart Relay products.
 
Last edited:

geekoftheweek

Joined Oct 6, 2013
1,093
If you are doing time critical as in fractions of a second could be the difference between success and failure then stick to PLC and simple microcontrollers like the Atmel (Arduino), PIC, and some others. If you have some wiggle room in timing then ESP32 and PI could be useful. There is a PI based PLC project out there that may be helpful too. The reason I mention timing is some things have a lot more overhead when it comes to handling events than others. Beyond that what you need in terms of built in peripherals would be the next thing to consider.
 

jiggermole

Joined Jul 29, 2016
115
As far as widely available material for small scale automation Adafruit and Sparkfun have families of boards tailored to different kinds of automation. You can use arduino with some relay extension boards to drive a bunch of things. You can definately go hard and start with plcs or industrial controllers but I think that would be a bit beyond the scope of what you intend on doing. And the learning curve would also be something to take into account. Learn C or Python for the arduino and you can take that programming knowledge to a bunch of different platforms. Learn the propriatary programming languages of the the different plcs and you are slightly stuck with them. You can carry methods over from one kind of plc to another but there are specific ways certain manufacturers do things that won't translate. I would just take that into account as you go forward. The resources provided by #6 are an excellent source it looks like and should get you closer to where you want to be.
 

GetDeviceInfo

Joined Jun 7, 2009
2,180
There will be ‘automation’ devices galore that will service your needs, you can be sure of that. I would suggest starting at the other end, meaning, define what the outcome would be. What are you trying to accomplish, then breaking that down into steps that get you there. For product development, a 3D printer might be a good investment?
 
Last edited:

strantor

Joined Oct 3, 2010
6,743
As far as widely available material for small scale automation Adafruit and Sparkfun have families of boards tailored to different kinds of automation. You can use arduino with some relay extension boards to drive a bunch of things.
Yes and the good part about these sites is that they have excellent tutorials. As well, the products are hobbyist products and therefore discussed on many forums and help is readily available for free.

You can definately go hard and start with plcs or industrial controllers but I think that would be a bit beyond the scope of what you intend on doing. And the learning curve would also be something to take into account.
I don't think this is "going hard" and TS's scope was not well defined. IMO the graphical nature of PLC programming is more intuitive than text coding. While the "community support" isn't as good, and manufacturer support is often pay-to-play, I think it is easier to just understand, without help.

Learn C or Python for the arduino and you can take that programming knowledge to a bunch of different platforms. Learn the propriatary programming languages of the the different plcs and you are slightly stuck with them. You can carry methods over from one kind of plc to another but there are specific ways certain manufacturers do things that won't translate. I would just take that into account as you go forward.
I am fluent in Python and speak just a little bit of C, and have experience with many different PLCs. I agree with your sentiments on Python and C but I think that there is much more in common from one PLC manufacturer to another than there is different. Especially among those which are IEC 61131 compliant. Most of the difference is in the IDE. But my opinion might not be shared by someone moving on from their very first PLC platform to their second platform.

I have worked in factory automation practically all my working life that covers many decades.
And this now covers many disciplines under the umbrella title of Mechatronics.
It includes a combination of robotics, electrical, electronics, computer science, telecommunications, CNC systems control,
If intending to start with some DIY products, you could start with PLC in a small way such as one of the Smart Relay products.
I agree. PLC is a great place to start.

My recommendation is to get a PLC and play with it. Something cheap, with free software. Check out Click or Productivity PLCs from AutomationDirect, Opto22 PLCs, or CoDeSys (complicated for beginners, but free). Connect some buttons, some lights, analog sensors, make it do something. Then make it do something else. Try out all the different instructions.
Then get an Arduino, do the same thing. Buttons and lights. Various sensors, shields, servos, etc.
Then make them talk. Using an RS485 shield or something, make button presses on the Arduino turn on lights in the PLC and vise versa.
Maybe play around more with arduino, with some I2C and SPI widgets, learn to make things talk. Because device-device communication is a fundamental (perhaps the most important) part of automation. On that note I can say that I found this book very helpful, although it may be obsolete now)
Then get a Raspberry Pi into the mix, learn some Python. Get RPi in communication with, and Python exercising control over the Arduino and PLC.
Maybe get a PICKit and/or delve into ESP32.
Maybe take a dive into "smart home" devices, if that's the direction you want to go with "automation."

What I just described above is not a weekend endeavor. If you can get comfortable with the above in a year then you are doing very well.
If you do that then you will have answers to all your questions and you will understand the applications for different technologies. In the course learning enough to do that you will necessarily discover the "why" behind truisms like:
- arduino is a hobbyist platform while PLC is an industrial platform
- Raspberry Pi (or other computer) is way more powerful than arduino or PLC in a supervisory role but isn't well suited for real-time control of critical operations.
- PIC/ESP32 microcontrollers are best for from-scratch PCB devices and offer more versatility but represent a higher learning curve than Arduino
- Smart home devices are not reliable enough for industrial applications

From there you may want to go in a number of directions; FPGA, AI, Robotics, Motion control, Machine Vision, etc.
 

MaxHeadRoom

Joined Jul 18, 2013
28,024
One of the features that outlined one of the requirements demanded of the original PLC, was that the 'real time' logic of the system was available to view in order for maintenance personell to rapidly trouble shoot any problems that might occur.
Just about all CNC systems also include a PLC with these characteristics, in order to carry out the M/C I/O as well as a the motion controller.
 
Top