ToolBox
Description
This library has two timer functions that expands the capabilities of B&R’s TON function. The last function is used to check an input against an ideal value and percentage tolerance.
Functions / Function Blocks
ProcessTimer FB
This library is used to calculate the time required to complete a process.
Parameters
Direction | Name | Type | Description |
---|---|---|---|
In | Enable | BOOL | Enables the timer |
In | Reset | BOOL | Resets calculated times |
In | Count | UDINT | Number of processes completed since reset |
Out | AverageTime | TIME | Average elapsed time per a count |
Out | FilteredTime | TIME | Rolling average of last 10 elapsed times |
Usage
if (proccessStarted){
proccessStarted = 0;
ProcessTime_0.Count++;
ProcessTime_0.Enable = 1;
}
ProcessTimer(&ProcessTime_0);
if (processFinished){
processFinished = 0;
ProcessTime_0.Enable = 0;
timeOfProcess = ProcessTime_0.AverageTime;
}
TON_Pause FB
This is a timer function with the capability to pause and resume the timer.
Parameters
Direction | Name | Type | Description |
---|---|---|---|
In | IN | BOOL | Enables timer while TRUE |
In | Pause | BOOL | Pauses timer while TRUE |
In | PT | TIME | Amount of time before the Q bit will go high |
Out | Q | BOOL | True indicates the timer is complete |
Out | ET | TIME | Current elapsed time since enabled |
Out | PercentCompleted | REAL | Percentage of PT that the timer has completed (Et in percent form) |
Out | TimeLeftRunning | TIME | When a pause has been initiated this output will retain the time left till timer is complete |
Usage
void _INIT ProgramInit(void)
{
PauseTimer.PT = 1000000;
startTimer = 1;
}
void _CYCLIC ProgramCyclic(void)
{
if (startTimer){
startTimer =0;
PauseTimer.IN = 1;
}
if(maintanceActive && !PauseTimer.Q){
PauseTimer.Pause = 1;
} else {
PauseTimer.Pause = 0;
}
timeRunning = PauseTimer.ET;
TON_Pause(&PauseTimer);
}
WithinPercent()
This function determines whether or not an input is within a percentage tolerance of an ideal value (setValue).
Parameters
Direction | Name | Type | Description |
---|---|---|---|
In | InputValue | REAL | The value being checked. |
In | SetValue | REAL | The ideal value for the input. |
In | PercentWindow | REAL | The tolerance represented in percent form. |
Out | return | BOOL | 0 indicates the input value is NOT within tolerance. 1 indicates the value is within tolerance. |
Usage
void _INIT ProgramInit(void)
{
// Setting tolerance to within 15% of idealTemp
tempTolerance = 15;
idealTemp = 85;
}
void _CYCLIC ProgramCyclic(void)
{
// Set an active warning if the tempInput is out of tolerance
if(!WithinPercent(tempInput, idealTemp, tempTolerance)){
activeWarning = 1;
} else {
activeWarning = 0;
}
}