| TIME(9) | HAL Component | TIME(9) | 
NAME¶
time - Time on in Hours, Minutes, Seconds
SYNOPSIS¶
loadrt time [count=N|names=name1[,name2...]]
DESCRIPTION¶
Time
When either the time.N.start or time.N.pause bits goes true the cycle timer resets and starts to time until time.N.start AND time.N.pause go false. When the time.N.pause bit goes true timing is paused until time.N.pause goes false. If you connect time.N.start to halui.program.is-running and leave time.N.pause unconnected the timer will reset during a pause. See the example connections below for more information.
Time returns the hours, minutes, and seconds that time.N.start is true.
Sample PyVCP code to display the hours:minutes:seconds.
<pyvcp>
  
   <hbox>
  
   <label>
  
   <text>"Cycle Time"</text>
  
   <font>("Helvetica",14)</font>
  
   </label>
  
   <u32>
  
   <halpin>"time-hours"</halpin>
  
   <font>("Helvetica",14)</font>
  
   <format>"2d"</format>
  
   </u32>
  
   <label>
  
   <text>":"</text>
  
   <font>("Helvetica",14)</font>
  
   </label>
  
   <u32>
  
   <halpin>"time-minutes"</halpin>
  
   <font>("Helvetica",14)</font>
  
   <format>"2d"</format>
  
   </u32>
  
   <label>
  
   <text>":"</text>
  
   <font>("Helvetica",14)</font>
  
   </label>
  
   <u32>
  
   <halpin>"time-seconds"</halpin>
  
   <font>("Helvetica",14)</font>
  
   <format>"2d"</format>
  
   </u32>
  
   </hbox> </pyvcp>
In your post-gui.hal file you might use one of the following to connect this timer:
  
   For a new config:
  
   loadrt time
  
   addf time.0 servo-thread
  
   net cycle-timer time.0.start <= halui.program.is-running
  
   net cycle-timer-pause time.0.pause <= halui.program.is-paused
  
   net cycle-seconds pyvcp.time-seconds <= time.0.seconds
  
   net cycle-minutes pyvcp.time-minutes <= time.0.minutes
  
   net cycle-hours pyvcp.time-hours <= time.0.hours
  
   Previous to this version if you wanted the timer to continue running
  
   during a pause instead of resetting, you had to use a HAL NOT component
  
   to invert the halui.program.is-idle pin and connect to time.N.start as
  
   shown below:
  
   loadrt time
  
   loadrt not
  
   addf time.0 servo-thread
  
   addf not.0 servo-thread
  
   net prog-running not.0.in <= halui.program.is-idle
  
   net cycle-timer time.0.start <= not.0.out
  
   net cycle-seconds pyvcp.time-seconds <= time.0.seconds
  
   net cycle-minutes pyvcp.time-minutes <= time.0.minutes
  
   net cycle-hours pyvcp.time-hours <= time.0.hours
  
   For those who have this setup already, you can simply add a net connecting
  
   time.N.pause to halui.program.is-paused:
  
   net cycle-timer-pause time.0.pause <= halui.program.is-paused
FUNCTIONS¶
PINS¶
- time.N.start bit in
 - Timer On
 - time.N.pause bit in (default: 0)
 - Pause
 - time.N.seconds u32 out
 - Seconds
 - time.N.minutes u32 out
 - Minutes
 - time.N.hours u32 out
 - Hours
 
AUTHOR¶
John Thornton, itaib, Moses McKnight
LICENSE¶
GPL
| 2025-01-27 | LinuxCNC Documentation |