Generate HMI / SCADA tags from S7 project!
S7 DB TAGS GENERATOR decodes any S7-300/-400 datablocks in your Step7 project and generates a tag for each variable.
It parses simple and complex types, arrays of structures, nested UDTs and so on.
No HMI / SCADA brand-bound ties! The utility outputs the data in Excel (XLS) or Comma Separated Values (CSV) format thus allowing extreme flexibility in creating your own HMI/SCADA tags table.
While running as normal Windows' GUI application, the S7 DB TAGS GENERATOR runs also as command line so that it can be called by your own automated procedures.
The S7 DB TAGS operates on S7 source code exported as AWL text file by Simatic Manager, while the association of symbolic names and DB indication is done by an ASC file exported by the Simatic Symbol editor. These files are easily and quickly generated by the Siemens S7 programming software.
Just feed the S7 DB TAGS with these two files and you will get thousands over thousands of tags in a matter of seconds. This utility pays as soon as it saves you a few boring (and error prone) typing hours.
For further information, download the manual.
|
GUI interface |
![]() |
command line interface |
Sample outputs
DB with mixed data types
| DataBlock | Tag | Type | Address | Description | Initial value | Actual value |
| Constants | Ax11LowerLimitSwitch | DINT | DB5.DBD0 | micron | L#135000 | L#135000 |
| Constants | Ax11UpperLimitSwitch | DINT | DB5.DBD4 | micron | L#2620000 | L#2620000 |
| Constants | Ax12LowerLimitSwitch | DINT | DB5.DBD8 | degrees *1000 | L#0 | L#0 |
| Constants | Ax12UpperLimitSwitch | DINT | DB5.DBD12 | degrees *1000 | L#189000 | L#189000 |
| Constants | Ax13LowerLimitSwitch | DINT | DB5.DBD16 | micron | L#0 | L#0 |
| Constants | Ax13UpperLimitSwitch | DINT | DB5.DBD20 | micron | L#0 | L#0 |
| Constants | Ax14LowerLimitSwitch | DINT | DB5.DBD24 | micron | L#0 | L#0 |
| Constants | Ax14UpperLimitSwitch | DINT | DB5.DBD28 | micron | L#0 | L#0 |
| Constants | Ax21LowerLimitSwitch | DINT | DB5.DBD32 | degrees *1000 | L#-2000 | L#-2000 |
| Constants | Ax21UpperLimitSwitch | DINT | DB5.DBD36 | degrees *1000 | L#272000 | L#272000 |
DB with mixed data types defined in UDT
| DataBlock | Tag | Type | Address | Description | Initial value | Actual value |
| unit_LEFT_axis12DB | DBax.ACT_VAL | DINT | DB12.DBD310 | actual value | L#0 | |
| unit_LEFT_axis12DB | DBax.SPEED | DWORD | DB12.DBD314 | speed | DW#16#0 | |
| unit_LEFT_axis12DB | DBax.REM_DIST | DINT | DB12.DBD318 | remaining distance | L#0 | |
| unit_LEFT_axis12DB | DBax.SET_POS | DINT | DB12.DBD322 | set position to be approached | L#0 | |
| unit_LEFT_axis12DB | DBax.SUM_OFST | DINT | DB12.DBD326 | sum of tool offset and zero offset | L#0 | |
| unit_LEFT_axis12DB | DBax.TRAV_SPE | DWORD | DB12.DBD330 | traversing speed | DW#16#0 | |
| unit_LEFT_axis12DB | DBax.di_334 | DINT | DB12.DBD334 | L#0 | ||
| unit_LEFT_axis12DB | DBax.di_338 | DINT | DB12.DBD338 | L#0 | ||
| unit_LEFT_axis12DB | DBax.ACT_BL.PROG_NO | BYTE | DB12.DBB342 | part program number | B#16#0 | |
| unit_LEFT_axis12DB | DBax.ACT_BL.BLCK_NO | BYTE | DB12.DBB343 | part program block number | B#16#0 | |
| unit_LEFT_axis12DB | DBax.ACT_BL.G_1_EN | BOOL | DB12.DBX344.0 | enable bit for G function group 1 | FALSE | |
| unit_LEFT_axis12DB | DBax.ACT_BL.G_2_EN | BOOL | DB12.DBX344.1 | enable bit for G function group 2 | FALSE | |
| unit_LEFT_axis12DB | DBax.ACT_BL.G_3_EN | BOOL | DB12.DBX344.2 | enable bit for G function group 3 | FALSE | |
| unit_LEFT_axis12DB | DBax.ACT_BL.b_344_3 | BOOL | DB12.DBX344.3 | FALSE | ||
| unit_LEFT_axis12DB | DBax.ACT_BL.X_T_EN | BOOL | DB12.DBX344.4 | enable bit for position / dwell time | FALSE | |
| unit_LEFT_axis12DB | DBax.ACT_BL.SR_L_EN | BOOL | DB12.DBX344.5 | enable bit for number of subroutine loops | FALSE | |
| unit_LEFT_axis12DB | DBax.ACT_BL.SR_N_EN | BOOL | DB12.DBX344.6 | enable bit for subroutine number | FALSE | |
| unit_LEFT_axis12DB | DBax.ACT_BL.SKIP_EN | BOOL | DB12.DBX344.7 | enable bit for block skip | FALSE | |
| unit_LEFT_axis12DB | DBax.ACT_BL.V_EN | BOOL | DB12.DBX345.0 | enable bit for velocity | FALSE | |
| unit_LEFT_axis12DB | DBax.ACT_BL.M_1_EN | BOOL | DB12.DBX345.1 | enable bit for M function group 1 | FALSE | |
| unit_LEFT_axis12DB | DBax.ACT_BL.M_2_EN | BOOL | DB12.DBX345.2 | enable bit for M function group 2 | FALSE | |
| unit_LEFT_axis12DB | DBax.ACT_BL.M_3_EN | BOOL | DB12.DBX345.3 | enable bit for M function group 3 | FALSE | |
| unit_LEFT_axis12DB | DBax.ACT_BL.TO_EN | BOOL | DB12.DBX345.4 | enable bit for tool offset number | FALSE |
array
| DataBlock | Tag | Type | Address | Description | Initial value | Actual value |
| unit_LEFT_axis12DB | DBax.feld1_intern[100] | BYTE | DB12.DBB100 | internal use | B#16#0 | |
| unit_LEFT_axis12DB | DBax.feld1_intern[101] | BYTE | DB12.DBB101 | internal use | B#16#0 | |
| unit_LEFT_axis12DB | DBax.feld1_intern[102] | BYTE | DB12.DBB102 | internal use | B#16#0 | |
| unit_LEFT_axis12DB | DBax.feld1_intern[103] | BYTE | DB12.DBB103 | internal use | B#16#0 | |
| unit_LEFT_axis12DB | DBax.feld1_intern[104] | BYTE | DB12.DBB104 | internal use | B#16#0 | |
| unit_LEFT_axis12DB | DBax.feld1_intern[105] | BYTE | DB12.DBB105 | internal use | B#16#0 | |
| unit_LEFT_axis12DB | DBax.feld1_intern[106] | BYTE | DB12.DBB106 | internal use | B#16#0 | |
| unit_LEFT_axis12DB | DBax.feld1_intern[107] | BYTE | DB12.DBB107 | internal use | B#16#0 | |
| unit_LEFT_axis12DB | DBax.feld1_intern[108] | BYTE | DB12.DBB108 | internal use | B#16#0 |
array of UDT with mixed data types
| DataBlock | Tag | Type | Address | Description | Initial value | Actual value |
| Unit_LEFT_program | prg[144].free0 | INT | DB61.DBW3720 | spare | 0 | |
| Unit_LEFT_program | prg[144].par1 | DINT | DB61.DBD3722 | spare | L#0 | |
| Unit_LEFT_program | prg[144].par2 | DINT | DB61.DBD3726 | spare | L#0 | |
| Unit_LEFT_program | prg[144].par3 | DINT | DB61.DBD3730 | spare | L#0 | |
| Unit_LEFT_program | prg[144].par4 | DINT | DB61.DBD3734 | spare | L#0 | |
| Unit_LEFT_program | prg[144].flags.ClampOption | BOOL | DB61.DBX3738.0 | option flag | FALSE | |
| Unit_LEFT_program | prg[144].flags.CentralViseUpDownOption | BOOL | DB61.DBX3738.1 | option flag | FALSE | |
| Unit_LEFT_program | prg[144].flags.flag2 | BOOL | DB61.DBX3738.2 | spare | FALSE | |
| Unit_LEFT_program | prg[144].flags.flag3 | BOOL | DB61.DBX3738.3 | spare | FALSE | |
| Unit_LEFT_program | prg[144].flags.flag4 | BOOL | DB61.DBX3738.4 | spare | FALSE | |
| Unit_LEFT_program | prg[144].flags.flag5 | BOOL | DB61.DBX3738.5 | spare | FALSE | |
| Unit_LEFT_program | prg[144].flags.flag6 | BOOL | DB61.DBX3738.6 | spare | FALSE | |
| Unit_LEFT_program | prg[144].flags.flag7 | BOOL | DB61.DBX3738.7 | spare | FALSE | |
| Unit_LEFT_program | prg[144].flags.LeftPosSmallerThan | BOOL | DB61.DBX3739.0 | limits check | FALSE | |
| Unit_LEFT_program | prg[144].flags.LeftPosGreaterThan | BOOL | DB61.DBX3739.1 | limits check | FALSE | |
| Unit_LEFT_program | prg[144].flags.RightPosSmallerThan | BOOL | DB61.DBX3739.2 | limits check | FALSE | |
| Unit_LEFT_program | prg[144].flags.RightPosGreaterThan | BOOL | DB61.DBX3739.3 | limits check | FALSE | |
| Unit_LEFT_program | prg[144].flags.flag12 | BOOL | DB61.DBX3739.4 | spare | FALSE | |
| Unit_LEFT_program | prg[144].flags.flag13 | BOOL | DB61.DBX3739.5 | spare | FALSE | |
| Unit_LEFT_program | prg[144].flags.UpdateSemaphores | BOOL | DB61.DBX3739.6 | semaphores cmd | FALSE | |
| Unit_LEFT_program | prg[144].flags.ClearSemaphores | BOOL | DB61.DBX3739.7 | semaphores cmd | FALSE | |
| Unit_LEFT_program | prg[144].semaphores | DWORD | DB61.DBD3740 | semaphores | DW#16#0 |



