On “Not using an Arduino”

Thread Starter

Ya’akov

Joined Jan 27, 2019
9,170
No, I hadn't heard of it until now. It's a good idea, but it seems to be in a pretty early stage of development and being developed by not enough (maybe just one?) people.
Though I haven't used it, not having a need for PLCs. What I have read about it in various industry sources is those who would like to move in that direction are embracing it. I believe, based on other examples of such projects, it has a good chance of becoming a de facto standard when (and if, though that's what I am sanguine about) big industry players look for an easy in to the F/OSS world.

Only time will tell.
 
Last edited:

MaxHeadRoom

Joined Jul 18, 2013
28,700
Are you aware of the OpenPLC project?
I was not aware of it either, I certainly hope they allow the use of Boolean ladder display, if just logic block as the Smart Relays do, it won't cut it for me.

One thing I was always surprised at was manufacturers such as Allen-Bradley that pushed their PLC product, then charged an arm-and-a-leg for their proprietary S/W, which can only be used on their products anyway.
Not a good incentive to buy.
When I went with Mit's , they gave it me free. :cool:
 

strantor

Joined Oct 3, 2010
6,798
Though I haven't used it, not having a need for PLCs. What I have read about it in various industry sources is those who would like to move in that direction are embracing it. I believe, based on other examples of such projects, it has a good chance of becoming a defect standard when (and if, though that's what I am sanguine about) big industry players look for an easy in to the F/OSS world.

Only time will tell.
I assume you meant "de facto" but it is already based on an actual standard, the same standard that all mainstream PLCs are:
The OpenPLC project was created in accordance with the IEC 61131-3 standard, which defines the basic software architecture and programming languages for PLCs.
Which answers...
I certainly hope they allow the use of Boolean ladder display, if just logic block as the Smart Relays do, it won't cut it for me.
https://en.m.wikipedia.org/wiki/IEC_61131-3
Part 3 of IEC 61131 deals with basic software architecture and programming languages of the control program within PLC. It defines three graphical and two textual programming language standards:

 

Thread Starter

Ya’akov

Joined Jan 27, 2019
9,170
There is not much (any) mention of what the hardware consists of ?
Just this :You can use it to upload PLC code directly to any board or system running OpenPLC Runtime ."
Is it intended to be PC based I wonder?
From the overview:

OpenPLC Runtime is officially supported on the following platforms:

  • Arduino Uno / Nano / Leonardo / Micro
  • Arduino Mega / Due
  • Arduino Nano Every / IoT / BLE
  • Arduino RB2040 Connect
  • Arduino Mkr / Zero / WiFi
  • Arduino Pro (Machine Control and EDGE)
  • Controllino Maxi / Automation / Mega / Mini
  • Productivity Open P1AM
  • ESP8266 (nodemcu)
  • ESP32
  • Raspberry Pi 2 / 3 / 4
  • PiXtend
  • UniPi Industrial Platform
  • Neuron PLC
  • FreeWave Zumlink
  • FreeWave ZumIQ
  • Windows (generic target as a soft-PLC)
  • Linux (generic target as a soft-PLC)

So among others, you can use it under Windows and Linux as well.
 

panic mode

Joined Oct 10, 2011
2,761
When I went with Mit's , they gave it me free.
Is that Mitsubishi? if so their products are not free (and quite expensive too) but every now and then someone may be granted product for free. some 10 years ago we bought some Siemens product and not long after there was a freebee software...
 

MaxHeadRoom

