Class Out2P
Version 1.0
Modified 08-MAR-2026 11:05:32.00
Code rt_plc_pid.c
 Converts an analog signal into a binary signal which
 varies in the time. The binary output has a
 pulse-proportional relay action in the dead zone, if
 MinOut < MaxOut, else on/off-action with hysteresis.

 The digit 2 in the object name comes from the output
 which may have two distinct values with a two-step
 action; e.g. full on / full off but also with the
 meaning of open / closed, forward / backward, or right
 / left etc.

 Two cases exist:
 1. MinOut < MaxOut

   If OutVal < MinOut the Order is always FALSE and if OutVal > MaxOut the Order is always TRUE.

   When MinOut = OutVal = MaxOut the output, Order, has a pulse-proportional relay action
   with the cycle time Period .

   At pulse-proportional relay control the proportion between On/off is the same as the
   proportion of (OutVal - MinOut) / (MaxOut - MinOut)

   This quotient is updated at every scanning. If a period starts with an on-state it will
   remain until,
   (OutVal(t) - MinOut) / (MaxOut(t) - MinOut(t) * Period = time from last change of state

   After this it will be off-state until,
   1 - (OutVal(t) - MinOut) / (MaxOut(t) - MinOut(t) * Period = time from last change of state

 2. MinOut = MaxOut gives the output an on/off-action with hysteresis, likewise a combined
    Compl and Comph object


RtBody attributes pwr_sClass_out2p
Float32 OutVal OUT Input signal, e.g. the OutChange of a Pid object.
Boolean Order on The performance of the output signal is different
depending on MinOut < MaxOut or MinOut ³ MaxOut. See
above.
Pointer to Float32 ScanTime ScanTime Program cycle period in seconds.
Float32 MaxOut MaxOut The upper and lower end of the dead zone. Two cases
with different performance depending on MinOut < MaxOut
or MinOut >= MaxOut.
Float32 MinOut MinOut
Float32 Period Period Pulse period, in seconds, at pulse-proportional relay
action.
Float32 RunTime RunTime Accumulated time in seconds counted from the last
change of state.

DevBody attributes 
PlcNode PlcNode  


GraphPlcNode
object_type 154
parameters[0] 1
parameters[1] 0
parameters[2] 1
parameters[3] 0
subwindows 0
graphmethod 0 (standard, individual attributes)
graphindex 0
default_mask[0] 1
default_mask[1] 1
segname_annotation 1
compmethod 4
compindex 0
executeordermethod 2
objname Out2P
graphname Out2P
debugpar


Template Object
MaxOut 100.0
Period 60


Attributes detail


OutVal Input
Class Input
Type Float32
Flags REDUTRANSFER
GraphName OUT
Body RtBody
 Input signal, e.g. the OutChange of a Pid object.

Order Output
Class Output
Type Boolean
Flags STATE | NOEDIT | REDUTRANSFER
GraphName on
Body RtBody
 The performance of the output signal is different
 depending on MinOut < MaxOut or MinOut ³ MaxOut. See
 above.

ScanTime Intern
Class Intern
Type Pointer to Float32
Flags INVISIBLE | POINTER | PRIVATE
GraphName ScanTime
Body RtBody
 Program cycle period in seconds.

MaxOut Intern
Class Intern
Type Float32
Flags
GraphName MaxOut
Body RtBody
 The upper and lower end of the dead zone. Two cases
 with different performance depending on MinOut < MaxOut
 or MinOut >= MaxOut.

MinOut Intern
Class Intern
Type Float32
Flags
GraphName MinOut
Body RtBody

Period Intern
Class Intern
Type Float32
Flags
GraphName Period
Body RtBody
 Pulse period, in seconds, at pulse-proportional relay
 action.

RunTime Intern
Class Intern
Type Float32
Flags STATE | NOEDIT | INVISIBLE | REDUTRANSFER
GraphName RunTime
Body RtBody
 Accumulated time in seconds counted from the last
 change of state.

PlcNode Buffer
Class Buffer
Type PlcNode
Flags INVISIBLE
Body DevBody