<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[CANNY forum &mdash; Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
	<link rel="self" href="https://forum.canny.ru/extern.php?action=feed&amp;tid=836&amp;type=atom" />
	<updated>2021-04-14T08:55:19Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.canny.ru/viewtopic.php?id=836</id>
		<entry>
			<title type="html"><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link rel="alternate" href="https://forum.canny.ru/viewtopic.php?pid=9596#p9596" />
			<content type="html"><![CDATA[<p>Тоже полезное замечание.&nbsp; А то бы я по аналогии с USB VCP пытался бы передать числа в цифровом формате.&nbsp; И видимо результат бы был отрицательным. <br />Сейчас я понял, для чего в CannyLab встроено преобразование в ASCII коды. Именно для целей передачи и визуализации параметров с использованием последовательного интерфейса. А то было загадкой, потому что внутри CannyLab ASCII коды не используются. <br />Спасибо за разъяснения и подсказки.</p>]]></content>
			<author>
				<name><![CDATA[orto]]></name>
				<uri>https://forum.canny.ru/profile.php?id=816</uri>
			</author>
			<updated>2021-04-14T08:55:19Z</updated>
			<id>https://forum.canny.ru/viewtopic.php?pid=9596#p9596</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link rel="alternate" href="https://forum.canny.ru/viewtopic.php?pid=9594#p9594" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Константин, CANNY]]></name>
				<uri>https://forum.canny.ru/profile.php?id=2</uri>
			</author>
			<updated>2021-04-14T07:37:39Z</updated>
			<id>https://forum.canny.ru/viewtopic.php?pid=9594#p9594</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link rel="alternate" href="https://forum.canny.ru/viewtopic.php?pid=9588#p9588" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[orto]]></name>
				<uri>https://forum.canny.ru/profile.php?id=816</uri>
			</author>
			<updated>2021-04-13T06:29:30Z</updated>
			<id>https://forum.canny.ru/viewtopic.php?pid=9588#p9588</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link rel="alternate" href="https://forum.canny.ru/viewtopic.php?pid=9587#p9587" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Денис, CANNY]]></name>
				<uri>https://forum.canny.ru/profile.php?id=3</uri>
			</author>
			<updated>2021-04-12T16:25:11Z</updated>
			<id>https://forum.canny.ru/viewtopic.php?pid=9587#p9587</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link rel="alternate" href="https://forum.canny.ru/viewtopic.php?pid=9586#p9586" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Константин, CANNY]]></name>
				<uri>https://forum.canny.ru/profile.php?id=2</uri>
			</author>
			<updated>2021-04-12T12:23:38Z</updated>
			<id>https://forum.canny.ru/viewtopic.php?pid=9586#p9586</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link rel="alternate" href="https://forum.canny.ru/viewtopic.php?pid=9584#p9584" />
			<content type="html"><![CDATA[<p>Учитывая, что USB связь с контроллером теперь не работает, а эксперимент хочется завершить и разобраться с таймером до конца,&nbsp; подскажите, как связаться с контроллером по RS-232? Связь можно также осуществить через HTERM, или уже будут другие подходы для чтения информации из контроллера?</p>]]></content>
			<author>
				<name><![CDATA[orto]]></name>
				<uri>https://forum.canny.ru/profile.php?id=816</uri>
			</author>
			<updated>2021-04-12T11:25:41Z</updated>
			<id>https://forum.canny.ru/viewtopic.php?pid=9584#p9584</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link rel="alternate" href="https://forum.canny.ru/viewtopic.php?pid=9576#p9576" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[orto]]></name>
				<uri>https://forum.canny.ru/profile.php?id=816</uri>
			</author>
			<updated>2021-04-11T16:29:10Z</updated>
			<id>https://forum.canny.ru/viewtopic.php?pid=9576#p9576</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link rel="alternate" href="https://forum.canny.ru/viewtopic.php?pid=9359#p9359" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Денис, CANNY]]></name>
				<uri>https://forum.canny.ru/profile.php?id=3</uri>
			</author>
			<updated>2021-02-20T08:46:13Z</updated>
			<id>https://forum.canny.ru/viewtopic.php?pid=9359#p9359</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link rel="alternate" href="https://forum.canny.ru/viewtopic.php?pid=9356#p9356" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[AlexN]]></name>
				<uri>https://forum.canny.ru/profile.php?id=77</uri>
			</author>
			<updated>2021-02-20T08:33:44Z</updated>
			<id>https://forum.canny.ru/viewtopic.php?pid=9356#p9356</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Отсчет больших промежутков времени (минуты, часы, дни)]]></title>
			<link rel="alternate" href="https://forum.canny.ru/viewtopic.php?pid=9355#p9355" />
			<content type="html"><![CDATA[<p>Появилась необходимость задавать длительные промежутки времени<br />На диаграммах счет идет в минутах, но по аналогии можно задать и часы<br />Отсчет идет с 1 секунды, а не с 0, если это критично, то после генератора ШИМ можно поставить логическое НЕ.<br />Так же по факту генерируемая секунда немного длинее обычной.</p><p>Вопрос: из-за того что результат после сравнения значений X и Y (блоки 3, 5 и 8) появляются на мгновение, в симуляторе их не видно, возможны ли при работе в железе игнорирование этих значений и лучше добавить задержку выключения для каждого этого блока на 100 мс?</p><p>Ну и может есть проще способ задавать длинные задержки?</p>]]></content>
			<author>
				<name><![CDATA[zotikov]]></name>
				<uri>https://forum.canny.ru/profile.php?id=739</uri>
			</author>
			<updated>2021-02-20T08:14:33Z</updated>
			<id>https://forum.canny.ru/viewtopic.php?pid=9355#p9355</id>
		</entry>
</feed>
