All good advice Joe. One little thing needs cleared up though.
When you home or reference your machine you will drive an axis until it triggers its home
switch, back up a little until it deactivates again, and set its 'machine co-ordinate' for that axis to zero.
That is exactly right but only if your home offset is set to 0. In other words, referencing sets the machine coordinates to whatever you have set for the Home Offset. This is true if using home switches or homing in place. Referencing is the only way to establish machine coordinates.
Home switches are a convenient way to accurately and repeatedly reference a machine to a known position.
Limit switches are used to set the absolute max/min travel of an axis. In many ways they mimic an estop that is not dependant on someone pressing. The machine presses them if travel limits are exceeded.
Soft limits do the same job as limit switches except they work in software and can bring the machine to a controlled stop and does so taking into account the motor tuning for each axis (a lot like anti-lock brakes in a car). Soft limits are set and work in machine coordinates so they are of no use if machine coordinates are not consistently and accurately established.
Home switches and limit switches can double as each other. In other words, they can be the same physical switch, wires and inputs. Limits are ignored during homing (referencing) and home switches are only recognized during homing.
All home and limit switches can use a single input (if your wiring scheme and your hardware will allow it of course). The thing that makes this possible is Home Order. If you want to be able to home more than one axis at the same time you will have to use separate home switches for each of those axis.
Home and limits can be normally open or normally closed. I prefer normally open set up so they are part of a normally closed circuit. This way if a wire gets cut and opens the circuit motion stops and I immediately realize there is a problem. If not done correctly a wire could break and when the limit is needed it simply doesn't work and you had no warning. There are ways to use normally open switches to get a normally closed circuit. A really effective setup is often one switch for each axis that is used for both limits and the home switch for that axis. If I need to explain further let me know.
Work coordinates are an offset of machine coordinates.
Depending on your wiring, configuration, etc. you may get limit switch triggered warnings when you enable Mach. These are not false. Say for example a power supply supplying power to limit switches is enabled and disabled with Mach and the switches are setup to supply voltage to an input else there is a limit fault. Well, if that is the case when Mach is enabled there is a limit switch fault (even if only for a split second).