CTDOperator Class
(Automation::CTDOperator)The CTDOperator is a rising edge counter operator, or CTD counter as referenced by IEC 61131-3 in PLC. More...
Header: | #include <CTDOperator.h> |
Inherits: | CDPOperator<T> |
Public Functions
CTDOperator(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 CTDOperator is a rising edge counter operator, or CTD counter as referenced by IEC 61131-3 in PLC.
The CTDOperator output (Q) is set to true
after the predefined number (PV) of rising edges have been detected in the input (CD).
Arguments
Name | Description |
---|---|
CD | Count down enable (rising edges of this value will be down counted) |
PV | Preset value (counter limit) |
CV | Count value (current number of rising edges left to be counted) |
Q | Will be set to true when preset value of rising edges has been counted |
LD | Load counter (set count value to preset value) |
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.
Example
Below are the example plots for CTDOperator(PV=5) input (CU, cyan), count down value (CD, orange) and output (Q, yellow).
Actual Processing Code of the CTDOperator
unsigned int CTDOperator<T>::Process() { if (!m_PV || !m_LD || !m_Q) return STATUS_ERROR; if ((bool)*m_LD) { *m_CV = (T)*m_PV; *m_LD = false; } bool CD = (bool)*m_CD; if (CD && m_oldCD != CD && ((T)*m_CV > 0)) *m_CV = (T)*m_CV - 1; *m_Q = ((T)*m_CV == 0); m_oldCD = CD; return STATUS_OK; }
See also Argument.
Member Function Documentation
CTDOperator::CTDOperator(const CDPPropertyBase &in)
Default constructs an instance of CTDOperator.
[override virtual]
void CTDOperator::Configure(XMLPrimitive *operatorXML)
[override virtual]
unsigned int CTDOperator::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.