Joined Jul 18, 2013
28,700
Is that Mitsubishi? if so their products are not free
It was the S/W they supplied free.
I ended up using their systems for CNC retro-fits, as they were considerably better to deal with than the likes of Fanuc. Who wanted to charge for everything, from phone support to service bulletins ! :(
 

strantor

Joined Oct 3, 2010
6,798
I had another thought about the PLC VS. Arduino topic last night on a service call. A machine wasn't behaving as expected so to find out why, I plugged a cable into it's PLC and uploaded the program out of it so that I could monitor it online. Tracing the logic through the PLC I found that I was missing a signal from a VFD. No fault on the VFD, so I again plugged in a cable uploaded the program from the VFD to see what was going on. The ability to upload and monitor are such fundamental and ubiquitous features across nearly all industrial programmable devices that I didn't even think to question it.

We know that you can't upload a sketch out of an Arduino, But can you upload an OpenPLC program out of one? I don't see anything in the documentation that indicates that you can. And while looking for an answer to this, I came across information that makes it seem like the screenshots of what I thought were online monitoring displays were actually a PLC simulator inside OpenPLC. I'm not sure you can even monitor the actual process.


I do plan to download OpenPLC and play around with it in the near future so I will find my own better answers to my questions, but until then I will just say that the ability to upload and the online monitoring feature are just as... no, more important than having relay ladder graphical display.

Without online monitoring: An arduino, once programmed, is a black box. If you can't see what step of a sequence it's on, you don't know what input it's looking for, and you don't know why it isn't doing what you expect it to.

Without upload: With an Arduino, if you don't have the original program or the ability to upload from the black box, you don't even know what the sequence is, much less what step it's on. You can hardly even make an educated guess. If the original programmer is dead or obstinate, a million dollar machine based on a $30 controller can be rendered worse than a paperweight.

This is IMO the biggest line in the sand between what is a viable technology for industry vs what is a viable technology for consumer goods: serviceability. People aren't keen to toss out big expensive moneymakers the way they do Keurig coffee makers. They expect to be able to troubleshoot it, make changes to it to suit their evolving needs, and to be able to replace programmable components.
 

strantor

Joined Oct 3, 2010
6,798
Just curious… When would you want to make online program changes while PLC is running?
More often than not, actually.

If a PLC doesn't keep running when you make a change, then the state of its outputs must be one of these 3 cases:
All outputs ON (obviously a bad idea)
All outputs OFF (seemingly a better idea)
All outputs retain last state. (eh... hard to say?)

Here's a scenario:
You're working on a bottle case packing line. The PLC controls all the conveyors; when they stop, when they start, how fast they go, how long they run, etc.
On one section a conveyor is running faster than the next one after it, so when the cardboard tray of (4) 6-packs makes the transition between the 2 conveyors, it ends up getting shoved a little sideways. You need to go into the PLC and change the speed value for when that conveyor is in the "sending case out" state.
If you stop the PLC to make this change, in each case:

All outputs ON - total pandemonium. everything turns on. Motors try to run both directions at once.
All outputs retain last state - if the ON-OFF-ON cycle is under a few mS, maybe it isn't noticed. Or, maybe some things get out of sequence. Conveyors kept moving while the PLC was out to lunch and when it comes back, things are not where they should be, and it doesn't know what to do. Usually the ON-OFF-ON is way longer than a few mS, so the 2nd scenario is orders of magnitude more likely.
All outputs OFF - everything stops. Including the case that was passing through the heat shrink oven, which takes 30 minutes to cool down. So 10-20 seconds later when the PLC wakes back up, the plastic heat shrink sleeve is already dripping off onto the conveyor but you still can't get that case out of the oven because you have to run around for 5 minutes resetting e-stops, manually jogging conveyors because cases are straddling between two conveyors and blocking 2 photo eyes (or zero) when they should be blocking only one, homing the palletizer, resetting light curtaints, etc. etc. When you finally get the line moving again, what comes out of the oven is the aftermath of a cardboard tray that was on fire for a few seconds before it was extinguished with exploding soda bottles which then melted and fused the whole mess to the conveyor.

So in this case it is advantageous to keep the line running while the change is made. And while not as drastic as all that, there are usually circumstances in every process where it is exceedingly more convenient to make the change without stopping the program.
 

panic mode

Joined Oct 10, 2011
2,761
exactly... stopping PLC is typically only practical if it is a small, local system that can be isolated from the rest. once the PLC controls something substantial (main assembly line etc.) with 2000 stations and 5000 operators, you have to make changes without interrupting production. if the change required cannot be done on-the-fly it would need to be scheduled when production is not running and that may be months away. accidentally stopping production is usually very costly as restart could be something that takes more than a flick of a button. maybe many of the 2000 stations would need own reset, unfinished parts removed or reprocessed etc.

and it gets more complex too. some systems require higher readiness. an example is a chemical plant. i was working on one making pure sulfuric acid. originally it was designed to do 2600 tons of 98% H2SO4 per day but since designed conservatively it easily exceeded design limits. yup, that is a lot of acid every day (1M tons per year). the entire plant must run in strict conditions in a very small window of key parameters (high pressure, high temperature, high velocities). and if everything is just right, pipes, heat exchangers etc. are designed to handle etching and still last up to 25 years. some components are particularly stressed and must be protected by high current. but if any of the key parameters wander outside of that small optimal window, plant starts getting dissolved by acid at a very rapid rate. so if things are out of whack, the whole thing turns into a pond in no time. so controls system need to be able to handle anything and never stop. that means system must include redundancies and hot swapping on everything. yes, one can yank the suspected faulty CPU or IO card out of the running system, and plug in replacement. redundant components instantly take over. plugging in new CPU or IO card happens the same way. if the new CPU is really new (off the shelf replacement) it will take all things from the redundant CPU, determine own ID, location and function in the system and come online. then you can replace the redundant CPU too... it was pretty interesting to watch it run smoothly while hurricane was tossing debris all around us.
 
Last edited:

strantor

Joined Oct 3, 2010
6,798
once the PLC controls something substantial (main assembly line etc.) with 2000 stations and 5000 operators, [...]

and it gets more complex too. some systems require higher readiness. an example is a chemical plant. i was working on one making pure sulfuric acid [...] the entire plant must run in strict conditions in a very small window of key parameters (high pressure, high temperature, high velocities) [...] but if any of the key parameters wander outside of that small optimal window, plant starts getting dissolved by acid at a very rapid rate. so if things are out of whack, the whole thing turns into a pond in no time.
You speak of higher stakes than anything I've been involved with. Very impressive stuff!
On a scale of 1-10, how interested would you be in getting involved with one of these projects?

will companies start using "*duino" for multi-million dollar industrial PLC?
some companies are already selling the 'success stories'
https://www.industrialshields.com/case-study-automation-concrete-plant-gr
https://www.industrialshields.com/case-study-biogas-plant-automation-gr
 

panic mode

Joined Oct 10, 2011
2,761
You speak of higher stakes than anything I've been involved with. Very impressive stuff!
On a scale of 1-10, how interested would you be in getting involved with one of these projects?
i worked in many industries (chemical, automotive, nuclear, food etc.) and projects of different scale.

technology is always cool and each industry or work type interesting at some point... but each type of work comes with downsides too and for me .... the key is finding what works for me.

i liked chemical and nuclear for learning factor on process itself. but i would not want to work in them any more. lots of paperwork and very little action. one project takes two years on average. this is good for people that like to take it slow. it is just not for me - most of the time i was bored out of my mind. if there was something more to do in between, i would happily rate it higher but i was not allowed bring my own computer or install my software on company's machine etc.. so could not be developing or learning something i was into or could use elsewhere. too much idle time is not good for me, therefore i would say 3... (not very interested).

automotive is pretty much the opposite. a lot of different things every day, no time to get bored. usually one is working crazy hours and juggling bunch of projects at the same time and each is on very short and unrealistic timeline. may not be a rocket science but there is plenty of different products one encounters many client have different specs on what to use. also this is one type of the industry where clients know pretty well what and how they want so, meet their specs and life is good. plenty of places that would happily hire you. great for young ones to gain tons of experience fast. i don't mind working hard but it gets real problematic for family life. by applying right strategy, libraries and training others i was able to balance it a better... right now i would rate it 7 or 8.

i did some work in food plants too and for the most part - i did not like it. things one can see or smell that just turn my stomach... i would rather work in a mine or foundry for a year than spend a day in a meet processing plant. even places making snacks, waffles, candy bars etc. are fun for a week but i find the smell is often overwhelming. i know that people get used to it, but - thanks... not for me. so i'd call that 1 or 2 if dealing with raw products. on the other hand doing some automation already packaged goods is very nice. specially if it is something you like but there has been an accident like smashing into pallet of nice beer.

bio and medical... i was doing some programming for company that made equipment for testing body fluids (blood, urine...). working on new equipment before delivery was nice - using apple and cranberry juices as substitute... but i would not want to be around real thing. ;)

