ПЛК не зависает.
Просто если программу пишут люди, не совсем освоившиеся с принципами программирования на языках МЭК - они загоняют контроллер в цикл, который и так уже организовуется самим контроллером.
И когда ПЛК видит, что его пытаются "повесить" бесконечным циклом - перезагружается по WatchDog...