TPOperator Class
(Automation::TPOperator)The TPOperator is a pulse timer, or TP timer as referenced by IEC 61131-3 in PLC. More...
Header: | #include <TPOperator.h> |
Inherits: | CDPOperator<bool> |
Public Functions
TPOperator(const CDPPropertyBase &in) |
Reimplemented Public Functions
- 18 public functions inherited from CDPOperator
- 17 public functions inherited from CDPOperatorBase
- 46 public functions inherited from CDPBaseObject
- 26 public functions inherited from CDP::StudioAPI::CDPNode
- 22 public functions inherited from CDP::StudioAPI::ICDPNode
Additional Inherited Members
- 1 public variable inherited from CDPOperatorBase
- 1 static public member inherited from CDPBaseObject
- 1 protected function inherited from CDP::StudioAPI::CDPNode
- 8 protected variables inherited from CDPOperator
- 5 protected variables inherited from CDPOperatorBase
- 11 protected variables inherited from CDPBaseObject
Detailed Description
The TPOperator is a pulse timer, or TP timer as referenced by IEC 61131-3 in PLC.
The TPOperator output (Q) is set to true
right after the input (In) is set to true
, and will then be true
for the preset time (PT).
Arguments
Name | Description |
---|---|
In | The default input value. |
Q | The default output value. |
PT | Pulse Time (time to keep output on) |
ET | Elapsed Time (time elapsed in seconds since input was set to true ) |
When operator is used inside a signal its default input is automatically tied to signal's InternalValue or previous operator's output. Its default output is automatically tied to next operator's input or to signal's Value. See also CDP Operator Usage In CDP Signals.
Note: This operator can't be used in I/O Servers / CDPChannels because it requires to be run with a constant period. I/O Servers can't always guarantee periodic running since they may be in Offline state, or they can send/receive on change.
Example
Below are the example plots for TPOperator input (In, cyan), output (Q, orange) and corresponding elapsed time (ET, yellow).
Actual Processing Code of the TPOperator
unsigned int TPOperator<bool>::Process() { if (!m_PT || !m_ET) return STATUS_ERROR; if (!(bool)*m_in && (double)*m_ET >= (double)*m_PT) *m_ET = 0; if (((bool)*m_in || (double)*m_ET > 0) && (double)*m_ET < (double)*m_PT) *m_ET = (double)*m_ET + GetOperatorPeriod(); *m_Q = (((bool)*m_in || (double)*m_ET > 0) && (double)*m_ET < (double)*m_PT); return STATUS_OK; }
See also Argument.
Member Function Documentation
TPOperator::TPOperator(const CDPPropertyBase &in)
Default constructs an instance of TPOperator.
[override virtual]
void TPOperator::Configure(XMLPrimitive *operatorXML)
[override virtual]
unsigned int TPOperator::Process()
Get started with CDP Studio today
Let us help you take your great ideas and turn them into the products your customer will love.