Доброго времени суток! Разбираюсь с макросами в СП315. Возникла загвоздка..
Сначала я копирую регистр приходящий с ПР200 в PSW[600] ()
WORD Bit;
int i;
Read(PLC, 8, MODBUS_RTU_REG_4X, 555, 0, TYPE_WORD, &Bit); //chtenie registra
PSW[600] = Bit;
Далее мне нужно сравнить состояния бит внутри регистра.. я конечно накидал код, но на второй итерации всё виснет.
Основная проблема в том, какой же правильный синтаксис чтения бита.
Вот мой набросок
for ( i = 0; i < 12; i++ ) //cikl perebora bit
{
if ( PSW[600] & ( 1 << i ) != 1 ) //uslovie (собственно проблема в этом условии)
{
PSW[601] = i; //
if (i = 1)
{
SetPSB(600); //green
ResetPSB(601);
ResetPSB(602);
ResetPSB(603);
}
else if (i = 2)
{
SetPSB(601); //green flashing
ResetPSB(600);
ResetPSB(602);
ResetPSB(603);
}
else if (i = 3)
{
SetPSB(602); //yellow
ResetPSB(600);
ResetPSB(601);
ResetPSB(603);
}
else
{
SetPSB(603); //red
ResetPSB(600);
ResetPSB(601);
ResetPSB(602);
}
Delay (3000);
}
}
ПОМОГИТЕ ПОЖАЛУЙСТА




Ответить с цитированием