As a professional nerd, who hopes to make a successful career out of his nerdism in the future, part of my studies requires me to come to grips with all sorts of software. There’s the basic stuff like Word and Excel, naturally, but there is also more specialized software- and not just for counting cards in online poker. The ones I took up learning on my own would be software like Unity, Godot, Paint.net, Audacity, and Blender.
However, now that I’m actually studying in one of the overpriced elite institutions known as “University”, the scope of what I need to know has exponentially exploded. There are two new pieces of software that I have specific lessons to learn. One of those is SolidWorks- but I’ve only messed around with that behemoth for a couple of minutes. The other software that I have used is called ZelioSoft, and while I’m far from being an expert with it, I’ve used it enough to offer up some amateur impressions.
What is it?
Unlike almost all the other programs I mentioned above, ZelioSoft is proprietary software. It is made by one company, to be used for that companies products. The company in question is Schneider Electric.
By the way, when I went to their website, I had a few minutes of trouble actually trying to figure out what the company actually did because it was plastered with environmental slogans assuring me of how “green” and “eco-friendly” they were.
What my professor had a hard time getting across to me was that ZelioSoft is made for programming PLC units, which stands for Programmable Logic Controllers. They’re very common for various engineering systems that require a bit of logic in order to operate.
The most basic system would be connecting a button to, say, a garage door. The button is connected to a motor which raises the door. You could manually hardwire it all together, but for more complex systems, all the mechanical parts would get immensely complex very fast. Not to mention expensive. And heavy. Who would want to lug all that? Even for the garage door example I mentioned above, you would need a way to open the door, a way to close it, and some sort of safeguard to prevent the motor from trying to pull open the door further than it needs to and burning itself out in the process.
To replace all of that, we can use a PLC. Each PLC box has a limited number of input (which receive a current) and outputs (which send out a current). There are loads of different versions of PLCs from a ton of different companies, many of which have their own software, although the underlying logic is usually the same.
Speaking of which…
In place of what you would normally think of as programming logic, ZelioSoft is a visual interface, which then compiles down its schematics into whatever format the PLC unit itself can actually interpret it (machine code, probably, but don’t quote me on that).
Ladder Logic gets its name from the fact that schematics made with it look vaguely like a ladder. Truly, engineers are the most creative of names- right behind the guy that decided to call the event where an infinitesimal point from which all matter in the universe exploded “The Big Bang”.
At its core, Ladder Logic is a pseudo combination of typically programming and elementary circuits. There are the physical components within the PLC, such as the inputs and outputs which have to connect to sensors or motors of whatever, and there’s the CPU, on which the program itself is run, and all the calculations for which outputs should be powered is made. Unlike a traditional computer, PLCs only run a single program, but the ability to reprogram them when necessary it was makes them so useful. If there’s a fault with my garage door logic, or I need to adapt the program to a different setup, I only have to rework the program and not fiddle about with wires, relays, and circuits.
Another advantage is that the software can make use of various virtual modules to make for more efficient logic. These modules include Counters, Timers, Counter Comparators, Clocks, and Virtual Circuits. By taking advantage of these virtual modules (meaning, things that exist only in the CPU and not a physical component), the PLC can be programmed to perform all sorts of useful tasks- from dealing with Garage doors to figuring out which floor the elevator should go to next.
The other major feature of the software is the ability to simulate circuitry. I can design a complex schematic involving said timers, counters, and virtual circuits, and ZelioSoft can simulate for me the results. When working with the software, I found myself swapping back and forth between the editing mode and simulation mode every other line, just to make sure that whatever I was working on at the time was doing exactly as I intended- and not counting backwords or working in reverse for some reason.
Funnily enough, I had that exactly happen when making a simulated Menorah. I set it up so that the lights would turn off at night (every other twelve hours), and a new light would be activated every twenty four hours. Well, a bit of testing revealed that all my lights were turning off during the day instead of at night. Whoops.
This leads us almost directly into my main complaint about the software. Why is it better than a Custom IDE with a unique programming library? The ability to visualize and simulate the results of the software is all well and good, but it feels… limited. This may be due to my inexperience with the software, but it seems like there are various logical functions that should be there but aren’t. It’s like Phantom Limb syndrome, but for programmers.
I recently had to do an exercise where I had to make a traffic light. The traffic light had five different states: Green, blinking green, yellow, red, yellow-red. It had to stay on each of these lights for a specific period of time and then loop through continuously.
I’m proud to say that I succeeded too, where several of my classmates didn’t. I used a timer and a counter to keep track of how many seconds had passed and then used Counter Comparators to determine which lights should be on at what time. That’s all well and good- but I nearly wasn’t able to do it because ZelioSoft only lets you use eight Counter Comparators, and for my basic traffic light, I ended up using all eight of them (some optimization could reduce that number, but still).
Why is the software so limited in this respect? It seems like a basic functionality with loads of use-cases that’s being entirely handled by the CPU. Limited inputs and outputs, I understand, as these are actually bits of physical hardware that are installed on the machine. If it’s a memory issue, there are twice as many timers and counters. It just seems like such a weird limitation for a feature that essentially amounts to a less functional IF statement.
A secondary complaint voiced to me by my friends is that actually understanding what one needs to do in order to make the desired event happen. I explained that the logic that was required was similar to that of programming.
After all, you’re given a set of logical operators and asked to make a thing happen. Just because it’s being done visually doesn’t make the underlying logic any different (hence my complaint above…). So for someone that hasn’t had that programming experience, wrapping their head around the software can be a bit disconcerting, although I think this is something that can be fixed with practice rather than anything specifically wrong with the software itself.
My Overall Impression
Basically, the impression that I got with ZelioSoft was that the software was good for some specific use-cases but not so good for a far more intricate system. It’s very good for what it was designed to do but can’t be easily scaled upward.
Of course, this is merely a first impression. For all I know, there could be a button or a setting or a set of settings that I have yet to come across in my studies / faffing about that unlocks a whole new world of wonderful buttons and modules for advanced users to play with.
I know for a fact that there are other Control Setups than the ones I have used, and it may just be that the configuration I was told to use is just limited for some reason. Maybe there is an actual, intelligent reason why there are only eight counter comparators, despite the fact that counting is one of the easiest things for a computer to do.
Or maybe I’m just a dumdum.
I’ve often found that I don’t really get to know a software until I’ve really sunk my teeth into it for a project. The closest I’ve gotten to something like that with ZelioSoft is my traffic light example up above, and that only took me ten minutes. This is probably the same reason why my friends are struggling with programming and with this software.
It’s because none of them have sunk their teeth into a project where they really got to know the ins and outs of programming- or ZelioSoft, in this case. However, my gripes with the educational system (of which I have many) and the lack of project-based learning aren’t the subject of this article.
To close out my first impressions, ZelioSoft is a perfectly functional piece of software that’s probably a lot better than I’m giving it credit, and it’s likely due to my inexperience (AKA: User error) that I’m not getting as much out of it I think I should. Or maybe I’m projecting various frustrations with my classes onto a piece of software that doesn’t deserve it. Either way, with time and patience, I have little doubts that the software is going to achieve exactly what it’s intended to do for me… once I stop being a whiny little dumdum.
Source: Plato Data Intelligence