Die folgenden Anweisungen mit mathematischen Funktionen können verwendet werden.
Tabelle 7. Anweisungen mit mathematischen Funktionen
Funktion | Erläuterung | Einschränkungen bei Argumenten |
---|---|---|
SQRT[x] | Quadratwurzel | 0 <= x |
SIN[x] | Einheiten der trigonometrischen Funktion sind Grad | Keine |
COS[x] | Keine | |
TAN[x] | Außer 90, 270 ±360n | |
ASIN[x] | -1 <= x <= 1 | |
ACOS[x] | -1 <= x <= 1 | |
ATAN[x] | Keine | |
ATAN2[x,y] | Außer x=0, y=0 | |
LN[x] | Natürlicher Logarithmus | 0 < x |
EXP[x] | Exponent | Keine |
ABS[x] | Absolut | Keine |
TRUNC[x] | Verwerfen | -2,1*10^9 <= x <=2,1*10^9 |
ROUND[x] | Runden | -2,1*10^9 <= x <=2,1*10^9 |
Die Einheit der oben genannten Funktionen ist Grad.
Umwandlungsfunktionen werden nicht unterstützt, da der Benutzer Umwandlungen durch Multiplikation mit einem konstanten Wert (57,29579 oder 0,017453 je nach Anforderung) erreichen kann.
Im folgenden Beispiel wird das Format der Anweisungen mit mathematischen Funktionen erläutert.
Funktionen mit nur einem Argument (außer bei ATAN2[ ])
Funktionen mit zwei Argumenten (ATAN2[ ])
Die Argumente mathematischer Funktionen sind "Register" und "Argumentregister".
Konstanten werden nicht direkt verwendet.
Ein Ausdruck mit Mixed Logic-Anweisungen kann in der bedingten Aussage eines bedingten Verzweigungsbefehls verwendet werden.
Ist das Ergebnis einer bedingten Anweisung ON, wird die ausführbare Anweisung des bedingten Verzweigungsbefehls ausgeführt.
Die Argumente mathematischer Funktionen sind "Register" und "Argumentregister".
Konstanten werden nicht direkt verwendet.
Funktionsname: SQRT[X] Argument: Eine positive Ganzzahl oder ein positiver reeller Wert zum Berechnen der Quadratwurzel. Mit dieser Funktion wird die positive Quadratwurzel des Arguments berechnet. Beispiel:
Die Ausführung dieses TP-Programms hat folgendes Ergebnis:
Ist das Argument ein negativer Wert, tritt der folgende Fehler auf.
Funktionsname: SIN[X] Argument: Ein Winkel zum Berechnen des SIN-Werts (in Grad). Eine Ganzzahl oder ein reeller Wert. Mit dieser Funktion wird der Sinus des Arguments berechnet. Beispiel:
Die Ausführung dieses TP-Programms hat folgendes Ergebnis:
Funktionsname: COS[X] Argument: Ein Winkel zum Berechnen des COS-Werts (in Grad). Eine Ganzzahl oder ein reeller Wert. Mit dieser Funktion wird der Kosinus des Arguments berechnet. Beispiel:
Die Ausführung dieses TP-Programms hat folgendes Ergebnis:
Funktionsname: TAN[X] Argument: Ein Winkel zum Berechnen des TAN-Werts (in Grad). Eine Ganzzahl oder ein reeller Wert. Mit dieser Funktion wird der Tangens des Arguments berechnet. Beispiel:
Die Ausführung dieses TP-Programms hat folgendes Ergebnis:
Ist das Argument gleich 180*n+90 und wird die Funktion ausgeführt, wird der folgende Fehler ausgegeben.
Funktionsname: ASIN[x] Argument: Eine ganze Zahl oder ein reeller Wert zum Berechnen des ASIN-Werts. (Der zurückgegebene Wert wird in Grad gemessen.) Mit dieser Funktion wird der Arkussinus des Arguments berechnet. Beispiel:
Die Ausführung dieses TP-Programms hat folgendes Ergebnis:
Ist der Argumentbereich x > 1 oder x < -1 und wird die Funktion ausgeführt, wird der folgende Fehler ausgegeben.
Funktionsname: ACOS[x] Argument: Eine ganze Zahl oder ein reeller Wert zum Berechnen des ACOS-Werts. (Der zurückgegebene Wert wird in Grad gemessen.) Mit dieser Funktion wird der Arkuskosinus des Arguments berechnet. Beispiel:
Die Ausführung dieses TP-Programms hat folgendes Ergebnis:
Ist der Argumentbereich x > 1 oder x < -1 und wird die Funktion ausgeführt, wird der folgende Fehler ausgegeben.
Funktionsname: ATAN2[x,y] 1. Argument: X-Koordinaten des Punkts zum Berechnen des ATAN2-Werts. Eine Ganzzahl oder ein reeller Wert. 2. Argument: Y-Koordinaten des Punkts zum Berechnen des ATAN2-Werts. Eine Ganzzahl oder ein reeller Wert. Diese Funktion berechnet den Arcustangens aus dem 1. und 2. Argument. (Der zurückgegebene Wert wird in Grad gemessen.) Beispiel:
Die Ausführung dieses TP-Programms hat folgendes Ergebnis:
Funktionsname: ATAN [x] Argument: Eine ganze Zahl oder ein reeller Wert zum Berechnen des ATAN-Werts. Beispiel:
Die Ausführung dieses TP-Programms hat folgendes Ergebnis:
Funktionsname: EXP[x] Argument: Eine ganze Zahl oder ein reeller Wert zum Berechnen des EXP-Werts. Mit dieser Funktion wird der Wert von e (ca. 2,71828) potenziert mit dem durch das Argument angegebenen Wert berechnet. Beispiel:
Die Ausführung dieses TP-Programms hat folgendes Ergebnis:
Funktionsname: LN[x] Argument: Eine ganze Zahl oder ein reeller Wert zum Berechnen des LN-Werts. Mit dieser Funktion wird der natürliche Logarithmus des Arguments berechnet. Beispiel:
Die Ausführung dieses TP-Programms hat folgendes Ergebnis:
Ist das Argument gleich x <= 0 und wird das Programm ausgeführt, wird der folgende Fehler ausgegeben.
Funktionsname: ABS[x] Argument: Eine Ganzzahl oder ein reeller Wert zum Berechnen des ABS-Werts. Mit dieser Funktion wird der Absolutwert des Arguments berechnet. Beispiel:
Die Ausführung dieses TP-Programms hat folgendes Ergebnis:
Funktionsname: TRUNC[x] Argument: Ein reeller Wert zum Berechnen des TRUNC-Werts. Mit dieser Funktion wird das reellwertige Argument in eine Ganzzahl umgewandelt, indem die Nachkommastellen des reellen Werts entfernt werden. Beispiel:
Die Ausführung dieses TP-Programms hat folgendes Ergebnis:
Anweisungen mit mathematischen Funktionen sind Teil von Mixed Logic-Anweisungen. Anweisungen mit mathematischen Funktionen können in Hintergrundoperationen verwendet werden.
Tabelle 8. Hintergrundoperation mathematischer Funktionen
Modus | Maximal zulässige Anzahl von Elementen | Scanzeit | Verfügbare Daten | Verfügbare Operatoren |
---|---|---|---|---|
Standardmodus | Keine Einschränkungen | (Anzahl von Elementen im Standardmodus / 300-Anzahl von Elementen im High-Level-Modus) * ITP Die hier verwendete Anzahl von Elementen bezieht sich auf die Gesamtanzahl in Hintergrundprogrammen in den einzelnen Modi. Ein ITP dauert normalerweise acht Millisekunden. | SIN, COS, TAN, ASIN, ACOS, ATAN, ATAN2, SQRT, LN, EXP, ABS, TRUNC, ROUND | (,), =, <>, <, <=, >, >=, +, -, *, /, DIV, MOD |
High-Level-Modus | 270 | Acht Millisekunden |
Die Scanzeit für mathematische Funktionen beträgt das Zwei- oder Dreifache der Scanzeit für normale Elemente, da die Berechnung von Anweisungen mit mathematischen Funktionen mehr Zeit in Anspruch nimmt.
Die Scanzeit der Anweisung ATAN2 beträgt das Dreifache der Scanzeit für normale Elemente.
Die Scanzeit der Anweisungen mit mathematischen Funktionen beträgt das Doppelte der Scanzeit für normale Elemente.
Mathematische Funktionen können in Mixed Logic-Anweisungen verwendet werden. Als Beispiel wird das Teachen der folgenden Anweisung dargestellt.
Verfahren 8. Einschränkungen beim Teachen mathematischer Funktionen
Drücken Sie F1 [ANWS].
Wählen Sie "Register".
Wählen Sie "…=(…)" für Mixed Logic-Anweisungen.
Wählen Sie das Register "R[ ]". Der Cursor springt in die eckigen Klammern.
Geben Sie Index 1ein.
Der Cursor springt zur rechten Seite des Gleichheitszeichens.
Wählen Sie "SIN[ ]".
Der Cursor springt in die eckigen Klammern. Der Standardwert R[…] wird ausgewählt. Argumente sind "Register" und "Argumentregister" (Nicht Konstante) Das "Register" ist der Standardwert des Arguments. Um das "Argumentregister" zu verwenden, drücken Sie F3, [AUSWAHL], und wählen Sie das "Argumentregister" aus.
Hier wird beispielsweise das Register[2] verwendet. Wenn Sie den Wert 2 eingeben, springt der Cursor zur rechten runden Klammer.
Verschieben Sie den Cursor, um das Teachen zu beenden.
Damit ist das Teachen der Funktion SIN[R[2]] abgeschlossen.
Die Argumente mathematischer Funktionen sind "Register" und "Argumentregister".
Konstanten werden nicht direkt verwendet.
Wenn Sie eine Konstante verwenden möchten, geben Sie eine Konstante in ein Register ein, und verwenden Sie das Register.
In eine Zeile können mehrere mathematische Funktionen eingefügt werden.
Mathematische Funktionen können nicht in eine mathematische Funktion eingefügt werden.
Die folgenden Anweisungen werden unterstützt.
Die folgenden Anweisungen werden nicht unterstützt.
Mathematische Funktionen haben einen vernachlässigbaren Rechenfehler von 10-7. Grund dafür ist ein interner Rechenfehler, da mathematische Funktionen den gleichen Spezifikationen unterliegen wie die integrierten KAREL-Komponenten.
Das Ergebnis von COS[R[1]] (bei R[1]=90) beträgt beispielsweise möglicherweise 10-8, also nicht genau Null. Dieses Verhalten kann vermieden werden, indem das Ergebnis mit der Funktion ROUND gerundet wird.
Bei Anweisungen mit mathematischen Funktionen wird bei Vorliegen der folgenden Bedingungen ein Alarm ausgegeben.
Das Argument überschreitet den Bereich der Funktionsdefinition. Beispiel: LN[R[1]] (R[1] = -1) :ASIN[R[2]] (R[2] = 10) :SQRT[R[3]] (R[3] = -4) :TAN[R[4]] (R[4] = 90)
Bei der Ausführung tritt ein Wertüberlauf auf. Beispiel: EXP[R[1]] (R[1] = 100)
Werden Variablen durch Null geteilt, tritt der folgende Fehler auf. Beispiel: R[1] / SIN[R[2]] (R[2] = 0) :10/COS[R[3]] (R[3] = 90)