No-code in manufacturing: automation without programming
smartindustry.com
smartindustry.com
Coding is really not a limiting factor in manufacturing automation. For decades everything has been built around being controlled by first relay logic and then PLCs, which implement multiple languages like ladder-logic which are basically already drag and drop. Most sensors are simple - generally they provide a boolean on/off signal, and occasionally there's an analogue output which is pretty easy to interpret. Physically placing and wiring the sensors correctly is the hard bit, not interpreting the data. There are more advanced systems, like computer vision, but they all already have user interfaces which allow you to interact with them without coding. In fact it's actually a real pain in the ass that in most cases there is no coding option, and thus everything has its own proprietary and arcane method of operation and its unreasonably difficult to get things to talk to each other.
Further, generally coding skill is not particularly lacking. Assembly-like languages such as G-Code are widely used by machines and many tradesmen know enough to hand edit at least simple programs, and the engineers on staff are generally comfortable with more advanced programming. While they're a far cry from software developers, but it's sufficient for the relatively simple cases that a no-code solution might be suitable for.
The main issue for automation in manufacturing is not versatility but reliability. A few hours of downtime can cost tens of thousands of dollars, and a machine crash might easily cost 8 figures, to say nothing of the potential for injury or even death. Whatever difficulty there is in coding for manufacturing environments is in structuring these programs such that they are consistently accurate and fail safe. Personally, I don't find anything that makes it easier for someone to tell a machine to do something stupid particularly appealing.
We want the money back guarantee because we think the specter of you making no money will motivate you not to fuck us over. Your guarantees mean next to nothing, and the manpower involved in getting and cashing that check might eat most of it up anyway.
In my experience it is. Sure there are people who can go in and hack some simple code, but they typically know nothing about the clean code style that you need to make millions of lines manageable. They do okay with 500 lines programs where it isn't hard to know the whole, but don't put them on anything more complex
If only vendors didn't force users into closed, proprietary IDEs which lack many basic syntactic checks, developing for industrial control system would be much more pleasant.
For reference, I'm currently dealing with a customer whose most complex machine (which automates a job that used to take two people per shift) runs on 128 lines of code.
There's definitely a need for some kind of simplified programming that's understandable at different levels. Simplest is for an operator, then by a maintenance technician, by a line engineer, by a controls engineer at an integrator (like me), and by applications engineers at manufacturers and distributors. The operator needs a minimal number of adjustments - this part number might have a harder material and need to run at a reduced speed, or be highly porous and need more adhesive dispensed. That kind of hour-by-hour adjustment is typically custom-built into an HMI by the controls engineer. The tools themselves need to be debugged by maintenance techs, the robot code on a teach pendant or the ladder logic in a PLC are those languages. Hopefully, the maintenance tech doesn't have to touch the structure of the program, just some of the conditions or values for certain steps. Programs increasingly expose data at certain parts of the cycle to external databases. That's the "4IR" or "Fourth Industrial Revolution" or "Industry 4.0" component, or just a spreadsheet export, depending on your altitude. T Whether that data is analyzed in Excel, an MES dashboard, or a Python script depends on the consumer.
There are DSLs at all levels, none of those people are writing assembly language. But "No code" proponents typically remove too much flexibility to the level of the implementor of the product, far removed from the end user.
Maybe in adjacent fields no code and IoT is a thing but in mainstream manufacturing automation I'm not really encountering it. It feels like we just moved a bit past PLCs and proprietary field busses. The main added value is not normally in rapidly changing SW that's generated by non-programmers.
Not only do they remove flexibility, but they often introduce "magic" that is too difficult to debug when dealing with live industrial systems. It's fairly simple to go through a bunch of iterations with a debugger in a standard programming environment. As soon as your dealing with a sprawling realtime physical system, you can't do that.
This piece is a fluff piece at best. Looks like a "guest blog" entry to advertise for the writer's company [0]
The problem with no/low code is it mirrors a DSL for whatever problem being solved. Anything more general becomes a programming language.
Maybe my understanding of language is limited? I'd love to be wrong about this.
Yes! I've explored visually representing functions, and state machines, but it all feels very limiting compared to written language. I think more research could be done in the visual coding area for expressing thought, because I really want coding to look like something out of neon genesis evangelion--but IDK, written language isn't bound spatially. And in written language, it's so easy to express contradictions, which is an important part of developing a system. I think MC Escher is probably the most advanced research we have in the area of visually representing recursion and contradictions lol.
This is the entire advantage too. If you read this like a hard constraint, your new job is to simply make sure you develop a high-quality model of the problem domain. The rest could be put on the business owners, especially if you can teach them a little bit of SQL (the world's most popular DSL).
1. We need a richer library of standardized DSLs for various real-world environments, where the power of a full PL is perhaps too dangerous without excessive training.
2. The method of specifying algorithms in plain text (i.e. "code") is not intuitive or unapproachable for large numbers of people who could otherwise benefit greatly from the ability to "program" the tools they use.
We could do a lot worse than excel in a lot of areas I think.
Nothing in particular has been solved by Excel, it's just that the languages that are built in are disdained by software engineers so people assume there's something special about them. It's cultural. You can write a Lisp in VBA if you want.
Microsoft's attempt at low/no code appears to be Power Automate, and it's awful (imo).
Excel’s market power is in what you can do in the formulas, interactive exploration, and incremental progress not in the (fairly awful dev-experience) VBA.
Well, then again, I also think you are also falling into the trap of underestimating the amount of VBA code, and businesses built on it, because of your cultural disdain for it.
I’ve written some VBA; the DX is terrible, but I have massive respect for what they’ve accomplished and I readily reach for it when it’s the right tool. I wrote some powershell for a manufacturing site a few weeks ago. Didn’t enjoy doing it, but it was the right horse for that course.
#1 is a different but similar problem. "If only language itself was simpler, people would have an easier time writing novels."
I don't understand how that can possibly substitute for programming, because the reuse and composition of logic is the whole point...isn't it?
It's also the source of complexity, so just making a visual, drag and drop interface isn't going to make development more accessible, I would think. Less, in that it's more cumbersome and expands visually.
My assumption has been that this is an emperor with no clothes that is invariably sold to decision makers who won't use it.
But maybe there's more to it?
Complete with debugging and maintenance and all of the other things that make "coding" hard.
From Wikipedia: "Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a specific task."
See https://en.wikipedia.org/wiki/Computer_programming.
The same claims used to be made regarding Programmable Logic Controllers (PLCs), despite the word programming being part of the name.
I really want visual programming to succeed, but there's something fundamentally harder with it. I'm starting to think written language can't be beat for expressing thought. Visual programming is probably a great introduction to computer programming for people to quickly automate simple tasks, but I rest assured that as soon as they want to describe any complex process, they're going to fall into written language like the rest of us--or do lots of copying and pasting and create a mess. To write is to think, I think.
For most people, trigonometry is enough to build stuff with. And for many ideas, a diagram communicates better than talking or writing it into an excel sheet.
It's not how we (as a society) need to handle this.
Edit: i.e. that is not empowering the illiterate.
As a side-effect of pushing "automation" agenda corporations will not have needed workforce to accomplish the task.
The marketing delusions and wishful thinking are popular methods of self-destruction. Sadly in the corporate world, the more you climb the less oxygen you get. And with lack of oxygen human brain is prone to malfunction.
You can have some form of automation, but the need of competent programmers will not vanish into the thin air.
>Is PHP worth learning in 2021?
The first google result:
PHP is an open-source programming language that is completely free, and because it supports all the main browsers, it is highly scalable. ... PHP is not dying and is definitely worth learning in 2021 and beyond. There are still thousands of jobs available for new PHP programmers
https://www.google.com/search?q=Is+PHP+worth+learning+in+202...
I’m calling that out as a straw man. Who uses PHP to run gear / robots?
I can give another example: COBOL. https://www.makeuseof.com/what-is-cobol/
The idea behind this is that marketing and agenda driven "visions" often paint wrong picture towards an ideal future. And reality always finds a way to strike back.
No-code/low-code has been a game changer in many ways for businesses. It lets people dip their toes into improving their efficiency and productivity with low-hanging automations and simple apps. These things can have huge payoffs. And if you stick within that realm, it actually is a paradigm-shift to be able to build solutions as a non-tech person.
But there's always a point where you:
1. need more complex no-code/low-code solutions to get big pay-offs 2. have a mess of so many no-code/low-code solutions that they end up causing tons of maintenance/issues and you have trouble getting all your separate solutions to play nicely together
You end up spending a lot of money to get someone who is very advanced with those no-code/low-code tools (which usually ends up with code solutions inside of those tools), or end up building completely custom solutions anyway.
Also, there are a lot of nuances in what could be considered no/low-code. This article isn't too clear on which types of applications are considered no/low-code, and throws out everything from cellular-IoT infrastructure to MES. Is something like Tableau low-code? Or are we talking more about the Zapier kind of tools? Both of those examples have giant roadblocks once you get to a certain point, where you need some type of dev/architect knowledge to really get the most use out of the tools.
No, you didn't.
The quiet part is "as a Service".
The result is, that a lot of under the hood intelligence is automated. And the inputs, outputs and process selection instead of process design are all that's left to hype up as a differentiator in an ever increasingly commoditized market.
I dunno. Maybe its time to get coffee. It is being a long day.
Because they don't know how to read code (or substitute in any of the other examples I gave), the outsider assumes that that's the hard part: "If the code/jargon/equation was simply in plain English, anybody could program/do science/understand math".
But they're wrong. Anybody who spends enough time to pick up the actual underlying skill (whether it be programming, mathematics, or science) will trivially pick up the language of the trade, which, on the whole, exists because it expresses complicated ideas in a convenient way.
The hard part of programming is solving the actual problems, not expressing those solutions in code. Likewise, the hard part of electrical engineering isn't reading circuit diagrams, or the hard part of being an author is knowing English. Thus, if you want to make programming your system easier, you don't throw out the idea of code. You solve as many of the hard problems as you can, and then supply those solutions as a library.
I have nothing nice to say about LabVIEW. It's the very reason I changed my career from electrical to software engineering.
Programming graphically has its merits, but I think for large organizations it ultimately becomes a huge headache when employed in production environments and that they would be better served by a text based programming language such as python. In my opinion, it works far better in lab environments and for rapid prototyping.