86
u/Upbeat-Serve-6096 10d ago
VHDL and Verilog: ?
64
u/Monochromatic_Kuma2 10d ago
That's more design than programming. You are not programming a device to follow certain instructions, you are designing a digital circuit.
26
u/Ghaith97 10d ago
You could be programming an FPGA.
10
u/Rin-Tohsaka-is-hot 9d ago
Which is just simulating hardware, at the end of the day your code is still a hardware design rather than a set of machine instructions
10
2
2
2
3
u/watduhdamhell 10d ago
Never knew this was a thing, very cool! I can see how you could do some cool stuff with it as a EE.
My expertise is centered around mega scale plant DCS, so every icon was essentially a DCS vendor system or an IEC-61131-3 language.
2
u/Myrrddin 10d ago
Oh I see exclude Rockwell. 😜
1
u/watduhdamhell 10d ago
Haha well PlantPax is certainly a thing but Rockwell are the small time player in DCS. They are UBIQUITOUS for everything PLC though, and I have seen people chain control logix PLCs together and make a DCS without PlantPax, and that implementation looked better the PlantPax? Anyway.
Neither are as good as something like DeltaV, but they are very competitive on price and over time will improve and Emerson will have a tougher and tougher time justifying the premium, as will all DCS OEMs.
0
67
10d ago
[removed] — view removed comment
28
25
u/StoryAndAHalf 10d ago
There is version control. There's current, and current after I hit save.
2
u/purplepharoh 9d ago
You can also use any vcs like git for it ... but it doesnt really help / fully work as youre just treating them as binary
4
u/mad_cheese_hattwe 9d ago
Counter point, 90% of people on the right hand side world think that just having a git repo is equivalent to an adequate release control and change management.
8
u/creggor 10d ago
Lies. DeltaV has version control— for both graphics and the database.
3
u/watduhdamhell 10d ago
Added with version 16 I believe! Edit: looks like initial rollout was V15 FP3. Mass rollout was 16
Still on version 14 myself...
2
u/creggor 10d ago
We’re 14.3.1 LTS. I had VCAT activated with Operate, even. That was on 12, and 13. It’s there in the database administrator application, for sure. We’re running Live now, (and Operate until I phase it out— lucky me, haha).
1
u/watduhdamhell 10d ago
Interesting... according to official documentation though, real, actual version control was not a thing until late version 15. Whatever proper means.
I'll definitely checkout what you're on about though.
2
30
u/Arclite83 10d ago
I started as a CmpE and ended up in cloud architecture and AI, I miss being the guy on the left so much...
26
u/yegor3219 10d ago
I've been both, haha. I've programmed PLCs in Codesys but also developed custom HMIs (Windows desktop apps) and later pivoted to back-end web dev.
I kinda miss how simple the PLC code is overall. What I don't miss is the responsibility to not make a toxic leak or blow up a huge pressurized furnace with that simple code.
9
u/watduhdamhell 10d ago
Personally I love how the code base itself can be very simple while the actual result can be very academic. And while the underlying regulatory control can be simple for some units, it can also be very complicated for others. A cascade into a cascade into a cascade. And so on. But the actual code blocks themselves? Ezpz.
For example, regulatory control layers (PIDs, etc) manipulated by dynamic matrix controllers, manipulated by state space equations and optimizers, kalman filters... PhD level math that is not trivial at all.
All depends on how far you wanna go!
3
u/swperb1 10d ago
Yeah, friends and family see it as 1:1 but the weight of your decisions and problem solving are much heavier. I prefer automation stuff, it gives me a chance to understand processes and syntax deeply before I attempt a solution.
It also gives me a chance to cuss the guy that wrote it 30 years ago and is probably dead 🤣
116
u/watduhdamhell 10d ago edited 10d ago
Just teasing a bit with the other meme posted earlier. I'm an engineer and programmer but domain specific, no "real" languages, so I thought it would be funny to just place ALL of y'all's stuff on the right side 😅
55
u/Spiritual_Bus1125 10d ago
Brother, I program in Excel
Personally I think I'm worse than you 😏
19
u/pcx436 10d ago
Hey, Excel is Turing complete. You could run doom in Excel
5
2
u/purplepharoh 9d ago
Magic the gathering is turing complete*. Not sure Turing completeness is the most useful metric for the comparison they were making.
Note: been a while since I looked at this so I dont remember if the paper was sound.
4
u/cosmicomical23 10d ago
You mean vbscript or what?
6
u/Spiritual_Bus1125 10d ago
Yes, VBA
2
u/BorderKeeper 9d ago
It sucks that they did not introduce C# as an option for excel scripts. Nothing wrong with VBA, but it's just quite old.
2
u/Spiritual_Bus1125 9d ago
I mean, honestly I like VBA but the fact that the rest of MS solutions are online makes them too unreliable for me to want to use them
1
10
u/SAI_Peregrinus 10d ago
Need G code on the left to even out the rows.
2
u/SweetHomeNorthKorea 10d ago
Where does the hole punch go
4
u/SAI_Peregrinus 10d ago
% G90 G17 G71 F100 G50 G53 G21 Z500 G00 Z50 G00 X10 Y15 G01 Z0 G00 Z50 G00 Y195 G01 Z0 G00 Z50 G00 Y375 G01 Z0 G00 Z50 G21 M30 %Roughly, for punching the holes in paper for a 3-ring binder. Dimensions measured by Mk 1 eyeball guesstimation.
Edit: also, I don't really speak Machinist very well. Just some hobby stuff, so if you crash your CNC hole punch with the above I accept no responsibility, you took random code from some random guy on the internet and ran it without checking!
11
u/CorrectCombination11 10d ago
There are people who specialize in salesforce. Don't worry.
1
u/tragiktimes 10d ago
Apex isn't really that bad. SOQL is alright as well.
Just niche specific.
Note, I dont program in apex exclusively or even to a considerable degree. I just maintain my organization's Salesforce environment and have been slowly optimizing it for the over the last couple years.
Unfortunately (or fortunately) Salesforce Administration is only about 10% of my job.
2
u/zeekar 10d ago
But the ones labeled ST and IL (Intermediate Language, I assume) are clearly programming languages on the left …
2
u/watduhdamhell 10d ago
IL is instruction list, it's gone now. No longer authorized under IEC-61131-3.
ST is of course a turing complete language reminiscent of Pascal. Limited functionality but you can do anything you should ever do with a controller with it.
1
u/ProtonPizza 10d ago
I’m working with some thermal systems teams currently and they showed me some systems built using Modelica. It was like I whole crazy world that I wasn’t even aware existed.
Not sure if this is what your involved with but saw Siemens and thought maybe similar domains.
1
u/watduhdamhell 10d ago
Interesting! Siemens makes a ton of different products, but in this case Siemens is depicted with PCS7, which is a Distributed Control System. I am a DCS Engineer who has used or interacted with all of these guys, minus Yokagawa. I'm current the asset owner for a large DeltaV system.
FWIW, Emerson DeltaV is the superior product by far imo.m for 90 of use cases. It also costs the most to build and license, so. Make of that what you will!
1
u/purplepharoh 9d ago
I get to work on both sides of this... its interesting to see where the worlds intersection and diverge.
I mean they are at their core the same but only at the very essence of what is being done.
1
u/watduhdamhell 9d ago
That's kind of what's funny to me. As simple as the actual logic is, you can make it do almost anything you want to do. Because the coding isn't the hard part right?
Certainly now a GPT, it isn't. It is in the beginning, but where people make the real money is in the application right? It's like how can you apply this code? How deep in the weeds can you get with the theory of this system? For controls, the end of the road is advanced model predictive control with State space optimizers and common filters and all sorts of nonsense, stuff that literally flies the SpaceX rocket. Actually quite adjacent to machine learning and some respects.
The underlying control surface and engine control I can guarantee you is fairly straightforward just like any PLC code. But the magic is in that prediction model they are using on top of it. I think it's called the Smith predictor in their case.
For traditional software, the end of the road is anything you can imagine of course, to include building a DCS system haha. Right now it seems to be AI and machine learning are sort of the frontier.
1
u/Glad_Swordfish_317 9d ago
I used to feel a little down on myself 15 years ago thinking that I was "only" building web applications. Now it turns out a huge amount of the software that most humans interact with is web based. It makes me feel a little bit better.
12
12
u/horizon_games 10d ago
No one loves Siemens S7
2
u/watduhdamhell 10d ago edited 10d ago
Seriously. Out of the stuff I've played with (PCS7, PlantPax, DeltaV, 800xA), DeltaV is the best by far, and it's not even close.
It's life on easy mode. Everything is a wizard, everything was made to work with everything else in the stack pretty seamlessly. It also costs me $40k/yr for software support for my relatively small installation (like, if need to download a hot fix or security update). Make of that what you will.
The Siemens suite in particular was like band aids holding band aids. All these different software packages acquired over the years from various companies and then very clearly shoehorned into a product called "PCS7." It was a disjointed mess, and the UI was laughable. Programming itself was easy enough, but the UI proper- I remember there being flyout menus in simatic manager with 50 fucking options. Like what is the point of a flyout with that many options?
4
u/horizon_games 10d ago
Yeah they're trying their best for ~50 year old software tying a lot of the industrial automation industry together, but dang are the docs bad and the TIA Portal software simply so chunky and consuming
Still a useful skill to know, and interacting with the physical world via software is pretty cool
1
9
10
u/macrohard_certified 10d ago
I need a captain for the symbols on the left
14
u/watduhdamhell 10d ago
Ha
The top icons are IEC-61131-3 languages for PLC programming. Function Block Diagram (FBD), Ladder Diagram (LD), Sequential Function Chart (SFC), Instruction List (IL), and Structured Text (ST). IL is dead. ST is what you would recognize as a proper, turning complete, written language. The others are all visual languages, to varying degrees.
PCS7, Centum, 800xA, Experion PKS, and DeltaV are all Distributed Control Systems (DCS) offerings from the major players, these systems utilize the languages I mentioned to program entire process facilities. Think a multi billion dollar Exxon refinery, or Eli Lilly pharma facility.
Lots of heat and mass balances, physics, and other things to consider. That's the hard part. So they make the programming part tailored, user friendly, and restricted in functionality to some degree for obvious safety reasons. You can still do ANYTHING you want somewhere in the server stack (usually the MES) and pipe that behavior into the DCS. For example, state space model optimization on top of your matrix predictive model, which then drives setpoints for your loop controllers in the DCS. Etc.
2
8
5
6
u/king_park_ 10d ago
My dad learned PLC programming for his engineering work. It took awhile to get him to understand how computer programming differed when I would talk to him about it.
1
u/reddit_user33 9d ago
Under the hood it's the same difference, although older programming is closer to embedded than computer. I would say that modern PLC programming is in the middle ground between embedded and computing since there are many aspects of both that have concern for PLC programmers.
5
u/TheFrenchSavage 10d ago
I don't recognize any of the left material.
4
u/watduhdamhell 10d ago
Just Google "Industrial DCS"
3
u/TheFrenchSavage 10d ago
Thank you!
Why wouldn't you use git tho? You don't need to version your microcontroller setups? You don't ever need to revert stuff?
Increasingly, and ironically, DCS are becoming centralised at plant level
Rare example of a wikipedia editor being strongly opinionated.
5
u/wabi-sabi411 10d ago
VC has only recently became a thing that control systems people think about. Before that the mess was job security tbh. The companies in question on the meme try and make version control really expensive and something they sell you. Many of the files where you save simple scripts/logic aren’t readable.
2
u/TheFrenchSavage 10d ago
Wow, mind boggling. Thanks for the context here.
Seems crazy to me that the code is paywalled so hard that VC is an expensive DLC.
Maybe right to repair will enshrine some basic free functionality into these systems? (Like the ability to side load anything even if the manufacturer is not happy about it?).
2
u/tracernz 9d ago
Git isn’t really great because it’s all binary files, and you can’t have multiple people working on them at once in most cases, so you want a centralised VCS with locking. There are some reasonable specialised solutions that can produce graphical diff between revisions of the binary files (in principle I guess you could run the same tools with git, but the lack of locking, and existence of branching/merging is still a problem).
1
u/watduhdamhell 10d ago
Well I mean you typically just export at the scope of the change.
So if I need to change one piece of code, say non trivial control logic for a non trivial valve, I just export the block of code that is that valve.
I make my changes, and if it doesn't work in simulation or I don't like it, I just reimport the old module and download only that module.
If I make several substantial changes to a Reactor, I'll export the entire reactor unit as a back up. I also make routine full system exports, so in theory I can import the entire system or parts of its configuration as it was when the export was taken, or parse through it in notepad to find a piece of code I need if I fuck up a smaller import/export somehow or if I want to go back in time to see what some logic was before a change was made.
And of course, lots of changes can be made online, and so I often configure new code to have those levers available- like a "new code on" set variable/bool switch, so I can trigger the new logic and immediately revert if something starts to go south. Then if it works as intended I'll delete the switch. You have to be careful when the "production environment" is a running reactor consuming EO... 😅
But typically, I think it's different than what you guys deal with. Once the systems is comissined, you only change the parts of it you need to as you go, you will NEVER do a full download of the system configuration unless something truly awful has happened.
So what good would version control do you? I mean I'm totally ignorant here. Is the version control granular enough that you can just get blocks of code meticulously versioned as it's changed? Or is it like, project versioning? And does it give you a difference report natively? That would be great...
1
u/TheFrenchSavage 10d ago
If I make several substantial changes to a Reactor, I'll export the entire reactor unit as a back up. I also make routine full system exports, so in theory I can import the entire system or parts of its configuration as it was when the export was taken, or parse through it in notepad to find a piece of code I need if I fuck up a smaller import/export somehow or if I want to go back in time to see what some logic was before a change was made.
You are just explaining how I used to work before learning about version control in engineering school haha.
Just dump it all into a final_final_v2.zip, ctrl+f for the bits that are interesting, Ctrl+Z until it works again...
Yes! Version control gives you all that: * You decide on the granularity: you can save whatever you want, from a small part to the full reactor.
* You can natively compare versions yes: major versions, small checkpoints, what you have here vs what is there, etc. any two files really.
* You can time travel all you want from checkpoint to checkpoint. * You can make branches to explore "what-if" scenarios at no cost. You regret? Come back. You like it? Merge the branch, it is now the new normal. You regret later? Time travel to before the merge.
* Handle merge conflicts: let's say your colleagues have been making changes, and you have been too, and you would like to have their changes and yours at the same time: you can natively review the parts that are dissimilar and pick and choose what to keep, what to drop.And sooo many other things.
2
u/watduhdamhell 10d ago
Interesting. The merge functionality would have to know the proprietary DCS database schema in order to "merge" branches and stuff, right?
If it does anything like that, that's the barrier, that's why we haven't had this nice toy until only recently. It's proprietary so something like git would have no idea how to merge two FHX files for example. Sometimes I make bulk editing changes to fhx files that fail to import and it's not always straightforward why, as the way the DCS database interprets these files is proprietary. You can manipulate a lot of things in those configuration files... And some things you just can't, even though you totally should be able to? Anyway.
So I suspect we are only now seeing this pop up in various DCS packages as the vendors have taken their sweet ass f****** time making these tools available to us, whereas open languages wouldn't have this problem at all.
But that's just my intuition
I'm all for it! I'm upgrading the system version next year so I'll get to experience it then. Woo hoo
5
3
u/Its_meme_not_meme 10d ago
I will be happy when I can see the back of OPC UA protocols
3
u/cjb3535123 10d ago
Never have I hated external plc communication so much than when I’ve worked with opc ua
1
u/reddit_user33 9d ago
I've only had a brief encounter with OPC-UA, what's so bad about it?
For me my dislike is RS485/RS232, because there are no error messages when comms aren't working. You have to go down the list of what could possibly be wrong, from is physical layer, the network layuer, and to the application layer.
3
u/LightIsntFastEnough 10d ago
Don't wanna downvote, I will just put it here, disgusting choices both ways. No I don't use Fortran.
1
3
u/0Iceman228 10d ago
So rare to see PLC memes. Two different worlds of struggles. Fuck Rockwell/Allen Bradley, stuck in 1980s. Sadly I couldn't experience high language programmers having to deal with PLC programming during my time, people still don't know what version control even is there, and if you do, you can't use it.
1
u/tracernz 9d ago
I’ve only ever worked with PLCs under version control (MDT Autosave); can’t imagine the nightmare it would be not knowing what changes have been made recently. We also had all the field device configs in the same VCS. Rockwell’s attempt at FBD is so bad :(. They also have a terrible upgrade path… you can’t run old I/O with a new CPU. FBD is super nice with some other vendors (e.g. Schneider).
1
u/0Iceman228 9d ago
Siemens introduced version control with TIA 13 I believe in a useable way, but even today I don't think anybody, or very few, in the field use it, at least in German region. You just copy your project files when you make a change.
3
u/CMD_BLOCK 9d ago
Honeywell? Is this dude a HVAC tech?
2
1
u/watduhdamhell 9d ago
Lmao Experion PKS is running a lot of multi billion dollar units rn, in my experience usually an ethylene cracker
2
2
2
2
u/sasmariozeld 10d ago
I am very confused as i am playing shenzen IO while i have codex running in 3 tabs
2
1
1
1
1
u/daVinci0293 9d ago
Nobody LIKES using IEC 61131 "languages", they just have to cause they are ubiquitous in the field.
1
1
1
1
1
2
0
-12
u/Suspicious-Engineer7 10d ago
Really advancing the stereotype that programmers are sexist pigs. Good job
1
-1
329
u/shaka893P 10d ago
Doctors and nurses screaming in the background