I can't figure out toggle

More
6 years 1 week ago #186875 by kkuehn
I believe I am implementing it correctly (no errors on startup, everything functions correctly in my HAL file), but something isn't right because I'm not getting the expected output.

This is what I've been trying to do:
Code:
loadrt toggle count=1 net toggle-btn toggle.0.in parport.0.pin-12-in net toggle-on toggle.0.out parport.0.pin-16-out

I've looked in HAL Meter and toggle.0.out does not change its value even when toggle.0.in does change.

Please Log in to join the conversation.

  • BeagleBrainz
  • New Member
  • New Member
More
6 years 1 week ago #186877 by BeagleBrainz
Replied by BeagleBrainz on topic I can't figure out toggle
Did you add it to a thread ?

I think toggle works when on the rising edge of an input.

So at t=0 toggle-btn toggle.0.in = 0 toggle-btn toggle.0.out=0
So at t=1 toggle-btn toggle.0.in = 1 toggle-btn toggle.0.out=1
So at t=2 toggle-btn toggle.0.in = 0 toggle-btn toggle.0.out=1
So at t=3 toggle-btn toggle.0.in = 1 toggle-btn toggle.0.out=0
So at t=4 toggle-btn toggle.0.in = 0 toggle-btn toggle.0.out=0
So at t=5 toggle-btn toggle.0.in = 1 toggle-btn toggle.0.out=1

Which seems to be the behaviour when using halrun and using setp to toggle the input bit

This is a halrun session
Code:
halcmd: loadrt threads name1=test-thread period1=1000000 Note: Using POSIX realtime halcmd: loadrt toggle count=1 halcmd: show pin Component Pins: Owner Type Dir Value Name 5 s32 OUT 0 test-thread.time 8 bit IN FALSE toggle.0.in 8 bit I/O FALSE toggle.0.out 8 s32 OUT 0 toggle.0.time halcmd: addf toggle.0 test-thread halcmd: start halcmd: shwo pin <stdin>:8: Unknown command 'shwo' halcmd: show pin Component Pins: Owner Type Dir Value Name 5 s32 OUT 288 test-thread.time 8 bit IN FALSE toggle.0.in 8 bit I/O FALSE toggle.0.out 8 s32 OUT 288 toggle.0.time halcmd: setp toggle.0.in 1 halcmd: show pin Component Pins: Owner Type Dir Value Name 5 s32 OUT 80 test-thread.time 8 bit IN TRUE toggle.0.in 8 bit I/O TRUE toggle.0.out 8 s32 OUT 80 toggle.0.time halcmd: setp toggle.0.in 0 halcmd: show pin Component Pins: Owner Type Dir Value Name 5 s32 OUT 340 test-thread.time 8 bit IN FALSE toggle.0.in 8 bit I/O TRUE toggle.0.out 8 s32 OUT 340 toggle.0.time halcmd: setp toggle.0.in 1 halcmd: show pin Component Pins: Owner Type Dir Value Name 5 s32 OUT 44 test-thread.time 8 bit IN TRUE toggle.0.in 8 bit I/O FALSE toggle.0.out 8 s32 OUT 44 toggle.0.time halcmd: setp toggle.0.in 0 halcmd: setp toggle.0.in 1 halcmd: show pin Component Pins: Owner Type Dir Value Name 5 s32 OUT 224 test-thread.time 8 bit IN TRUE toggle.0.in 8 bit I/O TRUE toggle.0.out 8 s32 OUT 224 toggle.0.time halcmd: setp toggle.0.in 0 halcmd: setp toggle.0.in 1 halcmd: show pin Component Pins: Owner Type Dir Value Name 5 s32 OUT 100 test-thread.time 8 bit IN TRUE toggle.0.in 8 bit I/O FALSE toggle.0.out 8 s32 OUT 100 toggle.0.time halcmd: quit Note: Using POSIX realtime

Please Log in to join the conversation.

More
6 years 1 week ago #186910 by bevins
Replied by bevins on topic I can't figure out toggle

Kuehn wrote: I believe I am implementing it correctly (no errors on startup, everything functions correctly in my HAL file), but something isn't right because I'm not getting the expected output.

This is what I've been trying to do:

Code:
loadrt toggle count=1 net toggle-btn toggle.0.in parport.0.pin-12-in net toggle-on toggle.0.out parport.0.pin-16-out

I've looked in HAL Meter and toggle.0.out does not change its value even when toggle.0.in does change.


This works. Have it and many others running on big machine.
change ion/outs are needed.
Code:
loadrt toggle count=6 addf toggle.0 servo-thread net vaccum-pedal-LH toggle.0.in <= hm2_5i25.0.7i70.1.0.input-11 net vaccum-output-LH toggle.0.out => hm2_5i25.0.7i71.1.1.output-38

Looks like your just missing the servo.thread

Please Log in to join the conversation.

More
6 years 1 week ago #186962 by kkuehn
Replied by kkuehn on topic I can't figure out toggle
Thank you very much for your help, indeed addf was what was missing. I'm a noob to HAL, but I'm picking it up quickly (I've only started working on programming my machine a few days ago).

If anyone is interested, I've programmed one of those red-yellow-green tower lights with the addition of an e-stop and a machine on button, it is working perfectly. (toggle2nist code stolen shamelessly from: www.forum.linuxcnc.org/24-hal-components...toggle-on-off-button )

My HAL file:
Code:
# Include your customized HAL commands here # This file will not be overwritten when you run stepconf again loadrt estop_latch loadrt toggle2nist count=1 loadrt toggle count=1 addf estop-latch.0 servo-thread addf toggle.0 servo-thread addf toggle2nist.0 servo-thread setp parport.0.pin-16-out-invert true setp parport.1.pin-02-out-invert true setp parport.1.pin-03-out-invert true setp parport.1.pin-04-out-invert true #estop-latch net estop-loopout iocontrol.0.emc-enable-in <= estop-latch.0.ok-out net estop-loopin iocontrol.0.user-enable-out => estop-latch.0.ok-in net estop-reset iocontrol.0.user-request-enable => estop-latch.0.reset net remote-estop estop-latch.0.fault-in <= parport.0.pin-10-in net red-led estop-latch.0.fault-out parport.1.pin-02-out #machine power on toggle button net power-on-btn toggle.0.in parport.1.pin-12-in-not net toggle-button toggle2nist.0.in toggle.0.out net power-on-toggle toggle2nist.0.is-on halui.machine.is-on parport.1.pin-03-out net power-on halui.machine.on toggle2nist.0.on net power-off halui.machine.off toggle2nist.0.off #machine program run net green-led halui.program.is-running parport.1.pin-04-out

Please Log in to join the conversation.

Time to create page: 0.077 seconds
Powered by Kunena Forum