<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://tdg-racing.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Noirart</id>
	<title>TDG Electronics - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="http://tdg-racing.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Noirart"/>
	<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Noirart"/>
	<updated>2026-09-13T17:24:37Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.39.11</generator>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=327</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=327"/>
		<updated>2025-12-27T20:36:07Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:1px; padding:2px 5px 2px 5px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 =  -40|  -30|  -20|  -10|   0|   10|   20|   30|   40|   50|   60|   70|   80|   90|  100|  130;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=326</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=326"/>
		<updated>2025-12-27T20:35:54Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:1px; padding:2px 5px 2px 5px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 =  -40|  -30|  -20|  -10|   0|   10|   20|   30|   40|   50|   60|   70|   80|   90|   100| 130;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=325</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=325"/>
		<updated>2025-12-27T20:35:35Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:1px; padding:2px 5px 2px 5px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 =  -40|  -30|  -20|  -10|   0|   10|   20|   30|   40|   50|   60|   70|   80|   90| 100| 130;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=324</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=324"/>
		<updated>2025-12-27T20:34:27Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:1px; padding:2px 5px 2px 5px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:2px; border:1px solid #d0d0d0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=323</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=323"/>
		<updated>2025-12-27T20:34:11Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:1px; padding:2px 5px 2px 5px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:2px; border:1px solid #d0d0d0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=322</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=322"/>
		<updated>2025-12-27T20:33:57Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:1px; padding:2px 5px 2px 5px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:2px; border:1px solid #d0d0d0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=321</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=321"/>
		<updated>2025-12-27T20:33:13Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:1px; padding:2px 5px 2px 5px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:2px; border:1px solid #d0d0d0;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=320</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=320"/>
		<updated>2025-12-27T20:31:22Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:1px; padding:2px 5px 2px 5px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=319</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=319"/>
		<updated>2025-12-27T20:30:40Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:1px; padding:10px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=318</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=318"/>
		<updated>2025-12-27T20:30:29Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:1px; padding:5px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=317</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=317"/>
		<updated>2025-12-27T20:29:19Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:1px; padding:1px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=316</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=316"/>
		<updated>2025-12-27T20:29:07Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:10px; padding:1px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=315</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=315"/>
		<updated>2025-12-27T20:28:55Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:1px; padding:1px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=314</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=314"/>
		<updated>2025-12-27T20:28:45Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:1; padding:1px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=313</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=313"/>
		<updated>2025-12-27T20:27:06Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:1px; border:1px solid #E0E0E0; background:#f0f0f0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=312</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=312"/>
		<updated>2025-12-27T20:26:21Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:1px; border:1px solid #800000; background:#f0f0f0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=311</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=311"/>
		<updated>2025-12-27T20:25:54Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:1px; border:1px solid #800000; background:#101010;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=310</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=310"/>
		<updated>2025-12-27T20:25:41Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:1px; border:1px solid #800000; background:#010101;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=309</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=309"/>
		<updated>2025-12-27T20:25:19Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:1px; border:1px solid #800000; background:#505050;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=308</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=308"/>
		<updated>2025-12-27T20:25:04Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:1px; border:1px solid #800000; background:#e0e0e0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=307</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=307"/>
		<updated>2025-12-27T20:24:03Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:1px; border:1px solid #800000; background:#fff8f8;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=306</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=306"/>
		<updated>2025-12-27T20:23:35Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:1px; border:1px solid #800000; background:#fff8f8;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=305</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=305"/>
		<updated>2025-12-27T20:23:05Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:5px; border:2px solid #800000; background:#fff8f8;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=304</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=304"/>
		<updated>2025-12-27T20:22:26Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:0; border:1px solid #ccc;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=303</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=303"/>
		<updated>2025-12-27T20:21:55Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:5px; border:1px solid #ccc;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=302</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=302"/>
		<updated>2025-12-27T20:20:48Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#tag:pre|&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=301</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=301"/>
		<updated>2025-12-27T20:17:31Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; margin:0; padding:0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=300</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=300"/>
		<updated>2025-12-27T20:16:57Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=299</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=299"/>
		<updated>2025-12-27T20:15:53Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Добавление осей/таблицы и значений: (кол-во точек для осей минимум 2, максимум 16)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1=4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2= -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=298</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=298"/>
		<updated>2025-12-27T20:15:21Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=297</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=297"/>
		<updated>2025-12-27T20:14:52Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Вся система логики оперирует только двумя типами данных это:&lt;br /&gt;
