Добрый день, написал код который работает он дискретной переменной 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