After passivation of an analog input module being used redundantly (here: 6ES7 331-7NF00), it can no longer be depassivated by removing and replugging. Rather this must be done after fault clearance by removing and replugging a (reserve) module or by startup of the S7 CPU
Reason for this behavior:
The analog input module requires (in contrast to digital modules) a certain for parameterization after return of the power supply or replugging. The module signals a group error until the parameterization has been completed. If a call for depassivation comes during this parameterization time, then the call is aborted because of the group error and the analog input module is passivated again. Under certain circumstances therefore you cannot depassivate the module.
The FB_DEPA has been developed to enable depassivation by simply removing/replugging analog input modules that are used redundantly (6ES7 331-7NF00).
The FB_DEPA notes a depassivation call and repeats this after a certain delay.
The FB_DEPA is incorporated automatically in the startup OB (OB 100) and in the organization blocks OB 82 (diagnostics alarm), OB 83 (remove/replug alarm) and OB 86 (rack failure alarm), in which depassivation is triggered by the block RED_DEPA. Furthermore, it must also be incorporated in a cyclic interrupt OB or in OB 1.
Via an internal flag the FB_DEPA stores the event that a depassivation call has been triggered. This flag is queried during the cyclic section of the program. If the flag is set, RED_DEPA is called again to trigger depassivation after a certain time that is to be optimized on the project side (count down). If another depassivation is triggered via OB 8x / OB 100 during the count down, the counter is started again.
DELAY_T is a counter value, i.e. it is not the time that is parameterized, but number of cycles. The actual delay time is given by the cyclic interrupt or cycle time of OB 1.
Each time the system is upgraded you should check whether the RED_DEPA block has been incorporated in addition in another OB 8x. If this is the case, the FB_DEPA should also be incorporated in that OB.
Only one instance is required for the FB_DEPA.
If other modules display a similar behavior, you can of course use the block for them too.
Below is the STL source as txt file:
Attachment: FB_DEPA_AWL.txt ( 2 KB )