Просмотр полной версии : скорость преобразования real_to_string
Доброе время суток. Недавно столкнулся с такой проблемой как большое время цикла. И вроде программа то небольшая. Методом исключения выяснил что очень большое время занимали преобразования real_to_string. Создал новый проект (CFC), в нем только одно преобразование real_to_string, в итоге цикл 1ms, в модуле статистики перегрузка. ПЛК 110-32. Если изменить real_to_string на real_to_int, то цикл 0.3ms. Действительно ли скорость преобразования real_to_string низкая?
Отличная находка! Проверил у себя на ПЛК160 — сотня-другая вызовов REAL_TO_STRING это надёжный способ завести контроллер в ступор и заставить его перезагрузиться. Каждый вызов занимет примерно 1 мс.
спасибо за ответ))) отрицательный результат - тоже результат, однако хотелось бы скорости побольше. Неужели все мирятся с этим, или просто ни у кого не было надобности в этом? Мне необходимо 5 реалов сохранять в файл, придется наверное как то обойтись без преобразования в string.
:) по рукам бы вам монтировкой, а просто реал в файл не пишется?
:) по рукам бы вам монтировкой, а просто реал в файл не пишется?
подскажи как его записать и вытащить?
зап:
dwHandle := SysFileOpen('Pr_XX.t','w');
SysFileWrite(dwHandle,ADR(Pr_XX),SIZEOF(Pr_XX));
SysFileClose(dwHandle);
tmp:=REAL_TO_WORD((cc+10)*10);
dwHandle := SysFileOpen('cc.t','w');
SysFileWrite(dwHandle,ADR(tmp),SIZEOF(tmp));
SysFileClose(dwHandle);
Чтение:
dwHandle := SysFileOpen('Pr_XX.t','r');
SysFileRead(dwHandle,ADR(Pr_XXf),SIZEOF(Pr_XXf)-1);
SysFileClose(dwHandle);
dwHandle := SysFileOpen('cc.t','r');
SysFileRead(dwHandle,ADR(tmp),SIZEOF(tmp)-1);
SysFileClose(dwHandle);
ccf:=WORD_TO_REAL(tmp);
ccf:=ROUND((ccf / 10 - 10),1);
Все это работает, но ЧУЮ что как то через Ж*ПУ.
подскажите?
а кто сказал, что я имел ввиду запись в ПЛК? :) вот ссылка, техподдержка особо то не рекомендует этим заниматься http://www.owen.ru/forum/showthread.php?t=9737. Я бы предложил архивы вести на ПК через протокол модбас
Запись у меня проходит редко 1 раз в месяц а может и в год.
Просто настохринело менять аккумуляторы.
ну по моему так в самый раз это дать сделать с помощью ПК, чем потом с ПЛК все равно придется вытаскивать
У меня 8-12 плк150 и сенсорная панель (так 8 раз с тремя типами панелей), с панели поменяли уставку в одном из плк, плк видит что значение изменилось и делает запись.
и ПЛК вместо записи в файл, ложит переменную в модбас слейв, который кстати тоже ретайн, а ПК раз в сутки или с другой периодичностью собирает инфу со слейвов и ведет хоть общий архив хоть по отдельности, помне так всё должно удовлетворить Ваши ожидания
Да нет у меня в системах ПК! Панели меня устраивают, по 2-3 года уже пашут и ни каких проблем, и люди которые работают на объектах не потянут скады.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot