• 0 Posts
  • 12 Comments
Joined 1 year ago
cake
Cake day: August 27th, 2023

help-circle







  • Thanks for your response. Sorry I didn’t get the joke.

    As promised, here’s a “simple” explanation of SCADA, or as simple as I can make it at least. It will probably be rudimentary enough to be controversial, and long enough to be boring. Oh well.

    It stands for supervisory control and data acquisition, and if you think that’s a weird mouthful, it’s because it’s old and comes from a time when clicking graphics on a screen was a novel idea, and logging swaths of data with a computer and searching within it and rendering graphs from it was cutting edge. The term is basically relegated to plant, industrial and manufacturing type processes where a bunch of engineering has gone into it. Processes like brewing, water treatment, factories, assembly lines, etc.

    Those processes are automated with special computers called PLCs that are basically “robot brains” that control things like (but not limited to) motors, valves, pumps, conveyers, robot arms, all kinds of stuff to manipulate the physical world, and can receive information from sensors like (but not limited to) pressure, speed, flow, weight, on/off, open/closed, temperature, distance, or anything else that someone has built a physical world sensor for. You can put all that stuff together with a program in the PLC and automate practically anything from beer making to zebra counting.

    And that’s all well and good, but if you want to see what the process is doing (supervise it), or stop it if it’s gone off the rails (control), or see what it did last time (data acquisition), you need SCADA. There’s special software to build a SCADA system with, and it’s mostly special because it needs to talk to the myriads of PLC (and related) gear out there, and until relatively recently, it’s been tied to an ancient Windows technology called OLE, meaning if you wanted SCADA in your industrial process, you had to suffer with the rather unindustrial wart of Windows in the middle of it. OP is seeking the industrial Holy Grail of a windowsless process in their plant.

    We take it for granted today that we can build an interface in a web browser, and hook it up to control a USB device, all in one day, but 40+ years ago there was Windows 3, serial devices, and no commonly established way to communicate with gear (which OLE kinda solved), or standard design of how interfaces should look or work. Ignition brings all of that old shit into the modern world.

    A relatable example you could call “baby SCADA” would be a smart thermostat, if it has an onboard temperature trend graph. The process it controls is your automated home heating and cooling. The smart thermostat can tell you if the AC is running, you can change the target setting that you want the room temperature to go to. And if it has a graph of the temperature for the last 24 hours so you can see that the schedule you set worked, then it’s basically a 'lil SCADA.

    Cheers.


  • Please don’t take the following as me being a dick, I am just genuinely curious. Your response is unique and interesting to me.

    I have no idea what you are asking

    Then why did you feel compelled to respond?

    The rest of the thread is filled with people who know the topic and gave relevant responses very specific to OP’s situation. Many hours before your response in fact. I’m a little perplexed.

    Maybe custom built software

    Any person (with enough budget) could get software built, but that’s obvious to anyone, so it’s kind of redundant to suggest, so why write it given the other responses? I am further perplexed.

    Just install Gentoo. It will fix your problems.

    I take this as humor. OP was looking for software to run on Linux, not a Linux distro. Was that the joke?

    Anyway, I’m sorry if I have come across as critical or insulting. I really am just curious. If I have, and it’s any consolation, if you care to genuinely answer my questions, I’ll give you a short explanation of what OP was on about, if that is helpful to you. I think it was very kind of you to respond to OP, I think I’m just confused more than anything.


  • Ignition from Inductive Automation. Works great on Linux, used to run it in docker even. There are drivers for all kinds of PLCs. It’s a dream to develop in, was my SCADA platform of choice (I’ve moved on from the industry). If you need to script anything, it is in Python, not some bullshit proprietary scripting language, nor VBA garbage. The client software is great, even runs nice on PC-based HMI touch panels, which you could install Linux on if you want. The call-out alarming actually works (FUCK WIN911).

    The software is free to try and download. You can develop in it for free, unlike the majority of competitors. Go ahead and try all of it out right now if you want. The training courses on using their software are free, nice handy videos, so you can start learning how to build everything like right now.

    The “catch” is it costs money to run all of the SCADA critical components for more than an hour at a time (to prevent you from just using it to run your whole plant for free). But you can build your whole SCADA app today with your PLC gear on hand, and only pay for it once you are ready to deploy to production.

    Anyway, to me, it’s hands-down the best SCADA platform, and it even runs on Linux. Disclaimer: some of this might be out of date, I’ve been gone about 4 years.

    Edit: sorry, didn’t see the “free” requirement. I would never run a critical plant without support, so I’ve not explored any fully open source options. If your plant is serving more than just your farm/homestead (in other words, is serving the general public) I strongly recommend a supported option for your client. If you get hit by a bus, and the plant is in trouble, they’ll have a hard time finding someone to get them back online who knows your “weird” software.

    That said, depending on your needs, Ignition can be cheap AF (comparatively) if your plant is small.


  • Before you take the advice of anyone here, try to find out how long they have been in the business, because I think that’s going to change the kind of feedback you get. I’ve been doing this for over 20 years, and I’ve worked in all kinds of places, from small business, to large, to government, as an employee and consultant. Not bragging, just providing a reference point.

    Your concerns and situation are ones I have experienced myself. You are not alone. I’ll give you advice I wish I could have given myself decades ago.

    unsure if I was good enough

    Every programmer starting out has this feeling generally. Please don’t take this as dismissive. I actually take this as an indicator of someone who will succeed at becoming a good programmer. The brazen ones who do not introspect and understand their inabilities are doomed to flounder perhaps forever.

    I feel like I flip between I am a god and can code anything and omg I know nothing show me the nearest bridge.

    In my experience this feeling can last for decades, probably forever, but as you gain more experience and hours of working on code, the bridge diminishes. If this doesn’t make you feel better, you’ll just have to take my word for it… it does get better and you will be happier over time. As you get more experience, you will be able to better estimate things, so you can know when something is way too big to go alone, or without more resources/support, or without more budget, and how to say so/no in those cases.

    It took me a while to realize, that if something doesn’t work out the way you planned it, it’s not all on you, the business and how it functions (or not) has more to do with it than anything. Small businesses are, frankly, generally more stupid. It can be the blind leading the blind, so what hell were you gonna do anyway. They didn’t want to pay for a super team with mentors, so they get what they get, and that’s not on you. I’ve found that most of the time in business, failure happens and shit just moves on, because there are other fish to fry and fires to deal with. What you think matters, as an introspective person, hardly crosses the mind of business folk.

    boot camps [said, in] your first role you would get lots of support

    You have to keep in mind the source of these boot camps and what they are for. They are funded by silicon valley so that they can get as many (hopefully talented) bodies in the door as possible, to keep costs down. More supply, lower costs. As such, they are aimed at people who will work for those companies, and those companies are desperate (depending on the market I suppose), so they will definitely have support in order to retain folks.

    I work for a small company < 10. I don’t feel I get the support I expected.

    Speaking from experience, being a developer at a small company is generally fucking garbage, for some of the reasons you and I have touched on. They have anti developer and anti productivity practices, and they don’t care to improve. They generally don’t know what they don’t know. Depending on the place though, this can be an advantage: they don’t know enough to know that “you suck” (you don’t suck, by the way). They can also be desperate to hang on to anyone dumb enough to keep working for them (no offense. You are not a dummy, circumstances are just not in your favor yet).

    the spec is kept in the […] (owners) head

    Aha, yeah there’s your problem. The owner is a developer running this shit show, and I guarantee they’ve never run their development the way the software development industry would. They should know better than to run things this way; if you can’t have the fundamentals of your business shared with the team that are trying to make it a success, how could you ever hope to make it work? Some places hobble on in spite of this, but they will only have the fraction of the success they could have had if only they’d had a person with genuine vision (or smarts enough to hire that person) at the helm.

    [when given a task I get no timeframe]. [the task is given verbally]. [confusing to understand their vision].

    If you had worked at a big silicon valley place first, you’d have first hand experience with agile/scrum, and how it works to solve all of these common issues. This is not a criticism of you, I’m saying working at a place that has agile/scrum should be your next pursuit.

    In A/S, tasks are written down in tickets, estimated, and prioritized. Effort and vision are made clear before the work starts, written on the ticket so everyone is clear on it and about the deliverables. If it’s too much effort, the ticket can be split into manageable chunks. It vastly reduces the people problems that come with managing development work by turning it into a process that can be refined according to how the team works, instead of a negotiation with a lead maniac.

    By not doing/knowing about this kind of practice, your business is at risk from competitors who implement this correctly, are therefore more efficient, and will naturally out compete you. Not your problem though.

    If wrong I’m not called out and they will spend a little more time going over what they want.

    Good. As much as I am shitting on them, they are at least reasonable seeming.

    The boss is always so busy that sometimes you feel like a burden asking for pointers.

    That’s on them, and that’s business life. Honestly, IMO they need to get some of their shit together, but that’s not your place to advise or worry about. Also, they probably knew they were getting a greener guy, so they’d be expecting questions. There’s a balance between knowing when to ask, and just trying stuff, and newer people should bias towards asking, IMO. Your leader may feel differently, it seems like they’re reasonable enough you could just ask.

    the newest will start as a copy of the last one

    Having done this myself before, this is the path to hell, in my opinion. It can work, but it’s a shortcut and in my experience it’s a maintenance nightmare. This is not the practice of a company with vision, it’s a company that’s just chugging along for now. If you had the vision to be acquired one day, you wouldn’t do this. There should really be a core code base that all instances share, so even old implementations can benefit in the future, if need be. I’m sure this opinion will be controversial. Again, not your place to worry or talk with them about it.

    [Existing code is] second nature to [my colleagues] and I feel stupid

    20+ years in and it’s still like this for me when starting at a new place. The difference is experience lets you know not to worry. Practically nobody is a genius, and the geniuses are writing white papers, not code. My advice to you is to just delve into the code base and read as much as possible and follow along with how it works. If you want to get a leg up (which I would advise for a green person) do some of this in your spare time, as much as you can afford. Otherwise you will get experience with the code eventually through your day to day work regardless. Don’t get too invested in them though, you should move on as soon as possible (for a bunch of reasons).

    is this normal

    Feeling stupid in this situation is normal, you are just green and will be fine. The small business that operates like this is all too common, and you are not in the place to do anything about it, and I would not advise getting involved with trying to fix it. If you were an investor, then I would try to fix it. You should worry about you, not them. Use them as a stepping stone to your next opportunity.

    to gauge how I am doing

    Ask for a performance review. They may be too small to know how to do this properly, if at all, however. You know them, you will have to be the judge on if they will take kindly to that request. Any place that isn’t garbage should be happy to do that for you however. Agile/scrum would have metrics you could just look at to know how you are doing, any time, just saying.

    there is no remote work and no headphones in the office

    Here we are back to the dumb shit. They are leaving money and productivity on the table, and that is not the mark of a good business. Unhappy workers are not the mark of a good business. They might be smart coding wise, but they are not smart business wise, which is a real problem when the whole point is to make money. Imo you should get out ASAP, but that might involve sticking it out for at least another 6 months, so you have at least a year for the resume.

    when is a good time to start looking for your second role

    Always be looking. If I could go back in time and give myself one piece of career advice it would be this: always be looking, interview often, even if it’s just to say no, and never stay in one place more than a year or two. If I had done this, I would have been happier so much sooner, and would be making at least twice the money by now.

    Do not be loyal to these folks, small businesses will cut you at the drop of a hat like any other business. For them it comes down to business no matter what.

    In my opinion, for your career, you need to get on a real development team that does agile/scrum as soon as possible. Agile/scrum not a panacea, nor the end all be all, but it should give you a good reference for how well/things should function on a good development team.

    You seem to have a good head on your shoulders, you are worried about the right things, and are asking the right questions. Good luck out there.