1. &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; - имеющий только два значения 0 или 1&lt;br /&gt;
2. &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; -- любое число с плавающей запятой/точкой одинарной точности.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=296</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=296"/>
		<updated>2025-12-27T20:13:48Z</updated>

		<summary type="html">&lt;p&gt;Noirart: /* Типы данных */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Вся система логики оперирует только двумя типами данных это:&lt;br /&gt;
1. &amp;lt;span style=&amp;quot;color:#008000;&amp;quot;&amp;gt;Логический (bool)&amp;lt;/span&amp;gt; - имеющий только два значения 0 или 1&lt;br /&gt;
2. &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;Вещественный (float)&amp;lt;/span&amp;gt; -- любое число с плавающей запятой/точкой одинарной точности.&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic_Dash&amp;diff=295</id>
		<title>Logic Dash</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic_Dash&amp;diff=295"/>
		<updated>2025-12-27T19:45:33Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
= Настройки доступные из логики=&lt;br /&gt;
&lt;br /&gt;
== WIFI_SETUP ==&lt;br /&gt;
Настройка &amp;lt;code&amp;gt;WIFI_SETUP&amp;lt;/code&amp;gt; используется для задания параметров подключения Wi-Fi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WIFI_SETUP=AP_SSID:TDG_DashV2|AP_PASSWORD:123456789|AP_CHANNEL:6|STA_SSID:TDG|STA_PASSWORD:123456789|STA_MAC_RANDOM:0|HOST_NAME:&amp;quot;TDG_DashV2&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Параметры &#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;AP_SSID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AP_PASSWORD&amp;lt;/code&amp;gt; — имя и пароль создаваемой точкой доступа. Если не заданы, по умолчанию создаётся точка с именем &amp;lt;code&amp;gt;TDG_DashV2&amp;lt;/code&amp;gt; и паролем &amp;lt;code&amp;gt;309309309&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;AP_CHANNEL&amp;lt;/code&amp;gt; — номер используемого канала. Если не указан, по умолчанию используется канал &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;STA_SSID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STA_PASSWORD&amp;lt;/code&amp;gt; — имя и пароль точки доступа/роутера, к которому необходимо подключиться в клиентском режиме (STA). Если эти параметры не настроены, режим STA использоваться не будет.&lt;br /&gt;
* &amp;lt;code&amp;gt;STA_MAC_RANDOM&amp;lt;/code&amp;gt; — может принимать значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. При значении &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; для STA-режима используется случайный MAC-адрес. Функция используется для работы с некоторыми устройствами (например, камерами GoPro), которые могут перестать отвечать на команды при повторном подключении со статичным MAC-адресом.&lt;br /&gt;
* &amp;lt;code&amp;gt;HOST_NAME&amp;lt;/code&amp;gt; — имя устройства в сети. По этому имени (например, &amp;lt;code&amp;gt;http://tdg_dashv2.local&amp;lt;/code&amp;gt;) можно обращаться к устройству через браузер, если неизвестен IP-адрес, выданный роутером при STA-подключении.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Состояние подключений&#039;&#039;&#039;&lt;br /&gt;
Следующие элементы отображают текущее состояние Wi-Fi-подключений:&lt;br /&gt;
* &amp;lt;code&amp;gt;WIFI_AP&amp;lt;/code&amp;gt; — состояние точки доступа (AP):&lt;br /&gt;
** &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; — нет подключенных устройств&lt;br /&gt;
** &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; — есть подключенные устройства&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;WIFI_STA&amp;lt;/code&amp;gt; — состояние клиентского подключения (STA):&lt;br /&gt;
** &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; — не подключено к роутеру (IP-адрес не получен)&lt;br /&gt;
** &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; — подключено к роутеру и доступно в сети&lt;br /&gt;
&lt;br /&gt;
== TV_SETUP==&lt;br /&gt;
Настройка  &amp;lt;code&amp;gt;TV_SETUP &amp;lt;/code&amp;gt; используется для задания параметров камеры заднего вида&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TV_SETUP=ENABLE:DI.1|TYPE:NTSC|FLIP:VH;//TYPE:PAL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic_Dash&amp;diff=294</id>
		<title>Logic Dash</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic_Dash&amp;diff=294"/>
		<updated>2025-12-27T19:44:21Z</updated>

		<summary type="html">&lt;p&gt;Noirart: /* TV_SETUP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
= Настройки доступные из логики=&lt;br /&gt;
&lt;br /&gt;
== WIFI_SETUP ==&lt;br /&gt;
Настройка &amp;lt;code&amp;gt;WIFI_SETUP&amp;lt;/code&amp;gt; используется для задания параметров подключения Wi-Fi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
WIFI_SETUP=AP_SSID:TDG_DashV2|AP_PASSWORD:123456789|AP_CHANNEL:6|STA_SSID:TDG|STA_PASSWORD:123456789|STA_MAC_RANDOM:0|HOST_NAME:&amp;quot;TDG_DashV2&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Параметры &#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;AP_SSID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AP_PASSWORD&amp;lt;/code&amp;gt; — имя и пароль создаваемой точкой доступа. Если не заданы, по умолчанию создаётся точка с именем &amp;lt;code&amp;gt;TDG_DashV2&amp;lt;/code&amp;gt; и паролем &amp;lt;code&amp;gt;309309309&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;AP_CHANNEL&amp;lt;/code&amp;gt; — номер используемого канала. Если не указан, по умолчанию используется канал &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;STA_SSID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;STA_PASSWORD&amp;lt;/code&amp;gt; — имя и пароль точки доступа/роутера, к которому необходимо подключиться в клиентском режиме (STA). Если эти параметры не настроены, режим STA использоваться не будет.&lt;br /&gt;
* &amp;lt;code&amp;gt;STA_MAC_RANDOM&amp;lt;/code&amp;gt; — может принимать значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. При значении &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; для STA-режима используется случайный MAC-адрес. Функция используется для работы с некоторыми устройствами (например, камерами GoPro), которые могут перестать отвечать на команды при повторном подключении со статичным MAC-адресом.&lt;br /&gt;
* &amp;lt;code&amp;gt;HOST_NAME&amp;lt;/code&amp;gt; — имя устройства в сети. По этому имени (например, &amp;lt;code&amp;gt;http://tdg_dashv2.local&amp;lt;/code&amp;gt;) можно обращаться к устройству через браузер, если неизвестен IP-адрес, выданный роутером при STA-подключении.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Состояние подключений&#039;&#039;&#039;&lt;br /&gt;
Следующие элементы отображают текущее состояние Wi-Fi-подключений:&lt;br /&gt;
* &amp;lt;code&amp;gt;WIFI_AP&amp;lt;/code&amp;gt; — состояние точки доступа (AP):&lt;br /&gt;
** &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; — нет подключенных устройств&lt;br /&gt;
** &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; — есть подключенные устройства&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;WIFI_STA&amp;lt;/code&amp;gt; — состояние клиентского подключения (STA):&lt;br /&gt;
** &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; — не подключено к роутеру (IP-адрес не получен)&lt;br /&gt;
** &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; — подключено к роутеру и доступно в сети&lt;br /&gt;
&lt;br /&gt;
== TV_SETUP==&lt;br /&gt;
&amp;lt;code&amp;gt;TV_SETUP &amp;lt;/code&amp;gt; используется для настройки входа камеры заднего вида&lt;br /&gt;
TV_SETUP=ENABLE:DI.1|TYPE:NTSC|FLIP:VH;//TYPE:PAL&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Dashboard&amp;diff=293</id>
		<title>Dashboard</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Dashboard&amp;diff=293"/>
		<updated>2025-12-27T19:43:10Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Приборная панель (DASH2V001) ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Dash001.png&lt;br /&gt;
File:Dash002.png&lt;br /&gt;
File:Dash010.jpg&lt;br /&gt;
File:Dash7d_dimensions.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Технические характеристики ==&lt;br /&gt;
&amp;lt;b&amp;gt;Питание и входы&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Питание: 6-24в&lt;br /&gt;
:*Аналоговых входа 7× (0-5в), из них 2 с подтяжкой +5В через 1кОм&lt;br /&gt;
:*Дискретные входы: 5× (программируемая подтяжка 100кОм к земле или +3.3В)&lt;br /&gt;
:*Управление: 4 входа для кнопок&lt;br /&gt;
&amp;lt;b&amp;gt;Интерфейсы связи&amp;lt;/b&amp;gt;&lt;br /&gt;
:*CAN: 2 независимых канала&lt;br /&gt;
:*GPS (антенна приобретается отдельно)&lt;br /&gt;
:*К-Line* (поддержка &amp;quot;Январей&amp;quot;, опционально)&lt;br /&gt;
:*SD-карта: microSD (FAT32)&lt;br /&gt;
:*USB Type-C:&lt;br /&gt;
&amp;lt;b&amp;gt;Дополнительные функции&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Индикация: 10× RGB светодиодов&lt;br /&gt;
:*Акселерометр&lt;br /&gt;
:*Видео: вход для камеры заднего вида&lt;br /&gt;
:*Wi-Fi (в разработке)&lt;br /&gt;
:*Логгер&lt;br /&gt;
:*Дискретные выходы: 2× (опционально)&lt;br /&gt;
&amp;lt;b&amp;gt;Дисплей&amp;lt;/b&amp;gt;&lt;br /&gt;
:*7&amp;quot; IPS, 1024×600&lt;br /&gt;
:*Яркость: 1000 кд/м²&lt;br /&gt;
&amp;lt;b&amp;gt;Конструктив&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Корпус: ЧПУ-алюминий с черным анодированием&lt;br /&gt;
&amp;lt;b&amp;gt;Программные возможности&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Свободно настраиваемый интерфейс&lt;br /&gt;
:*Гибкая логика работы&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://forum.tdg-racing.com/download/file.php?id=135 3D модель корпуса]&lt;br /&gt;
&lt;br /&gt;
[[Dash7 Распиновка и схема подключения|Распиновка]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[SD format|Форматирование SD карты]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Laptimer|Всё про лаптаймер]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[DASH2V001_wifiactivation|Активация Wi-Fi(Актуально для серийных номеров ниже 180)]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Logic_Dash|Logic dash]]&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Dashboard&amp;diff=292</id>
		<title>Dashboard</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Dashboard&amp;diff=292"/>
		<updated>2025-12-27T19:42:57Z</updated>

		<summary type="html">&lt;p&gt;Noirart: /* Технические характеристики */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:&amp;lt;span style=&amp;quot;position: absolute; clip: rect(1px 1px 1px 1px); clip: rect(1px, 1px, 1px, 1px);&amp;quot;&amp;gt;{{FULLPAGENAME}}&amp;lt;/span&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Приборная панель (DASH2V001) ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Dash001.png&lt;br /&gt;
File:Dash002.png&lt;br /&gt;
File:Dash010.jpg&lt;br /&gt;
File:Dash7d_dimensions.JPG&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Технические характеристики ==&lt;br /&gt;
&amp;lt;b&amp;gt;Питание и входы&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Питание: 6-24в&lt;br /&gt;
:*Аналоговых входа 7× (0-5в), из них 2 с подтяжкой +5В через 1кОм&lt;br /&gt;
:*Дискретные входы: 5× (программируемая подтяжка 100кОм к земле или +3.3В)&lt;br /&gt;
:*Управление: 4 входа для кнопок&lt;br /&gt;
&amp;lt;b&amp;gt;Интерфейсы связи&amp;lt;/b&amp;gt;&lt;br /&gt;
:*CAN: 2 независимых канала&lt;br /&gt;
:*GPS (антенна приобретается отдельно)&lt;br /&gt;
:*К-Line* (поддержка &amp;quot;Январей&amp;quot;, опционально)&lt;br /&gt;
:*SD-карта: microSD (FAT32)&lt;br /&gt;
:*USB Type-C:&lt;br /&gt;
&amp;lt;b&amp;gt;Дополнительные функции&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Индикация: 10× RGB светодиодов&lt;br /&gt;
:*Акселерометр&lt;br /&gt;
:*Видео: вход для камеры заднего вида&lt;br /&gt;
:*Wi-Fi (в разработке)&lt;br /&gt;
:*Логгер&lt;br /&gt;
:*Дискретные выходы: 2× (опционально)&lt;br /&gt;
&amp;lt;b&amp;gt;Дисплей&amp;lt;/b&amp;gt;&lt;br /&gt;
:*7&amp;quot; IPS, 1024×600&lt;br /&gt;
:*Яркость: 1000 кд/м²&lt;br /&gt;
&amp;lt;b&amp;gt;Конструктив&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Корпус: ЧПУ-алюминий с черным анодированием&lt;br /&gt;
&amp;lt;b&amp;gt;Программные возможности&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Свободно настраиваемый интерфейс&lt;br /&gt;
:*Гибкая логика работы&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://forum.tdg-racing.com/download/file.php?id=135 3D модель корпуса]&lt;br /&gt;
&lt;br /&gt;
[[Dash7 Распиновка и схема подключения|Распиновка]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[SD format|Форматирование SD карты]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Laptimer|Всё про лаптаймер]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[DASH2V001_wifiactivation|Активация Wi-Fi(Актуально для серийных номеров ниже 180)]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Logic_Dash|Logic dash]]&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=291</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=291"/>
		<updated>2025-12-27T19:39:30Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=290</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=290"/>
		<updated>2025-12-27T19:39:14Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;&lt;br /&gt;
    display: block;&lt;br /&gt;
    font-family: monospace, monospace;&lt;br /&gt;
    white-space: pre;&lt;br /&gt;
    margin: 1em 0;&lt;br /&gt;
    padding: 0;&lt;br /&gt;
    line-height: 1.2;&lt;br /&gt;
    unicode-bidi: embed;&lt;br /&gt;
