Сделал вот так. Формально оно работает, но... Наверное действительно это решение для периода аварийного отсутствия станка в сети, после чего оператору надо будет в меню СЛК отключать и включать станок.
Код:
MyTimer(IN:=TRUE, PT:=T#15S, Q=>xTimerFlag);   

IF xTimerFlag = TRUE THEN
	// Попробовать включить выключенные СЛЕЙВы
 	IF NOT Modbus_Slave_SI30_1.Enable THEN
 		Modbus_Slave_SI30_1.Enable := TRUE; 
 	END_IF
	MyTimer(IN := FALSE);
	MyTimer(IN := TRUE, PT:=T#15S, Q=>xTimerFlag);
	xTimerFlag := FALSE;  
END_IF
.....

IF NOT Modbus_Master_COM_Port.xAllSlavesOk THEN
	Modbus_Slave_SI30_1.Enable := NOT Modbus_Slave_SI30_1.xError;
 	Modbus_Slave_SI30_2.Enable := NOT Modbus_Slave_SI30_2.xError;
END_IF
Подскажите, как всё таки можно в цикле перебирать все слейвы?