This post is really more a sanity check for me for where I am at on programming.
1)
Pneumatic drawbar release: Fully functional including spindle running interlocks and having the position stored in a register so the drawbar will not retract unless required to (for example if the spindle is running and the button was pressed it would not extend, but still fire to retract). This is ready to be ported from my development profile of Mach to my runtime.
2)
MPG functions: MPG works as required however the proper setting are not loaded into mach until the switches are moved after startup. I will add a section to the screen load script to check the position of the switches and ESTOP and set the correct settings. Also need to modify the Enable button script to prevent the machine from being enabled if the ESTOP on the MPG is pressed.
3)
Cycle start, hold, and stop buttons: Wrote code which correctly responded to the button press, but for whatever reason Mach did not respond the the cycle start API command. Need to revisit.
4)
Spindle Enable/Disable: Buttons have been placed on screen, but no code is written. Needs to be interlocked with the cycle start function and machine mode so the machine cannot be started if the spindle is disabled, and the spindle cannot be disabled if the machine is running.
5)
Spindle Orient: Button is on screen but has not been scripted. Should simply call a M19 and the code should be placed there.
6)
De-ref all: Machine should be dereferenced if the drives are disabled to prevent an error introduced by the screw moving while the motor is off.
7)
Auto Enable Soft Limits: I constantly forget to enable soft limits after homing. This should be automatically enabled after homing completes.
8)
Power On cycle: I want to add a menu system which walks me through all the steps of machine startup. This would include homing, spindle warmup, oiling reminders, checking for errors, etc.
9)
Stop machine for fault: I need to trigger an estop for any condition which prevents the machine from running. This would be a drive fault, a power supply failure, cabinet over temp, etc.
9)
Drive Serial Communications: I have proven functionality to both send and receive serial communications from the servo drives. I need to create a single function to send/receive a transmission so I can figure out if a plain delay is acceptable or coroutines need to be used. From there I have developed the structure which will allow for implementation of many functions over serial. These include:
- Spindle Load Monitoring
- Absolute Homing (automatically get current motor position from drives after power off)
- Define home
- Set Position error limits on drives
- Set Max Torque on drives
- Read Fault codes
- and more...
I'm having a little hard time to stay motivated to get the code finished up, but the machine will be better because of it.