1. Problem Scope and Engineering Context
Engineers integrating a Siemens ET200S distributed I/O station with the SIMATIC Easy Motion Control software package frequently encounter a CPU diagnostic event in the range 4x62 when calling function block FB 29. The event halts cyclic program execution, forces the CPU to STOP (or partial STOP with priority class fault), and prevents the ET200S 1 Count technology module from performing its counting or position-detection function. The root cause is rarely a defect in FB 29 itself; it is almost always a configuration mismatch between the ET200S 1 Count slot assignment, the Easy Motion Control library installation, the technology OB registration, and the instance data block generation.
This reference consolidates the field-proven procedure for isolating and clearing event 4x62 during FB 29 commissioning on a SIMATIC S7-300 or S7-400 controller paired with an ET200S head station (IM 151 / IM 151-1).
2. ET200S System Architecture Recap
The ET200S is a modular, bit-modular distributed I/O system designed for SIMATIC S7. It consists of:
- A head module (Interface Module) — IM 151-1 (PROFIBUS), IM 151-1 FO (fiber optic), IM 151-1 PN (PROFINET), or IM 151-3 PN (PROFINET with extended functions). The IM terminates the backplane and hosts the PROFIBUS/PROFINET node.
- Power modules that segment the backplane into voltage groups.
- Electronic modules — digital, analog, and technology modules (including the 1 Count module).
- Motor starters and frequency converter terminals (where applicable).
Each slot is configured in HW Config (STEP 7 V5.x) or in the TIA Portal device view. The configuration determines input, output, and diagnostic addresses, which FB 29 reads at runtime.
2.1 Slot addressing rules
Address gaps in the ET200S must be reserved explicitly using empty slot placeholders; otherwise, subsequent modules shift their logical addresses and FB 29 reads from the wrong location. This is the single most common cause of "module not responding" sub-events within a 4x62 diagnostic entry.
3. ET200S 1 Count Technology Module Overview
The 1 Count (24 V / 500 Hz, or the 24 V / 100 kHz variant, 6ES7 138-4DA04-0AB0 or 6ES7 138-4DE00-0AB0 family) is a single-channel 32-bit counter module that supports:
- Counting mode (continuous, single, periodic)
- Measuring mode (frequency, period, velocity)
- Position detection (SSI absolute encoder via the 1 SSI module is a separate article, not 1 Count)
- Gating via digital inputs, hardware gate, or software gate
- Latch and retrigger functions
Inside the S7 CPU, the module's input range exposes the current count value, status bits, and latch value. FB 29 wraps the raw I/O access, decodes status, and feeds the result into the Easy Motion Control technology DB.
3.1 Required support OBs for the 1 Count module
The technology module does not require the user to load OB 40 (hardware interrupt) to operate, but Easy Motion Control relies on the cyclic OB (OB 1 for S7-300, OB 1 / OB 35 / OB 32-38 for S7-400) being called with the same priority the FB 29 instance is registered against. Missing or lower-priority OB registration triggers OB-not-loaded or OB-priority-class diagnostics, which Siemens encodes in the 4E62 family of events.
4. SIMATIC Easy Motion Control Software Stack
SIMATIC Easy Motion Control is a software option sold as a separate license on top of STEP 7. It provides:
- A library of FBs (typically FB 28 through FB 35, with FB 29 in the count/position branch) implementing position-controlled and speed-controlled motion primitives.
- Configuration dialogs in HW Config for setting up axes tied to ET200S technology modules.
- Watch tables and trace objects for commissioning.
The library is installed as a STEP 7 library (*.s7l archive) and must be opened in the SIMATIC Manager and copied into the user program. On TIA Portal, the equivalent is the "Easy Motion Control" option package, distributed as a HSP (Hardware Support Package) or TIA Add-In.
5. Identifying FB 29 in the Library
FB 29 is a function (not a function block) in the strict SIMATIC sense only when called as FC; the Easy Motion Control convention treats the 28-35 series as FBs with instance DBs. The naming and parameter signature are version-dependent. Confirm the following in the project:
| Item | Where to verify | Expected value |
|---|---|---|
| FB 29 symbol | Symbols table / PLC tags | Custom (e.g., EMC_CountAxis) |
| FB 29 family | FB properties, "Family" field |
Easy Motion Control or EMC
|
| Instance DB number | Call site (CALL FB 29, DB 29) | Unique, e.g., DB 100 |
| Library version | Library container header | Matches CPU firmware class |
| Multi-instance capable | FB properties | Per library docs (varies) |
If the FB 29 visible in the project does not carry the Easy Motion Control family identifier, the wrong library was opened and the call resolves to a different FB 29 supplied by a third-party or by STEP 7 itself (for example, the standard PID control FB 29 in some releases). This is a critical field failure: the block compiles and downloads, but the first call site writes into wrong data structures, and the CPU rejects it with 4x62.
6. Locating the Library on Disk
The library is bundled with the Easy Motion Control install media and is not redistributed independently. Default install paths:
- STEP 7 V5.x:
C:\Program Files\Siemens\Automation\S7\EasyMotion\Library\EMC_Vxx.s7l - TIA Portal:
C:\Program Files\Siemens\Automation\Portal Vxx\HSP\EasyMotionControl\
Open the library in SIMATIC Manager via File → Open → Library, then copy FB 29, its associated UDTs (user-defined data types), and any FBs/FCs it references (typically FB 30, FB 31, plus a system FC for reading the module) into the master data library of the S7 project. The dialog will warn if FBs of the same number already exist; resolve conflicts by importing into a project-specific block container first and merging with the standard library FB 29 under a new number (e.g., FB 129) if the CPU rejects the overwrite.
7. ET200S 1 Count Hardware Configuration
Open HW Config, navigate to the ET200S head station, and insert the 1 Count module from the catalog. Configure the following parameters before saving and downloading the hardware configuration:
| Parameter | Recommended value | Notes |
|---|---|---|
| Operating mode | Counting, continuous | Match to application |
| Count direction | Up / Down per encoder phase | Or single direction |
| Gate function | Software gate (level-controlled) | Simplifies FB 29 usage |
| Hardware interrupt on limit | Disabled initially | Enable after FB 29 verified |
| Diagnostics: wire break | Enabled | ET200S diagnostic LED |
| Input addresses | 0, 4, 8 ... (avoid overlaps) | Note for FB 29 wiring |
Save, compile, and download HW Config to the CPU. A clean download is prerequisite to FB 29 commissioning; otherwise the module's input bytes return all-zeros or process-image garbage.
8. Calling FB 29 in the User Program
A typical call inside OB 1 looks like:
CALL FB 29, DB 100
AxisNo := 1
HWAddr := 256 // start address of the ET200S 1 Count module
SWGate := TRUE
ConfigOK := M10.0
ActualPos := MD20
Status := MW24
Error := M10.1
END_CALL
Parameter names vary by library version; this example illustrates the canonical shape. The first three parameters are inputs, the rest are outputs that should be wired to a watch table during commissioning.
8.1 Generate and download the instance DB
After typing the call, right-click the instance DB and select Generate Instance DB. Compile, then download only the blocks (not the entire program; that would force a STOP). A common error is to forget this step: the call references a non-existent DB, and the CPU raises 4x62 "DB not loaded".
9. Decoding the CPU Diagnostic Event 4x62
S7 diagnostic events use a hex pattern. The first two digits identify the event class; the second two identify the specific sub-cause. For the 4x62 family:
| Event | Class meaning | Likely sub-cause with FB 29 |
|---|---|---|
| 4562 | I/O access error, read | Module slot empty or wrong address |
| 4662 | I/O access error, write | FB 29 trying to write to output range of slot |
| 4E62 | OB not loaded / priority error | Cyclic OB missing or wrong priority class |
| 4F62 | User program error in FB | Wrong FB version or interface mismatch |
To see the exact sub-event, open the CPU diagnostic buffer in STEP 7 (PLC → Diagnostic/Setting → Diagnostic Buffer) or in TIA Portal (Online & Diagnostics → Diagnostics). Filter the timestamp around the time of the STOP to find the trigger event; the first 4x62 is the symptom, but a preceding 4x61, 4x21, or 4x71 entry is often the actual root cause.
10. Common Root Causes and Field-Fix Matrix
| # | Root cause | Symptom in diagnostic buffer | Fix |
|---|---|---|---|
| 1 | Wrong FB 29 imported (standard PID FB) | 4F62 / interface error | Re-import Easy Motion Control FB 29, renumber standard FB 29 |
| 2 | Instance DB not generated | DB-not-loaded event, 4F62 chain | Right-click instance DB, generate, download |
| 3 | HW Config not downloaded | 4562 I/O access error | Compile and download HW Config, then blocks |
| 4 | Wrong HWAddr parameter | 4562 I/O access error | Verify address in HW Config → module properties |
| 5 | ET200S station not reachable on PROFIBUS/PROFINET | 3572 / 3x72 distributed I/O fault | Check connector, terminating resistor, GSD version |
| 6 | OB priority class too low | 4E62 OB priority error | Move call to OB 1 or higher-priority OB, configure OB priority |
| 7 | License missing | 4F62 license check | Transfer license from license key to CPU |
| 8 | CPU in RUN but FB 29 in OB not executed | Cumulative 4x62 on cold restart | Verify the OB is downloaded; check SZL 0x0132 |
| 9 | FB 29 call inside a non-valid block (e.g., OB 100 cold restart only) | 4F62 in first scan | Move call to OB 1 or cyclic interrupt OB |
| 10 | 1 Count module in diagnostic state (wire break, no 24V) | Module diagnostic followed by 4562 | Restore power, verify encoder wiring, clear module diagnostic |
11. Step-by-Step Resolution Workflow
- Capture the exact diagnostic event. Read the timestamp and event text in the CPU diagnostic buffer; record the event class and the referenced slot / block / OB.
- Verify hardware reachability. In TIA Portal, go to Online & Diagnostics → PROFIBUS/PROFINET topology; confirm the ET200S station is online and not in error state.
- Compare HW Config against the physical rack. Open the ET200S in HW Config and verify slot numbers, order, and module order numbers match the installed hardware. Save and download if any change is required.
-
Confirm FB 29 source. Open the FB in the project; the family comment should read
Easy Motion Controlor similar. If not, re-import the library. - Regenerate the instance DB. Mark the call site, right-click the instance DB, and select "Generate Instance DB".
- Perform a clean download. Use PLC → Download to Target Device with "Blocks only"; do not select the entire program unless a full reinitialization is intended.
- Switch CPU to RUN. Monitor the diagnostic buffer; the 4x62 event should not reappear within one full scan cycle.
-
Verify FB 29 outputs. Use a watch table on
Status,ActualPos, andError.Errormust remain FALSE,Statusmust be16#0000(no warning), andActualPosmust increment when the encoder is rotated.
12. Diagnostic Buffer Triage Pattern
The CPU diagnostic buffer is FIFO of the most recent 100 events. When multiple 4x62 entries are present, only the oldest one is the trigger; the rest are repeats from re-entries of the same fault. To triage efficiently:
- Scroll to the oldest 4x62 entry.
- Read the additional information field; it contains the block number, instance DB, OB number, or slot address.
- Cross-reference that number against the cross-reference table (in TIA Portal: Project tree → PLC → Cross-reference; in SIMATIC Manager: Options → Cross-reference).
- Open the referenced block and verify it is the Easy Motion Control version, not a stub or a different library's FB 29.
12.1 Reading event fields
The Additional Information 1 field often contains the block type (FB), the block number, and the instance DB. Additional Information 2 contains the priority class of the OB that detected the fault. Additional Information 3 may contain the address that triggered the I/O access error.
13. Verification and Commissioning Checks
After clearing the 4x62 event, run the following verification suite before handing the axis over to production:
| Check | Pass criterion | Method |
|---|---|---|
| FB 29 call site | Compiles, no symbol warnings | STEP 7 / TIA compile log |
| CPU diagnostic buffer | No 4x62 entries in last 5 minutes | Online → Diagnostics |
| Module status | No SF (red) LED on ET200S module | Visual + diagnostic read |
| Count value updates | Increments with encoder rotation | Watch table on ActualPos |
| Software gate | Gate input toggles count enable | Watch table + VAT |
| Error output | Remains FALSE during normal operation | Watch table on Error |
| Warm restart survival | No 4x62 after STOP/RUN transition | Manual STOP, then RUN |
| Cold restart survival | No 4x62 after MRES | MRES, then RUN |
14. Platform-Specific Notes
14.1 STEP 7 V5.x with S7-300 / S7-400
The classic environment. FB 29 is imported from the Easy Motion Control library. The S7-300 family supports OB 1 only as a cyclic OB; OB 35 (100 ms) and OB 32 (1000 ms) are also valid. The S7-400 family adds OB 30, OB 31, OB 33, OB 34, OB 36, OB 37, OB 38 for finer time slicing. FB 29 instance DBs are typed and cannot be multi-instance across different FB versions.
14.2 TIA Portal with S7-1500 / ET200S PN
The TIA Portal version of Easy Motion Control uses different block names; FB 29 in the STEP 7 sense may be split into multiple PLC data types. The diagnostic event text in TIA Portal is more verbose, including the exact slot or block. If the project was migrated from STEP 7 V5.x to TIA Portal, confirm the FB 29 was re-imported, not just copied: the interface must be regenerated, otherwise a 4x62 "Interface error" persists.
14.3 ET200S in PROFIBUS vs PROFINET
The 1 Count module is supported on both buses. On PROFIBUS, the slot address is the only diagnostic reference. On PROFINET, the diagnostic event includes the device name and slot number, which simplifies the triage matrix. If a 4x62 event references a slot that does not exist in HW Config, the slot is in the device (PROFINET) or in the slot table (PROFIBUS) but not visible to the S7 user program because the device is not configured.
15. Safety and Operational Notes
Do not bypass the 1 Count module diagnostic by masking the call site. The diagnostic exists to protect the motion path; masking it converts a hard fault into a silent process error. If the application cannot tolerate the 4x62 STOP, move the call to a high-priority OB and use a dedicated error handler OB (OB 80, OB 121, OB 122) to log and recover.
16. Frequently Asked Questions
What does Siemens CPU diagnostic event 4x62 mean when calling FB 29?
Event 4x62 indicates a user-program or I/O access error in the same cycle as the FB 29 call. Common sub-causes are 4562 (I/O read error from the 1 Count module), 4E62 (OB priority class error), and 4F62 (interface or version mismatch with FB 29). Open the diagnostic buffer for the exact sub-cause.
Where is the Easy Motion Control FB 29 library located on disk?
The library is bundled with the SIMATIC Easy Motion Control install media, not the base STEP 7 install. Default paths: C:\Program Files\Siemens\Automation\S7\EasyMotion\Library\EMC_Vxx.s7l for STEP 7 V5.x, or the HSP directory in TIA Portal. Open the library via File → Open → Library, then copy FB 29 and its UDTs into the project's master data library.
Why does the CPU STOP immediately after I download FB 29 with its instance DB?
Most often the instance DB was not generated before download, or the wrong FB 29 was imported (the standard STEP 7 PID FB 29 collides with the Easy Motion Control FB 29). Right-click the instance DB in the call site, generate it, recompile, and download the blocks again. Confirm the FB family in the properties dialog is "Easy Motion Control".
Can I call FB 29 from OB 100 (cold restart) instead of OB 1?
No. Easy Motion Control expects a cyclic execution context, and OB 100 runs only once on cold restart. Move the FB 29 call to OB 1 (free cycle) for S7-300, or OB 30-38 / OB 1 for S7-400. Calling it from OB 100 will trigger a 4F62 user-program error after the first scan.
How do I differentiate a hardware fault from a configuration fault in the 4x62 event?
Hardware faults are preceded by a module-specific diagnostic event (3572, 3x72, or ET200S slot diagnostic). Configuration faults are the first 4x62 entry with no preceding module diagnostic. The diagnostic buffer is chronological, so the oldest event in the chain is the root cause; subsequent 4x62 entries are repeats of the same fault.