Шестнадцатиричный формат

Стартовая страница Форумы Понять, как работает ПО Шестнадцатиричный формат

Просмотр 15 сообщений - с 16 по 30 (из 38 всего)
  • Автор
    Сообщения
  • #32153
    JurasskPark
    Участник

    web
    Я победил благодаря Romiros.

    https://forum.rapidscada.ru/?topic=работа-со-строковыми-функциями#post-31880

    Вызов
    SplitUnicode(() => DoubleToString16(Val(1), 0))

    https://disk.yandex.ru/d/LN3xrE9ewVJTug

    #32154
    manjey73
    Участник

    Да, формулы лучше отлаживать на ПК разработке в Hellow Word например.
    CalcEngine формируется каждый запуск сервера, в Журнале есть об этом строки.

    Ещё момент, по умолчанию формулы будут конвертированы в double, даже если вы возвращаете bool

    #32155
    JurasskPark
    Участник

    screen2
    Настройки тегов

    #32156
    manjey73
    Участник

    Длина данных создаст массив каналов, к индексам массива можно обращаться из формулы.
    Формула действует на каждый калам массива, если что

    #32157
    Z_h_e
    Участник

    Кроме формата ещё посмотрите тип данных, там надо указать HEX

    Нет в канале такого формата в типе данных.

    #32158
    manjey73
    Участник

    Выберите Тип Данных — пусто или Duoble
    у меня только так привязка к каналу работает, если поставить Integer или Ascii string, привязка пропадает

    Если надо отображать как-то по другому, чем это делает Scada то надо применять формулы.

    • Этот ответ был изменен 1 месяц, 1 неделя назад от manjey73.
    #32182
    Mikhail
    Модератор

    Подход через преобразование в строку не оптимален в данном случае. Желательно найти причину, почему формат не работает. Если сделаете скриншот свойств канала, как было изначально, я проверю у себя.

    #32184
    Z_h_e
    Участник

    Попозже сделаю. Но я доя пробы еще и просто в канале ставил галочку исп.формулу. Во входной формуле ставил просто шест. число в формате 0x0000. Все что выше Ox80000000 в таблице отображалось как 0x80000000. Если меньше то нормально.

    Мне на самом деле вообще надо 12байтное число отобразить. Но можно его и на 3 части разбить, если бы 4х нормально работало.

    #32189
    Mikhail
    Модератор

    Попробуйте обновить ScadaCommon.dll в директории ScadaServer. Ссылка
    Помогло обновление?

    #32192
    Z_h_e
    Участник

    Не помогло. Комп перезагружал.
    картинка
    Ниже красной черты, это то что отображается в таблице. Строка таблицы привязана к этому каналу.
    Если убрать галочку использовать формулу и убрать 16й формат, то в десятичном отображается корректное число и оно больше чем 0x80000000, как ставлю 16й то сразу 0x80000000.

    • Этот ответ был изменен 1 месяц, 1 неделя назад от Z_h_e.
    • Этот ответ был изменен 1 месяц, 1 неделя назад от Z_h_e.
    #32195
    Z_h_e
    Участник

    число
    Это то что реально считывается по модбасу и оно корректно отображается в десятичном формате.

    • Этот ответ был изменен 1 месяц, 1 неделя назад от Z_h_e.
    #32197
    manjey73
    Участник

    Какая-то проблема с отрицательными числами при преобразовании в HEX
    0х800D0003 должно отобразиться в правильном варианте

    Если выбираете Hex 16 знаков какое число будет отображено ?

    • Этот ответ был изменен 1 месяц, 1 неделя назад от manjey73.
    #32199
    Z_h_e
    Участник

    Да, я знаю что должно быть 0х800D0003.
    Где выбрать 16 знаков?

    #32200
    manjey73
    Участник

    В вспомогательные таблицы — Форматы добавьте по аналогии с другими и укажите там X16
    потом выберите в Формате канала добавленный вариант.

    #32201
    Z_h_e
    Участник

    Попробовал. Теперь отображается вот так 0000000080000000h

Просмотр 15 сообщений - с 16 по 30 (из 38 всего)
  • Вы должны авторизироваться для ответа в этой теме.