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

Тема: ПЛК73. Вывод на дисплей.

  1. #1

    По умолчанию ПЛК73. Вывод на дисплей.

    Написал программу для ПЛК73. Все работате хорошо, но возникает один маленький нюанс. Надпись на дисплее временами начинает мигать (то полностью, то отдельные ее части - отдельные символы).
    Вот пример одного из выводов текста.

    IF historread=FALSE AND handmode=FALSE THEN
    ClearScreen(0);
    ShowString(0,0,0, 'Температура');
    ShowDint(0,13,0,'%d',INT_TO_DINT(TWater));
    ShowString(0,0,1,'Регул');
    ShowDint(0,7,1,'%d',INT_TO_DINT(Tosn-5));
    ShowDint(0,12,1,'%d',INT_TO_DINT(Tosn+5));
    ShowString(0,0,2,'Откл при');
    ShowDint(0,10,2,'%d',INT_TO_DINT(Tosn+12));
    Temp(IN:=TWater , HIGH:=Tosn+5 , LOW:=Tosn-5);
    TempA(IN:=Twater , HIGH:=Tosn+5+7 , LOW:=Tosn-5-7);

    Возможно надо вывод осуществлять используюя тригерры, а не переменные (тогда функция вывода выполнится один раз и все, а не постоянно будет вызываться как здесь). Проверить на железе не получается пока (контроллер уже на объекте работает), а потому хочется уточнить на будущее.

  2. #2

    По умолчанию

    Чтобы свести мерцание к минимуму (а в 99% случаев) и исключить полностью просто формируйте строку экрана в отдельном буфере и выводите её целиком. Не чаще раза в 50мс. А не генерируйте множество запросов на изменение 1-2-3 символов.
    Тролль-наседка, добрый, нежный и ласковый

  3. #3

    По умолчанию

    У меня проблема мерцания решилась после внимательного чтения описания библиотек WORK_MODE и IND_MODE на диске ПЛК-63\73.

    Там сказано (например, стр.15), что "Во избежание мигания индикации запрещается вывод на один и тот же экран информации чаще, чем раз в 200 мс."

    Поэтому, нужно обязательно вводить таймер в режиме генератора, с периодом импульсов минимум в 200мс. И формирование и обновление индикации производить только после появления импульса на выходе таймера.

    Например, так (пример взят оттуда же):

    ton1(in:=NOT ton1.q,pt:=t#200ms);
    IF ton1.Q THEN
    SHOW STRING и так далее.
    Последний раз редактировалось kolyan; 25.01.2012 в 21:14.

  4. #4

    По умолчанию

    Понятно. Спасибо. Приблизительно подобные сомнения и были.

  5. #5

    По умолчанию

    Пользуюсь монопольным режимом, обновление происходит по строкам string(16) каждые 250ms, экран переодически мерцает?
    Как попедить данный эфект?

  6. #6

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А пишите только при изменении, но не чаще 0.2с
    И что гарантировано пропадет мерцание?

  7. #7

    По умолчанию

    кто как выводит время? есть таймер TON, для понимания надо указывать сколько времени прошло. как выводить на ЖКИ время в типа TIME в виде ММ:СС ? готовых функий вроде нет.

  8. #8
    Пользователь
    Регистрация
    10.04.2010
    Адрес
    Алтайский край,г.Рубцовск
    Сообщений
    899

    По умолчанию

    FullTime:=TIME_TO_DWORD(in)/1000;
    min:=DWORD_TO_WORD(FullTime/60);
    sec:=DWORD_TO_REAL(FullTime MOD 60/100);
    TimeReal:=min+sec;

  9. #9

    По умолчанию

    спасибо, жекон. реализовал так, но еще не проверял на оборудовании:

    VAR
    sec_for_lcd: DINT;
    min_for_lcd: DINT;
    END_VAR

    min_for_lcd:=TIME_TO_INT(time_rem) / 60000;
    ShowDint (0, 11, 0, '%02d:', min_for_lcd);
    ShowString (0, 13, 0, ':');
    sec_for_lcd:=TIME_TO_INT(time_rem) / 1000 MOD 60;
    ShowDint (0, 14, 0, '%02d:', sec_for_lcd);

    и видел еще подобные решения с часами.

    теперь вопрос в следующем. как сформировать буфер? как преобразовать целое в строку с дополнением нулями? что-то типа sprintf в си?
    Последний раз редактировалось arcsin; 05.06.2017 в 13:04.

  10. #10
    Пользователь
    Регистрация
    10.04.2010
    Адрес
    Алтайский край,г.Рубцовск
    Сообщений
    899

    По умолчанию

    Я просто не 2 целых а REAL вывожу

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

Похожие темы

  1. Гаснет дисплей на СМИ1
    от Алексей Дмитриев в разделе Панели оператора (HMI)
    Ответов: 3
    Последнее сообщение: 12.01.2013, 18:36
  2. И снова об ПЛК73
    от ASo в разделе ПЛК63/73
    Ответов: 3
    Последнее сообщение: 30.06.2011, 18:55
  3. ПЛК73
    от nevii в разделе ПЛК63/73
    Ответов: 8
    Последнее сообщение: 15.05.2011, 20:10
  4. Мигает дисплей ТРМ32 как исправить
    от Aleksey Myasnikov в разделе Эксплуатация
    Ответов: 5
    Последнее сообщение: 17.02.2011, 13:50
  5. сигнальный дисплей в сп270
    от кубанец в разделе Панели оператора (HMI)
    Ответов: 9
    Последнее сообщение: 11.06.2010, 15:56

Ваши права

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