• Skip to main content
  • Skip to header right navigation
  • Skip to site footer
CDP Studio logo

CDP Studio

The no-code and full-code software development tool for distributed control systems and HMI

  • Doc
  • Why CDP
    • Software developers
    • Automation engineers
    • Managers
  • Products
    • Automation Designer
    • HMI Designer
    • Maritime HMIs
  • Services
  • Use cases
  • Pricing
  • Try CDP

CDP Studio Documentation

Framework - Automation

CDP Automation

An operator is a mathematical function and is useful in the development, configuration and maintenance of automation systems. This help page gives an overview of the premade operators that comes with the system and how these maps to IEC 61131-3 operators.

For the full description on how to use operators in projects and in components, how chaining operators work and how to create your own operators, see the detailed operator guide.

Overview of predefined Operators

Operators useful in automation

  • Alarm - Trigger an alarm based on signal values
  • Scaling - Scale signal value from one range and type to another range and type (using ScalingPoints)
  • ADConverter - Analog to digital value converter
  • DAConverter - Digital to analog value converter
  • Delay - Buffer and delay signal output for some time
  • MinMaxLimiter - Limit (truncate) signal output values
  • NormalPosition - Invert signal value conditionally
  • EdgeTrigger - Trigger signal value on rising and/or falling edge(s)
  • ChangeTrigger - Trigger (boolean) output value on input value change
  • Toggle - Toggles signal value between true/false on the edge of the input signal
  • Force - Conditionally forces a signal value
  • Interlock - Set signal to specified value if prerequisites are met
  • SafeValue - Forces a safe value when masked signal value is not 0 or when signal routing is invalid
  • PIDRegulator - Calculate control values knowing system position and desired position
  • Derivative - Calculate the mathematical derivative (ie. rate of change per second) of signal
  • Integral - Calculate the mathematical integral (ie. time weighted cumulative sum) of signal
  • PWM - Encodes input value into a pulse width modulated bool signal
  • KalmanFilter - Filter signal with simple one-dimensional linear Kalman filter
  • IIRFilter - An infinite impulse response (IIR) low-pass filter operator
  • RampFilter - A Ramp filter operator
  • DeltaTime - Measure the time delay between input signal changes
  • Timestamp - Output the current timestamp as a double value
  • ComposeTimestamp - Compose timestamp from date and time basic parts
  • DecomposeTimestamp - Decompose timestamp into date and time basic parts
  • MovingAverage - Calculate average of signal values in time (using different methods)
  • MovingMinimum - Calculate minimum of signal values in time
  • MovingMaximum - Calculate maximum of signal values in time
  • MovingDelta - Calculates delta value (i.e. difference between minimum and maximum) of input value in specified time window. Can also be used to test there are no changes in input value - then the delta is zero.
  • TON - On delay timer (output is set to true after preset time delay)
  • TOF - Off delay timer (output is set to false after Preset Time delay)
  • TP - Pulse timer (output pulsed on for pulse time after rising edge in input)
  • CTU - Count up (count up rising edges of input)
  • CTD - Count down (count down rising edges of input)
  • CTUD - Count up and down (upcount rising edges of CU input and downcount rising edges of CD input)
  • WatchdogTimer - Detect boolean value inactivity over given time delay.
  • PriorityEncoder - Find first highest value in input list and get its index.

Signal value transformation operators

  • Add - Add argument values to signal
  • Sub - Subtract argument values from signal
  • Mul - Multiple signal by argument values
  • Div - Divide signal value by arguments
  • Offset - Apply a constant add operation on signal value
  • Mask - Apply a binary mask on signal value
  • Invert - Apply additive inverse operation on signal value
  • LeftShift - Apply a arithmetic left shift operation on signal value
  • RightShift - Apply a arithmetic right shift operation on signal value
  • BitExtract - Extract a bit from signal
  • BitPack - Bitwise OR bit of signal by bit of parameter signal
  • Evaluate - Evaluate different mathematical expressions based on signal and/or arguments value
  • Regex - POSIX regular expression search operator that will copy matched substrings (groups) into output arguments
  • SearchReplace - String search/replace operator that transforms text input to text output by searching and replacing (can use POSIX regular expressions)
  • ByteSwap - Changes byte order of signal value
  • AND - AND argument values into a signal
  • OR - OR argument values into a signal
  • XOR - XOR argument values into a signal
  • ROL - Bitwise rotation of a value to the left
  • ROR - Bitwise rotation of a value to the right
  • MOD - Modulo division of values
  • MUX - Multiplexer where an index is used to select from several values
  • GT - Find if signal value is greater than argument
  • LT - Find if signal value is less than argument
  • GE - Find if signal value is greater than or equal with argument
  • LE - Find if signal value is less than or equal with argument
  • EQ - Find if signal value is equal with argument
  • NE - Find if signal value is not equal with argument
  • SR - Set dominant flip flop the output
  • RS - Reset dominant flip flop the output

