Basit program yapıları için hayalgücü ve otomatik kumanda tabiki gereklidir
ama yeterli değildir, daha karmaşık sistemlerde makinaların %80-90 a yakını bir durumdan başka bir duruma ilerleyen bir sistemle çalışırlar, bu şekilde çok fazla durum olabilir ve her makinanın bir başlangıç durumu vardır.
Başlangıç durumundan diğer durumlara belirli koşullar altında geçilir ve her mevcut durum(state) ve durum geçiş koşulları(state transitions) sorgulanarak bir sonraki duruma geçilir, taki makina başlangıç durumuna geçene kadar, program sistematik bir biçimde yazılır.
Ayrıca bu yöntemle yazılan programlarda onlarca durum içerisinde mevcut durum incelenerek arıza bulma kolaylaştırır, programda okunaklık artar, iyi bir plc programında istenilen en önemli iki konudur.(Bana göre önemli olan makinanın çalışması değil,
yazılan programın kalitesidir)
Literatürde bu yönteme "Durum makinasi"(State Machine) kontrol yöntemi denir, bir sistemde birden fazla Durum makinası kullanabilir.
Aşağıdaki basit bir örneği inceleyebilirsiniz.