Siemens PLC Questions

Question :

In one of our control panel we had used some DO card for exciting several 24V-relay .This system was being working without any problems maybe for years .But recently we find out some relays are not excited however the command of PLC exists. We checked the voltage on the solenoid of relay and measure it about 15 V as it should be 24 V Our question is that whether these cards have been damaged


The voltage of 15V is too low. The voltage should be in a range of 23V. Please disconnect the load from the output, connect a resistor of appr. 480Ohm to this output. If the 15V stay furthermore, the module is defect or the load (L+/M-connection for the output group) is too low. Please check the power supply for the load. If this is ok, change the module.

Question :

Any wrong access (datas, timer et.) will cause an interupt and OB121 will executed. Unlikely the error registers are not contain any information about the reason (OB121_BLK_NUM etc.)
Also in the Step7 tool is no info available, which FB

generate the problem
How I can find out, in which FB/FC/OB the error occur?


You can find further information using the B-stack (block stack) where the last blocks which are called are listed.

If you open the diagnostic buffer when the project is opened, you can jump to the corresponding code line in your program where the problem occurred.

For further information please refer to the step7-manual “programming with Step7” in the chapter “diagnosis”.

How Accurately can I calculate real numbers that are used in formulas?

Generally speaking, it holds that REAL numbers are specified and calculated with an accuracy of 6 decimal places. With the calculations you should also note that this accuracy holds for every single step of the calculation.
When adding and subtracting, the exponents are aligned, i.e. the basis and the exponents are the same for adding and subtracting, only the mantissas are added.
Example 1:
To be calculated:
y = a + b - c;
z =1 / y;
a = 100 000 000 as REAL value = 1.000000108*
b = 1 as REAL value = 1.000000100*
c = 100 000 000 as REAL value = 1.000000108*

  • In the first step of the calculation (a + b) is determined: (a + b) = 1.000000108 + 1.000000100 after alignment of the exponents you get (a + b) = 1.000000108 + 0.00000001108. The last two places are truncated, because they can no longer be displayed (accuracy of 6 decimal places).
  • So a zero is added .
  • In the second step of the calculation ((a + b)-c) , c is subtracted from the result of the previous step of the calculation: ((a + b)-c) = 1.000000108 - 1.000000108 = 0.000000e0
  • If z is now determined, then you attempt to divide by zero!

The correct solution is obtained in this case by converting the calculation.
y = a - c + b;
z = 1 / y;
Since here, after the calculation (a - c) , the result 0.000000e0 is obtained, in the second step of the calculation ((a -c) + b) , the addition of the REAL number leads to the correct result.
y = 0.000000100 + 1.00000100 = 1.000000*100

Therefore, before programming a calculation, you should always check how the calculation can best be made.

what do you mean by multi-tier configuration in PLC. how many slots can be inserted in s7-300 single rack ?

Basically you can insert 8 modules without any restrictions. Also you can use 4 racks => here you get 32 modules.
But in 2010 (if i remember correctly) Siemens introduced increase module per rack number to 12 with some restrictions (like only SM modules can be used for such extension) => here comes 12 modules per rack.

Author: Ashu