Страница 4 из 4 ПерваяПервая ... 234
Показано с 31 по 39 из 39

Тема: ПЛК 73. Отключение дефолтовых функций кнопок

  1. #31
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    умножайте на 10 и переводите из реал в инт.
    получите значение в размере 2 байта.
    при отображении укажите 1 точка после запятой.

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

    По умолчанию

    kolyan еще можно использовать ROUND для реалов.

  3. #33

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    kolyan еще можно использовать ROUND для реалов.
    Это функция?
    Если да, то из какой библиотеки?
    Не из Оската?
    Последний раз редактировалось kolyan; 07.07.2016 в 13:33.

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

    По умолчанию

    Да, это функция в oscat basic
    Собственно вот импортируйте
    Вложения Вложения
    • Тип файла: zip ROUND.zip (2.0 Кб, Просмотров: 8)
    Последний раз редактировалось melky; 08.07.2016 в 11:41.

  5. #35

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Да, это функция в oscat basic
    Собственно вот импортируйте
    Спасибо.
    Но там опять какие-то подфункции скрытые используются.
    Компилятор ругается на X := setup.DECADES[LIMIT(0,N,8)];
    Буду смотреть.

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

    По умолчанию

    А, сорри, там что-то в проекте надо добавить, дома смогу посмотреть где и что...

    Скачайте архив заново. Только аккуратнее с импортом Global переменных, он перезатрет что у вас уже там есть. Лучше в голый проект импортните, там одна строчка всего добавляется и добавьте руками.
    Последний раз редактировалось melky; 08.07.2016 в 11:43.

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

    По умолчанию

    Цитата Сообщение от kolyan Посмотреть сообщение
    Спасибо.
    Но там опять какие-то подфункции скрытые используются.
    Компилятор ругается на X := setup.DECADES[LIMIT(0,N,8)];
    Буду смотреть.
    Возьмите лучше у Oscat функцию REAL_TO_STRF
    Потому, что стандартная функция REAL_TO_STRING работает только в эмуляции. При загрузке в контроллер она не работает, возникают крякозябры даже без вывода на ЖКИ http://www.owen.ru/forum/showthread....ll=1#post69319
    А так получите сразу и String и нужное кол. цифр после запятой, работает округление для отброшенных знаков.
    Код:
    FUNCTION REAL_TO_STRF : STRING(20)
    VAR_INPUT
    IN : REAL;
    N : INT;
    END_VAR
    VAR
    O: REAL;
    i: INT;
    END_VAR
    
    (* LIMIT N to 0 .. 7 *)
    N := LIMIT(0,N,7);
    (* round the input to N digits and convert to string *)
    O := ABS(in) * EXP(N* 2.30258509299405);
    REAL_TO_STRF := DINT_TO_STRING(REAL_TO_DINT(O));
    (* add zeroes in front to make sure sting is at least 8 digits long *)
    FOR i := LEN(REAL_TO_STRF) TO N DO REAL_TO_STRF := CONCAT('0', REAL_TO_STRF); END_FOR;
    (* add a dot if n > 0 *)
    IF n > 0 THEN REAL_TO_STRF := INSERT(REAL_TO_STRF, '.', LEN(REAL_TO_STRF) - N); END_IF;
    (* add a minus sign if in is negative *)
    IF in < 0 THEN REAL_TO_STRF := CONCAT('-', REAL_TO_STRF); END_IF;
    Последний раз редактировалось petera; 08.07.2016 в 12:41.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #38

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Возьмите лучше у Oscat функцию REAL_TO_STRF
    Потому, что стандартная функция REAL_TO_STRING работает только в эмуляции. При загрузке в контроллер она не работает, возникают крякозябры даже без вывода на ЖКИ http://www.owen.ru/forum/showthread....ll=1#post69319
    А так получите сразу и String и нужное кол. цифр после запятой, работает округление для отброшенных знаков.
    Код:
    FUNCTION REAL_TO_STRF : STRING(20)
    VAR_INPUT
    IN : REAL;
    N : INT;
    END_VAR
    VAR
    O: REAL;
    i: INT;
    END_VAR
    
    (* LIMIT N to 0 .. 7 *)
    N := LIMIT(0,N,7);
    (* round the input to N digits and convert to string *)
    O := ABS(in) * EXP(N* 2.30258509299405);
    REAL_TO_STRF := DINT_TO_STRING(REAL_TO_DINT(O));
    (* add zeroes in front to make sure sting is at least 8 digits long *)
    FOR i := LEN(REAL_TO_STRF) TO N DO REAL_TO_STRF := CONCAT('0', REAL_TO_STRF); END_FOR;
    (* add a dot if n > 0 *)
    IF n > 0 THEN REAL_TO_STRF := INSERT(REAL_TO_STRF, '.', LEN(REAL_TO_STRF) - N); END_IF;
    (* add a minus sign if in is negative *)
    IF in < 0 THEN REAL_TO_STRF := CONCAT('-', REAL_TO_STRF); END_IF;
    Спасибо за ответы!

  9. #39

    По умолчанию

    Вернусь к первому вопросу, а можно как-то запретить функционал кнопок по умолчанию в Work_mode?

Страница 4 из 4 ПерваяПервая ... 234

Похожие темы

  1. Блокировка кнопок в СП200
    от Ильнур в разделе Панели оператора (HMI)
    Ответов: 10
    Последнее сообщение: 25.01.2012, 21:12
  2. Переменные в отладке функций.
    от Edik_Ponomarenko в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 30.12.2011, 11:01
  3. плк63-управление с кнопок
    от Александр Ч. в разделе ПЛК63/73
    Ответов: 9
    Последнее сообщение: 16.07.2010, 12:22
  4. Ответов: 3
    Последнее сообщение: 26.01.2010, 21:01
  5. Ответов: 21
    Последнее сообщение: 18.01.2010, 17:13

Ваши права

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