Kkula
Browse Questions » SIMATIC S7-300 / S7-300F: Ob82 Diagnosis From Safety Di Component Issue

About User

Questions Asked: 37.9K

Answers Given: 32

0
  • Open

SIMATIC S7-300 / S7-300F: Ob82 Diagnosis From Safety Di Component Issue

Hello
Firstly, many thanks for all the advice generally contained in this forum,  It has been an invaluable resource over the years and has helped me solve many problems.  However I have come up against an intermittent fault on a Safety Digital Input Card that has got me stumped  - and am trying to diagnose the exact cause of the problem.
My suspicion is that the fault is in the external field wiring that is connected to the card and I am trying to use OB82 to diagnose which Channel (or Group Power Supply) is causing the fault so that I can narrow down the wiring to be examined in detail. (Initial field wiring checks have not revealed any faults) 
I have enabled module diagnostics on the affected module #110 ( Whose Rack is connected to the PLC over a Hardwired connection rather than by a Probus/Profinet remote IO slave)
The PLC CPU Module Diagnostics show the module going into fault (Event 7) and that there is Channel Data Available (Event 8):
Event 7 of 100:  Event ID 16# 79E5
F-I/O passivated
- Check value error (CRC)/Sequence number error detected in the F-CPU
Logical base address:    110
F-I/O database number:  12802
External error, Incoming event
06:23:07.339 AM  06/16/2015
(Coding: 16# 79E5  9F00  C47A  3202  006E  0001)
Event 8 of 100:  Event ID 16# 3942
Module problem or maintenance necessary
Module type: FM
Input address:   110
Internal module power supply failed
Channel information available
Module/submodule fault
Internal module error
Requested OB: Diagnostic interrupt OB (OB82)
Priority class: 26
External error, Incoming event
06:23:07.311 AM  06/16/2015
(Coding: 16# 3942  1A52  C554  006E  0318  1000)
However, the Module does not list any Channel or Group Data to narrow the fault down - Instead the fault is shown as 'External load voltage missing'.  See Events 1 to 6 below.  No Diagnostic Interrupt information is listed in the Module Information.
Diagnostic buffer of module FDI24xDC24V
Order No./ Description            Component                         Version                      
6ES7 326-1BK02-0AB0               Hardware                          1                            
- - -                             Firmware                          V 3.0.0                      
Rack:                             2
Slot:                             8
Serial number: S C-E7WC23412014
Event 1 of 8:  Event ID 16# F980:0501
External load voltage missing
External error, Incoming event
(Coding: 16# F980  0501  0000  0000  0000  0000)
Event 2 of 8:  Event ID 16# F980:0501
External load voltage missing
External error, Incoming event
(Coding: 16# F980  0501  0000  0000  0000  0000)
Event 3 of 8:  Event ID 16# F980:0501
External load voltage missing
External error, Incoming event
(Coding: 16# F980  0501  0000  0000  0000  0000)
Event 4 of 8:  Event ID 16# F980:0501
External load voltage missing
External error, Incoming event
(Coding: 16# F980  0501  0000  0000  0000  0000)
Event 5 of 8:  Event ID 16# F980:0501
External load voltage missing
External error, Incoming event
(Coding: 16# F980  0501  0000  0000  0000  0000)
Event 6 of 8:  Event ID 16# F980:0501
External load voltage missing
External error, Incoming event
(Coding: 16# F980  0501  0000  0000  0000  0000)
So, in an attempt to gain more information about the problem I have programmed OB82 with the following code to try and capture more information and log it using SFC51 if a channel fault is detected.
OB82 Code
// Set Data bit to show that OB82 has been called.
      A     "AlwaysOn"
      S     "DIAG_DB".OB82_Called
// Compare Address to Module Base Address stored in TEMP Data of OB82 
      L     110
      L     #OB82_MDL_ADDR
      ==I  
      JCN   END                         // If the module address of the Ob82 is 110 then do not jump
// Evaluate Whether Event Class matches the Value of 39 (Hex) in byte format
// b#16#39 for entering the diagnostic, b#16#38 for leaving the diagnostic
      L     B#16#39
      L     #OB82_EV_CLASS
      ==I  
      JCN   MODOK                        // If not entering Diagnostic then Module is ok
// Set up module on address 110 when entering diagnostic
      A     #OB82_EXT_FAULT
      S     "DIAG_DB".External_Failure
      JCN   NEXF
      A     #OB82_INT_FAULT
      S     "DIAG_DB".Internal_Failure
      A     #OB82_PNT_INFO
      JCN   END                         // Jump not if there is more channel information available
      S     "DIAG_DB".Channel_Failure
      JU    END
NEXF: NOP   0
//here you may react to internal faults
      SET  
      =     "DIAG_DB".Internal_Failure
      JU    END
MODOK: NOP   0
//reset all markers if not entering diagnostic > the module is ok
      CLR  
      =     "DIAG_DB".Channel_Failure
      =     "DIAG_DB".Internal_Failure
      =     "DIAG_DB".External_Failure
      JU    END
END:  NOP   0
      BEU  
Unfortunately though when the eror occurs, it sets the OB82 Called Bit (so I can see that the block has been called) but none of the other bits 'Channel_Failure, Internal Failure, External Failure are set. Therefore the SFC51 (triggered in OB1 when the Channel Failure bit is set) is never called.
I guess my question is whether anyone else has experienced a similar problem and if so, what steps did they take to find the fault.  And also has anyone used OB82 in similar circumstances and had the same issue as me (or have I made a silly programming error that I haven't spotted)
If you've made it this far into the post, then many thanks for taking the time to read it - it is much appreciated.
Best regards,
Jon

0 Likes 0 Favourites 0 Followers 0 Comments
Answers(1)

Diagnosing Intermittent Safety Digital Input Card Faults

You're facing a tricky issue with an intermittent fault on a safety digital input card (FDI24xDC24V, Module #110). The PLC diagnostics indicate a fault (Event 7 - CRC/Sequence error) and module problem (Event 8 - Internal power supply failed, Channel information available), yet the diagnostic buffer consistently reports "External load voltage missing" (Events 1-6) without providing specific channel information.

Your approach of using OB82 for detailed diagnostics is sound, but the fact that your OB82 code isn't triggering as expected suggests the issue lies in how the module is reporting the fault *before* OB82 is even called, or an issue with the event class being evaluated.

Here are some suggestions:

  • Verify OB82 Configuration: Double-check that OB82 is correctly assigned to the diagnostic interrupt in the PLC configuration. Ensure the priority class is appropriate.
  • Event Class Check: Critically review your OB82 code's event class comparison (L B#16#39). The correct event class for entering diagnostics might differ based on your TIA Portal version or PLC configuration. Consult Siemens documentation for the exact value.
  • Module Diagnostics Settings: Re-examine the module diagnostics settings. While you've enabled module diagnostics, ensure you've selected the appropriate level of detail for channel-specific fault reporting.
  • Hardwired Connection Check: You’ve checked field wiring, but re-verify the backplane connection to the module. A loose or corroded connector could cause intermittent communication errors.
  • Firmware Update: Consider updating the module firmware to the latest version. Bugs can sometimes cause unexpected behavior.
  • Siemens Support: Given the nature of safety-related diagnostics, consider directly engaging Siemens Support through SiePortal. They can provide tailored guidance based on your specific hardware and software configuration.

It’s possible the 'External load voltage missing' message is a symptom of an underlying communication problem rather than a direct indication of a wiring issue. Troubleshooting the communication path is crucial.

0