EnglishРусскийУкраїнська
В теме нет новых постов

daq_Siemens regVal - не все db читаются


Автор Сообщение
Сообщение создано: 24. 10. 2011 [11:19]
punk
Василий Петров
Создатель темы
Зарегистрирован(а) с: 09.05.2011
Сообщения: 29
После добавления блока в список опрашиваемых (и перезапуска скады), перестал опрашиваться другой блок. Поиск привел к тому, что не регистрируются блоки с меньшими адресами, чем уже зарегистрированные. Кажется, что проблема тут: если срабатывает _первое_условие_, то может не сработать _второе_. По крайней мере, если убрать целиком строчку с break, то опрашивается все.


void TMdContr::regVal( SValData ival, IO::Type itp, bool wr )
{
........
for(i_b = 0; i_b < acqBlks.size(); i_b++)
if(acqBlks[i_b].db > ival.db) break; // _первое_условие_
.........
if(i_b >= acqBlks.size()) //_второе_условие_
acqBlks.insert(acqBlks.begin()+i_b,SDataRec(ival.db,ival.off,iv_sz));


Если нужны доп. данные/тестовая конфигурация - могу сделать.
Сообщение создано: 24. 10. 2011 [13:06]
roman
Roman Savochenko
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 1460
Исправлено, проверяйте!

Учиться, учиться и учиться лучше чем работать, работать и работать.



0021