Built for wastewater, pure-water, greenhouse, and aquaculture control. Unsafe conditions are blocked first and uncertain engineering assumptions are clearly listed.
Not everything on a P&ID can be auto-generated. The platform first sorts it into three layers, then decides what can be delivered, what needs an engineer's sign-off, and what is blocked outright.
Dosing that won't hold, aeration DO dropping, RO product water running short, the greenhouse stifling by midday, the pond starved of oxygen at 2am — when something goes wrong, it's all waiting on one correct program. Troubleshooting a fault, you can't find the comments from years ago; the veteran technician retires and takes the logic with him. We understand the env-control floor, because we've worked it — that's why we built this platform.
Generate, refactor, and interpret PLC code, build HMI screens, and apply a library of verified environmental-control blocks.
Describe your requirement in one sentence, and get an ASCII ladder diagram (logic you can read at a glance), mnemonic code, ST structured text, and an I/O table automatically. You can paste in your own I/O table to keep your existing addressing, set your company's naming conventions, and specify equipment physical parameters; for Siemens, download the .scl file and import it directly into TIA Portal.
Hundreds of lines of spaghetti code get restructured by the AI into a clean, commented, properly interlocked version, with a line-by-line explanation of every change — functionality is fully preserved, and control behavior is never altered without your say-so.
Paste in an existing program and the AI explains what each rung does section by section, infers the purpose of each I/O point, and flags suspect logic with improvement suggestions — so undocumented legacy equipment or a retired veteran technician is no longer a problem.
Paste in your I/O table and automatically get a Weintek/GOT/Proface tag table (with meaningful names), screen layout suggestions (overview/manual/parameters/alarms), and a complete alarm table; the tag table can be downloaded as CSV.
Dual-pump alternation, pH/ORP dosing PID, blower standby, dissolved-oxygen response, greenhouse cooling sequences, power-loss/recovery handling — field-proven logic patterns, applied by simply checking a box, not generated at random.
New machine development, and modification/optimization of existing programs. Ladder diagram, SFC, or ST — all supported, delivered with complete source code and documentation.
Weintek, Proface, and GOT HMI screens; integrated commissioning for servo positioning, multi-axis synchronization, tension control, and flying-shear cut-to-length applications.
Modbus, EtherNet/IP, PROFINET, CC-Link; SCADA/MES data collection, and rewriting/updating old control panels.
There's no shortage of AI tools that generate PLC code. What's missing is one built for environmental control — and honest about where not to trust it.
The full interface and output are in Traditional Chinese — component comments, the I/O table, and operating instructions are all in language your field technicians actually understand. With foreign tools, you get English comments and have to translate them yourself before pasting into GX Works.
The most common failure when general-purpose AI writes PLC code: putting a Siemens MOVE instruction into Mitsubishi code, or mixing in Allen-Bradley instructions — it looks correct but won't compile. We apply explicit instruction-set constraints for each brand, and implement any uncertain function using basic instruction combinations instead.
The AI doesn't know your pneumatic cylinder takes 0.8 seconds to move, that your level switch chatters, or that your VFD needs 10 seconds after stopping before it can restart. Fill in your equipment's physical parameters, and the AI can write correct timeout logic and anti-chatter delays — otherwise you get code that looks reasonable but actually locks up in practice.
Wastewater, water purification, greenhouses, aquaculture — general-purpose AI tools can't write the pH/ORP dosing, dissolved-oxygen response, and standby-switchover logic these applications need. We've built more than 10 years and 100+ engineering projects' worth of field know-how into our prompts and templates.
What the AI produces is a first draft, not a guarantee. Complex whole-machine or whole-line projects, on-site commissioning, acceptance testing, a one-year warranty — only a company with a real engineering team can deliver that. We have both.
Everyone in the industry says "10x productivity boost." Nobody gives you numbers — because giving numbers means being accountable for them.
We built a 20-question benchmark, with every question drawn from real job sites, and each one run through the full verification pipeline. These are the results — including the ones that don't look good.
Rule layer.We once taught the fail-safe contact direction backwards — instructing the system to read a normally-closed stop button with an inverted contact (ANI), when a normally-closed contact is ON at rest and the program should use a normally-open contact (AND). This error existed simultaneously in the prompts, the example library, the checker, and four technical articles.The model isn't dumb — it writes exactly what we taught it.We've also fixed broken scoring metrics: a speculative "possibly missing latch" warning was being treated as a hard deduction, failing even programs that scored perfectly on behavior tests.When a speculative rule conflicts with a test that actually ran on a virtual PLC, the rule loses.
Compile layer.The Siemens code kept failing to compile, and the real cause wasn't the model writing nonsense — it was that the variable mapping table we gave it usedNested comment— The IEC compiler doesn't support nested comments; it ends the comment early at the first inner closing symbol and then reports the subsequent declarations as code errors. Once this was fixed,All brands benefit. We've also added brand cross-contamination detection for structured text (SCL): previously we only scanned the ladder column, but for Siemens the actual deliverable is SCL, meaning it went completely unchecked; now we scan SCL line by line too, and if instructions from another brand are detected, before shippingAutomatically converted back to correct brand syntax.
Address layer.Omron's native address CIO 100.00 (an output-region address) was at one point written as A100.00 in the shipped ladder diagram — but A is the auxiliary relay region, which iscompletely different memory from the CIO output. The trickiest part: the address-consistency check actually "passed," because the ladder diagram and the I/O table both consistently used the same wrong token —consistent, but consistently wrong. The fix: address legalization always follows each brand's region semantics (CIO/W/H/A each stay in their own region), and never blindly prepends a prefix to a leading digit.
The rules, example library, checker, scoring metrics, compiler, and address legalization were all fixed, and the benchmark was rerun.Below are the real, corrected numbers.
Full details →
Sent to matiec (a real IEC 61131-3 compiler) for actual compilation. Not "looks right" — "actually compiles." 2 of the 20 questions failed to compile (one of them is Siemens SCL, see below).
The most common failure of general-purpose AI: Mitsubishi instructions like OUT / LD mixed into Siemens SCL. We use an instruction whitelistLine-by-line comparison (scanning structured text SCL too), if detected, it's automatically converted back to the correct brand syntax before shipping. In 1 of the 20 questions (Siemens), the model mixed brands — and that question also failed to compile, which isKnown weaknesses, not swept under the rug.
Interlocks are in place where needed, there are no double coils, and safety signal contact directions are correct.Inverted contacts on safety signals are now corrected deterministically and flagged on that line — after the fix, this issue scored zero deductions across the full 20-question round.The remaining few deductions are mechanical issues like double coils.
Only counts if all three checks above (compile, brand, structure) pass simultaneously; measured on the latest 20 questions.There's also a stricter "full behavioral accuracy: 55–65%" figure (in the red box below) — that measures whether the program's actual behavior is correct when run. The two numbers measure different things; they are not the same metric.
All four items above areTargeting "the ST deliverable"is measured on the finished ST itself: the ST is fed to a compiler, its instructions are scanned against a whitelist, and its structure is checked by rules. The denominator is the 20 cases of the latest round — one case equals 5 percentage points: compiles 18/20, brand-clean 19/20, structure 18/20, all three static checks 17/20.
⚠ How strong the evidence behind these four numbers is — we'll say it ourselves first: We can say why each case lost points (2 cases failed to compile, one of them Siemens SCL; 1 case mixed brand instructions — the same Siemens case; structure losses are mechanical issues such as duplicate coils), butthe per-case raw table has not been published— which means you cannot currently recompute 18/19/18/17 for yourself. Being able to explain the losses is not the same as having a table you can recompute.We do not conflate the two.
Why we publish a single round rather than a range: We publish the single-point figures of the latest round, and state on the same page which round it is together with the figures of earlier rounds; we do not blend different rounds into a range, and we do not pick the prettiest round. Above isthe latest round; the four earlier rounds (85/95/50/40, 95/100/70/65, the four-round range, 85/100/80/65) are all kept in the full benchmark write-up , each labelled with its round. Old rounds are never deleted — deleting the record of your own bad measurements is what pretending nothing happened looks like.
It doesn't measure cross-format consistency. On July 18, 2026, an outside PLC engineer running black-box tests found that for the same problem, the three output columns — ladder diagram, mnemonic, and ST — could disagree with each other: after the core assembled the safety circuit and overwrote the ST, the ladder diagram was still the model's original version. Since the compiler only looks at ST and the behavior tests only run ST, our entire verification pipeline never caught this. He also found Mitsubishi-style addresses (X000/Y000) in the I/O table of a Siemens problem, because our brand check at the time only scanned the code, not the I/O table.
We first added deterministic checks for both blind spots (auditing for out-of-scope addresses, checking I/O table address formatting, detecting duplicate ST assignments, and comparing addresses between the ladder diagram and ST); anything detected is flagged on screen. We later fixed the root cause: standard control blocks use the V2 pipeline by default, rendering the ladder diagram, mnemonic, and ST from one intermediate representation. Stateless Boolean logic also receives an exhaustive equivalence check; artifacts containing TON/CNT still require validation in the target PLC IDE and under field conditions by an engineer. The final ST carries a fingerprint (stHash) so you can confirm that "the ST shown on screen" is exactly "the one the compiler compiled and the virtual PLC ran." The brand check now also scans the I/O table column by column, and address legalization is handled by a single shared rule, so a Siemens problem will no longer have Mitsubishi-style addresses (X000/Y000) mixed in. The only exception: if you uncheck V2 and revert to the legacy V1 pipeline, the three columns can still diverge; and regardless of the path, any AI output must be reviewed by a qualified engineer before going live.
We compile the program into an executable and actually run it on a virtual PLC. When a test fails, the AI diagnoses and fixes it itself, then reruns verification.
Result: it judged that "the program really was wrong"10 times, the proposed fix was syntactically correct, compiled fine, and didn't touch the safety logic — but when we reran the tests,7 times "no improvement at all".
AI review helps surface suspicious points, but its findings must be corrected against the rule layer, composer facts and test results — they can't be treated as a delivery verdict, and it must never be allowed to auto-fix.
This isn't a prompting problem, and running more rounds won't fix it — we doubled its output limit and tried again,No help at all. That's the capability limit of today's generation of models.
So "must be reviewed by a qualified engineer" isn't a line we wrote to cover ourselves. It's a fact we measured ourselves.
The most common one used to be the contact direction of safety signals.The AI would write "overload protection, normally-closed wiring" in the I/O table, but then read it with an inverted contact in the program — the result: if the overload wire breaks, you'd never detect the overload.
For this one, we now apply a deterministic correction — and flag it.
When the I/O table already declares a point as a stop/overload/E-stop type wired normally-closed, reading it with a normally-open contact is the only fail-safe answer — this isn't guessing the physical wiring, it's applying the convention you yourself declared. So we automatically change inverted contacts (ANI/ORI) back to normally-open (AND/OR),But every one is flagged with a ⚠ mark on that line, asking you to verify the physical wiring — we never change it silently.
We still won't guess at things that genuinely depend on your field conditions:Whether to add an interlock, whether latching should be done in software, how the E-stop circuit should be wired— those, we only flag; the decision is yours.
Mechanical issues (double coils, duplicate timer numbers, instructions borrowed from the wrong brand) are corrected automatically too, and re-compiled and re-verified before being delivered to you.A safety issue that gets auto-fixed incorrectly is more dangerous than one that's simply flagged — so we only step in when the rule has a single unambiguous answer, and whenever we do, we tell you loudly.
Published literature shows that the semantic correctness of AI-generated PLC code runs roughly 28–50%. The gap isn't in the model — it's in verification.
Actually compiled with matiec (an open-source IEC 61131-3 compiler). If it fails to compile, the error message is fed back to the AI to fix, for up to three rounds.No credits charged for these rounds— that's our quality cost.
Checks against the PLCopen Software Construction Guidelines for undeclared variables, unreachable code, excessive complexity, and declared-but-unused variables (which usually means a piece of logic was left out).
Compiled into an executable and run on a cloud-based virtual PLC to drive I/O, simulate time, and verify the output."Compiles" does not mean "does the right thing"— this layer is what checks the latter.
Double coils, break-wire safety, forward/reverse interlocks, timer time bases, INT overflow, ST watchdog risks, brand instruction whitelisting — pitfalls we've actually hit across 10+ years and 100+ real job sites.
Being clear about what we are, and what we're not:
The model that generates the code isn't one we trained ourselves. What we built is the layer that constrains it, verifies it, and honestly tells you where not to trust it — a brand-syntax knowledge base, field rules, a four-layer verification pipeline, and this benchmark suite.
The exact same model, once wrapped with our core,Full behavioral accuracy (the strictest metric: actually running the program to test whether its behavior is correct) rose from 40% to 55–65%, brand-instruction mixing dropped to 0%. (This is a different tier of metric from the "all three static checks pass: 85%" figure above: 85% only looks at compilation/brand/structure, while 55–65% requires the behavior to be correct too.)
Those twenty-some percentage points are EOT's technical value-add — and it's measurable, not just a claim.
Finally, one thing that has to be said: passing the checks does not mean the program is correct.
Any PLC program produced by AI must be reviewed by a qualified engineer and verified on real hardware before going live. Safety functions (E-stop, interlocks) must be implemented with hardware safety circuits, not software logic alone. This isn't a disclaimer — it's a rule of this trade.
A PLC program isn't something you say once and get to run straight on the machine. We treat it as a conversation — round by round, converging on something that works.
We measured this ourselves, and we'll say it up front: AI review does help surface suspicious points, but findings themselves can be false positives and must be corrected against the rule layer and test results — and it certainly can't reliably fix the program.
(See the benchmark above: it correctly identified a real bug 10 times, and the proposed fix compiled and didn't touch the safety logic — but on 7 of those, rerunning the tests showed "no improvement at all.")
So we don't pretend it's "press a button and get a finished deliverable."What the AI gives you is a usable first draft, not a finished product.
What actually turns this into a program you can run on real equipment is you and the AI refining it round by round in conversation — because there's one crucial thing only you know: your actual field wiring.
State your requirement and the AI generates ladder diagram and ST instantly. Every output has run through the compiler, behavior tests, and field rules, and clearly flags which items need your confirmation — no green checkmarks tricking you into signing off.
Is the stop button normally-closed or normally-open? Which contact does the interlock chain through? How many seconds does the cylinder take to move? The AI can't guess these — and shouldn't. Spell out your field conditions, or just say "change this to..." You're in the loop, and you're the one who decides.
No need to regenerate from scratch. The AI edits your current version and reruns the full verification (compiler + rules + behavior tests); if the change breaks something, it's flagged immediately and you can revert with one click. Round by round, converging on a program that actually works.
This is our approach: not "AI does it all in one shot," but "working with you, converging round by round." For simple logic, a few rounds of conversation gets you to something you can run. For a complex whole machine or line — panel design, physical safety-circuit implementation, on-site commissioning, warranty — you'll want a qualified system integrator on the ground; that part is beyond what this tool covers. AI gets you there faster; a qualified engineer makes sure it actually runs on real equipment.
Wastewater, pure water, greenhouses, aquaculture — the common control requirements already have ready-made control blocks, each hand-verified. After the AI generates them, deliverable IEC/ST output goes through a real compiler and a virtual PLC run (non-IEC brands use a mnemonic whitelist plus deterministic behaviour vectors). If it fails, it does not ship.
Process control for equalization, aeration, and sedimentation tanks, integrating pH, ORP, SS, and flow meters; dosing pump control, blower alternation, and sludge dewatering scheduling; discharge water quality logging and abnormal-condition alarm reporting, meeting environmental regulatory reporting requirements.
Ready-made standard control blocks: dual-pump level alternation + fault takeover, pH/ORP dosing (single pump / three-pump station), dual-blower dissolved-oxygen threshold, sand-filter backwash sequencing, and common alarm aggregation.
Try a wastewater program →
Sand/activated-carbon filtration and backwash scheduling for water treatment plants, chlorine dosing and residual chlorine control, continuous turbidity/conductivity/residual chlorine monitoring; RO system membrane flush protection, product water quality diversion, and VFD-based energy savings for high-pressure pumps; greywater recycling and booster pump station control.
Ready-made standard control blocks: RO startup interlock (low-pressure flush → high-pressure boost → production, condition-driven), immediate abort on low feed / full product / fault, and sand-filter backwash sequencing.
Try a pure-water program →
Multi-point monitoring of temperature, humidity, light, and CO₂; automatic opening/closing of roof vents, side roll-up curtains, and interior/exterior shade screens; fan-and-pad cooling, misting, and LED supplemental lighting scheduling; drip irrigation with nutrient solution EC/pH ratio control; weather station integration for wind and rain protection.
Ready-made standard control blocks: multi-stage temperature control (stepped thresholds + anti-short-cycling), temperature exhaust fan (start delay + debounce), irrigation rotation (N-way circular sequencing), and cyclic operation.
Try a greenhouse program →
Real-time monitoring of dissolved oxygen, water temperature, pH, and salinity; automatic start/stop of aerators/paddlewheels with emergency response to low oxygen; automatic feeding schedules, water exchange, and recirculating aquaculture system (RAS) control; push alarms for power loss or disconnection, with full-site remote monitoring from your phone.
Ready-made standard control blocks: dual-blower/paddlewheel dissolved-oxygen threshold alternation, intermittent aeration cyclic operation, full-on response to low oxygen, and abnormal-alarm aggregation.
Try an aquaculture program →
Can be paired with electric fencing— Aquaculture farms are mostly remote and unattended at night, so theft and field intrusion cause real losses. Zone-based perimeter pulse-fence monitoring covers break/short-circuit detection and intrusion-zone localization; a low-energy pulse grid along the pond edge deters intrusion and arms automatically at sunset. When triggered, it drives warning lights, site lighting, and notifications, and logs the event time and zone to the cloud.
Pick what you need first — we then judge what can be auto-delivered, what data is missing, and what an engineer must decide
Even within one brand, generation, interpretation, verification, and export have different maturity levels. We would rather make limits clear than paint every brand green.
| Brand / platform | Generate Ladder / ST | Existing program interpretation | Verification method | Export / delivery |
|---|---|---|---|---|
| Mitsubishi FX / Q / iQ-F / iQ-R |
Available Mnemonic and ST draft |
Available Legacy comments and inferred IO purpose |
Brand rules + behavior vectors Still needs GX Works compilation before commissioning |
Draft delivery CSV format needs field verification |
| Siemens S7-1200 / S7-1500 |
Available SCL / ST first |
Available Requires readable text or an export |
IEC compilation + static rules Behavior cases are built from the requirement |
Engineering draft TIA import needs engineer cleanup |
| Omron CP / CJ / NX / NJ |
Available ST / mnemonic draft |
Available Legacy program documentation |
Brand rules + behavior vectors Sysmac / CX needs confirmation |
Draft delivery Point table can be copied |
| Delta / Shihlin / FATEK DVP / AS / AX / FBs |
Available Environmental-control standard blocks first |
Partly available More complete formats are more accurate |
Brand whitelist + static checks Non-IEC output is not presented as compiled |
Draft delivery Needs testing in the brand tool |
| IEC platforms Beckhoff / B&R / ABB AC500 / Schneider |
Available IEC ST first |
Can assist Requires readable text or an export |
IEC compilation + static rules Hardware addresses must be verified in the vendor tool |
Engineering draft Import format needs engineer cleanup |
| Rockwell tag platforms Rockwell / Studio 5000 / Logix Designer |
Available Tag / routine drafts first |
Can assist Requires pasted rungs, routines, or tag exports |
Studio 5000 rules + static checks Not presented as IEC/matiec compiled |
Engineering draft L5X / ACD needs engineer cleanup and pre-download confirmation |
| CODESYS / other brands WAGO / B&R / Schneider, etc. |
Under evaluation ST drafts are more stable |
Can assist Start with logic understanding and documentation |
Depends on platform No claim of fully automatic verification |
Needs engineering handoff Can list limits and confirmation items |
Milestone-based payment, with full program ownership transferred to the client
Fill out the online form or call to describe your needs
Timeline and quote provided within 7 business days
Development begins after contract signing, with regular progress updates
On-site installation and testing, with commissioning and acceptance
Deliver source code and documentation, with a one-year warranty
EOT Technology: 10+ years and 100+ completed projects. Client names are kept confidential under NDA; below we present, in de-identified form, the types of environmental-control systems we've actually built and the scope of our capabilities.
Combines biological treatment with membrane filtration (hollow-fiber membrane modules + aerobic bioreactor) to effectively remove organic matter, suspended solids, and microorganisms. Fully automatic PLC monitoring with real-time remote reporting; effluent quality meets discharge standards, and the system runs stably.
Multi-stage treatment designed for fluoride-, ammonia-nitrogen-, and acid/alkali-bearing wastewater: equalization → chemical coagulation → sedimentation → filtration → discharge. The PLC handles automatic dosing and monitoring throughout, meeting EPA discharge standards in stable long-term compliance.
Integrates industrial-grade water quality sensors (E+H / HACH), a Siemens PLC, and edge computing to monitor pH, turbidity, dissolved oxygen, conductivity, residual chlorine, and the levels of four treatment tanks in real time. Data goes to the cloud via OPC-UA, is compared against discharge standards in real time, and triggers automatic alarms when limits are exceeded.
Industrial-grade sensors paired with a PLC controller monitor 8 parameters in real time — air temperature, humidity, CO₂, light, soil moisture, EC, and pH. Modbus RTU → PLC → 4G/5G → cloud dashboard, with AI-generated recommendations, alarm push notifications, and CSV export.
Integrates 9 types of water quality sensors to monitor dissolved oxygen, ammonia nitrogen, water temperature, pH, salinity, nitrite, and more in real time. Supports automatic water-exchange triggers when limits are exceeded, remote control of pumps and valves, sensor calibration scheduling, and LINE/email alarm push notifications. All six fish ponds are connected.
Continuous pH/ORP measurement → multi-reagent dosing pumps deliver in stages with priority interlocking, stopping once the neutral threshold is reached; the secondary booster station runs dual-pump alternation with fault takeover and level/pressure interlocks. A Safety OK gate throughout — on a fault, it stops immediately and aggregates the alarm.
For more engineering references, see EOT Technology official website →
The AI tool runs on a credit-based subscription.
It is not a fixed number every time, and it is not priced only by line count. Formal delivery is priced bystandard control-block complexity, behaviour verification vectors, delivery-document completeness, program scale, and verification levelA simple motor start/stop block and a full SBR / RO / plant-wide environmental-control system require very different engineering evidence, so they should not cost the same.
Before generation, the estimated credit charge is shown; after completion, the page lists quoteFinalReconciliation, pricingBasis / fullPriceBasis, verification level, actual credits charged, and output line count, so you can see why the estimate matched the final charge or why a discount was applied.
Before generating the program, an I/O table is produced first for you to confirm.
The field sequence is control logic → IO planning → wiring → programming; panels are wired from the IO table. If IO planning needs a precharge, it is the front part of the same formal delivery cost, not a duplicate charge; it is credited back during formal generation and shown clearly in the billing details. The extra confirmation step prevents wrong field-point guesses; it is not an upsell.
Free membership: 15 credits/month · No credit card required · No credits charged if nothing is delivered or the job is blocked · When a successful delivery is not fully verified or requires engineering review, it is discounted and the reason is shown; internal reruns for our own correctionsNo charge to you— that's our quality cost, not yours
15 credits is enough for you to see exactly what we do (compilation, actual execution, safety-circuit checks), butNot enough for everyday use— we say this up front.
Register free to useIndividual plan, 3 tiers · Pro NT$1,490/month · 500 credits (everyday generation, refactoring and project dry runs) · Pro+ NT$2,990/month · 1,200 credits (frequent use and small teams) · Max NT$5,990/month · 3,000 credits (heavy testing and engineering teams). Use the tabs above to see the full feature list for each tier.
Prices are in US Dollars, excluding tax. Usage quotas are subject to fair-use policy. For education and non-profit discounts, please contact us by email.
The more detail you share, the faster we can help. We'll get back to you within one business day.
The AI's output is a first-draft program, suitable for quick drafting and as a learning reference. It must be reviewed and tested by a professional before use on real equipment; anything involving E-stop or safety functions must be implemented with a hardware safety circuit. For complex or high-risk applications, have a qualified engineer take it the rest of the way.
We provide a fixed total-price quote based on I/O point count, number of axes, number of HMI screens, and functional complexity; modifications and debugging can be billed hourly. The pre-quote assessment is free.
Yes. On project completion, we deliver the complete source program, comments, I/O table, and operating documentation, with full program ownership transferred to the client.
Yes, we can arrange on-site installation and commissioning anywhere in Taiwan; overseas commissioning is available on request. Remote debugging is also supported.
Yes, monthly plans can be canceled anytime, with no further charges after the current period ends; annual plans get a prorated refund for unused months.
Depends on our current schedule — for urgent jobs, please call us directly and we'll prioritize assessing feasibility.
Every program you've ever generated is here — closing the tab won't lose it.
Visible only to you, and you can delete it anytime.
How we handle your program →