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

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

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

    Всем доброго времени суток.
    Хотел выводить 8ми байтное число в таблицу в 16ом формате. Но выводится странно, если число больше 0x80000000, то всегда отображается 0x80000000, если меньше или равно, то правильно.
    Собственно для 4хбатного тоже самое. То есть получается, лимит по верху — это половина 4хбайтного числа.
    Формат в канале выбирал просто 16ричный и 16риыный 8 цифр, разницы не увидел.
    Не понимаю что за ограничение.
    Rapid v6.2

    #32138
    JurasskPark
    Участник

    imgbb
    )

    
            private void Parse()
            {
                double dblVariable = 3000000000;
                string strVariable = Base16(dblVariable, 0);
                MessageBox.Show(strVariable);
            }
    
    
            private static string Base16(double number, int fractionalDigits)
            {
                return Base(number, fractionalDigits, new char[]{
            '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
            'A', 'B', 'C', 'D', 'E', 'F' });
            }
    
    #32139
    JurasskPark
    Участник

    cod
    Вот этот код не дает вставить.

    #32140
    JurasskPark
    Участник

    Может поможет при написании скрипта.

    P.S. Может я когда-нибудь тоже научусь их писать.

    #32141
    Z_h_e
    Участник

    Ну да, это конечно повод поработать со строками, как новичок ещё не пробовал в Рапиде.
    Однако странная работа уже встроенных методов.

    #32142
    JurasskPark
    Участник

    А какой встроеный и как вы используете?

    #32143
    Z_h_e
    Участник

    В канале выбрал шестнадцатеричный формат и смотрю данные в таблице.

    #32144
    manjey73
    Участник

    формулы в Scada должны быть public
    Сам вчера вставлял из 5-й версии скрипт, было просто double bla-bla-bla и сервер не запустился, выдав ошибку.

    Ну еще момент, в ScadaUtils вроде есть функционал работы со строками, правда не пробовал использовать с скриптах, но вероятно можно

    0x80000000 — это уже отрицательное число, может по этому затык ?

    #32145
    Z_h_e
    Участник

    Не знаю в чем затык, но сначала я пробовал 8ми байтное число и в любом случае в карте моббас у меня стоит безнаковое число. Вечером перепроверю.

    #32146
    Z_h_e
    Участник

    Мне видится, в первом приближении, что сделать свой скрипт преобразования в шестнадцатеричную строку проблем не должно быть. Но мне кажется это неправильный подход. Надо разобраться или я «не умею готовить» или есть какие-то ограничения.

    #32147
    manjey73
    Участник

    Возможно ограничение, я вроде тоже попадал на это 0х8….
    Не помню уже результата.
    Кроме формата ещё посмотрите тип данных, там надо указать HEX

    Если пустая строка, то по умолчанию Double.
    Но может слететь привязка канала.

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

    Тип данных точно не указывал, попробую и отпишусь.

    #32150
    JurasskPark
    Участник

    Можно глупый вопрос? Только сильно ногами не пинайте. Я с формулами, вообще от слова совсем не имел дело.
    Я сделал формулу, передал, Сервер упал.
    Я очищал CalcEngine.cs в папке Log, запускал exe, он всё равно откуда-то выкачивал файл CalcEngine.cs и снова падал… Откуда и как я не понял.
    Ну вопрос не про это.
    Я правильно понял, что если в формуле ошибка и ты передал его на сервер, то она падает и не поднимается, пока формулу не удалишь или не поправишь?

    #32151
    Z_h_e
    Участник

    Если хотя бы одна из формул содержит ошибку, работа Сервера невозможна. Информация об ошибках в формулах выводится в журнал приложения.

    #32152
    JurasskPark
    Участник

    Спасибо! Короче, писать формулы на рабочем сервере — нельзя. )
    Ясненько — понятненько!

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