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