Страница 426 из 429 ПерваяПервая ... 326376416424425426427428 ... ПоследняяПоследняя
Показано с 4,251 по 4,260 из 4284

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

  1. #4251

    По умолчанию

    Цитата Сообщение от avk@domacomp.ru Посмотреть сообщение
    а где-то описано в каких галереях цвет меняется для других элементов? подскажете?
    Такого описания нет, но есть эмпирическая закономерность:
    - эти галереи находятся в конце списка
    - изображения в этих галереях "примитивные" и "неизысканные"

  2. #4252

    По умолчанию

    Вопрос: как вывести число LREAL? 64 бита

  3. #4253

    По умолчанию

    Цитата Сообщение от avk@domacomp.ru Посмотреть сообщение
    Вопрос: как вывести число LREAL? 64 бита
    Ответ от Google AI
    Вложения Вложения

  4. #4254

    По умолчанию

    С преобразованием то все понятно. Вопрос был именно про double. Как получить и вывести без потерь. Нет такого функционала в СП3хх??

  5. #4255

    По умолчанию

    Цитата Сообщение от avk@domacomp.ru Посмотреть сообщение
    С преобразованием то все понятно. Вопрос был именно про double. Как получить и вывести без потерь. Нет такого функционала в СП3хх??
    Ответ от Google AI
    Вложения Вложения

  6. #4256
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,191

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    Ответ от Google AI
    Панели нет под рукой, но думаю что можно сразу "напечатать" в текстовый дисплей
    Код:
    double myDouble = 123.456789012345;
    
    sprintf((char*)&PSW[256], "%16.12f", myDouble);
    Где тестовый дисплей
    Захват-11.png

    Захват-13.png

    ЗЫ.
    По крайней мере компилируется без ошибок
    Последний раз редактировалось petera; 21.10.2026 в 11:54.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #4257

    По умолчанию

    я хочу получить LREAL из ПЛК. То есть я в ПЛК формирую 4 регистра и пишу в, допустим PSW[600..603]. Далее, я произвожу обработку в скрипте и пишу это в PSW[604..610] (если формат будет f11.3). И уже в текстовом дисплее буду ссылаться на PSW604.
    Всё верно?

  8. #4258
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,191

    По умолчанию

    Цитата Сообщение от avk@domacomp.ru Посмотреть сообщение
    я хочу получить LREAL из ПЛК. То есть я в ПЛК формирую 4 регистра и пишу в, допустим PSW[600..603]. Далее, я произвожу обработку в скрипте и пишу это в PSW[604..610] (если формат будет f11.3). И уже в текстовом дисплее буду ссылаться на PSW604.
    Всё верно?
    А сразу PSW[600..603] нельзя использовать?
    Код:
    double myDouble;
    
    myDouble = *(double*)(PSW+600);
    sprintf((char*)&PSW[256], "%11.3f", myDouble);
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #4259

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    А сразу PSW[600..603] нельзя использовать?
    Код:
    double myDouble;
    
    myDouble = *(double*)(PSW+600);
    sprintf((char*)&PSW[256], "%11.3f", myDouble);
    наверное можно. Я только хочу сделать ещё union с double и word[4], чтобы в функции байты подвигать при необходимости. Пока до этой задачи не дошел. Если пойду по этому пути -выложу макрос. Но вопрос касается накопительного расхода из ТСРВ-043, там он лежит в int32(целая часть)+float(после запятой). Я ранее все это складывал в тип LREAL в ПЛК, и прямо этим типом по OPC UA передавал наверх. Здесь только Modbus - я пока прикуриваю) Нужно подумать что сделать в ПЛК, потом уже реализовывать в панели)

  10. #4260
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,191

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Панели нет под рукой, но думаю что можно сразу "напечатать" в текстовый дисплей
    Код:
    // Исходное число (пример)
    double myDouble = 123.456789012345;
    
    sprintf((char*)&PSW[256], "%16.12f", myDouble);
    Где тестовый дисплей
    Захват-11.png

    Захват-13.png

    ЗЫ.
    По крайней мере компилируется без ошибок
    Проверил код в панели
    IMG_20261022_112916.png

    ЗЫ.
    А теперь сравните мой код с кодом хваленого AI
    Мой - печатает сразу в текстовый дисплей с адреса PSW256
    Код:
    // Исходное число (пример)
    double myDouble = 123.456789012345;
    
    sprintf((char*)&PSW[256], "%16.12f", myDouble);
    а это код от AI
    Он преобразует переменную типа double в строку и сохраняет её, начиная с регистра PSW320
    Код:
    char str_buf[20]; 
    // Исходное число (пример)
    double my_double = 12345.67890123; 
    
    snprintf(str_buf, sizeof(str_buf), "%.6f", my_double);
    // Указатель на начальный регистр памяти панели (PSW320)
    WORD *psw_ptr = (WORD*)&PSW[320];
    int i = 0;
    while (str_buf[i] != '\0' && i < (sizeof(str_buf) - 1)) {
        // Получаем текущий символ и следующий за ним
        BYTE low_b  = (BYTE)str_buf[i];
        BYTE high_b = (str_buf[i+1] != '\0') ? 
    (BYTE)str_buf[i+1] : 0;
        *psw_ptr = (WORD)((high_b << 8) | low_b);
        if (str_buf[i+1] == '\0') {
            break; 
        }
        psw_ptr++; // Переходим к следующему PSW регистру
        i += 2;    // Сдвигаемся на 2 символа вперед
    }
    if (i % 2 == 0) {
        *psw_ptr = 0;
    }
    И далее AI предлагает сделать тестовый дисплей с адреса PSW320
    Захват-33.png
    Последний раз редактировалось petera; 22.10.2026 в 12:15.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Страница 426 из 429 ПерваяПервая ... 326376416424425426427428 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 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

Ваши права

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