Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя
Показано с 31 по 40 из 50

Тема: ПЛК63, проблема с отображением данных на панели.

  1. #31
    Пользователь
    Регистрация
    18.08.2008
    Адрес
    Екатеринбург
    Сообщений
    983

    По умолчанию

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

  2. #32
    Пользователь
    Регистрация
    18.08.2008
    Адрес
    Екатеринбург
    Сообщений
    983

    По умолчанию

    Или можно просто пробелами "выровнять" длины строк

  3. #33
    Пользователь
    Регистрация
    03.03.2008
    Адрес
    Новосибирск
    Сообщений
    238

    По умолчанию

    Где-то на форуме читал, что для вывода REAL, необходимо использовать функцию ShowReal из библиотеки - иначе может неправильно работать. В ПЛК73 как раз так и делаю

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

    По умолчанию

    Цитата Сообщение от alexxx Посмотреть сообщение
    Люди, ну неужели никто не скажет в чем проблема? Мне уже перед заказчиком стыдно, никак не сдам работу. Помогите!
    Посмотрите про мою ситуацию, правда давно это было и с тех пор с ПЛК73 я не работал. http://www.owen.ru/forum/showthread....ht=%CF%CB%CA73
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #35

    По умолчанию

    Цитата Сообщение от Александр Ч. Посмотреть сообщение
    Или можно просто пробелами "выровнять" длины строк
    У меня всё выравнивается как надо, на выходе 2 переменные ровно по 15 символов.

    Где-то на форуме читал, что для вывода REAL, необходимо использовать функцию ShowReal из библиотеки - иначе может неправильно работать. В ПЛК73 как раз так и делаю
    Я вывожу на экран не REAL, а STRING. К томуже BYTE тоже не видно.
    Думаю, тут дело в том, что контроллер не корректно выполняет операцию REAL_TO_STRING, и другие операции перевода. Других причин тут просто быть не может, так как при работе с ПЛК в визуализации на компьютере перевод числовых в строковые значения тоже происходит неверно.
    Последний раз редактировалось alexxx; 03.04.2013 в 13:29.

  6. #36

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Посмотрите про мою ситуацию, правда давно это было и с тех пор с ПЛК73 я не работал. http://www.owen.ru/forum/showthread....ht=%CF%CB%CA73
    Да, почитал, всё как у вас. И что мне делать то теперь? Есть ли способ перевести из real в string на плк 63??
    С show_real совсем не хочется связываться...

  7. #37

    По умолчанию

    A INT_TO_STRING на ПЛК63 будет работать?

  8. #38

    По умолчанию

    Цитата Сообщение от alexxx Посмотреть сообщение
    Да, почитал, всё как у вас. И что мне делать то теперь? Есть ли способ перевести из real в string на плк 63??
    Есть.
    Умножаем на 10^число знаков после запятой, переводим в INT и форматируем.

  9. #39

    По умолчанию

    Цитата Сообщение от ASo Посмотреть сообщение
    Есть.
    Умножаем на 10^число знаков после запятой, переводим в INT и форматируем.
    Это я понял! Но будет ли корректно переводить из INT в STRING??
    Последний раз редактировалось alexxx; 03.04.2013 в 15:09.

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

    По умолчанию

    Цитата Сообщение от alexxx Посмотреть сообщение
    Да, почитал, всё как у вас. И что мне делать то теперь? Есть ли способ перевести из real в string на плк 63??
    С show_real совсем не хочется связываться...
    Я делал сначала свою функцию
    Код:
    FUNCTION R_TO_ST : STRING
    VAR_INPUT
    	varReal: REAL;
    END_VAR
    VAR
    END_VAR
    R_TO_ST:=INT_TO_STRING(TRUNC(varReal*10)/10);
    R_TO_ST:=CONCAT(R_TO_ST, '.');
    R_TO_ST:=CONCAT(R_TO_ST,INT_TO_STRING(TRUNC(varReal*10)MOD 10));
    И в программе ее использовал примерно так
    PROGRAM PLC_PRG
    VAR
    Str_test: STRING;
    END_VAR
    Str_test:=CONCAT('Tводы: ', R_TO_ST(Tvod)); (* Tvod-аналоговый вход ПЛК*)
    Write_Display(SINGLE_MODE, 0, 0, Str_test);
    Но в библиотеке OSCAT есть функция REAL_TO_STRF
    Код:
    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;
    Здесь и большой диапазон представления, и выбор кол. знаков после запятой и работает округление для отброшенных знаков.
    Использовал аналогично
    Код:
    Str_test:=CONCAT('Tводы: ', REAL_TO_STRF(Tvod, 2));(* Tvod-аналоговый вход ПЛК*)
    Write_Display(SINGLE_MODE, 0, 0, Str_test);
    Последний раз редактировалось petera; 03.04.2013 в 15:23.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 30.09.2011, 12:37
  2. Ответов: 2
    Последнее сообщение: 05.09.2010, 17:27
  3. порядок ввода данных с панели
    от TVV в разделе Сервисное ПО
    Ответов: 3
    Последнее сообщение: 20.01.2010, 17:57

Ваши права

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