u/Mertadona

Built hybrid RAG over PLC code for commissioning troubleshooting. It works. I have zero customers. How did you find yours?

Hi, I also have been invited to join this reddit to share what I have been developing last weeks.

I am Automation+Systems engineer, years of machine commissioning. I built a RAG system for on-site troubleshooting: you're at the plant, machine won't run, whoever wrote the logic is asleep in another country.

Corpus: Siemens SCL / TIA Portal XML, Rockwell L5X, HMI config and alarm tables, schematics, I/O lists, FAT/SAT protocols.

Stack (client PoC, deliberately minimal infra):

  • bge-small-en-v1.5, 384-dim, CPU via sentence-transformers. Corpus embedded offline, only queries embedded at runtime — customers won't send proprietary PLC code to an external API, and plant connectivity is whatever you get.
  • Docs: Chroma + LlamaIndex BM25, fused with RRF. Immutable bundle built offline.
  • PLC code and alarms: Postgres 16 + pgvector, Postgres FTS (tsvector), plus exact entity/tag lookup, fused with RRF in SQL. Code graph in plain Postgres tables — no Neo4j for the PoC.
  • HMI: exact structured lookup, no embeddings. Embedding this layer made results worse.
  • LangGraph multi-agent orchestration, LangChain Core init_chat_model, Vertex AI with Bedrock as portability path.

Three things this corpus taught me that generic RAG advice misses: exact match is the backbone not a fallback (MOT_CONV_03_FLT and MOT_CONV_08_FLT are vector-space neighbours and different machines); semantic chunking is actively wrong for control code, because the meaning lives in the cross-reference graph, not the block; and not everything deserves embeddings.

Now the actual problem.

I have no customers. Two industrial prospects agreed the problem is real, then said "we'll build it internally." Both have now started, and neither has anyone who has done this before. The pattern is identical in both: take a good engineer who knows Python, hand them the project, assume it's a weekend of work.

I understand why they think that. The naive version demos. Dense-only retrieval with fixed-size chunking over twenty documents looks finished. What isn't visible at that stage is how badly it degrades on a real corpus — and there's no eval set, so nobody finds out. The failure arrives later, at 2am, when someone is deciding whether to bypass an interlock based on an answer that sounded confident.

So I've been building PoCs for free to get in the door. I'm now suspecting that's the mistake: nobody had to get budget, so nobody owns it internally, and free reads as unproven rather than generous. But I also don't feel I can charge with zero track record.

What I'm asking:

  1. How did you find your first paying customer? Not how you closed them, how you found them. Cold outreach, network, community, partnering with integrators/OEMs who already had the relationship?
  2. Do free PoCs ever convert, or do they just train the market to expect this for free? How did you get paid for the first one with no history?
  3. How do you beat "we'll build it internally"? Has anyone led with an eval harness or retrieval-quality audit as a wedge — proving their internal system is broken before proposing a replacement?
  4. Product or implementation? Is a productized offering realistic here, or is the honest business bespoke implementation that gets productized slowly?
  5. How do you find companies already spending money on this, badly? I've been targeting companies that have the problem. Every machine builder has it. Wrong filter — what's the right signal?

I am a decent engineer and a terrible salesman, and I'm running out of ideas before I run out of runway. Any of the five above, even a partial answer, would help.

reddit.com
u/Mertadona — 1 day ago
▲ 25 r/PLC

How much commissioning time do you actually lose to look for the trigger in the code?

Hi I am commissioning engineer in a large Pharma Company. I have been doing automation commissioning since 3 years in this company with TIA Portal, Studio 5000 and STEP7.

I don't know if this also happens to you or it is only to me. I'm doing commissioning on a machine, customer standing right next to me, and an alarm trips. The trigger isn't described in any document, so I have to go digging through the code. We don't have a standardised code base, every developer does more or less whatever they want. There are guidelines, but I still end up spending an hour going through the wiring diagram, cross-referencing, and searching the taglist.