Math operators

  • Abs - Calculate absolute value of the signed input value
  • Sign - Return sign (-1, 0 or 1) of the signed input value
  • Pow - Raise the input value to the power of the exponent argument
  • Sqrt - Calculate the square root of the input value
  • Exp - Calculate the natural exponential of the input value
  • Ln - Calculate the natural logarithm of the input value
  • Log - Calculate the logarithm of the input value to base 10
  • Log2 - Calculate the logarithm of the input value to base 2
  • Cos - Calculate the cosine of the input radian angle value
  • CosH - Calculate the hyperbolic cosine of the input radian angle value
  • ACos - Calculate the radian angle for the input cosine value
  • ACosH - Calculate the radian angle for the input hyperbolic cosine value
  • Sin - Calculate the sine of the input radian angle value
  • SinH - Calculate the hyperbolic sine of the input radian angle value
  • ASin - Calculate the radian angle for the input sine value
  • ASinH - Calculate the radian angle for the input hyperbolic sine value
  • Tan - Calculate the tangent of the input radian angle value
  • TanH - Calculate the hyperbolic tangent of the input radian angle value
  • ATan - Calculate the radian angle for the input tangent value
  • ATanH - Calculate the radian angle for the input hyperbolic tangent value

Message operators

  • MessageRegexProxy - send copies of received CM_TEXTCOMMAND text messages to one or multiple targets, based on POSIX regular expression match.
  • MessageTransform - transform CM_TEXTCOMMAND text messages using POSIX regular expressions.

Other operators

  • AddRandom - Add random value to signal

Generators and schedulers

  • Sine - Simple sine signal generator
  • WaveformGenerator - Generates sine, triangle, square or sawtooth waveforms of different slope
  • RampGenerator - Generates upward, downward and nonlinear ramps
  • Cron - Time-based scheduler, that changes its output based on pattern similar to the Unix-like operating systems crontab.

IEC 61131-3 Operator mapping in PLC

Many of the CDP Operators map to corresponding IEC 61131-3 operators, as shown in this operator comparison table:

IEC 61131-3 NameCDP Operator nameDescriptionNote
ADDAddAdd values together
MULMulMultiply values together
SUBSubSubtract values from each other
DIVDivDivide values with each other
MOVEN/AMove a variable to another variableMOVE can be implemented using signal routing
SELEvaluateBinary selection of valuesCan be implemented as "G?IN1:IN0"
MAXEvaluateGet the maximum of two valuesCan be implemented as "max(IN0,IN1)"
MINEvaluateGet the minimum of two valuesCan be implemented as "min(IN0,IN1)"
LIMITMinMaxLimiterLimit a value between min and max
GTGTGreater than
LTLTLess than
GEGEGreater or equal to
LELELess or equal to
EQEQEqual to
NENENot equal to
TRUNCN/AConvert from real to intCan be implemented using signal routing
ABSAbsAbsolute of value
SQRTSqrtSquare root of value
LNLnThe natural logarithm of a variable
LOGLogThe logarithm of a variable in base 10
EXPExpExponential function of variable
SINSinThe sine of a variable
COSCosThe cosine of a variable
TANTanThe tangent of a variable
ASINASinThe arc sine of a variable
ACOSACosThe arc cosine of a variable
ATANATanThe arc tangent of a variable
EXPTExpThe exponentiation of a variable with another variable
CALN/ACall a functionblock or programCan be implemented as an operator containing the function to execute
NOTInvertBitwise NOT of a value
SHLLeftShiftBitwise left-shift of a variable
SHRRightShiftBitwise right-shift of a variable
ANDANDBitwise AND of variables
ORORBitwise OR of variables
XORXORBitwise XOR of variables
ROLROLBitwise rotation of a variable to the left
RORRORBitwise rotation of a variable to the right
MODMODModulo division of variables
MUXMUXMultiplexer where one variable is used as an index in a list of variables.
SRSRSet dominant flip flop
RSRSReset dominant flip flop
TONTONOn delay timer
TOFTOFOff delay timer
TPTPPulse timer
CTUCTUCount up counter
CTDCTDCount down counter
CTUDCTUDCount up and down counter

The content of this document is confidential information not to be published without the consent of CDP Technologies AS.

CDP Technologies AS, www.cdpstudio.com

Get started with CDP Studio today

Let us help you take your great ideas and turn them into the products your customer will love.

Try CDP Studio for free
Why CDP Studio?

CDP Technologies AS
Hundsværgata 8,
P.O. Box 144
6001 Ålesund, Norway

Tel: +47 990 80 900
E-mail: info@cdptech.com

Company

About CDP

Contact us

Services

Partners

Blog

Developers

Get started

User manuals

Support

Document download

Release notes

My account

Follow CDP

  • LinkedIn
  • YouTube
  • GitHub

© Copyright 2025 CDP Technologies. Privacy and cookie policy.

Return to top