Denis писал(а):Один из способов сворачивания окон показан здесь
macro_command main()
short alarm2
short FailToStop
GetData(alarm2, "MODBUS TCP/IP (zero-based addressing)", 4x, 39428, 1)
SetData(alarm2, "Local HMI", LW, 300, 1) // просто посмотреть что приходит за значение
bool a
bool b
bool c
bool d
GETBIT(alarm2, a, 4)
SetData(a, "Local HMI", LB, 166, 1)
GETBIT(alarm2, b, 5)
GETBIT(alarm2, c, 6)
GETBIT(alarm2, d, 7)
if a == 1 then
SETBITON(FailToStop, FailToStop, 0)
else
SETBITOFF(FailToStop, FailToStop, 0)
end if
if b == 1 then
SETBITON(FailToStop, FailToStop, 1)
else
SETBITOFF(FailToStop, FailToStop, 1)
end if
if c == 1 then
SETBITON(FailToStop, FailToStop, 2)
else
SETBITOFF(FailToStop, FailToStop, 2)
end if
if d == 1 then
SETBITON(FailToStop, FailToStop, 3)
else
SETBITOFF(FailToStop, FailToStop, 3)
end if
SetData(FailToStop, "Local HMI", LW, 400, 1)
bool noalarm
bool warning
bool shutdown
bool trip
bool test
if failToStop == 1 then
SETBITON(noalarm, noalarm, 0)
else
SETBITOFF(noalarm, noalarm, 0)
end if
if failToStop == 2 then
SETBITON(warning, warning, 0)
else
SETBITOFF(warning, warning, 0)
end if
if failToStop == 3 then
SETBITON(shutdown, shutdown, 0)
else
SETBITOFF(shutdown, shutdown, 0)
end if
if failToStop == 4 then
SETBITON(trip, trip , 0)
else
SETBITOFF(trip, trip , 0)
end if
SetData(noalarm, "Local HMI", LB, 500, 1)
SetData(warning, "Local HMI", LB, 501, 1)
SetData(shutdown, "Local HMI", LB, 502, 1)
SetData(trip, "Local HMI", LB, 503, 1)
if failToStop == 0 then
SETBITON(test, test , 0)
else
SETBITOFF(test, test , 0)
end if
SetData(test, "Local HMI", LB, 504, 1)
bool jopa
if failToStop == 15 then
SETBITON(jopa, jopa , 0)
else
SETBITOFF(jopa, jopa , 0)
end if
SetData(jopa, "Local HMI", LB, 505, 1)
end macro_command
macro_command main()
short source
short alarm[4]
GetData(source, "Local HMI", LW, 0, 1)
int i
for i=0 to 3
alarm[i]=source&0xf
source=source>>4
SetData(alarm[i], "Local HMI", LW, 1+i, 1)
next i
end macro_command
DenisShashkov писал(а):Спасибо за быстрый ответ, завтра обязательно попробую на объекте.
Прошу поясните вот эти строчки
alarm[i]=source&0xf
source=source>>4
Я понял что в массив аларм мы присваиваем значения source но мне не понятен амперсанд 0xF (что эта надпись означает). И вторую строчку
Спасибо.
Сейчас этот форум просматривают: Google [Bot] и гости: 9