&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=289</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=289"/>
		<updated>2025-12-27T19:37:58Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code style=&amp;quot;display:block; white-space:pre; font-family:monospace; margin:0 !important; padding:0 !important; border:none; line-height:1.2;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=288</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=288"/>
		<updated>2025-12-27T19:35:44Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:0; padding:0; border:none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-family:monospace; padding:0;&amp;quot; | &amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-family:monospace; padding:0;&amp;quot; | &amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=287</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=287"/>
		<updated>2025-12-27T19:35:25Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:0; padding:0; border:none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-family:monospace; padding:0;&amp;quot; | &amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;font-family:monospace; padding:0;&amp;quot; | &amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=286</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=286"/>
		<updated>2025-12-27T19:35:03Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:0; padding:0; border:none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-family:monospace; padding:0;&amp;quot; | &amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-family:monospace; padding:0;&amp;quot; | &amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=285</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=285"/>
		<updated>2025-12-27T19:34:40Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; margin:0; padding:0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; margin:0; padding:0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=284</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=284"/>
		<updated>2025-12-27T19:33:53Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code style=&amp;quot;display:block; white-space:pre; font-family:monospace; margin:0; padding:0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=283</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=283"/>
		<updated>2025-12-27T19:32:48Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;display:inline-block; margin:0; padding:0; font-family:monospace;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=282</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=282"/>
		<updated>2025-12-27T19:32:29Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; background:#f8f9fa; padding:1px 5px; border:1px solid #ccc;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=281</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=281"/>
		<updated>2025-12-27T19:32:10Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; background:#f8f9fa; padding:2px 2px; border:1px solid #ccc;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=280</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=280"/>
		<updated>2025-12-27T19:31:58Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; background:#f8f9fa; padding:2px 10px; border:1px solid #ccc;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=279</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=279"/>
		<updated>2025-12-27T19:30:06Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family:monospace; white-space:pre; background:#f8f9fa; padding:10px; border:1px solid #ccc;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
	<entry>
		<id>http://tdg-racing.ru/index.php?title=Logic&amp;diff=278</id>
		<title>Logic</title>
		<link rel="alternate" type="text/html" href="http://tdg-racing.ru/index.php?title=Logic&amp;diff=278"/>
		<updated>2025-12-27T19:29:32Z</updated>

		<summary type="html">&lt;p&gt;Noirart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Система логики: описание функций =&lt;br /&gt;
