<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[CANNY forum &mdash; Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
		<link>https://forum.canny.ru/viewtopic.php?id=836</link>
		<atom:link href="https://forum.canny.ru/extern.php?action=feed&amp;tid=836&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Отсчет больших промежутков времени (минуты, часы, дни)».]]></description>
		<lastBuildDate>Wed, 14 Apr 2021 08:55:19 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=9596#p9596</link>
			<description><![CDATA[<p>Тоже полезное замечание.&nbsp; А то бы я по аналогии с USB VCP пытался бы передать числа в цифровом формате.&nbsp; И видимо результат бы был отрицательным. <br />Сейчас я понял, для чего в CannyLab встроено преобразование в ASCII коды. Именно для целей передачи и визуализации параметров с использованием последовательного интерфейса. А то было загадкой, потому что внутри CannyLab ASCII коды не используются. <br />Спасибо за разъяснения и подсказки.</p>]]></description>
			<author><![CDATA[null@example.com (orto)]]></author>
			<pubDate>Wed, 14 Apr 2021 08:55:19 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=9596#p9596</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=9594#p9594</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Вопрос был, что RS-232 на компьютере видится как СОМ-порт. В связи с этим можно также использовать для наблюдений за контроллером гипертерминал,&nbsp; или нужны другие программные средства? У меня недостаточно знаний по программированию, от того и спрашиваю.</p></blockquote></div><p>В общем случае можно использовать терминал. Так или иначе, состав данных передаваемых контроллером по последовательному порту как значение данных принимаемых по нему, определяете вы в диаграмме. Если эти данные будут представлены в ASCII, то в этом случае терминал будет вполне применим для взаимодействия с контроллером.</p><p>Например:</p><p><a href="https://forum.canny.ru/viewtopic.php?id=573" rel="noopener noreferrer" target="_blank">https://forum.canny.ru/viewtopic.php?id=573</a></p><p><a href="https://forum.canny.ru/viewtopic.php?id=312" rel="noopener noreferrer" target="_blank">https://forum.canny.ru/viewtopic.php?id=312</a></p><p><a href="https://forum.canny.ru/viewtopic.php?id=177" rel="noopener noreferrer" target="_blank">https://forum.canny.ru/viewtopic.php?id=177</a></p>]]></description>
			<author><![CDATA[null@example.com (Константин, CANNY)]]></author>
			<pubDate>Wed, 14 Apr 2021 07:37:39 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=9594#p9594</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=9588#p9588</link>
			<description><![CDATA[<p>Вот и наступил момент истины.<br />Но по-порядку.<br />1. </p><div class="quotebox"><cite>Константин, CANNY пишет:</cite><blockquote><p>Если же в контроллер записана диаграмма использующая драйвер VCP и контролер сначала подключен к питанию, а потом к USB, то он определится как Virtual COM Port и с ним можно будет взаимодействовать используя терминал, если такое взаимодействие предусмотрено в диаграмме: <a href="https://canny.ru/docs/c3tiny/usb/#sec--c3tiny-usb-obshee-opisanie" rel="noopener noreferrer" target="_blank">https://canny.ru/docs/c3tiny/usb/#sec-- … e-opisanie</a></p></blockquote></div><p>Было бы очень хорошо, если бы такими словами было написано в руководстве, куда ведет ссылка. Когда я это прочитал и выполнил, то снова восстановилась связь и через гипертерминал удалось протестировать таймер. По документу такой порядок действий оказался неочевидным.<br />2. Вопрос был, что RS-232 на компьютере видится как СОМ-порт. В связи с этим можно также использовать для наблюдений за контроллером гипертерминал,&nbsp; или нужны другие программные средства? У меня недостаточно знаний по программированию, от того и спрашиваю. <br />3. Сразу надо сделать акцент, что у меня включено увеличение тактовой частоты и секунда должна состоять из 10000 тактов.<br />4. Наблюдение за таймером в течении часа показало, что за 1 час (точнее за 62 минуты) внутренний таймер отстал на 106 сек. Что составляет примерно 28,5 мс/сек. Простой перерасчет показал, что реально в секунде не 10000 тактов, как предполагалось, а всего 9715. <br />5. Заменив в программе 10000 на 9715 снова провел тест времени. За ночь (10 час) внутренний таймер ушел вперед примерно на 2-2,5 сек. То есть настроить точный ход всё таки можно. <br />6. Не исключаю, что без увеличения тактовой частоты (когда 1 сек=1000 тактов) коэффициент будет другой. Так же не исключаю, что коэффициент зависит от величины и сложности конкретной программы. И также от конкретной платы контроллера. Надо всё проверять. Мне суточная точность времени принципиальна, я ищу решение. Для кого это не особенно важно - заморачиваться не надо. <br />7. Будет время (выходные), подберу поточнее коэффициент с более тщательной проверкой работы. В том числе посмотрю, не собьется ли таймер с отключением контроля по USB и с изменением программы (исключение отладочных блоков). <br />И ещё выложу картинки, чтобы было видно соотношение работы внутреннего таймера и часов компьютера.<br />Спасибо службе поддержки за комментарии</p>]]></description>
			<author><![CDATA[null@example.com (orto)]]></author>
			<pubDate>Tue, 13 Apr 2021 06:29:30 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=9588#p9588</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=9587#p9587</link>
			<description><![CDATA[<div class="quotebox"><cite>orto пишет:</cite><blockquote><p>...Далее относительно промежутков времени остается только теоретизировать.<br />В сутках 86400 сек. При потере 20 мс на каждой секунде, за сутки потеряется 0,02*86400=1728 сек или 28,8 мин...</p></blockquote></div><p>Контроллеры CANNY 3 Tiny в отличие от старших моделей не имеют на борту кварцевого осциллятора. Встроенный RC-осциллятор контроллера имеет погрешность ~1%, величина которой зависит от температуры окружающей среды.<br />Кроме того, в режиме увеличенного разрешения системного таймера, погрешность в значениях временных интервалов увеличивается. Для повышения точности в данном случае лучше использовать стандартное разрешение системного таймера. Для достижения наибольшей точности, требуется провести калибровку контроллера (практическую), выяснить погрешность и компенсировать ее в диаграмме.<br />Во вложении пример учета отклонений в измерениях времени. При испытании на стенде такой подход позволил получить отклонение менее 1 секунды за 1 час.</p>]]></description>
			<author><![CDATA[null@example.com (Денис, CANNY)]]></author>
			<pubDate>Mon, 12 Apr 2021 16:25:11 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=9587#p9587</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=9586#p9586</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>При отключении от USB что-то случилось с контроллером и при повторном подключении контроллер перестал определяться как COM-порт, а определяется как USB-устройство ввода.</p></blockquote></div><p>Если не подключенный к питанию контроллер подключить к USB, он перейдет в режим связи с CannyLab / загрузки ПО: <a href="https://canny.ru/docs/c3tiny/#sec--c3tiny-rezhim-zagruzki-po" rel="noopener noreferrer" target="_blank">https://canny.ru/docs/c3tiny/#sec--c3ti … agruzki-po</a></p><p>Если же в контроллер записана диаграмма использующая драйвер VCP и контролер сначала подключен к питанию, а потом к USB, то он определится как Virtual COM Port и с ним можно будет взаимодействовать используя терминал, если такое взаимодействие предусмотренно в диаграмме: <a href="https://canny.ru/docs/c3tiny/usb/#sec--c3tiny-usb-obshee-opisanie" rel="noopener noreferrer" target="_blank">https://canny.ru/docs/c3tiny/usb/#sec-- … e-opisanie</a></p><br /><div class="quotebox"><blockquote><p>подскажите, как связаться с контроллером по RS-232?</p></blockquote></div><p>Используя драйвер UART в режиме инвертированной полярности: <a href="https://canny.ru/docs/c3tiny/uart/#sec--c3tiny-uart-obshee-opisanie" rel="noopener noreferrer" target="_blank">https://canny.ru/docs/c3tiny/uart/#sec- … e-opisanie</a></p>]]></description>
			<author><![CDATA[null@example.com (Константин, CANNY)]]></author>
			<pubDate>Mon, 12 Apr 2021 12:23:38 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=9586#p9586</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=9584#p9584</link>
			<description><![CDATA[<p>Учитывая, что USB связь с контроллером теперь не работает, а эксперимент хочется завершить и разобраться с таймером до конца,&nbsp; подскажите, как связаться с контроллером по RS-232? Связь можно также осуществить через HTERM, или уже будут другие подходы для чтения информации из контроллера?</p>]]></description>
			<author><![CDATA[null@example.com (orto)]]></author>
			<pubDate>Mon, 12 Apr 2021 11:25:41 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=9584#p9584</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=9576#p9576</link>
			<description><![CDATA[<p>Хочу продолжить тему больших интервалов времени (сутки и больше).<br />Начал я как и все - с программного ШИМ-регулятора с периодом 1 сек. Моя программа отрабатывала суточный цикл (9 часов),&nbsp; и на следующие сутки в нужное время не запускалась. Выяснил что проблема с таймером. Заменил таймер на описанный в примерах, по времени цикла. Заметного улучшения не заметил. Решил выяснить, что делается внутри контроллера. С трудом наладил связь по VCP USB (никак не мог понять, внешнее питание - это обязательный атрибут или можно без внешнего питания подать питание по USB). Когда связь появилась, то решил, что сейчас всё узнаю про точность хода таймера. Но тут меня постигла неудача. При отключении от USB что-то случилось с контроллером и при повторном подключении контроллер перестал определяться как COM-порт, а определяется как USB-устройство ввода. Причем на другом компьютере определения устройства аналогичное. Похоже что-то подгорело в драйвере и связи по USB мне уже не видать. (подскажите, диагностика и замена контроллера будет на платной основе, или можно будет сделать по гарантии?).</p><p>Далее относительно промежутков времени остается только теоретизировать. <br />В сутках 86400 сек. При потере 20 мс на каждой секунде, за сутки потеряется 0,02*86400=1728 сек или 28,8 мин.&nbsp; Если потери составят 50 мс на каждую секунду, то за сутки потеряется уже 72 минуты. В силу описанных выше условий не могу сказать, насколько у меня расходится суточный таймер и где и сколько мс теряется... Но по ощущениям теряется. Я начал данное исследование, чтобы понять, в чем именно причина. И причину не нашел, и контроллер подпортил... </p><p>Получается, что надо суметь определить погрешность суточного хода, и зная погрешность суточного хода необходимо программно ежедневно вносить коррекцию на эту погрешность суточного хода. </p><p>Автор, начавший данный пост, утверждал, что секунда в контроллере длиннее стандартной секунды. Я с ним согласен, но к сожалению привести конкретные цифры не могу.&nbsp; <br />Думаю, что&nbsp; в каждом конкретном случае это можно сделать только методом последовательных приближений. <br />Я надеюсь, что точность всё-таки достижима. Но не с первого раза. И обязательно сразу получайте обратную связь из контроллера в компьютер, чтобы точно видеть, насколько расходится суточный ход контроллера.</p><p>Прикладываю свой файл, может вдруг я зря грешу на таймер.<br />Контроллер CANNY 3 Tiny</p>]]></description>
			<author><![CDATA[null@example.com (orto)]]></author>
			<pubDate>Sun, 11 Apr 2021 16:29:10 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=9576#p9576</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=9359#p9359</link>
			<description><![CDATA[<div class="quotebox"><cite>zotikov пишет:</cite><blockquote><p>...Отсчет идет с 1 секунды, а не с 0, если это критично...</p></blockquote></div><p>Если между блоками 1 и 2 поставить, например, детектор переднего фронта, то отсчет будет идти с 0 секунды. Либо для компенсации описанного эффекта, для получения 1 минуты, можно проводить сравнение не с 60, а с 61.</p><div class="quotebox"><cite>zotikov пишет:</cite><blockquote><p>...из-за того что результат после сравнения значений X и Y (блоки 3, 5 и 8) появляются на мгновение, в симуляторе их не видно...</p></blockquote></div><p>В симуляторе, для отслеживания изменений состояний, можно использовать, например, &quot;контрольные точки&quot;. Подробнее см. <strong><a href="https://canny.ru/docs/cannylab/simulator/#sec--cannylab-simulator-priostanovka-po-usloviyu" rel="noopener noreferrer" target="_blank">https://canny.ru/docs/cannylab/simulato … o-usloviyu</a></strong></p>]]></description>
			<author><![CDATA[null@example.com (Денис, CANNY)]]></author>
			<pubDate>Sat, 20 Feb 2021 08:46:13 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=9359#p9359</guid>
		</item>
		<item>
			<title><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=9356#p9356</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Ну и может есть проще способ задавать длинные задержки?</p></blockquote></div><p>Есть: <a href="https://canny.ru/docs/tips_tricks/clock/" rel="noopener noreferrer" target="_blank">https://canny.ru/docs/tips_tricks/clock/</a></p>]]></description>
			<author><![CDATA[null@example.com (AlexN)]]></author>
			<pubDate>Sat, 20 Feb 2021 08:33:44 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=9356#p9356</guid>
		</item>
		<item>
			<title><![CDATA[Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link>https://forum.canny.ru/viewtopic.php?pid=9355#p9355</link>
			<description><![CDATA[<p>Появилась необходимость задавать длительные промежутки времени<br />На диаграммах счет идет в минутах, но по аналогии можно задать и часы<br />Отсчет идет с 1 секунды, а не с 0, если это критично, то после генератора ШИМ можно поставить логическое НЕ.<br />Так же по факту генерируемая секунда немного длинее обычной.</p><p>Вопрос: из-за того что результат после сравнения значений X и Y (блоки 3, 5 и 8) появляются на мгновение, в симуляторе их не видно, возможны ли при работе в железе игнорирование этих значений и лучше добавить задержку выключения для каждого этого блока на 100 мс?</p><p>Ну и может есть проще способ задавать длинные задержки?</p>]]></description>
			<author><![CDATA[null@example.com (zotikov)]]></author>
			<pubDate>Sat, 20 Feb 2021 08:14:33 +0000</pubDate>
			<guid>https://forum.canny.ru/viewtopic.php?pid=9355#p9355</guid>
		</item>
	</channel>
</rss>
