I've had a problem like this in the past and what i did was create a startup screen on the HMI that forces the operators each morning to flag the photoeyes before the line can be started.
I created a HMI screen that had the locations of the photoeyes around 20 and before the machine could be started they all had to be flagged. Once they were flagged, the system could be started. It worked well and it also forced operators and maintenance to get familiar with the location of all the photoeyes.