And when I finally find the problem, the guy who wrote it is at home having dinner and I can't reach him to go over the functional spec, so I don't even know whether my fix is the right one or whether there's something else I should be taking into account.

I've done commissioning at two companies now and it's always been the same: communication between the developer and whoever's on site is usually bad, and I end up losing time — extra weeks stuck at the plant, because the only answer I ever get is "it worked here."

Has this happened to you too? How much time do you lose to this kind of thing? And why do companies keep doing it this way instead of just sending the developer out?

reddit.com
u/Mertadona — 2 days ago
▲ 1 r/Rag

Built hybrid RAG over PLC code for commissioning troubleshooting. It works. I have zero customers. How did you find yours?

Automation+Systems engineer, years of machine commissioning. I built a RAG system for on-site troubleshooting: you're at the plant, machine won't run, whoever wrote the logic is asleep in another country.

Corpus: Siemens SCL / TIA Portal XML, Rockwell L5X, HMI config and alarm tables, schematics, I/O lists, FAT/SAT protocols.

Stack (client PoC, deliberately minimal infra):

  • bge-small-en-v1.5, 384-dim, CPU via sentence-transformers. Corpus embedded offline, only queries embedded at runtime — customers won't send proprietary PLC code to an external API, and plant connectivity is whatever you get.
  • Docs: Chroma + LlamaIndex BM25, fused with RRF. Immutable bundle built offline.
  • PLC code and alarms: Postgres 16 + pgvector, Postgres FTS (tsvector), plus exact entity/tag lookup, fused with RRF in SQL. Code graph in plain Postgres tables — no Neo4j for the PoC.
  • HMI: exact structured lookup, no embeddings. Embedding this layer made results worse.
  • LangGraph multi-agent orchestration, LangChain Core init_chat_model, Vertex AI with Bedrock as portability path.

Three things this corpus taught me that generic RAG advice misses: exact match is the backbone not a fallback (MOT_CONV_03_FLT and MOT_CONV_08_FLT are vector-space neighbours and different machines); semantic chunking is actively wrong for control code, because the meaning lives in the cross-reference graph, not the block; and not everything deserves embeddings.

Now the actual problem.

I have no customers. Two industrial prospects agreed the problem is real, then said "we'll build it internally." Both have now started, and neither has anyone who has done this before. The pattern is identical in both: take a good engineer who knows Python, hand them the project, assume it's a weekend of work.

I understand why they think that. The naive version demos. Dense-only retrieval with fixed-size chunking over twenty documents looks finished. What isn't visible at that stage is how badly it degrades on a real corpus — and there's no eval set, so nobody finds out. The failure arrives later, at 2am, when someone is deciding whether to bypass an interlock based on an answer that sounded confident.

So I've been building PoCs for free to get in the door. I'm now suspecting that's the mistake: nobody had to get budget, so nobody owns it internally, and free reads as unproven rather than generous. But I also don't feel I can charge with zero track record.

What I'm asking:

  1. How did you find your first paying customer? Not how you closed them, how you found them. Cold outreach, network, community, partnering with integrators/OEMs who already had the relationship?
  2. Do free PoCs ever convert, or do they just train the market to expect this for free? How did you get paid for the first one with no history?
  3. How do you beat "we'll build it internally"? Has anyone led with an eval harness or retrieval-quality audit as a wedge — proving their internal system is broken before proposing a replacement?
  4. Product or implementation? Is a productized offering realistic here, or is the honest business bespoke implementation that gets productized slowly?
  5. How do you find companies already spending money on this, badly? I've been targeting companies that have the problem. Every machine builder has it. Wrong filter — what's the right signal?

I am a decent engineer and a terrible salesman, and I'm running out of ideas before I run out of runway. Any of the five above, even a partial answer, would help.

reddit.com
u/Mertadona — 2 days ago