Reserved S7 Block Number Ranges (FB, FC, DB) in SIMATIC PCS 7 System Libraries
In SIMATIC PCS 7, developers creating custom libraries or user function blocks must strictly avoid Siemens-reserved Function Block (FB), Function (FC), and Data Block (DB) number ranges. Specifically, FB1000 through FB1199 are strictly reserved for the SFC Runtime System (such as FB1050 ES_SFC, FB1051 SFC_RCON, and FB1052 SFC_RTSE), while FB1800 through FB1999 are reserved for the Advanced Process Library (APL), and FB100 through FB299 for the Basis Library. Creating custom blocks within reserved ranges causes fatal compiler overwrites, corrupted runtime execution, or rejected CFC downloads. Custom user blocks should be assigned numbers within unreserved ranges such as FB501 to FB999 or FB2000+.
Table of Contents
- PCS 7 Block Allocation Architecture and System Integrity
- Siemens Subsystem Block Reservation Architecture
- Comprehensive PCS 7 Block Number Reservation Matrix
- Best Practices for Custom Corporate and OEM Library Development
- Verification
- Limitations and Operational Precautions
- Engineer FAQ
- Technical References
- Related Articles
- Related Tags
PCS 7 Block Allocation Architecture and System Integrity
In classic SIMATIC STEP 7, an automation engineer has virtually complete freedom to assign block numbers (FB1 to FB7999, FC1 to FB7999, DB1 to DB8191 on S7-400 CPUs). However, in SIMATIC PCS 7, the engineering system operates as an integrated compiler that automatically generates, links, and instantiates complex system runtime blocks during CFC and SFC compilation.
When an engineer compiles Sequential Function Charts (SFC), Continuous Function Charts (CFC), or executes the Module Driver Generator, PCS 7 automatically copies specific system blocks from standard libraries (SFC Library, Basis Library, Advanced Process Library) into the project's S7 Program 'Blocks' folder. If a custom user library contains an FB or FC using a reserved block number, the compiler will either silently overwrite the user's block or abort compilation with unresolvable interface collisions.
Siemens Subsystem Block Reservation Architecture
The primary system packages that claim fixed block allocations include:
-
SFC Runtime System (FB1000 - FB1199):
- The Sequential Function Chart runtime engine requires specific coordinator blocks.
- For example, FB1050 (ES_SFC) is the central engineering interface block that synchronizes SFC visualization between AS and OS.
- FB1051 (SFC_RCON) handles SFC runtime control and step transitions.
- Overwriting FB1050 or FB1051 breaks all SFC faceplates, SFC visualization, and sequential control execution in the controller. -
PCS 7 Basis Library (FB100 - FB299, FC100 - FC299):
- Contains hardware diagnostic and driver generation blocks (MOD_1,MOD_2,RACK,SUBNET,OB_BEGIN,OB_END).
- These blocks are dynamically inserted into runtime groups during the 'Generate module drivers' step. -
Advanced Process Library (FB1800 - FB1999):
- Dedicated range for standard technological blocks:MonAnL(FB1845),MotL(FB1850),MotRevL(FB1851),PIDConL(FB1874),VlvL(FB1899). -
CFC Dynamic Range (DBs):
- Configured in CFC underOptions -> Customize -> Compile/Download(typically DB61 to DB999 or higher). These are dynamically allocated for instance DBs.
Comprehensive PCS 7 Block Number Reservation Matrix
The following table provides the comprehensive block number allocation rules for SIMATIC PCS 7:
ALARM_8P (FB19), BSEND (FB12), BRCV (FB13)MOD_1 (FB101), RACK (FB107), SUBNET (FB106)ES_SFC (FB1050), SFC_RCON (FB1051), SFC_RTSE (FB1052)RC_IF_CFG), BATCH interfacesMotL (FB1850), PIDConL (FB1874), VlvL (FB1899)Best Practices for Custom Corporate and OEM Library Development
When developing corporate engineering libraries or customer-specific function blocks, enforce the following guidelines:
-
Define a Standard Corporate Numbering Range:
- Standardize all custom company blocks in the range FB501 to FB899 or FB2000 to FB2500.
- Document this block schedule explicitly in the library functional specification and customer handover documentation. -
Configure CFC Compile/Download Settings:
- In the Master Library and target projects, open the CFC Editor and selectOptions -> Customize -> Compile/Download.
- Ensure the 'Installed Block Numbers' and 'Dynamic DB Numbers' ranges do not overlap with your custom block allocation. -
Assign Unique Family and Author Attributes:
- In SCL source headers, assign distinctFAMILY : 'MY_CORP'andAUTHOR : 'DEV_TEAM'attributes to facilitate filtering in SIMATIC Manager and the CFC block catalog. -
Never Modify Standard Library Block Numbers:
- If wrapping an APL block, never renumber the internal FB1850; instead, create a wrapper block (e.g. FB601) that calls or extends the standard block.
Verification
Verify block allocation compliance through the following steps:
1. In SIMATIC Manager, select Options -> Reference Data -> Display and open the Block Call Structure and Unused Blocks lists.
2. Check the numeric sequence of all FBs in the S7 Program 'Blocks' folder. Ensure no custom user blocks exist within the ranges 1-50, 100-299, 1000-1199, or 1800-1999.
3. In the CFC Editor, execute a full compilation (Chart -> Compile -> Entire program) with 'Generate module drivers' enabled. Confirm zero warnings regarding block number conflicts.
4. Compile all SFC charts (Options -> Compile). Verify that FB1050 (ES_SFC) and FB1051 compile without interface mismatch errors.
Limitations and Operational Precautions
- CPU Memory Architecture Limits: Older S7-400 CPUs (e.g. CPU 414-2) have maximum block number limits (e.g., maximum FB number of 1024 or 2048). Check CPU technical specifications before assigning block numbers above FB2000.
- CFC Cross-Reference Table: Renumbering an FB that is already instantiated in hundreds of CFC charts breaks chart interconnections unless performed using the CFC block type update procedure (
Options -> Block Types -> Clean Up / New Version). - Third-Party Package Collisions: Always inspect the block numbers of third-party packages (e.g. Modbus TCP
MB_RED_400, CEMAT, or SIPART) before integrating them into a shared multiproject.
Engineer FAQ
Why is FB1050 reserved in SIMATIC PCS 7?
FB1050 is ES_SFC, the core SFC system block that manages the interface between S7-400 Sequential Function Charts and the OS WinCC runtime visualization. Overwriting or utilizing FB1050 for a custom block destroys SFC functionality.
Can I renumber standard APL blocks to free up FB numbers?
No. Renumbering standard APL blocks (e.g. changing MotL from FB1850 to FB50) violates Siemens library validation, breaks OS AS-OS compilation, and prevents applying future Siemens APL service packs and hotfixes.
What is the safe range for custom SCL function blocks in PCS 7?
The safest ranges for custom user blocks are FB501 to FB899 and FB2000 to FB3999 (on S7-400 CPUs supporting higher block numbers). Always verify that CFC compiler dynamic settings do not conflict with these ranges.
Technical References
- SIMATIC Process Control System PCS 7 Compendium Part A - Configuration Guidelines (A5E45063013-AA)
- Siemens Industry Online Support FAQ: Reserved block numbers in SIMATIC PCS 7 (Entry ID 2771491)
- SIMATIC PCS 7 SFC for S7 Manual (A5E41356136-AB)
- SIMATIC PCS 7 Advanced Process Library (V9.0) Manual (A5E39147340-AA)
Related Articles
- Developing Custom APL Block Icons and Faceplates Linked to SCL Function Blocks in PCS 7
- Why Technological Blocks Are Missing from SFC Type Block Contacts in SIMATIC PCS 7
- Resolving CFC Download Error Block DB Already Exists in CPU - Block Was Not Downloaded
- Resolving CPU Programming Error 58 on FC2936 After Splitting CFC Runtime Groups
Related Tags
- Reserved FB Ranges
- SFC Runtime
- ES_SFC FB1050
- APL FB1800
- Custom Libraries
- CFC Block Types