Tachyon based PLC implemented as a state machine
ErNa
Posts: 1,752
in Propeller 1
I want to start up an initial project to realize a PLC based on Tachyon, currently using a P1, later move it to the P2 and so on.
The idea is to define a list of states where every state corresponds to a set of output signals. A transition to another state takes place whenever a certain condition is reached. Then the outputs are changed and a new state is reached.
The PLC is list-oriented. That means for every item of a given character a list is created. Those items can be lists also. In modifying the lists the program is changed, due to the interaction possible in Tachyon at runtime such an PLC should be extremely flexible as new words can be created on the fly.
Do I have to invent the wheel or just to reinvent? Anybody knows of such a system? Thanks, ErNa
The idea is to define a list of states where every state corresponds to a set of output signals. A transition to another state takes place whenever a certain condition is reached. Then the outputs are changed and a new state is reached.
The PLC is list-oriented. That means for every item of a given character a list is created. Those items can be lists also. In modifying the lists the program is changed, due to the interaction possible in Tachyon at runtime such an PLC should be extremely flexible as new words can be created on the fly.
Do I have to invent the wheel or just to reinvent? Anybody knows of such a system? Thanks, ErNa
Comments
I am certainly not a fan of ladder logic.
Forth would be a retrograde step because Joe Schmoe would be lost.
@ErNa I'll be watching closely your efforts as I like the idea . I'm not promising my support software-wise, not just yet as I'm a noob but I'll keep my fingers crossed.
At one stage I wanted to use these newer multi-level PLDs but didn't want to spend the $$$$$ for the compiler and programmer etc. So I reverse engineered the programming protocol interactively using Forth to try this and check that etc. Then I wrote the PLD compiler in Forth that just changed the way it handled console text so I was able to input equations and configurations in essentially the standard PLD language, which compiled it and programmed it at the same time. The source for this compiler was originally 50 pages of Fortran code that was reduced to a mere single page and ran on a tiny part of a little 8-bit Forth system.
Initially I had tried to "convert" the Fortran code into Forth but it was a horrible horrible mess. However, once I started "thinking Forth" it was a piece of cake. The interactive P2 assembler uses Forth words but processes regular assembler syntax yet it is not running "an assembler program", it is still interactive Forth.
I found the same too with industrial control as well and while Blockly has predefined blocks, and hopefully the ones you need, Forth on the other hand lets you build your "blocks". Tachyon has proved itself over the years as the go-to gets-the-job-done method for the P1 when others look promising for small demos but quickly run our of memory or run too slow etc.
I think Joe Schmoe gets lost even with Blockly type "programming" (ahem), unless there is a block there that does what Joe wants.
And that's the beauty of the beast (Tachyon Forth). That's why I so desperately need to get that beast on my ugly dev board as soon as possible (and that would be today at the latest).
Forget Joe Schmoe. He just needs very few (1 or 2) buttons he could press with the screwdriver he just happens to hold in his hand while doing so. If he's smart enough he'll put away that screwdriver he's holding and use his thumb instead. That may seem to sound rude but it's true.
With an P2 on my desk and asseccory hardware scheduled for today and Peters boards in the advent we'll should see progress we never saw before and noone could imagine, even don't feel it's possible!
Oh, other times you get it back and there is absolutely nothing wrong with it. Despite instructions and labels that say "+24VDC" they can't work out how to connect it.
Joe controls: 2 buttons, one marked "yes", one marked "no".
Joe whines: it's too complicated, can't we just have one button.
@"Peter Jakacki" You've just given me a good morning laugh and I've only had three hours of sleep last night. Thanks. Now I know things are all the same everywhere in the world. At some places a bit better or a bit worse here and there but still the same.
I'd like to share a true experience:
I was the founder/owner of what became the #1 producer of CNC tube benders for the US auto industry. I had a unique approach in that I had two business cards. One had the title of President and the other was Service Tech.
I would visit the front office to discuss commercial issues and then I'd run back to the hotel and change into my service tech uniform and grab my tools.
I would spend the rest of the day hanging out on the plant floor with maintenance personnel and operators. I was up against one competitor for a very significant new order. I only learned from an operator that; although they preferred my software and machine build-quality, all the operators preferred working on my competitor's machine. I was stunned and when I asked why, he told me that my machine requires two footswitch presses whereas the competition only requires one. They found this irritating. I made a software change, there and then, updated all the machines, bought a few pitchers of beer in their after-work bar and I had friends for life. I got all of their business.
For one we have Joe Schmoe - he recommends us to his management and has the ability to break whatever there is to break no matter how well built (hence our services are needed) and for the other one we have Joes' management that only cares for the costs of lost production and (being cheap) employs our friend Joe to take care of that very production. We also have one, but a powerful enemy and that is "time to fix".
There are also management type Joes as well. Don't ever let them specify what they need. It's like when Homer Simpson got to design his dream car, and his half-brother Herb built it. Now, Steves, I've had better luck with.
From my first non-industrial Forth project with POS terminals I appreciated the advantage I had with being able to remotely dial into the system and monitor, debug even, and modify stuff on the fly. Although at the time we only had UVEPROMs and that part I couldn't change remotely, I could have code stubs sitting in non-volatile RAM to tie things over.
On another later project I had problems with a particular brand of note validator on a vending machine design and I came under a lot of flak from the machine manufacturer, because, as you know, it is always your fault, even though the manufacturer chose the validator they wanted to use, and the validator manufacturer swore black and blue that it could never be their certified unit at fault.
Fortunately I had an IR serial link hidden in the display LEDs and I could interrogate these machines on-site (some were within 100km) in close proximity without touching them and this was used mainly for collecting reports via a portable HP IR printer. Since I used the first Flash based MSP430F chips at the time with a Forth I wrote, I was able to see what was going on as it happened. So I wrote some datalogging routines that wrote all these events to some of the spare Flash. Using that information I was able to then demonstrate how certain $5 plastic notes would curl up on the rollers going back and forth and while not being accepted would then be rejected, not out to the customer where it was trying to send it, but back into the stacker. The logs showed that it had been rejected by the validator but it would end up in the machine. However, the logs also showed people trying to game the machines by turning it on and off and pressing all the buttons repeatedly etc. With the IR link and Forth I could type in a line and get it to show on the portable terminal what was happening. A video of the whole thing tied in with the logs completed the story.
I haven't told you about the great big misoperating mechanical presses yet, or that killer 1500kVA 3-phase regulator maybe, or hanging off the side of high-rises, or being "encouraged" by kick boxing henchmen, or (redacted), or one of my first Prop projects, a high-speed 12 channel multi-Prop based pill counter, but they are only some of the stories perhaps for another day.
I, for one, enjoy reading about real-world experiences. Keep them coming although another thread might be a good idea.
They are usually both entertaining and informative.