Notes
Getting from an FDS to a working Studio 5000 project
A functional design spec and a Studio 5000 project describe the same system in two completely different languages. The FDS is prose and tables: devices, interlocks, sequences, written for a reviewer to read and sign off. Studio 5000 needs an actual controller project: a tag database, I/O modules mapped to real addresses, routines written in ladder or structured text and an L5X file that RSLogix or Studio 5000 can import without errors. Getting from one to the other is a translation step, and like any translation it is where meaning gets lost if it is done carelessly.
The translation has three parts that are easy to blur together but worth keeping separate. First, every device named in the FDS needs a tag, and every tag needs an address: an input module slot, a channel, a data type. Second, every I/O point needs to exist somewhere in the controller's module configuration, matching the physical rack the system will actually run on. Third, every interlock and sequence step described in the FDS needs to become real logic, not just a tag that exists but does nothing. A project can look complete with a full tag list and still be missing the behaviour the FDS actually specifies.
The usual failure mode is not a missing feature. It is a naming or addressing mismatch that nobody notices until commissioning. A device gets one name in the FDS, a slightly different one in the tag database and a third name in a comment inside the routine that actually uses it. An I/O point gets added to the FDS late and never makes it into the module configuration, because the two live in different files maintained by different people. None of this fails a code review. It surfaces during commissioning, when a tag the commissioning engineer is looking for in the FDS does not exist under that name in the running controller.
L5X import itself adds a second layer of risk on top of this. Studio 5000's L5X schema is strict about data types, module catalog numbers and tag scope, and a hand-built or hand-edited L5X can import with warnings that get clicked through rather than read. A tag that imports as the wrong data type, or an I/O module that imports but is not actually wired to the controller's real rack configuration, both look fine in the import dialog and both cause real problems the first time the system is powered up.
The reliable fix is the same one that applies to keeping an FDS and an I/O list in agreement: stop maintaining the FDS and the controller project as two separate things that someone keeps in step by hand. ScaffIQ compiles the I/O framework and tag declarations directly from the same structured record used to write the FDS, and exports a full L5X built to Studio 5000's schema, ready to import. A device defined once in the structured record produces one tag, one address and one name, used consistently everywhere that device appears. Nothing is retyped between the FDS and the controller project, so nothing can quietly drift between them before commissioning finds it.
You can see the actual ScaffIQ wizard, screen by screen, importing an FDSIQ export through to a locked L5X export. How It Works.
An engineer reviews and tests everything FDSIQ and ScaffIQ generate before it goes anywhere near a running system.