Не пойму, как грамотно возводить и сбрасывать переменную для записи/чтения по Модбас
Вроде бы раньше получалось и так. Но не выходит сейчас
Вот один цикл ПЛК. Переменные внутри условий не возводятся. Или они успевают перезаписаться быстро в том же цикле? И получается что не возвелись.
Но команды модбаса по крайней мере не активируются таким образом, только если убрать две строчки, которые за пределами IF
Если коротко, при изменении переменной в поле на hmi панели, там же выставляется бит в регистре, за которым циклически следит ПЛК.
При появлении сигнала об изменении этого бита в 1, ПЛК забирает значение с панели.
И ПЛК сам сбрасывет этот бит в панели.
В другой более крупной программе это у меня работало. Простой сброс в FALSE в том же цикле ПЛК.
Код:
IF pumpType = 0 THEN
IF pumpTypeValueChangedByOperatorRead THEN
readPumpTypeValueTrigger := TRUE;
pumpType:= pumpTypeFromHMI;
pumpTypeValueChangedByOperatorWrite := FALSE;
resetPumpTypeValueTrigger := TRUE;
IF pumpType = PUMP_TYPE.nitrogen THEN
minStartPumpTemperature:= s_minStartPumpTemperatures.nitrogen;
END_IF
END_IF
END_IF
readPumpTypeValueTrigger := FALSE;
resetPumpTypeValueTrigger := FALSE;
Очень простой наверное вопрос для тех кто в теме ПЛК.