working with new and different technology all the time is exciting. but i got my fill so i prefer what i do now... robot programming, application development, some hardware design... plenty of new things, pretty good balance and one who does not like playing with robots?
 

MaxHeadRoom

Joined Jul 18, 2013
28,700
i did some work in food plants too and for the most part - i did not like it. things one can see or smell that just turn my stomach... i would rather work in a mine or foundry for a year than spend a day in a meet processing plant.
I concur. Try a Hog slaughter-processing plant, It took two wash cycles to get the smell from my clothes. o_O
 

djsfantasi

Joined Apr 11, 2010
9,163
More often than not, actually.

If a PLC doesn't keep running when you make a change, then the state of its outputs must be one of these 3 cases:
All outputs ON (obviously a bad idea)
All outputs OFF (seemingly a better idea)
All outputs retain last state. (eh... hard to say?)

Here's a scenario:
You're working on a bottle case packing line. The PLC controls all the conveyors; when they stop, when they start, how fast they go, how long they run, etc.
On one section a conveyor is running faster than the next one after it, so when the cardboard tray of (4) 6-packs makes the transition between the 2 conveyors, it ends up getting shoved a little sideways. You need to go into the PLC and change the speed value for when that conveyor is in the "sending case out" state.
If you stop the PLC to make this change, in each case:

