Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 24

Тема: Работа с FLOAT переменными.

  1. #11

    По умолчанию

    Цитата Сообщение от EvilH0mer Посмотреть сообщение
    Да, спасибо. Я уже понял, что была проблема с регистрами. Было не понятно как в лоджик вбить 0x0019, 0x001A, в итоге разобрался, что вбивается последний регистр. Получилось 26, 28, 30.Вложение 87416 С Float было тоже самое.
    И опять не правильно, читать надо 1 регистр 0x0019, переводите калькулятором из HEX в DEC и получаете 25 адрес (а не 26 как у вас), а перестановку регистров делать в мастере, поставив галку.

    Вы же читаете 26 и 27 регистр, половину из фазы А, вторую из фазы В, так как они одинаковые, у вас правильно, но в других случаях будет жопа,
    особенно с Float.
    Последний раз редактировалось kondor3000; 26.12.2025 в 14:06.

  2. #12
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,935

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    И опять не правильно, читать надо 1 регистр 0x0019, переводите калькулятором из HEX в DEC и получаете 25 адрес (а не 26 как у вас), а перестановку регистров делать в мастере, поставив галку.

    Вы же читаете 26 и 27 регистр, половину из фазы А, вторую из фазы В, так как они одинаковые, у вас правильно, но в других случаях будет жопа,
    особенно с Float.
    Насколько я понял, чел читает UINT16. И так получается, что по адресу 26 находится младший регистр числа INT32.

  3. #13

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    Насколько я понял, чел читает UINT16. И так получается, что по адресу 26 находится младший регистр числа INT32.
    Это понятно, просто выводы он сделал не правильные.
    И будет читать Float по 2 адресу всегда и получать задницу в измерениях.
    А ещё кроме Напряжения, там есть ток, мощность и фаза, где нибудь, да всплывёт хрень непонятная.
    Последний раз редактировалось kondor3000; 26.12.2025 в 14:51.

  4. #14

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    И опять не правильно, читать надо 1 регистр 0x0019, переводите калькулятором из HEX в DEC и получаете 25 адрес (а не 26 как у вас), а перестановку регистров делать в мастере, поставив галку.

    Вы же читаете 26 и 27 регистр, половину из фазы А, вторую из фазы В, так как они одинаковые, у вас правильно, но в других случаях будет жопа,
    особенно с Float.
    Что то я совсем запутался. Понятно если переключаю на инт беру инт, если флоат то флоат, а что вбивать в регистор то? Снимок экрана 2025-12-26 153040.png

  5. #15
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,060

    По умолчанию

    адрес 80 (или 81), количество регистров = 2, Тип Вещественное

    у вас же адрес указан 0x0050 - это в HEX, калькулятором в режиме программист смотрите какое это DEC значение (возможно надо делать адрес+1, определить опытным путем)

  6. #16
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,935

    По умолчанию

    Цитата Сообщение от EvilH0mer Посмотреть сообщение
    Что то я совсем запутался. Понятно если переключаю на инт беру инт, если флоат то флоат, а что вбивать в регистор то?
    Так как в приборе целочисленный формат INT32, а ПРка поддерживает только UINT32, правильнее будет выбрать FLOAT. Регистр 80 и поиграться галками в строке "Порядок байт" (скорее всего, надо поставить еще и старшим регистром вперед)

  7. #17

    По умолчанию

    Цитата Сообщение от EvilH0mer Посмотреть сообщение
    Что то я совсем запутался. Понятно если переключаю на инт беру инт, если флоат то флоат, а что вбивать в регистор то? Снимок экрана 2025-12-26 153040.png
    Всегда вбиваете первый адрес, для целого (32 бита) 25, для флоат 80.
    Далее в ПР мастере, ставите (снимаете) галку Старшим регистром вперёд, добиваясь правильных показаний.
    Для напряжения примерно 235 В.
    Это касается всех 32 битных переменных (где 2 регистра).
    Последний раз редактировалось kondor3000; 26.12.2025 в 16:46.

  8. #18

    По умолчанию

    Цитата Сообщение от Dimensy Посмотреть сообщение
    Так как в приборе целочисленный формат INT32, а ПРка поддерживает только UINT32, правильнее будет выбрать FLOAT. Регистр 80 и поиграться галками в строке "Порядок байт" (скорее всего, надо поставить еще и старшим регистром вперед)
    Спасибо, выбрал Float, все переделал, выбрал регистры 81,83, 85, да, нужно было старшим битом вперёд. Все заработало, ну как всё)) Третья фаза, 10 раз перепроверил, даже в ПРку читается какая то фигня. Снимок экрана 2025-12-26 163808.png По выделенному на скрине читается фигня. Так и не понял по какому читать, что из 0x0054, 0x0055 по третьей фазе вбивать в ПРку на чтение с прибора.

  9. #19

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Всегда вбиваете первый адрес, для целого 25, для флоат 80.
    Далее в ПР мастере, ставите (снимаете) галку Старшим регистром вперёд, добиваясь правильных показаний.
    Для напряжения примерно 235 В.
    Спасибо попробую.

  10. #20

    По умолчанию

    Цитата Сообщение от EvilH0mer Посмотреть сообщение
    Спасибо попробую.
    Чтобы больше не мучились, скрин из шаблона, с адресами 80, 82, 84 и т. д. 1 Чтение модуля.jpg
    Осталось проверить галку на перестановке регистров

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Ответов: 5
    Последнее сообщение: 10.08.2022, 18:15
  2. Ответов: 2
    Последнее сообщение: 19.07.2018, 13:33
  3. Работа с переменными Modbus Slave
    от rwg в разделе СПК1xx (архив)
    Ответов: 1
    Последнее сообщение: 21.09.2016, 07:45
  4. Работа с дискретными переменными
    от приборист в разделе Master SCADA 3
    Ответов: 6
    Последнее сообщение: 27.11.2013, 07:34
  5. работа с переменными
    от Ufolog в разделе ПЛК1хх
    Ответов: 28
    Последнее сообщение: 23.11.2010, 13:56

Ваши права

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