I am also working on a geneva wheel ATC. But I am still learning C#. The machine is a 1990 Haas VF1 with a 16 tool carosel. It has 4 functions, shuttle in, shuttle out (the slide) and cw and ccw platter rotation. The feedback switches are shuttle in, shuttle out, T1 home position and pocket at spindle position.
So the main function is turn on an output and when that switch trips, turn off that output.
https://www.youtube.com/watch?v=GhQdlIFylQ8&t=10730s
This is the tutorial I am following, but I'm only half way through. I am starting to understand some of the macros I have found. Like double is a decimal number vs int which is an integer. I now understand the array, so that'll be useful. I am still lost as to tracking the rotation. I suppose it will have to count the pulses from the last switch I mentioned.
My current endeavor is to get the power drawbar to release with the button on front of the spindle housing. It's an input to the computer. I can trip (set) the output to make it open the "chuck". For now I am using the mist function and toggling the button. One press for open and another press for close. I intend to write a macro loop with an and statement using the button input AND the vfd signal spindle stopped. The idea is a safety so the chuck can't open if the spindle is not stopped. I am concerned I may jostle the spindle during the manual tool change and make it close the chuck. I won't know until I try.
I'm looking forward to sharing progress with others on this thread.