
The controls basis prints one generator-side column as rising from 16,086 to 16,721 kW without the inhibit [TARGET]. The heat-rejection chapter it quotes has since corrected that column to 16,768 kW, and the added charging term from 535 to 581.8 kW [TARGET]. The two published values differ by 47 kW of magnitude and not at all in direction. Utility loss is also the moment the supervisory layer is most likely to be restarting or out of communication. That single observation is what moves the charge inhibit out of software: an inhibit living only as a supervisory rule fails in exactly the scenario it was written for.
The Clause Specifies Hard-Wired Implementation, Not the Function
The controls basis therefore fixes the implementation layer instead of the function. It requires the inhibit at the charger itself or on a hard-wired dry contact, with its trigger taken from the generator main breaker auxiliary contact and never from a supervisory data point [TARGET]. It states that requirement three times, as a controls input item, as a named bad design and as a clause of its own. The hard-wire sentence is that clause. It is not the later recommendation that puts engineer studies on a named gate.
Three rows of the clause carry the whole requirement:
- the action, which puts every uninterruptible supply charger into inhibit or limits it to zero while a generator carries load;
- the feedback, which is measured charging current at approximately zero and which names a command read-back as not acceptable proof [TARGET];
- the failure branch, which holds the inhibited state and raises the highest alarm class, with automatic release forbidden.
The ownership failure the clause is written against is this project's own. The controls author records that if the charge inhibit is understood at once as a supervisory rule and as a native charger function, then at the moment utility power is lost neither owner is present, and names the one-line supervisory implementation as the bad design. The correction is registered as a non-deviable clause for the uninterruptible supply and power management specifications, and it reappears in the purchasing requirements, where the charger must accept a hard-wired inhibit input and return an inhibit feedback derived from charging current. Should the charger vendor establish that its equipment cannot accept such an input, the clause cannot be met as written and the failure branch has to be redesigned instead of re-specified.
Verification is equally specific. The integrated test disconnects supervisory communication first and only then interrupts power, measuring charging current throughout. It is marked both as the project's highest-priority integrated test and as not runnable until the hard-wired implementation exists. The worked sequence puts the inhibit step parallel to the transfer step instead of downstream of it, because a supervisory implementation would place three steps on one software path and one network, so a single communication loss would remove all three while the log showed them as independent.
A recorded exception sits next to the clause and is not closed here. Black start needs charge at the moment the inhibit forbids it, and wants a current-limited release that does not yet exist.
The Quoted Load Rise Is Already a Stale Study Figure
Without the inhibit the generator-side load rises and, in a corner case, the redundant unit count turns over a second time. That is the quantified reason for the clause. The controls document quoted the value it found and declined to recompute it, which is the correct discipline for a downstream document and also means the column in front of a reader is not the current one. That bound applies to this column alone. It is a study figure carried between two chapters, both of them current controlled revisions.
The eight interlocks in the delivered machine matrix are all recorded as held for approval [TARGET], each naming an approver role: the fire and emergency-stop pair to the engineer of record together with the authority, the leak and cooling pair to the vendor and the engineer of record, and the maintenance case to the owner with the commissioning agent. Every command path in that file still reads as to be confirmed. The implementation layer is undecided for all eight published interlocks, and not only for this one.
Limits and open items
Confirmed: a supervisory-only charge inhibit fails in the minute it exists for. [FACT]
The hard-wired trigger at the generator main-breaker auxiliary contact, proof by measured charging current near zero, the integrated test that disconnects supervisory communications first, the 16,086-to-16,721 kW column, the later 16,768 kW correction, the 535-to-581.8 kW charging term and the eight held matrix rows remain study and register values [TARGET].
Open: the charging-current limit curve and the inhibit's trigger wiring, owed by the engineer of record and the supply vendor; adjudication of the 47 kW erratum, owed by the owner and the contract side, with no technical prerequisite; a current-limited black-start exception. The test is not runnable until the hard-wired implementation exists. Nothing has been wired. Nothing has been sealed. [HOLD]
Does the Test Disconnect Supervisory First and See Zero Current?
The useful test is not whether the point list contains an inhibit tag. It is whether anyone has written a script that breaks supervisory communications and then kills the utility, and still sees charging current at zero.
© 2026 K&K Data Service Inc. All rights reserved. Reproduction or republication is permitted only with clear attribution to K&K Data Service Inc. and a working hyperlink to the canonical URL of this article. Excerpts must preserve the technical context, maturity labels, assumptions, and limitations. No excerpt may imply project approval, field validation, certification, or endorsement that the original article does not state.
Source: K&K Data Service Inc., “Battery Charge Inhibit Must Be Hard-Wired, Not Supervisory-Only,” https://www.kkdatasvc.com/lab/controls-epms-bms-and-dcim/charge-lock-must-be-hard-wired/.
Discuss This Constraint. If your project record shows a different result, or the same failure domain under another name, we want to see it. Email inquiry@kkdatasvc.com or use the contact page.