Просмотр полной версии : ПЛК73 очистка экрана перед обновлением
Sergey666
25.06.2020, 08:14
Всем привет.
В ПЛК73 HMI в монопольном режиме обновление с периодом 300мс. Показания датчиков давления и температуры преобразовываем из real в string (функция Real_to_Strf), но так как формат чисел все равно меняется (напр 100.1...99.8) на экране остаются "остатки" от предыдущих данных. Собственно вопрос к опытным пользователям данного девайса- корректно ли выполнять очистку экрана перед его обновлением? В принципе я так уже сделал, показания датчиков сейчас без лишнего мусора, но...показалось, что ПЛК стал как-то подглючивать... например ни с того ни с сего по аналоговым входам пошла ошибка с кодом 6 (Нет данных), хотя датчики подключены, потом нормализовалось.
Если выделенное место для одного символа фиксировано то попробуйте сделать фиксированную длину показаний и дополняйте показания до нее пробелами слева, цифры не будут "прыгать", а "остатки" будут затираться пробелами
Sergey666
25.06.2020, 12:49
Это можно, но похоже на костыли...Там же не только кол-во знаков, еще и знак "-" может быть, а может и не быть и в некоторых случаях после точки может быть один, или 2 знака (1.2..1.25).Короче анализ и приведение к единому формату строки индикации надо делать. А например аварийные сообщения как форматировать, у меня строка в массиве формируется от 30 до 50 символов, я ее раскидываю на 4 строки экрана и там с единым форматом вообще никак.
Сейчас тестируем с периодической очисткой экрана, пока вроде все работает.
Sergey666
02.07.2020, 08:23
%16.1f / %16.2f ... строка формата решает все проблемы
Этот формат для работы с экранами в рабочем (WORK_MODE) режиме, а я работаю в монопольном (SINGLE_MODE) режиме.
В принципе финальное тестирование не выявило каких-либо глюков, поэтому тему можно считать закрытой.
Sailorrus07
06.07.2020, 02:58
Здравствуйте, уважаемые форумчане, нужна помощь в освоении ПЛК63/73. На производстве имеются ПЛК63 и 73, но работать с ними некому, наши АСУшники не работают с продукцией ОВЕН, вот и приходится выкручиваться самому. В основном я программирую ПР без проблем, но проблема в выводе значений на экран ПЛК, так как не могу найти информацию или примеры работы с экраном на языке CFC, а другими языками я очень плохо владею, можно сказать вообще не владею. Может быть кто подскажет выход из положения. Как то странно, что разработчики не продумали функционального блока на CFC языке для вывода значений на экран ПЛК. А может быть я ошибаюсь?
Здравствуйте, уважаемые форумчане, нужна помощь в освоении ПЛК63/73. На производстве имеются ПЛК63 и 73, но работать с ними некому, наши АСУшники не работают с продукцией ОВЕН, вот и приходится выкручиваться самому. В основном я программирую ПР без проблем, но проблема в выводе значений на экран ПЛК, так как не могу найти информацию или примеры работы с экраном на языке CFC, а другими языками я очень плохо владею, можно сказать вообще не владею. Может быть кто подскажет выход из положения. Как то странно, что разработчики не продумали функционального блока на CFC языке для вывода значений на экран ПЛК. А может быть я ошибаюсь?
Проблематично Вам будет с дисплеем данных ПЛК работать на языках, отличных от ST... (ИМХО)
Все то же самое на ST конечно проще 50057
Филоненко Владислав
06.07.2020, 12:20
Всем привет.
В ПЛК73 HMI в монопольном режиме обновление с периодом 300мс. Показания датчиков давления и температуры преобразовываем из real в string (функция Real_to_Strf), но так как формат чисел все равно меняется (напр 100.1...99.8) на экране остаются "остатки" от предыдущих данных. Собственно вопрос к опытным пользователям данного девайса- корректно ли выполнять очистку экрана перед его обновлением? В принципе я так уже сделал, показания датчиков сейчас без лишнего мусора, но...показалось, что ПЛК стал как-то подглючивать... например ни с того ни с сего по аналоговым входам пошла ошибка с кодом 6 (Нет данных), хотя датчики подключены, потом нормализовалось.
Самый правильный вариант - записывать экран в промежуточный буфер (строку) и потом записывать его 1 командой раз в 100-300 мс.
Sergey666
06.07.2020, 12:50
Самый правильный вариант - записывать экран в промежуточный буфер (строку) и потом записывать его 1 командой раз в 100-300 мс.
В формате команды вывода строки в монопольном режиме есть позиция первого символа и номер строки, что-то я не заметил автопереноса части строки на следующую, т.е если мне надо вывести 4 строки, надо сформировать 4 команды, один раз в 100-300мс (по описанию не рекомендуется чаще чем 200мс).
А предварительно для очистки экрана выполняем очистку...
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot