Как установить бит в S7-300
Олег; 17.10.03

Нужно из циклического прерывания OB35 устанавливать и сбрасывать один дискретный выход напрямую (не через область отображения потому как медленно), но, при этом нельзя нарушать состояние других битов этого байта.

Команды типа (T PQX13.7) не бывает в природе.
Пытался считать сначала состояние выходного байта (L PQB13), но такая команда тоже невозможна.
Остается одно, читать байт из области отображения, затем установить один из его байтов, а затем (T PQB13), но к моменту исполнения циклического прерывания информация в области отображения(QB13) может уже быть устаревшей и не отображать реальное состояние выходов (если например байт PQB13 был переписан предыдущим прерыванием, а цикл OB1 еще не закончился).
Какие выходы из данной ситуации?
Re: Как установить бит в S7-300
DRON; 22.10.03

А об такой последовательности не думали?

SET
S A13.7
Re: Как установить бит в S7-300
Oz; 24.10.03

Точнее

SET
=PQ13.7
Re: Как установить бит в S7-300
VVV; 24.10.03

Можно, например, "синхронизировать" ОВ1 и ОВ35, т.е. в начале ОВ35 устанавливать какой нибудь меркер, а в конце его сбрасывать, и в программе запретить изменение нужного байта, пока установлен этот меркер.

А какая задача стоит? Может есть другое решение?
Re: Как установить бит в S7-300
KIR; 25.10.03

Для установки (сброса) бита (напр. A0.2) можно предложить след. команды:

L AB 0
OW W#16#4
T PAB 0
S A 0.4

либо используйте SFC79 (SFC80):
CALL SFC 79
N :=1
RET_VAL:=MW222
SA :=P#0.2.