&lt;br /&gt;
== Типы данных ==&lt;br /&gt;
Система оперирует двумя типами данных:&lt;br /&gt;
* &#039;&#039;&#039;Логический&#039;&#039;&#039; (&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;) — принимает значения &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (ложь) или &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; (истина).&lt;br /&gt;
* &#039;&#039;&#039;Вещественный&#039;&#039;&#039; (&amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt;) — числа с плавающей запятой (включая целые).&lt;br /&gt;
&lt;br /&gt;
== Работа с осями/таблицами ==&lt;br /&gt;
=== Добавление осей ===&lt;br /&gt;
Оси задаются списками значений (минимум 2, максимум 32 точек). Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AXIS.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&lt;br /&gt;
AXIS.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.1 = 4.95|4.906|4.831|4.708|4.520|4.25|3.893|3.456|2.967|2.461|2.005|1.598|1.240|0.967|0.762|0.348;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#800000;&amp;quot;&amp;gt;AXIS&amp;lt;/span&amp;gt;.2 = -40| -30| -20| -10| 0| 10| 20| 30| 40| 50| 60| 70| 80| 90| 100| 130;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Преобразование данных ===&lt;br /&gt;
Функция &amp;lt;code&amp;gt;CONVERT&amp;lt;/code&amp;gt; использует оси для преобразования значений. Пример:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CONVERT.1 = INPUT:ADC.1|AXIS_X:1|AXIS_Y:2; // Преобразование напряжения в температуру&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;INPUT&amp;lt;/code&amp;gt; — входной сигнал.&lt;br /&gt;
* &amp;lt;code&amp;gt;AXIS_X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AXIS_Y&amp;lt;/code&amp;gt; — номера осей (должны иметь одинаковое количество точек).&lt;br /&gt;
&lt;br /&gt;
== Логические функции ==&lt;br /&gt;
=== Сравнение ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COMPARE.1 = CONVERT.1&amp;gt;100|0; // Сравнение с округлением до 0 знаков&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Доступные операторы: &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Логические операции ===&lt;br /&gt;
* &#039;&#039;&#039;И&#039;&#039;&#039;: &amp;lt;code&amp;gt;AND.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;ИЛИ&#039;&#039;&#039;: &amp;lt;code&amp;gt;OR.1 = TIM.1|COMPARE.1;&amp;lt;/code&amp;gt; (до 10 входов).&lt;br /&gt;
* &#039;&#039;&#039;Инверсия&#039;&#039;&#039;: &amp;lt;code&amp;gt;NOT.1 = AND.1;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Таймер ==&lt;br /&gt;
Настройка таймера:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TIM.1 = HI:1000|LO:500|ENABLE:DI.1; // Импульсы 1000 мс (1) и 500 мс (0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ENABLE&amp;lt;/code&amp;gt; — сигнал активации.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI&amp;lt;/code&amp;gt; — время в состоянии 1 (мс).&lt;br /&gt;
* &amp;lt;code&amp;gt;LO&amp;lt;/code&amp;gt; — время в состоянии 0 (мс).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Особые режимы&#039;&#039;&#039;:&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:R&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;LO:R&amp;lt;/code&amp;gt; — перезапуск при изменении входа.&lt;br /&gt;
* &amp;lt;code&amp;gt;HI:0&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;LO:1000&amp;lt;/code&amp;gt; — одиночный импульс при активации.&lt;br /&gt;
&lt;br /&gt;
== Счетчик ==&lt;br /&gt;
Пример настройки:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
COUNTER.1 = UP:DI.1|DOWN_F:DI.2|RESET_F:DI.3|DEF:0|MIN:0|MAX:2|TYPE:OVER;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DOWN&amp;lt;/code&amp;gt; — входы для счета (активны по фронту).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к значению &amp;lt;code&amp;gt;DEF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;:&lt;br /&gt;
  ** &amp;lt;code&amp;gt;LIMIT&amp;lt;/code&amp;gt; — остановка на границах.&lt;br /&gt;
  ** &amp;lt;code&amp;gt;OVER&amp;lt;/code&amp;gt; — переполнение (MAX → MIN).&lt;br /&gt;
