Контроллеры Do-more - Мощные, интуитивно понятные математические инструкции

Do-more Designer: Мощные, интуитивно понятные математические инструкции

Мощные, интуитивно понятные математические инструкции

Мощные, интуитивно понятные математические инструкции

Таблица стилей математических инструкций (MATH) позволяет смешивать типы данных * и применять формулы и переменные. Математические команды допускают вложение с круглыми скобками до 8 уровней, а также:

  • Десять вещественных функций, включая натуральный логарифм, логарифм, e, PI, квадратный корень и конвертацию. Все стандартные тригонометрические функции.
  • Восемь статистических функций, включая Average, Min и Max, RANDINT и RANDREAL (для генерации случайных значений), функции стандартного отклонения и многое другое.
  • Тринадцать условных функций, включая шесть CountIF, шесть SumIF и выражение If / Else с полным набором бинарных операторов.

Если этого недостаточно, добавьте к этому абсолютную и косвенную адресацию значений, времени, памяти и возможность получить доступ к битам системного уровня, таким как $IndexError, $OutOfRange, $Overflow и т.д.

* Примечание: все целые и вещественные типы данных действительны, но Do-more поддерживает также инструкции BCD и восьмеричных преобразований для устаревших типов данных.

Do-more Math Instruction

Математическая команда Do-more (выше) используется для оценки объема жидкости в вертикальном цилиндрическом резервуаре:

Do-more Math Equation

Cписок ВСЕХ операторов и функций, которые могут быть использованы в математических командах (из файла справки):


Бинарные операторы

Описание

Пример

+

Add

D0 + D1

-

Subtract

D0 - D1

*

Multiply

D0 * D1

/

Divide

D0 / D1

%

Modulus/Remainder

D0 % D1

**

Raise to a Power

D0 ** D1

Less Than

D0 < D1

<=

Less Than or Equal To

D0 <= D1

==

Equal To

D0 == D1

!=

Not Equal To

D0 != D1

>=

Greater Than or Equal To

D0 >= D1

Greater Than

D0 > D1

&&

Logical AND

X0 && X1

||

Logical OR

X0 || X1

&

Bit-wise AND

D0 & 0x7FFF

|

Bit-wise OR

D0 | 0xFFFF

^

Bit-wise XOR

D0 ^ D1

<< 

Shift Left

D0 << 1

>> 

Shift Right

D0 >> 1

>>> 

Unsigned Shift Right

D0 >>> 1

Одинарные операторы

Описание

Пример

-

Negate

-D0

~

Bit-wise Invert

~D0

!

Logical Not

!X0

Простые функции

Описание

Пример

ABS

Absolute Value

ABS(D0)

MAX

Maximum Between Two Expressions

MAX(D0 * D1, V2)

MIN

Minimum Between Two Expressions

MIN(D0 * D1, V2)

Вещественные функции

Описание

Пример

E

Euler's Constant e

E()

FRAC

Fractional Portion of a Real Number

FRAC(R0)

LN

Natural Log

LN(R0)

LOG

Log Base 10

LOG(R0)

PI

Returns the value of PI (3.14159)

PI()

ROUND

Round Real to Nearest Whole Number

ROUND(R0)

SQRT

Square Root

SQRT(R0)

TOINT

Convert to Integer

TOINT(SQRT(R0))

TOREAL

Convert to Real

TOREAL(D0 + D1)

TRUNC

Truncate Real to a Whole Number

TRUNC(R0)

Тригонометрические функции

Описание

Пример

ACOS

Arccosine in Radians

ACOS(R0)

ASIN

Arcsine in Radians

ASIN(R0)

ATAN

Arctangent in Radians

ATAN(D0)

COS

Cosine of Radian Angle

COS(R0)

DEG

Convert Radians to Degrees

DEG(R0)

RAD

Convert Degrees to Radians

RAD(R0)

SIN

Sine of Radian Angle

SIN(R0)

TAN

Tangent of Radian Angle

TAN(R0)

Статистические функции

Описание

Пример

AVGR

Average of a Range of Values

AVGR(D0,10)

MAXR

Maximum Value Across a Range of Values

MAXR(D0,10)

MINR

Minimum Values Across a Range of Values

MINR(D0, 10)

RANDINT

Get Random Integer in Range 0 ... 2147483647

RANDINT()

RANDREAL

Get Random Real in Range 0.0 ... 1.0

RANDREAL()

STDEVPR

Population Standard Deviation of a Range

STDEVPR(R20, 8)

STDEVR

Sample Standard Deviation of a Range

STDEVR(R20, 8)

SUMR

Sum of a Range of Values

SUMR(D0,10)

Условные функции

Описание

Пример

COUNTIFEQ

Count If Equal to Expression

COUNTIFEQ(42, D0, 10)

COUNTIFNE

Count If Not Equal to Expression

COUNTIFNE(42, D0, 10)

COUNTIFGE

Count If Greater Than or Equal to Expression

COUNTIFGE(42, D0, 10)

COUNTIFGT

Count If Greater Than Expression

COUNTIFGT(42, D0, 10)

COUNTIFLE

Count If Less Than or Equal to Expression

COUNTIFLE(42, D0, 10)

COUNTIFLT

Count If Less Than Expression

COUNTIFLT(42, D0, 10)

IF

If / Else Expression

IF(C7, D0, D1)

SUMIFEQ

Sum if Equal to Expression

SUMIFEQ(42, D0, 10)

SUMIFNE

Sum if Not Equal to Expression

SUMIFNE(42, D0, 10)

SUMIFGE

Sum If Greater Than or Equal to Expression

SUMIFGE(42, D0, 10)

SUMIFGT

Sum if Greater Than Expression

SUMIFGT(42, D0, 10)

SUMIFLE

Sum if Less Than or Equal to Expression

SUMIFLE(42, D0, 10)

SUMIFLT

Sum if Less Than Expression

SUMIFLT(42, D0, 10)

Временные фукции

Описание

Пример

NOW

Get Date/Time Stamp as a 32-bit Integer (1970 Epoch)

NOW()

TICKms

Get Millisecond System Timer Value

TICKms()

TICKus

Get Microsecond System Timer Value

TICKus()

Функции памяти

Описание

Пример

REF

Read Value Indirectly

REF(D0, V0)

[ ]

Array Index Expression

D[ (V10 * 16) + V11 ]