You should have a set of Standard Operating Procedures that all employees know that shows what the consequences of tardiness are, up to and including being fired.
Most places I've worked it starts with a verbal warning, then a written warning explaining what the consequences of their being late again are. If they are late again, that consequence is followed through on. The consequence can be a suspension without pay for X number of days, up to and including losing their job.
You say you can't fire them, but if they are constantly late and disrupting production because of it they may not be worth keeping anyways.
There are online resources for HR issues like this as well. A Google search should turn up some boiler-plate scripts to help you out.
Quis custodiet ipsos custodes? - Juvenal