Нет, все-таки все оказывается не так просто. Сейчас закомментировал абсолютно все. Оставил только такой код в PLC_PRG:

Код:
PROGRAM PLC_PRG
VAR
	mqtt: MQTT_Client.FB_MQTTClient;
	iTest: INT := 0;
END_VAR

mqtt.i_xEnable := TRUE;
mqtt.i_sBrokerAddress := sHost;
mqtt.i_uiPort := iPort;
mqtt.i_sUsername := sUsername;
mqtt.i_sPassword := sPassword;

mqtt.i_sPayload := INT_TO_STRING(iTest);
mqtt.i_sTopicPublish := 'broker/test/step1';
IF (mqtt.q_udiState = 60) THEN 
	mqtt.i_xPublish := TRUE;
ELSE
	mqtt.i_xPublish := FALSE;
END_IF
mqtt();

iTest := iTest + 1;
Итог - после примерно 1300-1500 итераций, падение в AccessViolation. В чем может быть проблема?

mqtt_exception 2.jpg
mqtt_exception_log.jpg