In the same way that almost nobody writes anything on bare metal anymore, hardly anyone writes low level code either, because groups of routines have been written that are adaptable to almost anything .
Oh, you still have to learn code, the way students once had to learn multiplication tables, but you fought through it and tried to forget it as much as you could.
Programming of controls has a lot to do with what you want them to do. it's not whwt they used to call "Artificial intelligence" but it's useful enough, for specific purposes.
Most of what people do is use prepackaged routines. Most of the routines are in the public domain, and they can be used by anyone. Some specific ones have to be licensed. I have a developers license that allows me to use practically anything, provided I get my customer to purchase individual titles before production starts.
So when I put a system like this together, it's as simple as putting on the headset and calling in routines. Putting them where they belong. Passing through the arguments that allow them to work properly. Testing the outcome.
Knowing how the individual machines function is vital. So is knowing what their limitations are. So it's not as easy as it sounds; though a lot of the footwork has been done, the ability to take all the individual pieces and make them a useful whole is like a jigsaw puzzle and a balancing act and a race to an impossible finish line.
Once in a while, though, there arises a situation for which there is no canned cycle. This happened friday as I was setting up a new system. I had the headset on and was directing traffic.
"Give me a 64 bit Hex/BCD convertor. yes, generic is OK.
Hook the output from that to a linear motion control to transfer the A parts to the first cell. Use an Appomatox or an Nframe. Link that to the drive at address 192.168.0.35."
"Use..... crap. WHat do I use to tell the first cell how to acquire the part?"
The net took my question seriously and started making suggestions "Scratch that. Hang on a bit"
I took off the headset and started digging around on my phone for a routine. As they scrolled by on the screen it began to dawn on me that there was nothing written for this, that the system was so new that no way had been established to communicate with it.
So I pulled out a keyboard and sat down to kick something together. The new system has all the hooks listed and it's not long before I have a suitable routine. I send off a copy to confirm the copyright, and put it in the data stream. Now everytime someone needs ot connect to this machine they'll use a Morgan 56.