- Posts: 16
- Thank you received: 0
I can't figure out toggle
6 years 1 week ago #186875
by kkuehn
I can't figure out toggle was created 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:
I've looked in HAL Meter and toggle.0.out does not change its value even when toggle.0.in does change.
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
-
Less
More
- Thank you received: 0
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
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.
6 years 1 week ago #186910
by bevins
This works. Have it and many others running on big machine.
change ion/outs are needed.
Looks like your just missing the servo.thread
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.
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:
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
