Too many to mention and here are the questions I ask myself:
- What's the power supply, how many inputs and outputs, transistor or relay output, serial communication or not, HMI or not, safety integrated or not, HSC or not, remote IOs or not?
-What is the likelihood I will need to expand the project in the not so distant future?
-How complex is the code likely to be?
-Which plc programming software am I most comfortable with?
-What software do I already own?
-What hardware and software have I been wanting to learn or curious about and is this the time to try it out?
The last two projects I had about two minutes to answer those questions, order the hardware, go home and start programming to get the project working by the following morning. So what mattered most was what software I was comfortable with and then ordered the hardware with more capabilities than what I needed.