Before answering your question, I think you should first decide which kind of FSM do you want to design: A Moore machine or a Mealy machine.
Choosing which one is better four your project depends on system requirements and on the final desired implementation.
Anyway, there's no specific rule to define how many states you would have. It depends on how you ...
I worked this out on the basis of the state representing the signal status, whether there is any (SIGNAL) or none (NULL).
ID represents the recognition of the ID Card, DAY represents the state of the time being not between 9 PM and 6 AM, and IN represents the status of the worker being inside.
Hope this helps... If it seems wrong, please correct me.
I think the problem lies in this part
always @(posedge CLK)
if (Reset_L==0) SCURRENT <= A;
else SCURRENT <= SNEXT;