Сообщение от
R2_
Здравствуйте.
Решил написать, т.к. поиск не дал ничего. (или не умею пользоваться)
Недавно первый раз взяли в работу СП307.
Создали проект, но столкнулись с несколькими граблями.
Проект:
Панель Master RTU.
Управляет 7-ю Slave-ами.
В основном действия реализованы через макросы. Чтобы переключать экраны совместно с действиями.
На момент написания еще ни к одному слейву не подключена, т.е. пока физической связи нет.
Грабли:
1. Безбожно тормозит (хотя проверочные проекты в которых нет обращения к Слейвам вроде не тормозит) - Вопрос - Тормоза из-за отсутствия связи, или что-то нужно пересмотреть в подходе?
2. Часто выскакивает системное окно "Доступ открыт", хотя никакой ФО связанной с доступом вроде нет. Есть единственный элемент - "Переход на экран", требующий ввод пароля, но в тестах его не трогаем.
3. Как лучше организовать систему индикации обрыва связи с каждым Слейвом? через макрос, вызываемый каждую секунду и считывающий, например какой-то бит у Слейва, но что будет при обрыве связи, вернет ли считывание 0 или останется последний считанный результат? (можно конечно считывать регистр, который инкриментировать на Slave при каждом считывании и проверять на панеле, изменилось ли значение). может есть какой-то более прямой способ.
4. Есть ли какая-то API для отслеживания ошибок протокола, т.е. когда в старшем байте функции возвращается 0х8Х?
5. В стандарте С допустимы такого вида сравнения if ((!GetPSBStatus(xxx))&&(var1))||(GetPSBStatus(yyy) &&(var2>10)){...} -подскажите пожалуйста правильный синтаксис задания множественного условия. Что-то в таком виде не хочет компилировать, приходится вложенными if-ами решать вопрос.
6. Задавая ФО как глобальную, она перескакивает на следующий экран. А поскольку у нас на каждом экране картинка, то еще и за битмап прячится. - Так должно быть или что-то где-то сделано не правильно?
Заранее спасибо.