Показано с 1 по 10 из 3198

Тема: Панели оператора СП3xx. Вопросы и ответы

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,171

    По умолчанию

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

    2. Сложно прокомментировать, не видя проекта и не имея инструкций по воспроизведению проблемы.
    3. Если обмен организован через макросы - то функции чтения/записи возвращают FALSE в случае ошибки обмена. Если обмен настроен в элементах - то можно в макросе контролировать регистры PSW66 (Download-порт) / PSW76 (PLC-порт) - в них записываются адреса слэйвов, при последнем сеансе обмена с которыми произошли ошибки.
    4. Такое возможно, если обмен писать на низкоуровневых функциях. См. здесь:
    https://www.owen.ru/uploads/aip_47_s...slov_36-37.pdf

    5. У вас со скобками проблемы. Проще всего, конечно, было бы разбить такое длинное условие на несколько более простых и потом проверять результирующие биты.
    Вот так - компилируется (не уверен, что правильно понял желаемые приоритеты операций в исходной записи):

    Код:
    BOOL var1;
    int  var2;
    
    if ( ( !GetPSBStatus(300) && var1 ) || ( GetPSBStatus(400) && (var2 > 10) ) )
    {
    		;
    }

Похожие темы

  1. Экспорт CSV в панели СП3xx и порядок квитирования событий
    от theoretician в разделе Панели оператора (HMI)
    Ответов: 30
    Последнее сообщение: 24.08.2021, 16:17
  2. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  3. Сенсорные панели оператора ОВЕН СП3ХХ
    от Боднар Олег Миколайович в разделе Подбор Оборудования
    Ответов: 7
    Последнее сообщение: 17.12.2015, 09:09
  4. СПК 107 в качестве панели оператора
    от Леонид в разделе СПК1хх
    Ответов: 15
    Последнее сообщение: 20.11.2015, 08:17

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •