<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://docs.gtlab.pro/index.php?action=history&amp;feed=atom&amp;title=Gtl.round_var</id>
	<title>Gtl.round var - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://docs.gtlab.pro/index.php?action=history&amp;feed=atom&amp;title=Gtl.round_var"/>
	<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.round_var&amp;action=history"/>
	<updated>2026-06-25T13:09:34Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.round_var&amp;diff=1353&amp;oldid=prev</id>
		<title>AlekseyCube: Новая страница: «== Построение круговой диаграммы временного сигнала вибрации == &lt;pre&gt; &quot;use strict&quot;; let signals = gtl.options.record.signalsModel; let tacho = gtl.options.record.tachoOptions;  let __src = gtl.analog_inputs[signals[0].portNumber]; // источник сигнала let __frq = tacho.tachoValue; //частота вращения let __prd = 1 / __frq //период колебаний __src.history = __prd; /...»</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.round_var&amp;diff=1353&amp;oldid=prev"/>
		<updated>2026-06-01T14:51:46Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «== Построение круговой диаграммы временного сигнала вибрации == &amp;lt;pre&amp;gt; &amp;quot;use strict&amp;quot;; let signals = gtl.options.record.signalsModel; let tacho = gtl.options.record.tachoOptions;  let __src = gtl.analog_inputs[signals[0].portNumber]; // источник сигнала let __frq = tacho.tachoValue; //частота вращения let __prd = 1 / __frq //период колебаний __src.history = __prd; /...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Построение круговой диаграммы временного сигнала вибрации ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let signals = gtl.options.record.signalsModel;&lt;br /&gt;
let tacho = gtl.options.record.tachoOptions;&lt;br /&gt;
&lt;br /&gt;
let __src = gtl.analog_inputs[signals[0].portNumber]; // источник сигнала&lt;br /&gt;
let __frq = tacho.tachoValue; //частота вращения&lt;br /&gt;
let __prd = 1 / __frq //период колебаний&lt;br /&gt;
__src.history = __prd; //размер сохраняемых данных (время запроса) для сигнала, сек;&lt;br /&gt;
&lt;br /&gt;
function create_round(data) {&lt;br /&gt;
  let x_array = []; // массив координат точек по оси X&lt;br /&gt;
  let y_array = []; // массив координат точек по оси Y&lt;br /&gt;
  let x0_stat = 0; // координата x центра окружности&lt;br /&gt;
  let y0_stat = 0; // координата y центра окружности&lt;br /&gt;
  let r0 = 40 // радиус&lt;br /&gt;
&lt;br /&gt;
  const { sin, cos, PI } = Math; //разложение объекта Math только для удобства&lt;br /&gt;
  const length = data.length; //длина массива данных&lt;br /&gt;
  const factor = 2 * PI / length; //выведено за цикл, чтобы не считать каждый раз&lt;br /&gt;
  for (let i = 0; i &amp;lt; length; i++) {&lt;br /&gt;
    const angle = i * factor; //расчет угла&lt;br /&gt;
    const radius = r0 + data[i]; //натягиваем амплитуду сигнала на радиус окружности&lt;br /&gt;
    x_array.push(x0_stat + radius * sin(angle));&lt;br /&gt;
    y_array.push(y0_stat + radius * cos(angle));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  return {&lt;br /&gt;
    x_data: x_array,&lt;br /&gt;
    y_data: y_array&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
let round_plot = gtl.plots.add(&amp;quot;Round Diagram&amp;quot;); // объект для визуализации зазоров&lt;br /&gt;
let wave_plot = gtl.plots.add(&amp;quot;Waveworm&amp;quot;); // объект для визуализации зазоров&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = gtl.acq_time&lt;br /&gt;
//[Диагностика]&lt;br /&gt;
function diagnose() {&lt;br /&gt;
    let __src_data = __src.getHistoryArray(); //получение массива значений&lt;br /&gt;
    let __rnd = create_round(__src_data); //строим круговую диаграмму&lt;br /&gt;
    &lt;br /&gt;
    //круговая диаграмма&lt;br /&gt;
    round_plot.add({&lt;br /&gt;
        color: 0x55ff7f,&lt;br /&gt;
        name: &amp;quot;Signal&amp;quot;,&lt;br /&gt;
        x: __rnd.x_data,&lt;br /&gt;
        y: __rnd.y_data&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    //временной сигнал&lt;br /&gt;
    wave_plot.add({&lt;br /&gt;
        color: 0x2B6CC4,&lt;br /&gt;
        name: &amp;quot;Signal&amp;quot;,&lt;br /&gt;
        x: 1 / __src.rate,&lt;br /&gt;
        y: __src_data&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
    //рамка для отображения границ осей&lt;br /&gt;
    round_plot.add({&lt;br /&gt;
        color: 0x00ffffff,&lt;br /&gt;
        name: &amp;quot;frame&amp;quot;,&lt;br /&gt;
        x: [-100, -100, 100, 100],&lt;br /&gt;
        y: [100, -100, -100, 100]&lt;br /&gt;
    })&lt;br /&gt;
    &lt;br /&gt;
    // Добавляем в блок результата&lt;br /&gt;
    gtl.results = {&lt;br /&gt;
        &amp;#039;freq&amp;#039;: __frq,&lt;br /&gt;
        &amp;#039;period&amp;#039;: __prd,&lt;br /&gt;
        &amp;#039;data array&amp;#039;: __src_data.length,&lt;br /&gt;
        &amp;#039;sample rate&amp;#039;: __src.rate&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    gtl.diagnostic.stop();&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
</feed>