Добрый день, написал код который работает он дискретной переменной ready. Переменная ready - это подключённый контакт к выносному клеммному модулю. Пока переменная в false,по задумке, картинка должна окрашиваться в красный показывая что двигатель не готов к работе из-за отпавшего контакта ready. Раньше всё работало исправно, но после временного перерыва, снова подключили контакт ready и был написан следующий код:
Код:
 IF inputs.ready=TRUE
	THEN
	sCurrentFrame:=CONCAT(sPictureMainName,sFrame2);
	sCurrentNagrName:=CONCAT(sPictureNagrName,sFrame2Nagr);
	ELSIF inputs.ready=FALSE
		THEN
		sCurrentFrame:=CONCAT(sPictureMainName,sFrame4);
		sCurrentNagrName:=CONCAT(sPictureNagrName,sFrame4Nagr);
		startMain.startall:=FALSE;
	END_IF
мало того что контакт начал сам по себе периодически переходить кратковременно в false, так и изображение с "alarm" после того как ready становится true не переходит в "normal". Помогите понять что сделал не так, дело в коде или всё же в чём-то другом?
Ниже привожу список объявленных переменных и скрин работы на самом плк.
Код:
PROGRAM idImage
VAR
	sPictureMainName:STRING :='right_engine_';
sCurrentFrame:STRING:='right_engine_default';
	sFrame1:STRING:='default';
    sFrame2:STRING:='normal';
	sFrame3:STRING:='warning';
	sFrame4:STRING:='alarm';
	sPictureNagrName:STRING:='engine_';
	sCurrentNagrName:STRING:='engine_default';
	sFrame1Nagr:STRING:='default';
    sFrame2Nagr:STRING:='normal';
	sFrame3Nagr:STRING:='warning';
	sFrame4Nagr:STRING:='alarm';
END_VAR
forforum.PNG