SensorView
Eugene (обсуждение | вклад) (→Назначение) |
Eugene (обсуждение | вклад) |
||
(не показаны 20 промежуточных версий 1 участника) | |||
Строка 3: | Строка 3: | ||
Программа может быть установлена на бытовой GPS навигатор работающий под операционной системой Windows CE. Прибор подключается к навигатору специальным USB кабелем, и превращается в бортовой монитор, позволяющий контролировать состояние датчиков, скорость, получать и просматривать СМС сообщения с использованием GSM транспорта прибора. | Программа может быть установлена на бытовой GPS навигатор работающий под операционной системой Windows CE. Прибор подключается к навигатору специальным USB кабелем, и превращается в бортовой монитор, позволяющий контролировать состояние датчиков, скорость, получать и просматривать СМС сообщения с использованием GSM транспорта прибора. | ||
− | На экране навигатора отображается точная скорость, вычисляемая по данным GPS и до десяти значений датчиков либо вычисляемых величин. Чем больше | + | На экране навигатора отображается точная скорость, вычисляемая по данным GPS и до десяти виджетов (значений датчиков либо вычисляемых величин). Чем больше виджетов тем меньше места на экране для каждого из них. |
<center>[[Файл:SensorView_screen.png]]</center> | <center>[[Файл:SensorView_screen.png]]</center> | ||
Строка 17: | Строка 17: | ||
== Настройка == | == Настройка == | ||
− | Датчики, калибровка, граничные значения и отображаемые названия задаются файлом конфигурации SETTINGS.INI. Для задания граничных и отображаемых величин можно использовать два способа. | + | Датчики, калибровка, граничные значения, цвета и отображаемые названия задаются файлом конфигурации SETTINGS.INI. |
+ | |||
+ | === Инвертирование кнопок=== | ||
+ | В зависимости от способа подключения, кнопка в нажатом состоянии может иметь как "0" так и "1". | ||
+ | Для инвертирования состояния есть опция INVERSION_BUTTON. | ||
+ | |||
+ | Например, INVERSION_BUTTON = 4,5,7 - инвертировать статус кнопок с 4,5 и 7 физ. входов. | ||
+ | |||
+ | Примечание: Если данные с указанных входов в программе не нужны, то они не читаются с прибора. | ||
+ | |||
+ | Примечание2: Теперь эти данные используются также для инверсии дискретных входов. | ||
+ | |||
+ | === Экран === | ||
+ | Интерфейс программы автоматически растягивается на весь экран навигатора. | ||
+ | В редких случаях из-за особенностей прошивки навигатора, программа неправильно растягивается. Для этих случаев можно жестко задать размер экрана, используя следующие опции. | ||
+ | |||
+ | SCREEN_HEIGHT - Принудительное задание высоты экрана. | ||
+ | |||
+ | SCREEN_WIDTH - Принудительное задание ширины экрана. | ||
+ | |||
+ | === Калибровка === | ||
+ | Для задания граничных и отображаемых величин можно использовать два способа. | ||
Во-первых, использовать файл калибровки Locarus Informer. Этот файл нужно скопировать в каталог установки программы, а его имя указать в SETTINGS.INI параметром CALIBR. Программа будет искать в нем соответствие с номером отображаемого датчика, и использовать величины из этого файла. | Во-первых, использовать файл калибровки Locarus Informer. Этот файл нужно скопировать в каталог установки программы, а его имя указать в SETTINGS.INI параметром CALIBR. Программа будет искать в нем соответствие с номером отображаемого датчика, и использовать величины из этого файла. | ||
Строка 25: | Строка 46: | ||
Второй способ имеет приоритет. | Второй способ имеет приоритет. | ||
− | + | === Значения виджета === | |
− | Пример файла SETTINGS.INI | + | Ключевое слово - "INPUT". |
+ | |||
+ | В качестве значения виджета можно использовать: | ||
+ | * Значение датчика. | ||
+ | * Вычисляемое значение. | ||
+ | |||
+ | Значение датчика может браться (n - номер входа): | ||
+ | * С логического входа (Ln или просто число). | ||
+ | * Счетчик с физического входа (Fn.COUNTER или просто Fn) | ||
+ | * Частота с физического входа (Fn.FREQUENCY) | ||
+ | * Статус с физического входа (Fn.STATE) | ||
+ | |||
+ | Например, значение с датчика: "INPUT = 1","INPUT = L2","INPUT = F3","INPUT = F3.STATE". | ||
+ | |||
+ | '''Примечание:'''Не следует использовать Fn.COUNTER совместно с лог. счетчиком по входу n. | ||
+ | |||
+ | Чтобы использовать вычисляемое значение нужно использовать ключевое слово EVAL. | ||
+ | Например, вычисляемое значение: "INPUT = EVAL #2 + #3","INPUT = EVAL L2 + F3","INPUT = EVAL F2.STATE + F3.FREQUENCY". | ||
+ | |||
+ | В выражении могут быть использованы: | ||
+ | * Функция суммирования (SUM). Формат SUM(expr), где expr - выражение. Функция с момента включения суммирует значения expr и возвращает сумму. | ||
+ | * Функция среднего (MEAN). Формат MEAN(expr), где expr - выражение. Функция с момента включения суммирует значения expr и возвращает среднее. | ||
+ | * Арифметические операции и скобки. | ||
+ | * Переменные лог. датчиков (В формате "#<номер датчика>"), которые в момент вычисления будут заменены на их реальные значения. | ||
+ | * Переменные лог. датчиков (В формате "L<номер датчика>"), которые в момент вычисления будут заменены на их реальные значения. | ||
+ | * Переменные физ. датчиков (В формате "F<номер датчика>.<поле>"), которые в момент вычисления будут заменены на их реальные значения. | ||
+ | |||
+ | Значение виджета, имеющего счетчик, можно сбросить кликнув на значение виджета. После клика появится диалог, в котором нужно нажать на кнопку "Yes", если вы действительно хотите сбросить счетчик. Иначе нужно кликнуть на кнопку "No". | ||
+ | |||
+ | Если виджет имеет значение датчика (например "INPUT = 1") или не имеет счетчика (например "INPUT = EVAL #2 + #3"), то диалог не появится так как сбрасывать нечего. | ||
+ | |||
+ | Если виджет имеет более одного счетчика (например "INPUT = EVAL MEAN(SUM(#2) + SUM(#3))+SUM(#1)"), то будут сброшены ВСЕ счетчики этого виджета. | ||
+ | |||
+ | Также для сброса можно использовать кнопку с физического входа (см. ниже). | ||
+ | |||
+ | === Сброс по фронту === | ||
+ | |||
+ | Для сброса счетчика (SUM(expr)) можно использовать как клик по виджету, так и опцию "RESET". | ||
+ | Опция указывает дискретный логический вход и фронт (передний или задний), по которому нужно осуществлять сброс. | ||
+ | |||
+ | Фронт: | ||
+ | * Передний (0->1) (FRONT) | ||
+ | * Задний (1->0) (BACK) | ||
+ | |||
+ | Например: "RESET = D4.FRONT", "RESET = D4.BACK". | ||
+ | |||
+ | В качестве значения кнопки берется STATE, на который может влиять инвертирование, описанное выше. | ||
+ | |||
+ | === Цвет виджета === | ||
+ | Ключевое слово - "COLORS" | ||
+ | |||
+ | Формат: | ||
+ | |||
+ | * COLORS COLOR (задать один цвет для сенсора, который не будет менятся) | ||
+ | * COLORS COLOR1 COLOR2 (Сенсор в высоком положении имеет цвет COLOR2 а в нижнем - COLOR3. В прочих случаях - градиент.) | ||
+ | * COLORS COLOR1 COLOR2 COLOR3 (Сенсор в высоком положении имеет цвет COLOR3, COLOR2 - в среднем и COLOR3 - в нижнем.) | ||
+ | |||
+ | где COLOR - это строка из множества {BLACK,WHITE,RED,BLUE,YELLOW,GREEN,MEGENTA,AQUA} или выражение вида RGB(число,число,число), где число лежит в границах [0,255] и записывается в десятичной системе счисления | ||
+ | |||
+ | Например: | ||
+ | |||
+ | |||
+ | COLORS RED - Сенсор во всех положениях имеет красный цвет | ||
+ | |||
+ | COLORS GREEN RED - Сенсор в высоком положении имеет красный цвет а в нижнем - зеленый | ||
+ | |||
+ | COLORS GREEN YELLOW RED - Сенсор в высоком положении имеет красный цвет, желтый - в среднем и зеленый - в нижнем. | ||
+ | |||
+ | Если описание цветов отсутствует, то сенсор во всех положениях имеет синий цвет. | ||
+ | |||
+ | === Пример файла SETTINGS.INI === | ||
<pre> | <pre> | ||
Строка 36: | Строка 127: | ||
; LOG - имя лог-файла. если нету или пуста - лог не пишет | ; LOG - имя лог-файла. если нету или пуста - лог не пишет | ||
; CALIBR - имя файла данных калибровки | ; CALIBR - имя файла данных калибровки | ||
− | ; REBOOT - интервал в | + | ; REBOOT - интервал в минутах для принудительной перезагрузки приложения |
; TIMEOUT - интервал опроса прибора в миллисекундах. по умолчанию 1000 - 1 секунда. | ; TIMEOUT - интервал опроса прибора в миллисекундах. по умолчанию 1000 - 1 секунда. | ||
+ | ; INVERSION_BUTTON - кнопки (физические входы, статус), которые нужно инвертировать | ||
+ | ; Например, INVERSION_BUTTON = 4,5,7 - инвертировать статус кнопок с 4,5 и 7 физ. входов. | ||
+ | ; Примечание: Если данные с указанных входов в программе не нужны, то они не читаются с прибора. | ||
+ | ; Примечание2: Теперь эти данные используются также для инверсии дискретных входов. | ||
+ | ; | ||
+ | ; SCREEN_HEIGHT - Принудительное задание высоты экрана. | ||
+ | ; | ||
+ | ; SCREEN_WIDTH - Принудительное задание ширины экрана. | ||
; | ; | ||
; Раздел VALUE | ; Раздел VALUE | ||
− | ; Настройки датчика скорости. | + | ; Настройки датчика скорости. Если отсутствует, то не отображается. Настроек не имеет. |
− | + | ||
; | ; | ||
; Раздел SENSORn | ; Раздел SENSORn | ||
Строка 52: | Строка 150: | ||
; можно использовать + - * / и скобки, в выражении | ; можно использовать + - * / и скобки, в выражении | ||
; можно использовать значение любого датчика, указав | ; можно использовать значение любого датчика, указав | ||
− | ; переменную - #n, где n - номер датчика (нумерация с 1). | + | ; переменную - #n, где n - номер логического датчика (нумерация с 1) или |
+ | ; переменную - Ln, где n - номер логического датчика (нумерация с 1). | ||
+ | ; переменную - Fn, где n - номер физического датчика (нумерация с 1). | ||
+ | ; Физический датчик имеет 3 поля: | ||
+ | ; Fn.COUNTER - Счетчик. При чтении сбрасывается. | ||
+ | ; (F13.COUNTER - Инкрементальный энкодер.) | ||
+ | ; Fn.FREQUENCY - Частота нажатий. | ||
+ | ; Fn.STATE - Статус кнопки. (Нажата/Нет). Можно инвертировать параметром выше. | ||
+ | ; Примечание: Если поле не указано, но берется Fn.COUNTER. | ||
+ | ; Также можно использовать функции: | ||
+ | ; SUM(Выражение) - накапливает сумму | ||
+ | ; MEAN(Выражение) - возвращает среднее значение выражения. | ||
+ | ; (В функциях используется не более 1 млн. значений. В случае превышения порога происходит сброс.) | ||
; | ; | ||
; Например: | ; Например: | ||
; INPUT = EVAL (#2 + #3) / 2 | ; INPUT = EVAL (#2 + #3) / 2 | ||
; вычисляется среднее значение по двум датчикам, N2 и N3. | ; вычисляется среднее значение по двум датчикам, N2 и N3. | ||
+ | ; INPUT = EVAL SUM(#3) | ||
+ | ; вычисляется сумма значений датчика N3 | ||
+ | ; INPUT = EVAL MEAN(#2+#3) | ||
+ | ; вычисляется среднее значений суммы значений датчиков N2 и N3 | ||
+ | ; INPUT = EVAL MEAN(SUM(F2.FREQUENCY)+SUM(L3)) | ||
+ | ; вычисляется среднее значений суммы сумм частот F2 и лог. датчика L3 | ||
+ | ; INPUT = EVAL MEAN(SUM(F2)+SUM(L3)) | ||
+ | ; вычисляется среднее значений суммы сумм значений датчиков F2(физический) и L3(логический) | ||
; | ; | ||
− | ; На полученное значение | + | ; На полученное значение распространяется формат вывода RANGE |
; заданный двумя величинами - MIN и MAX | ; заданный двумя величинами - MIN и MAX | ||
+ | ; COLORS - цвета сенсора | ||
+ | ; Формат1: COLORS COLOR | ||
+ | ; Формат2: COLORS COLOR | ||
+ | ; Формат3: COLORS COLOR COLOR COLOR | ||
+ | ; где COLOR - это строка из множества {BLACK,WHITE,RED,BLUE,YELLOW,GREEN,MEGENTA,AQUA} | ||
+ | ; или выражение вида RGB(число,число,число) | ||
+ | ; где число лежит в границах [0,255] и записывается в десятичной системе счисления | ||
+ | ; | ||
+ | ; Например: | ||
+ | ; COLORS GREEN | ||
+ | ; Сенсор имеет зеленый цвет во всех положениях | ||
+ | ; COLORS GREEN RED | ||
+ | ; Сенсор в высоком положении имеет красный цвет а в нижнем - зеленый | ||
+ | ; COLORS GREEN YELLOW RED | ||
+ | ; Сенсор в высоком положении имеет красный цвет, желтый - в среднем и зеленый - в нижнем. | ||
+ | ; COLORS RGB(0,255,255) RGB(0,0,255) | ||
+ | ; Сенсор в высоком положении имеет красный цвет а в нижнем - аква (RGB(0,255,255) или AQUA) | ||
+ | ; Если описание цветов отсутствует, то сенсор во всех положениях имеет синий цвет. | ||
+ | ; | ||
+ | ; RESET - вход для сброса. Используется статус дискретного логического входа. | ||
+ | ; Сброс осуществляется по фронту (переднему(0->1) и заднему(1->0)) | ||
+ | ; Например, RESET = D4.FRONT - сброс по событию перехода 0->1 | ||
+ | ; RESET = D4.BACK - сброс по событию перехода 1->0 | ||
+ | ; Примечание: Может использоваться инверсия кнопок. | ||
; | ; | ||
; TITLE - заголовок сенсора | ; TITLE - заголовок сенсора | ||
Строка 66: | Строка 208: | ||
; | ; | ||
; RANGE - принудительная калибровка | ; RANGE - принудительная калибровка | ||
− | ; | + | ; Примечание: данные из файла CALIBR применяются до получения значений с датчиков. |
+ | ; | ||
+ | ; Например: с датчика приходит 250. С помощью файла калибровки получается 180. | ||
+ | ; Уже после этого начинает действовоть EVAL и RANGE. | ||
; | ; | ||
; Возможные форматы: | ; Возможные форматы: | ||
Строка 74: | Строка 219: | ||
; | ; | ||
; MIN,MAX - минимальное и максимальное значение сенсора | ; MIN,MAX - минимальное и максимальное значение сенсора | ||
− | ; если | + | ; если присутствует KOEF то в отображаемых единицах, |
; если нет - в физически получаемых с датчиков значениях | ; если нет - в физически получаемых с датчиков значениях | ||
; KOEF - коэффициент для физических значений в отображаемые | ; KOEF - коэффициент для физических значений в отображаемые | ||
; | ; | ||
− | ; Отображаемое значение = Физическое * KOEF | + | ; Отображаемое значение = Физическое*KOEF |
+ | ; | ||
+ | ; CHART - Стиль диаграммы виджета. | ||
+ | ; Возможные значения: ENABLE(рисовать, по умолчанию),DISABLE(не рисовать) | ||
+ | ; Например, CHART = ENABLE - рисовать диаграмму. | ||
; | ; | ||
[SYSTEM] | [SYSTEM] | ||
− | PORT=COM5:,COM6: | + | PORT=COM5:,COM6:,COM8: |
− | LOG=locarus.log | + | ;LOG=locarus.log |
CALIBR=CARSLIST.INI | CALIBR=CARSLIST.INI | ||
TIMEOUT=5000 | TIMEOUT=5000 | ||
− | + | INVERSION_BUTTON = 4 | |
− | [VALUE] | + | ;[VALUE] |
− | + | ||
[SENSOR1] | [SENSOR1] | ||
− | INPUT= | + | INPUT = EVAL SUM(F2) |
− | TITLE= | + | RESET = D4.FRONT |
− | UNITS= | + | TITLE=Объем заправки |
− | + | UNITS=кол-во | |
− | + | CHART=DISABLE | |
[SENSOR2] | [SENSOR2] | ||
− | INPUT= | + | INPUT = L2 |
− | TITLE= | + | TITLE=Остаток |
− | UNITS= | + | UNITS=Литров |
− | + | CHART=ENABLE | |
− | + | COLORS=RED GREEN | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</pre> | </pre> |
Текущая версия на 14:11, 6 октября 2014
Содержание |
Назначение
Программа может быть установлена на бытовой GPS навигатор работающий под операционной системой Windows CE. Прибор подключается к навигатору специальным USB кабелем, и превращается в бортовой монитор, позволяющий контролировать состояние датчиков, скорость, получать и просматривать СМС сообщения с использованием GSM транспорта прибора.
На экране навигатора отображается точная скорость, вычисляемая по данным GPS и до десяти виджетов (значений датчиков либо вычисляемых величин). Чем больше виджетов тем меньше места на экране для каждого из них.
Установка
Если навигатор содержит носитель ResidentFlash то программа может быть установлена с помощью стандартного CAB файла установщика, с последующим копированием в каталог установки конфигурационных файлов.
В противном случае саму программу и файлы конфигурации можно просто скопировать на носитель, и запустить ее средствами операционной системы навигатора. В этом случае автозапуск программы нужно настроить вручную.
Способ запуска установщика или программы зависит от пользовательского интерфейса навигатора, и определяется индивидуально для каждой модели.
Настройка
Датчики, калибровка, граничные значения, цвета и отображаемые названия задаются файлом конфигурации SETTINGS.INI.
Инвертирование кнопок
В зависимости от способа подключения, кнопка в нажатом состоянии может иметь как "0" так и "1". Для инвертирования состояния есть опция INVERSION_BUTTON.
Например, INVERSION_BUTTON = 4,5,7 - инвертировать статус кнопок с 4,5 и 7 физ. входов.
Примечание: Если данные с указанных входов в программе не нужны, то они не читаются с прибора.
Примечание2: Теперь эти данные используются также для инверсии дискретных входов.
Экран
Интерфейс программы автоматически растягивается на весь экран навигатора. В редких случаях из-за особенностей прошивки навигатора, программа неправильно растягивается. Для этих случаев можно жестко задать размер экрана, используя следующие опции.
SCREEN_HEIGHT - Принудительное задание высоты экрана.
SCREEN_WIDTH - Принудительное задание ширины экрана.
Калибровка
Для задания граничных и отображаемых величин можно использовать два способа.
Во-первых, использовать файл калибровки Locarus Informer. Этот файл нужно скопировать в каталог установки программы, а его имя указать в SETTINGS.INI параметром CALIBR. Программа будет искать в нем соответствие с номером отображаемого датчика, и использовать величины из этого файла.
Во-вторых, в случае линейного либо вычисляемого способа отображения, для каждого датчика можно задать индивидуально верхнюю, нижнюю границу возможных значений, и коэффициент, по которому будут вычислены отображаемые значения по данным, получаемым с прибора.
Второй способ имеет приоритет.
Значения виджета
Ключевое слово - "INPUT".
В качестве значения виджета можно использовать:
- Значение датчика.
- Вычисляемое значение.
Значение датчика может браться (n - номер входа):
- С логического входа (Ln или просто число).
- Счетчик с физического входа (Fn.COUNTER или просто Fn)
- Частота с физического входа (Fn.FREQUENCY)
- Статус с физического входа (Fn.STATE)
Например, значение с датчика: "INPUT = 1","INPUT = L2","INPUT = F3","INPUT = F3.STATE".
Примечание:Не следует использовать Fn.COUNTER совместно с лог. счетчиком по входу n.
Чтобы использовать вычисляемое значение нужно использовать ключевое слово EVAL. Например, вычисляемое значение: "INPUT = EVAL #2 + #3","INPUT = EVAL L2 + F3","INPUT = EVAL F2.STATE + F3.FREQUENCY".
В выражении могут быть использованы:
- Функция суммирования (SUM). Формат SUM(expr), где expr - выражение. Функция с момента включения суммирует значения expr и возвращает сумму.
- Функция среднего (MEAN). Формат MEAN(expr), где expr - выражение. Функция с момента включения суммирует значения expr и возвращает среднее.
- Арифметические операции и скобки.
- Переменные лог. датчиков (В формате "#<номер датчика>"), которые в момент вычисления будут заменены на их реальные значения.
- Переменные лог. датчиков (В формате "L<номер датчика>"), которые в момент вычисления будут заменены на их реальные значения.
- Переменные физ. датчиков (В формате "F<номер датчика>.<поле>"), которые в момент вычисления будут заменены на их реальные значения.
Значение виджета, имеющего счетчик, можно сбросить кликнув на значение виджета. После клика появится диалог, в котором нужно нажать на кнопку "Yes", если вы действительно хотите сбросить счетчик. Иначе нужно кликнуть на кнопку "No".
Если виджет имеет значение датчика (например "INPUT = 1") или не имеет счетчика (например "INPUT = EVAL #2 + #3"), то диалог не появится так как сбрасывать нечего.
Если виджет имеет более одного счетчика (например "INPUT = EVAL MEAN(SUM(#2) + SUM(#3))+SUM(#1)"), то будут сброшены ВСЕ счетчики этого виджета.
Также для сброса можно использовать кнопку с физического входа (см. ниже).
Сброс по фронту
Для сброса счетчика (SUM(expr)) можно использовать как клик по виджету, так и опцию "RESET". Опция указывает дискретный логический вход и фронт (передний или задний), по которому нужно осуществлять сброс.
Фронт:
- Передний (0->1) (FRONT)
- Задний (1->0) (BACK)
Например: "RESET = D4.FRONT", "RESET = D4.BACK".
В качестве значения кнопки берется STATE, на который может влиять инвертирование, описанное выше.
Цвет виджета
Ключевое слово - "COLORS"
Формат:
- COLORS COLOR (задать один цвет для сенсора, который не будет менятся)
- COLORS COLOR1 COLOR2 (Сенсор в высоком положении имеет цвет COLOR2 а в нижнем - COLOR3. В прочих случаях - градиент.)
- COLORS COLOR1 COLOR2 COLOR3 (Сенсор в высоком положении имеет цвет COLOR3, COLOR2 - в среднем и COLOR3 - в нижнем.)
где COLOR - это строка из множества {BLACK,WHITE,RED,BLUE,YELLOW,GREEN,MEGENTA,AQUA} или выражение вида RGB(число,число,число), где число лежит в границах [0,255] и записывается в десятичной системе счисления
Например:
COLORS RED - Сенсор во всех положениях имеет красный цвет
COLORS GREEN RED - Сенсор в высоком положении имеет красный цвет а в нижнем - зеленый
COLORS GREEN YELLOW RED - Сенсор в высоком положении имеет красный цвет, желтый - в среднем и зеленый - в нижнем.
Если описание цветов отсутствует, то сенсор во всех положениях имеет синий цвет.
Пример файла SETTINGS.INI
; Файл настройки Locarus Sensor Monitor ; ; Раздел SYSTEM ; PORT - возможные порты через запятую. ; LOG - имя лог-файла. если нету или пуста - лог не пишет ; CALIBR - имя файла данных калибровки ; REBOOT - интервал в минутах для принудительной перезагрузки приложения ; TIMEOUT - интервал опроса прибора в миллисекундах. по умолчанию 1000 - 1 секунда. ; INVERSION_BUTTON - кнопки (физические входы, статус), которые нужно инвертировать ; Например, INVERSION_BUTTON = 4,5,7 - инвертировать статус кнопок с 4,5 и 7 физ. входов. ; Примечание: Если данные с указанных входов в программе не нужны, то они не читаются с прибора. ; Примечание2: Теперь эти данные используются также для инверсии дискретных входов. ; ; SCREEN_HEIGHT - Принудительное задание высоты экрана. ; ; SCREEN_WIDTH - Принудительное задание ширины экрана. ; ; Раздел VALUE ; Настройки датчика скорости. Если отсутствует, то не отображается. Настроек не имеет. ; ; Раздел SENSORn ; Последовательное описание сенсоров ; ; INPUT - номер контролируемого параметрического выхода. ; нумерация с 1 ; ИЛИ ; выражение EVAL - любое математическое выражение. ; можно использовать + - * / и скобки, в выражении ; можно использовать значение любого датчика, указав ; переменную - #n, где n - номер логического датчика (нумерация с 1) или ; переменную - Ln, где n - номер логического датчика (нумерация с 1). ; переменную - Fn, где n - номер физического датчика (нумерация с 1). ; Физический датчик имеет 3 поля: ; Fn.COUNTER - Счетчик. При чтении сбрасывается. ; (F13.COUNTER - Инкрементальный энкодер.) ; Fn.FREQUENCY - Частота нажатий. ; Fn.STATE - Статус кнопки. (Нажата/Нет). Можно инвертировать параметром выше. ; Примечание: Если поле не указано, но берется Fn.COUNTER. ; Также можно использовать функции: ; SUM(Выражение) - накапливает сумму ; MEAN(Выражение) - возвращает среднее значение выражения. ; (В функциях используется не более 1 млн. значений. В случае превышения порога происходит сброс.) ; ; Например: ; INPUT = EVAL (#2 + #3) / 2 ; вычисляется среднее значение по двум датчикам, N2 и N3. ; INPUT = EVAL SUM(#3) ; вычисляется сумма значений датчика N3 ; INPUT = EVAL MEAN(#2+#3) ; вычисляется среднее значений суммы значений датчиков N2 и N3 ; INPUT = EVAL MEAN(SUM(F2.FREQUENCY)+SUM(L3)) ; вычисляется среднее значений суммы сумм частот F2 и лог. датчика L3 ; INPUT = EVAL MEAN(SUM(F2)+SUM(L3)) ; вычисляется среднее значений суммы сумм значений датчиков F2(физический) и L3(логический) ; ; На полученное значение распространяется формат вывода RANGE ; заданный двумя величинами - MIN и MAX ; COLORS - цвета сенсора ; Формат1: COLORS COLOR ; Формат2: COLORS COLOR ; Формат3: COLORS COLOR COLOR COLOR ; где COLOR - это строка из множества {BLACK,WHITE,RED,BLUE,YELLOW,GREEN,MEGENTA,AQUA} ; или выражение вида RGB(число,число,число) ; где число лежит в границах [0,255] и записывается в десятичной системе счисления ; ; Например: ; COLORS GREEN ; Сенсор имеет зеленый цвет во всех положениях ; COLORS GREEN RED ; Сенсор в высоком положении имеет красный цвет а в нижнем - зеленый ; COLORS GREEN YELLOW RED ; Сенсор в высоком положении имеет красный цвет, желтый - в среднем и зеленый - в нижнем. ; COLORS RGB(0,255,255) RGB(0,0,255) ; Сенсор в высоком положении имеет красный цвет а в нижнем - аква (RGB(0,255,255) или AQUA) ; Если описание цветов отсутствует, то сенсор во всех положениях имеет синий цвет. ; ; RESET - вход для сброса. Используется статус дискретного логического входа. ; Сброс осуществляется по фронту (переднему(0->1) и заднему(1->0)) ; Например, RESET = D4.FRONT - сброс по событию перехода 0->1 ; RESET = D4.BACK - сброс по событию перехода 1->0 ; Примечание: Может использоваться инверсия кнопок. ; ; TITLE - заголовок сенсора ; ; UNITS - единицы измерения ; ; RANGE - принудительная калибровка ; Примечание: данные из файла CALIBR применяются до получения значений с датчиков. ; ; Например: с датчика приходит 250. С помощью файла калибровки получается 180. ; Уже после этого начинает действовоть EVAL и RANGE. ; ; Возможные форматы: ; RANGE=MAX ; RANGE=MIN,MAX ; RANGE=MIN,MAX,KOEF ; ; MIN,MAX - минимальное и максимальное значение сенсора ; если присутствует KOEF то в отображаемых единицах, ; если нет - в физически получаемых с датчиков значениях ; KOEF - коэффициент для физических значений в отображаемые ; ; Отображаемое значение = Физическое*KOEF ; ; CHART - Стиль диаграммы виджета. ; Возможные значения: ENABLE(рисовать, по умолчанию),DISABLE(не рисовать) ; Например, CHART = ENABLE - рисовать диаграмму. ; [SYSTEM] PORT=COM5:,COM6:,COM8: ;LOG=locarus.log CALIBR=CARSLIST.INI TIMEOUT=5000 INVERSION_BUTTON = 4 ;[VALUE] [SENSOR1] INPUT = EVAL SUM(F2) RESET = D4.FRONT TITLE=Объем заправки UNITS=кол-во CHART=DISABLE [SENSOR2] INPUT = L2 TITLE=Остаток UNITS=Литров CHART=ENABLE COLORS=RED GREEN