Advertisement
adfox83

Convert Time to DHMS

Feb 3rd, 2024
1,056
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SCL 1.03 KB | None | 0 0
  1. FUNCTION "fcConvTimeToDHMS" : VOID
  2. { S7_Optimized_Access := 'TRUE' }
  3. VERSION : 0.1
  4.    VAR_INPUT
  5.       timInput : TIME;   // Input time
  6.    END_VAR
  7.  
  8.    VAR_OUTPUT
  9.       usDays : USInt;   // Days left
  10.       usHours : USInt;   // Hours left
  11.       usMins : USInt;   // Minutes left
  12.       usSecs : USInt;   // Seconds left
  13.    END_VAR
  14.  
  15.    VAR_TEMP
  16.       udiDiffSec : UDInt;   // Time difference in seconds
  17.    END_VAR
  18.  
  19.  
  20. BEGIN
  21.     (*
  22.         fcTimerRemainL
  23.         adfox@horsefucker.org
  24.        
  25.         This function is used to convert TIME into
  26.         days, hours, minutes and seconds.
  27.        
  28.     *)
  29.    
  30.     #udiDiffSec := TIME_TO_UDINT(#timInput) / 1000;                 // -- Get total seconds
  31.     #usDays     := UDINT_TO_USINT(#udiDiffSec / 86400);             // -- Get days left
  32.     #usHours    := UDINT_TO_USINT((#udiDiffSec MOD 86400) / 3600);  // -- Get hours left
  33.     #usMins     := UDINT_TO_USINT((#udiDiffSec MOD 3600) / 60);     // -- Minutes
  34.     #usSecs     := UDINT_TO_USINT(#udiDiffSec MOD 60);              // -- Seconds
  35.    
  36.    
  37. END_FUNCTION
  38.  
  39.  
Tags: PLC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement