Страница 204 из 413 ПерваяПервая ... 104154194202203204205206214254304 ... ПоследняяПоследняя
Показано с 2,031 по 2,040 из 4885

Тема: разные вопросы новичка

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

    Цитата Сообщение от Mihali4 Посмотреть сообщение
    Последовал Вашему совету, прибавил 0,001
    я не советовал прибавлять 0.001
    я предлагаю один из вариантов округления называющийся Округление до указанного кратного (https://alphapedia.ru/w/Rounding 3.1 Округление до указанного кратного)
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  2. #2

    По умолчанию

    Судя по всему, результат деления имеет вид 24.999999, хотя и отображается в отладке как 25. Ну а блок преобразования к udint не округляет, а просто отбрасывает дробную часть.
    Где-то на форуме выкладывали макрос округления к ближайшему целому, похоже нужно в таких случаях перед блоком преобразования использовать что-то подобное.
    Округление с нужным количеством знаков:
    Код:
    function fRound : real;
        var_input
            rIn   : real;
            N     : udint;
        end_var
        
        var
            tmp : udint;
        end_var
        
        
        tmp := 10;
        if N.0 then fRound := udint_to_real(tmp); else fRound := 1; end_if;
        N := SHR(N,1);
        while N > 0 do
           tmp := tmp * tmp;
           if N.0 then fRound := fRound * udint_to_real(tmp); end_if;
           N := SHR(N,1);
        end_while;
        
        rIn := rIn * fRound;
        fRound := (( rIn / abs(rIn) ) * udint_to_real(real_to_udint((abs(rIn) + 0.5)))) / fRound;
        
    end_function
    Последний раз редактировалось 1exan; 10.08.2022 в 06:55.

  3. #3

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Судя по всему, результат деления имеет вид 24.999999, хотя и отображается в отладке как 25. Ну а блок преобразования к udint не округляет, а просто отбрасывает дробную часть.
    Где-то на форуме выкладывали макрос округления к ближайшему целому, похоже нужно в таких случаях перед блоком преобразования использовать что-то подобное.
    Округление с нужным количеством знаков:
    Ага, забил на вход 0.71 и получил на выходе 0.8. Офигенно просто))). 1 CDS2_3.jpg
    Var1:=real_to_udint(rin * 10)/10.0 ; куда проще написать
    Последний раз редактировалось kondor3000; 10.08.2022 в 09:25.

  4. #4

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Ага, забил на вход 0.71 и получил на выходе 0.8. Офигенно просто))).
    Var1:=real_to_udint(rin * 10)/10.0 ; куда проще написать
    Проверил - у меня все правильно:
    изображение_2022-08-10_131413706.png
    А что дает "Var1:=real_to_udint(rin * 10)/10.0 ?

  5. #5

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Проверил - у меня все правильно:
    Проверял в CDS 2.3, да в Лоджике правильно. Скрин выложил выше.
    Последний раз редактировалось kondor3000; 10.08.2022 в 09:26.

  6. #6

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Проверял в CDS 2.3, да в Лоджике правильно. Скрин выложил выше.
    Ну Лоджик до CDS ещё пилить и пилить

  7. #7

    По умолчанию

    Owen.JPG
    Товарищи, как убрать замок? И что это? Не нашел в инструкциях. Не могу менять переменные в режиме симулятора.

  8. #8

    По умолчанию

    Цитата Сообщение от Mr_Camel Посмотреть сообщение
    Owen.JPG
    Товарищи, как убрать замок? И что это? Не нашел в инструкциях. Не могу менять переменные в режиме симулятора.
    Выйдите из симуляции и меняйте, сколько угодно. В симуляции можно изменить только входные переменные, 1 Замок.jpg
    например нажав на I1 и замок не мешает)))
    А так же ваша переменная gr1 должна быть подключена к работающему блоку (к выходу), а не просто висеть в воздухе или сделайте её энергонезависимой (хоть на время) или выведите на экран.
    Последний раз редактировалось kondor3000; 12.08.2022 в 17:20.

  9. #9

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Выйдите из симуляции и меняйте, сколько угодно. В симуляции можно изменить только входные переменные, 1 Замок.jpg
    например нажав на I1 и замок не мешает)))
    А так же ваша переменная gr1 должна быть подключена к работающему блоку (к выходу), а не просто висеть в воздухе или сделайте её энергонезависимой (хоть на время) или выведите на экран.
    Не я конечно новичок,но не на столько.Как появился этот замок в режиме симулятора,нельзя менять значения по двойному щелчку

  10. #10

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Выйдите из симуляции и меняйте, сколько угодно. В симуляции можно изменить только входные переменные, 1 Замок.jpg
    например нажав на I1 и замок не мешает)))
    А так же ваша переменная gr1 должна быть подключена к работающему блоку (к выходу), а не просто висеть в воздухе или сделайте её энергонезависимой (хоть на время) или выведите на экран.
    Переменная не весит в воздухе.Дальше используется.Просто не пойму,что он значит.И почему вдруг пропала возможность менять значения.

Страница 204 из 413 ПерваяПервая ... 104154194202203204205206214254304 ... ПоследняяПоследняя

Похожие темы

  1. Вопросы новичка!!!
    от sau в разделе ПЛК1хх
    Ответов: 62
    Последнее сообщение: 27.07.2026, 19:16
  2. ПЛК 110 - Вопросы новичка?
    от di-s в разделе ПЛК1хх
    Ответов: 21
    Последнее сообщение: 15.04.2025, 16:38
  3. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 14:39
  4. Вопросы полного новичка
    от Korion в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 09.02.2010, 10:08
  5. Вопросы новичка по ПЛК
    от Ollegator в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 07.07.2009, 09:29

Ваши права

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