Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Обнуление значений после 65535

  1. #1

    Unhappy Обнуление значений после 65535

    Доброго времени суток, товарищи пользователи продукции ОВЕН. Имеется проблема,
    что уже несколько переменных в облачном сервисе сбрасываются в 0 после преодоления числа 65535.
    Конкретно: блок счетчика импульсов в OL (Хотя в руководстве по софту написано, что у int максимальное значение с немалой степенью)
    И переменная времени наработки расходомера(просто интовая переменная, передается по модбас).

    Проблема в блоке или это уже замашки облака?
    Изображения Изображения
    Ничего не понятно, но очень интересно

  2. #2

    По умолчанию

    Цитата Сообщение от Григори Посмотреть сообщение
    Доброго времени суток, товарищи пользователи продукции ОВЕН. Имеется проблема,
    что уже несколько переменных в облачном сервисе сбрасываются в 0 после преодоления числа 65535.
    Конкретно: блок счетчика импульсов в OL (Хотя в руководстве по софту написано, что у int максимальное значение с немалой степенью)
    И переменная времени наработки расходомера(просто интовая переменная, передается по модбас).

    Проблема в блоке или это уже замашки облака?
    Добрый день!

    Как понимаю, используете стандартный счетчик CTN в Owen Logic? Значение на его выходе действительно сбрасывается при достижении 65535 импульсов. Для того, чтобы обойти эту проблему можете использовать макрос 32-разрядного счетчика CTN32 из менеджера компонентов.
    Инженер по продукту | ПР и Owen Logic
    email: k.korolev@owen.ru

  3. #3
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,331

    По умолчанию

    Насколько понимаю, это не решит его проблему, в смысле, для него ничего не изменится, наверняка он передаёт в облако значение одним регистром!
    Ему тогда потребуется разбить 32 битную переменную на два регистра, а в облаке назначить тип переменой как 32 битная беззнаковая целочисленная, короче, UDINT.
    Последний раз редактировалось Сергей0308; 05.09.2023 в 14:43.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  4. #4

    По умолчанию

    Сергей, счетчик делает мне мгновенный расход в 2-ух регистровую (вроде бы) float переменную.
    Вам не будет тяжело расжевать момент с двухрегистровой переменной?
    Ничего не понятно, но очень интересно

  5. #5

    По умолчанию

    Цитата Сообщение от Григори Посмотреть сообщение
    Сергей, счетчик делает мне мгновенный расход в 2-ух регистровую (вроде бы) float переменную.
    Вам не будет тяжело расжевать момент с двухрегистровой переменной?
    Вам нужно будет использовать конструкцию из этого поста (https://owen.ru/forum/showthread.php...l=1#post285329).

    В облаке нужно будет задать тип переменной uint32 и опрашивать, соответственно, два регистра. Не забудьте поставить галочку "младшим регистром вперед".
    Инженер по продукту | ПР и Owen Logic
    email: k.korolev@owen.ru

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

    По умолчанию

    float тоже ограничен диапазоном значений, но если вы в него вписываетесь, то нормально...

  7. #7

    По умолчанию

    Думаю переменной с плавающей точкой будет достаточно для передачи показаний счетчика (выше оговорился, счетчик показывает накопительные данные, а не расход). Всем спасибо за помощь, буду пробовать переделывать программы
    Изображения Изображения
    Ничего не понятно, но очень интересно

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

    По умолчанию

    Цитата Сообщение от Григори Посмотреть сообщение
    Думаю переменной с плавающей точкой будет достаточно для передачи показаний счетчика (выше оговорился, счетчик показывает накопительные данные, а не расход). Всем спасибо за помощь, буду пробовать переделывать программы
    Ха, точность переменной с плавающей точкой всего лишь 7 цифр, даже неважно где будет стоять запятая, т.е.
    0.ххххххх
    х.хххххх
    хх.ххххх
    ххх.хххх
    хххх.ххх
    ххххх.хх
    хххххх.х
    ххххххх

    таким образом всего 9 999 999, а это пшик по сравнению с целочисленной 32-битной переменной (4 294 967 295)
    А занимают обе по два регистра.

    Какой здесь выигрыш?
    Последний раз редактировалось petera; 05.09.2023 в 18:43.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

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

    По умолчанию

    Цитата Сообщение от Григори Посмотреть сообщение
    Думаю переменной с плавающей точкой будет достаточно для передачи показаний счетчика (выше оговорился, счетчик показывает накопительные данные, а не расход). Всем спасибо за помощь, буду пробовать переделывать программы
    Ну, 4294967295 минут - это почти 8 тысяч лет. Думаю, должно хватить и целочисленной переменной

  10. #10
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,331

    По умолчанию

    Так наработку, надо было и делать в часах, тогда бы всё нормально было, в смысле, хватило бы почти на 7,5 лет, практически на весь срок службы! Кстати и в технике стоят счётчики моточесов не бесконечные(по кругу гоняет, как в механическом электросчётчике), в смысле, на миллиарды лет не хватит, но этого и не надо, в смысле, в электросчётчике Вы же не переживаете, что однажды показания "сбросятся" и начнутся с нуля?!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Обнуление переменной
    от Алексей87 в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 23.03.2017, 12:31
  2. Ответов: 6
    Последнее сообщение: 19.01.2017, 16:51
  3. Обнуление регистра MODBUS RTU
    от Алексей Александрович в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 22.10.2014, 16:18
  4. обнуление при отсутсвии питания
    от Artem в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 03.09.2010, 21:08
  5. Ответов: 3
    Последнее сообщение: 22.03.2010, 14:11

Метки этой темы

Ваши права

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