Anet A6 Z-axis min endstop not triggering
There is no such thing as a software endstop for the 3D printer. When you power a printer the print head can be located at every X, Y, Z position (usually, Z is  at the print height of your last print, X is at the minimum X, and Y is at an arbitrary location determined by the last print).

This is exactly why we need endstops, either mechanical, optical or electronic (inductive or capacitive) end stop switches or sensors. You instruct the printer to home by using a known fixed location of the printer; this is the hitting of all endstops. The origin of the printer may have offsets, as the origin of the printer may not coincide with the endstop location. For the Anet A6 this is a few millimeters, e.g. for Marlin firmware this is defined in the configuration by:


#define X_MIN_POS -3
#define Y_MIN_POS -5


The answer to your question: "Is it possible to do this with software?" is therefore, no, you cannot do this solely with software.