* &amp;lt;code&amp;gt;REMEMBER:1&amp;lt;/code&amp;gt; — сохранение значения в памяти (если поддерживается).&lt;br /&gt;
&lt;br /&gt;
== Пики (PEAK) ==&lt;br /&gt;
Запись экстремальных значений:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PEAK.1 = INPUT:DASH_SPEED|REMEMBER:0|RESET:DI.1|RESET_VALUE:0|TYPE:MAX;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;TYPE&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;MAX&amp;lt;/code&amp;gt; (максимум) или &amp;lt;code&amp;gt;MIN&amp;lt;/code&amp;gt; (минимум).&lt;br /&gt;
* &amp;lt;code&amp;gt;RESET&amp;lt;/code&amp;gt; — сброс к &amp;lt;code&amp;gt;RESET_VALUE&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Проверка бита ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CHECK_BIT.1 = INPUT:CAN1_CHANNEL.1|BIT:0;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;BIT&amp;lt;/code&amp;gt; — номер бита (0–31).&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
* Символ &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; разделяет параметры.&lt;br /&gt;
* Для функций, зависящих от аппаратной реализации (например, &amp;lt;code&amp;gt;REMEMBER&amp;lt;/code&amp;gt;), проверьте документацию устройства.&lt;/div&gt;</summary>
		<author><name>Noirart</name></author>
	</entry>
</feed>