All outputs ON - total pandemonium. everything turns on. Motors try to run both directions at once.
All outputs retain last state - if the ON-OFF-ON cycle is under a few mS, maybe it isn't noticed. Or, maybe some things get out of sequence. Conveyors kept moving while the PLC was out to lunch and when it comes back, things are not where they should be, and it doesn't know what to do. Usually the ON-OFF-ON is way longer than a few mS, so the 2nd scenario is orders of magnitude more likely.
All outputs OFF - everything stops. Including the case that was passing through the heat shrink oven, which takes 30 minutes to cool down. So 10-20 seconds later when the PLC wakes back up, the plastic heat shrink sleeve is already dripping off onto the conveyor but you still can't get that case out of the oven because you have to run around for 5 minutes resetting e-stops, manually jogging conveyors because cases are straddling between two conveyors and blocking 2 photo eyes (or zero) when they should be blocking only one, homing the palletizer, resetting light curtaints, etc. etc. When you finally get the line moving again, what comes out of the oven is the aftermath of a cardboard tray that was on fire for a few seconds before it was extinguished with exploding soda bottles which then melted and fused the whole mess to the conveyor.

So in this case it is advantageous to keep the line running while the change is made. And while not as drastic as all that, there are usually circumstances in every process where it is exceedingly more convenient to make the change without stopping the program.
Thanks for your great response. Obviously from my question, I have zero understanding of PLC systems. In fact, I once lost a job because of that.

It appears to me that the frame of mind for a PLC is vastly different than a procedural programmed system. All of the issues you cite can be simply resolved in software/hardware. Or at least in my mind

Thanks
 

strantor

Joined Oct 3, 2010
6,798
Thanks for your great response. Obviously from my question, I have zero understanding of PLC systems. In fact, I once lost a job because of that.

It appears to me that the frame of mind for a PLC is vastly different than a procedural programmed system. All of the issues you cite can be simply resolved in software/hardware. Or at least in my mind

Thanks
I think I understand why you would think that way. I do a lot of non-PLC programming too, so I have one foot in each frame of mind.

How often in the development of your software
Scratch that...
How often in the use of paid, "stable release" software from a reputable source other than yourself (ex: MS Office), are you met with a weird error or an unresponsive window?
For me, pretty often. At least once per week. If I went a whole year with no hiccups I would consider simulation theory in earnest.
Now imagine if any of these events could result in death, maiming, or the loss of millions of dollars.
Once in a year would be too often.

The instruction sets in a PLC are simple and have predictable, stable behavior. Decades of experience have gone into making them as safe and reliable as possible. There are reasons behind the way things are done, and most of them are documented on a plant floor somewhere in blood.

Sorry if you've heard that mantra before. I feel like I might be banging a drum that's banged too often, but that might just be because I hang out on PLC forums too. Just trying to explain the PLC mindset because you said you have zero understanding of it.
 
Top