Sensorparameter
Der Parameter ist eine erforderliche Sensoreigenschaft. Die Sensoren im System arbeiten hauptsächlich auf der Grundlage der im Parameter empfangenen Werte.
Parameter können beliebige Namen haben. Diese Namen sind in der Gerätekonfiguration vordefiniert, z.B. param199, param240, TEMP, pwr_int, gsm, can6 usw. Lesen Sie die Gerätespezifikation, um herauszufinden, welche Parameter verfügbar sind und was sie angeben. Sie können sich die Datensätze mit Hilfe der Registerkarte Nachrichten anfordern und die verfügbaren Parameter in der entsprechenden Spalte anzeigen lassen.
Wenn Sie einen Sensor hinzufügen oder bearbeiten, sollten Sie seinen Parameter in der Dropdown-Liste auswählen oder den Parameternamen manuell eingeben.
Derselbe Parameter kann verwendet werden, um eine beliebige Anzahl von Sensoren zu erstellen. Sie können die maximal zulässige Anzahl von Sensoren auf der Registerkarte Konto der Benutzereinstellungen sehen.
Virtuelle Parameter
Einige Parameter sind im System standardmäßig definiert und eignen sich für fast jede Art von Trackinggeräten.
Geschwindigkeit | Bewegungsgeschwindigkeit |
---|---|
Höhe | Höhe über dem Meeresspiegel (vielleicht von einigen Geräten nicht unterstützt) |
Sats | Satelliten zählen |
Kurs | Kurs (Bewegungsrichtung) |
Lat | geografischer Breitengrad |
Lon | geografischer Längengrad |
Zeit | Unix-Zeit der Nachricht |
Regtime | Uhrzeit der Registrierung einer Nachricht auf dem Server |
Einige wenige Gerätetypen unterstützen möglicherweise keinen dieser Parameter, z.B. Höhe oder Geschwindigkeit.
Ein- und Ausgänge
Das System unterstützt bis zu 32 digitale Ein- und Ausgänge. Sie werden im folgenden Format angepasst:
inN | digitaler Eingangsparameter, N - Eingabenummer |
---|---|
outN | digitaler Ausgangsparameter, N - Ausgangsnummer |
adcN | analoger Eingangsparameter, N - Eingangsnummer |
Beispielsweise ist adc8 ein Parameter, der die Werte des achten Analogeingangs registriert.
Normalerweise werden die Daten von digitalen Ein- und Ausgängen in Nachrichten im folgenden Format dargestellt: I/O = 0/0, wobei sich I auf Eingänge bezieht und O - auf Ausgänge. Wenn E/A = 0/0 angeben ist, bedeutet dies, dass alle Bits (Ein- und Ausgänge) inaktiv sind. Wenn ein Wert in einem von ihnen nicht Null ist, bedeutet dies, dass eine Ein-/Ausgabe oder mehrere von ihnen aktiv sind. Um genau zu bestimmen, welcher Wert gemeint ist, konvertieren Sie die Hexadezimalzahl in eine Binärzahl und verwenden Sie letztere, um eine Bitzahl zu definieren.
Wenn beispielsweise die Zündung aktiviert wurde, erhalten wir die Meldung mit dem Parameter I/O = 10/0. Um die Bitzahl (Eingabe) zu erhalten, in der der Wert des Sensors angezeigt wird, ist es notwendig, den empfangenen Wert im Rechner im Modus der Hexadezimalwerte (HEX) einzugeben. Das heißt, geben Sie 10 ein und wechseln Sie in den Binärmodus (BIN). Wir bekommen eine neue Nummer - 10000. Jetzt müssen wir berechnen, in welcher Position 1 erschienen ist. Die Berechnung erfolgt von rechts nach links. Im vorliegenden Fall befindet sich 1 in Position 5, d.h. der Zündsensor ist am fünften Anschluss angeschlossen. Da die geänderte Zahl vor dem Bruch (I/O) liegt, ist es ein Eingangswert. Folglich lautet der Parametername in5 (digitaler Eingang 5).
Für einen Sensor ist es auch möglich, den Parameternamen als ein- oder aus anzugeben, um die Summe aller Ein- bzw. Ausgänge anzugeben.
Konstanter Parameter
Außerdem kann der constN-Parameter verwendet werden, um einen Sensor zu erstellen, der immer den gleichen Wert zurückgibt. N ist eine beliebige Zahl, z.B. const10, const-8.5. Ein solcher Sensor kann in Diagrammen oder als Validator hilfreich sein.
Ein solcher Sensor kann sowohl unabhängig (z.B. in Diagrammen, um eine kritische Markierung anzuzeigen) als Teil der Validierungskette oder in Ausdrücken verwendet werden.
Ausdrücke
Parameter für einen Sensor können in Form eines Ausdrucks festgelegt werden, wo Sie Folgendes verwenden können:
- Parameter in der aktuellen Nachricht (adc1, in1 usw.),
- Parameter in der vorherigen Nachricht (sie beginnen mit dem Hash-Zeichen #, z.B. #adc1),
- bitweise Parameter (wie param199:3),
- Sensoren (Sensorname muss in eckigen Klammern stehen, z.B. [Kraftstoffstand]),
- Konstanten (const10, const-4.54 usw.),
- mathematische Operationszeichen:
+ | Addition |
---|---|
− | Subtraktion |
∗ | Multiplikation |
/ | Division |
^ | Potenzierung & Verwurzelung |
( ) | Klammern mit Priorität |
| | Wertverfügbarkeitsprüfung |
: | Umwandlungsvorgang |
Zum Beispiel ^const2 - square, ^const0.5 - extrahieren Sie die Quadratwurzel.
Wenn einer der Parameter, die im Ausdruck enthalten sind, ungültig ist, ist auch sein Gesamtwert ungültig.
Die Parameter aus der vorherigen Nachricht sind für den Sensor im privaten Modus und seinen Validator, in Benachrichtigungen, in QuickInfos für Diagramme und während der erneuten Übertragung von Sensoren nicht verfügbar.
Ausdrücke ermöglichen es Ihnen, eine Vielzahl von Sensoren zu erstellen, die alle Bedürfnisse und Aufgaben erfüllen.
Beispiel 1: Geschwindigkeit anhand von GPS-Koordinaten erkennen
Um die Geschwindigkeit durch Koordinaten zu erkennen, können Sie einen Sensor mit dem folgenden Parameter erstellen:
((lat-#lat)^const2+(lon-#lon)^const2)^const0.5/(time-#time)*const200000
Erklärung:
Die traditionelle Formel zur Berechnung der Geschwindigkeit der Bewegung ist "Entfernung geteilt durch Zeit". Zur Berechnung der Entfernung wird das pythagoräische Theorem verwendet. Die quadrierte Differenz der Breitengrade in benachbarten Nachrichten plus die quadrierte Differenz der Längengrade in benachbarten Nachrichten und dann wird die Quadratwurzel aus dieser Summe extrahiert. Der resultierende Wert ist die Entfernung (in Grad). Dieser Wert wird durch die Zeitdifferenz in zwei benachbarten Nachrichten geteilt. Infolgedessen ist es die Geschwindigkeit in Grad pro Sekunde. Um den Wert in Kilometer pro Stunde (oder Meilen pro Stunde) umzurechnen, sollten Sie den Umrechnungskoeffizienten von Grad auf Kilometer (oder Meilen) in verschiedenen Breitengraden anwenden. Der Koeffizient kann je nach geografischer Lage variieren. Das obige Beispiel zeigt den Koeffizienten von 200000, der für Moskau verwendet wird.
Zur Berechnung des Koeffizienten wird die folgende Formel verwendet:
111321*cos(55.75583)/1000*3600=225513.52
wobei 111321 die Länge des parallelen Lichtbogens auf 1° Länge am Äquator m ist;
55.75583 ist der Breitengrad Moskaus im Dezimalformat.
Wenn Sie den Koeffizienten für eine andere Position berechnen möchten, fügen Sie seinen Breitengrad im Dezimalformat in die Formel ein, ohne andere Werte zu ändern.
Wenn Sie den Zündsensor haben, kann der Parameter wie folgt eingestellt werden:
((lat-#lat)^const2+(lon-#lon)^const2)^const0.5/(time-#time)*const200000*[Name des Zündsensors]
Sie können einen solchen Sensor nur in Berichten (nicht in Online-Benachrichtigungen) verwenden, da er die Parameter aus der vorherigen Nachricht erfordert.
Beispiel 2: Relativer Motorstundensensor
Um Daten über reale Motorstunden zu erhalten, erstellen Sie zwei Sensoren:
- Relativer Motorstundensensor,
- Motorstunden-Koeffizientensensor in Übereinstimmung mit Motorumdrehungen.
Erstellen Sie zunächst einen Sensor vom Typ Relative Motorstunden. Der Parameter für den Sensor lautet:
(Zeit-#Zeit)*[Name des Koeffizientensensors]/const3600
Das heißt, Zeitunterschied in benachbarten Nachrichten multipliziert mit dem Koeffizienten der Arbeitsintensität und dividiert durch 3600. Die Division durch 3600 wird angewendet, um Sekunden in Stunden umzuwandeln.
Erstellen Sie dann den Koeffizientensensor, der die Intensität der Arbeit in Abhängigkeit von Motorumdrehungen definiert. Das Abhängigkeitsschema kann das folgende sein:
- 1 Minute Arbeit mit einer Intensität von 2000 U/min entspricht 90 Sekunden Motorarbeit => Koeffizient 1,5
- 1 Minute Arbeit mit einer Intensität von 1500 U/min entspricht 60 Sekunden Motorarbeit => Koeffizient 1
- 1 Minute Arbeit mit einer Intensität von 1000 U/min entspricht 40 Sekunden Motorarbeit => Koeffizient 0,67
- 1 Minute Arbeit mit einer Intensität von 500 U/min entspricht 20 Sekunden Motorarbeit => Koeffizient 0,33
Angenommen, der param1 sendet Motorumdrehungen. Dann ist der Koeffizientenparameter der folgende:
(param1+#param1)/const2
Das ist das arithmetische Mittel der Motorumdrehungen zwischen benachbarten Nachrichten.
Um Umdrehungen in Koeffizienten umzuwandeln, passen Sie die Berechnungstabelle für diesen Sensor an:
- x=500 y=0,33
- x=1000 y=0,67
- x=1500 y=1
- x=2000 y=1,5
Sie können solche Sensoren in Berichten und Leistungsindikatoren verwenden, aber nicht in Online-Benachrichtigungen, da sie die Parameter aus der vorherigen Nachricht erfordern.
Beispiel 3: Überprüfung der Wertverfügbarkeit
Am Fahrzeug ist Ausrüstung installiert, die einige Parameter sendet (z.B. param1). Dann wird mmt die Ausrüstung außer Betrieb gesetzt. Ein neues ist installiert. Die neue Ausrüstung sendet die gleichen Daten in einem anderen Parameter (z.B. param2). Um Datenverlust während der Berichterstellung auszuschließen, ist es notwendig, bei der Erstellung eines Sensors die Wertverfügbarkeitsprüfung im Feld Parameter zu verwenden. Die alte Ausrüstung funktionierte den ganzen Dezember, die neue - den ganzen Januar, und wir brauchen einen Bericht für diese zwei Monate. Wenn die Wertverfügbarkeitsprüfung während der Parameteranzeige verwendet wird (param1|param2 als Sensorparameter eingegeben), nimmt das System einen Wert aus dem Parameter param1, und wenn der Parameter1 ungültig ist (z.B. ist das Gerät defekt), nimmt das System einen Wert aus dem Parameter param2. Mit anderen Worten, bei der Verwendung der Wertverfügbarkeitsprüfung berücksichtigt das System den ersten gültigen Wert des empfangenen Parameters.
param1|param2
Funktioniert nicht mit digitalen Sensoren.
Textparameter
Die meisten Parameter sind so konzipiert, dass sie numerische Daten senden, in einigen Fällen können sie jedoch Textdaten liefern. Dies kann z.B. ein Name eines Status (geschäftlich/privat), eines Staates (frei/wartend/besetzt, ein/aus), einer Zeit sein, die seit einem bestimmten Ereignis vergangen ist, usw.
Sensoren mit Textparametern erfordern keine Konfiguration von Berechnungstabellen. Textdaten werden so angezeigt, wie sie sind.
Die Werte textbasierter Sensoren können angezeigt werden:
- in den zusätzlichen Informationen über die Einheit;
- auf der Registerkarte Nachrichten;
- in der Streckenwiedergabe;
- in der Streckentrefferprüfung;
- in der Spalte Formatierter Wert der Sensorprotokollierungstabelle.
Konvertierung von Parametern
Die Konvertierung von Parametern kann nur auf die Parameter angewendet werden, die direkt von der Hardware empfangen werden. Die verschiedenen Anwendungsfälle werden unten beschrieben.
Bitweise Parametersteuerung
Die bitweise Parametersteuerung bietet die Möglichkeit, ein bestimmtes Bit und nicht den gesamten Parameter zu steuern. Um beispielsweise das dritte Bit des Parameters param199 zu steuern, ist es notwendig, einen Doppelpunkt und die Nummer des erforderlichen Bits nach seinem Namen zu setzen.
param199:3
Diese Funktion ist anwendbar, wenn ein Gerät mehrere Daten in einem Parameter sendet: Zum Beispiel zeigt das erste Bit den Alarmzustand (ein/aus), das zweite Bit den Zustand der Fahrertür (offen/geschlossen), das dritte - Scheinwerfer usw. an. So ist es mit bitweiser Steuerung möglich, mehrere Sensoren auf der Grundlage eines Parameters zu erstellen.
Die Parameter des Double-Typs werden in int konvertiert, und erst dann wird das Bit abgerufen.
Wir empfehlen Ihnen, sich nicht direkt etwas über dem 53. zu befassen. Bei Bedarf können Sie das folgende Schema verwenden:
- Erstellen Sie einen Sensor, in dem der erforderliche Parameter geliefert wird. Zum Beispiel Sensor1.
- Erstellen Sie einen weiteren Sensor. Zum Beispiel Sensor2.
- Geben Sie für den Parameter des zweiten Sensors die Formel [Sensor1]/const4294967296 an. Auf diese Weise erfolgt eine Verschiebung von 4 Byte nach rechts.
Konvertierung von Textparametern
Wenn die Sensorformel einen Textparameter enthält, wird er in eine 53-Bit-Ganzzahl konvertiert. Standardmäßig wird es als dezimal interpretiert, jedoch kann die Positionsnotation nach dem Doppelpunkt angegeben werden. Zum Beispiel gibt es einen Parameter namenstext_param und er hat den Wert 100, dann:
text_param = 100 text_param:10 = 100 text_param:16 = 256 text_param:2 = 4
Bestimmung der Tageszahl in einem Jahr
Um die Anzahl des Tages im Jahr (im Vergleich zum 1. Januar) zu bestimmen, ist es notwendig, d nach dem Doppelpunkt anzugeben. Zum Beispiel entspricht die Unix-Zeit für den 28. März 2017 um 11:00 Uhr dem Wert 1490698800. Daher
Zeit = 1490698800 Dauer:d = 87