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

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

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Пользователь
    Регистрация
    18.05.2017
    Адрес
    Чебоксары
    Сообщений
    119

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    В макросах для панелей СП3хх (и согласно стандарту ANSI C - хоть и, по вашему мнению, в нем могут "писать что угодно") - все 3 варианта (вариант из документации и два варианта, упомянутых вами) - корректны и будут работать одинаково.



    Вы, вероятно, не учли выравнивание памяти.
    https://ftp.owen.ru/CoDeSys23/06_Doc...ation_v2.0.pdf
    см. п. 3.1.3.1

    И все же, проблема есть.
    Читаю макросом данные из ПЛК110 - регистры 0 - 16 в регистры PSW панели СП307.
    Вывожу регистр 4 на экран в виде шестнадцатеричного числа - в нем ноль, как и положено. В регистре PSW260 при этом находится значение 255 (0xFF, которое фактически записано в регистр 13 (счет, номера регистра, естественно, с нуля)
    Что не так в этом макросе, вызываемом либо раз в секунду, либо непрерывно при помощи глобальной функциональной области?
    В нем всего лишь читаются 17 регистров в массив, если нет ошибки обмена с ПЛК110.
    Почему вдруг в регистре PSW260 вместо регистра 4 регистр 13?
    Ставил при реализации проекта задачу оптимизации быстродействия, привязал к PSW сотни экранных элементов.
    В чем причина-то? Моя ошибка - в упор не вижу? ограничения длины буфера или длины сообщения панели, не указанные в документации?
    На ПЛК110 грешить трудно - он что - в длинном сообщении передает не то, что в коротком, когда я привязываю регистр к цифровому индикатору?

    WORD RdBuf[100];

    // Read from PLC110 - DI to PSW256, PSW257, PSW258 DO to PSW259, 260

    Reads(PLC, 1, MODBUS_RTU_REGS_4X, 0, 17, &RdBuf);
    if (GetPSBStatus(51))
    {
    ;
    }
    else
    {
    PSW[256] = RdBuf[0];
    PSW[257] = RdBuf[1];
    PSW[258] = RdBuf[2];
    PSW[259] = RdBuf[3];
    PSW[260] = RdBuf[4];
    PSW[261] = RdBuf[5];
    PSW[262] = RdBuf[6];
    PSW[263] = RdBuf[7];
    PSW[264] = RdBuf[8];
    PSW[265] = RdBuf[9];
    PSW[266] = RdBuf[10];
    PSW[267] = RdBuf[11];
    PSW[268] = RdBuf[12];
    PSW[260] = RdBuf[13];
    PSW[270] = RdBuf[14];
    PSW[271] = RdBuf[15];
    PSW[272] = RdBuf[16];
    }
    Последний раз редактировалось konst_smn; 09.08.2021 в 09:21.

Похожие темы

  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 в качестве панели оператора
    от Леонид в разделе СПК1xx (архив)
    Ответов: 15
    Последнее сообщение: 20.11.2015, 08:17

Ваши права

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