Показано с 1 по 7 из 7

Тема: Работа с большими числами в CodeSys 3.5

  1. #1

    По умолчанию Работа с большими числами в CodeSys 3.5

    Добрый день. Подскажите пожалуйста, не получается разобраться с математическими действиями при получении больших чисел. Изначально был смысл получить процент от числа. На скрине видно что формула работает не корректно. Смысл из 2001(может меняться от 0 до 3000) -11 %, требуется получить целое число - скорость ПЧ.
    Изображения Изображения

  2. #2

    По умолчанию

    С такой ёлкой вполне реально спутать форматы чисел в вашей программе...
    Ещё были моменты, чтоб кодесис понял, что работает с реал переменными, числам надо добавить десятую, т.е. использовать не 88, а 88,0.
    Переходите на st, не мучайте себя.

  3. #3

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    С такой ёлкой вполне реально спутать форматы чисел в вашей программе...
    Ещё были моменты, чтоб кодесис понял, что работает с реал переменными, числам надо добавить десятую, т.е. использовать не 88, а 88,0.
    Переходите на st, не мучайте себя.
    На ST как это корректно сделать?

  4. #4

    По умолчанию

    Вы для начала определитесь, с какими числами вы работаете. У вас я смотрю регистры, modbus скорее всего. А это всегда word. Если хотите чтоб появились десятые, не забывайте ставить to-real а потом уже математические операции проделывайте. А вообще в кодесисе используют структуры...

  5. #5

    По умолчанию

    Точнее объединение...
    Код:
    TYPE DUT_MODBUS_Real_Word:
    UNION
    U_RealInModbus: ARRAY [0..1] OF WORD;
    U_RealInProgramm: REAL;
    END_UNION
    END_TYPE
    Кстати, дайте скрин с описанием переменных... Они у вас word, я так думаю...

  6. #6
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,066

    По умолчанию

    Цитата Сообщение от ivan.v Посмотреть сообщение
    Добрый день. Подскажите пожалуйста, не получается разобраться с математическими действиями при получении больших чисел. Изначально был смысл получить процент от числа. На скрине видно что формула работает не корректно. Смысл из 2001(может меняться от 0 до 3000) -11 %, требуется получить целое число - скорость ПЧ.
    Добрый день.
    https://owen.ru/forum/showthread.php...l=1#post269333

  7. #7

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Вы для начала определитесь, с какими числами вы работаете. У вас я смотрю регистры, modbus скорее всего. А это всегда word. Если хотите чтоб появились десятые, не забывайте ставить to-real а потом уже математические операции проделывайте. А вообще в кодесисе используют структуры...
    Добрый день. Спасибо большое, применил сразу к переменной преобразователь to_real, теперь все корректно считает. После сделал обратное преобразование в WORD

Похожие темы

  1. CODESYS V3.5. Работа с модемами
    от Евгений Кислов в разделе ПЛК (среда CODESYS V3.5)
    Ответов: 63
    Последнее сообщение: 07.02.2024, 08:43
  2. Ответов: 2
    Последнее сообщение: 19.04.2023, 11:59
  3. Ответов: 3
    Последнее сообщение: 14.09.2021, 12:23
  4. CoDeSys работа с массивами.
    от Роман26 в разделе Эксплуатация
    Ответов: 13
    Последнее сообщение: 10.08.2019, 07:52
  5. Функции по работе с двоичными числами
    от PotokU в разделе Master SCADA 3
    Ответов: 11
    Последнее сообщение: 13.04.2015, 18:56

Ваши права

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