> For the complete documentation index, see [llms.txt](https://support.powerio.com/hub/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.powerio.com/hub/codesys-hvac/en/hvac-library/functionblocks/binary/abs3p.md).

# Abs3P

## `Abs3P` (FB)

FUNCTION\_BLOCK Abs3P

### Short description

> Anti-blocking protection for a 3-point drive

### Representation

<figure><img src="/files/c723e0abb124451314580ef81c86fe69f7119979" alt=""><figcaption></figcaption></figure>

### Interfaces

#### Inputs

| Name       | Data type | Value range | Initial value | Function               |
| ---------- | --------- | ----------- | ------------- | ---------------------- |
| *xFbOpen*  | BOOL      |             |               | Signal - Input - Plus  |
| *XFbClose* | BOOL      |             |               | Signal - Input - Minus |

#### Outputs

| Name          | Data type       | Value range | Initial value | Function                                          |
| ------------- | --------------- | ----------- | ------------- | ------------------------------------------------- |
| *xOutOpen*    | BOOL            |             |               | Enable - Output - Plus                            |
| *xOutClose*   | BOOL            |             |               | Enable - Output - Minus                           |
| *xAbsOn*      | BOOL            |             |               | Indicator - anti-blocking process                 |
| *dtAbsLastOn* | DATE\_AND\_TIME |             |               | Start date/time of the last anti-blocking process |

#### Setpoints / parameters

| Name             | Data type | Value range | Initial value | Function                                |
| ---------------- | --------- | ----------- | ------------- | --------------------------------------- |
| **tMinRunTime**  | TIME      |             | 30s           | Minimum run time                        |
| **tTime**        | TIME      |             | 120s          | Duration of the anti-blocking process   |
| **eDay**         | eDoW      |             | eDow\.Monday  | Weekday of the anti-blocking process    |
| **todStartTime** | TOD       |             | 08:00:00      | Start time of the anti-blocking process |

### Function description

#### General

This function block is used to monitor the signal inputs *xFbOpen* and *XFbClose* for activity. The inspection period always covers 168 hours (= 1 week).\
The signal inputs *xFbOpen* and *XFbClose* are active if they are continuously active during the minimum run time within the inspection period **tMinRunTime** only (Only *xFbOpen* or only *XFbClose* or both).\
This prevents the anti-blocking process, and the inspection period starts again.\
\
If no activity was detected during the inspection period, the anti-blocking process is triggered on the weekday **eDay** at the time **todStartTime** .\
At the same time the inspection period starts again.\
\
The active anti-blocking process is divided into two consecutive time sections (Section 1 and Section 2)\
In Section 1, during the time duration **tTime** the combination Enable - Output *xOutOpen* = TRUE, Enable - Output *xOutClose* = FALSE is output.\
In Section 2, during the time duration **tTime** the combination Enable - Output *xOutOpen* = FALSE, Enable - Output *xOutClose* = TRUE is output.\
\
The initial triggering of the anti-blocking process can be delayed depending on the relevant settings (weekday **eDay** and **todStartTime**).

> **Example**
>
> Inspection period ended on Tuesday morning, triggering of the anti-blocking process only on the following Monday.

At the output *dtAbsLastOn* the start date and start time of the last anti-blocking process are available.

> **Prerequisite for using the function block Abs3P**
>
> The use of the TimeRead2 function block is required for correct operation.

#### Enable - Output *xOutOpen*

| *xFbOpen* | Anti-blocking process | *xOutOpen* | Notes                                    |
| --------- | --------------------- | ---------- | ---------------------------------------- |
| X         | FALSE                 | FALSE      | Anti-blocking process not active         |
| X         | TRUE                  | TRUE       | Anti-blocking process active - Section 1 |
| X         | TRUE                  | FALSE      | Anti-blocking process active - Section 2 |

Legend: X = any

#### Enable - Output *xOutClose*

| *xFbClose* | Anti-blocking process | *xOutClose* | Notes                                    |
| ---------- | --------------------- | ----------- | ---------------------------------------- |
| X          | FALSE                 | FALSE       | Anti-blocking process not active         |
| X          | TRUE                  | FALSE       | Anti-blocking process active - Section 1 |
| X          | TRUE                  | TRUE        | Anti-blocking process active - Section 2 |

Legend: X = any

#### Indicator - anti-blocking process *xAbsOn*

This output is used to indicate an active anti-blocking process (*xAbsOn* = TRUE).

#### Setpoint / parameters **eDay**

The anti-blocking function can be globally disabled by setting **eDay** = eDow\.Inactive.

#### Setpoint / parameters **tTime**

The anti-blocking function can be globally disabled by setting **tTime** = 0s can be globally disabled.

### CODESYS

InOut:

| Scope       | Name           | Type   | Initial           |
| ----------- | -------------- | ------ | ----------------- |
| Input       | `xFbOpen`      | `BOOL` |                   |
| Input       | `xFbClose`     | `BOOL` |                   |
| Input Const | `tMinRunTime`  | `TIME` | TIME#30s0ms       |
| Input Const | `tTime`        | `TIME` | TIME#2m0s0ms      |
| Input Const | `eDay`         | eDoW   | eDow\.Monday      |
| Input Const | `todStartTime` | `TOD`  | TIME\_OF\_DAY#8:0 |
| Output      | `xOutOpen`     | `BOOL` |                   |
| Output      | `xOutClose`    | `BOOL` |                   |
| Output      | `xAbsOn`       | `BOOL` |                   |
| Output      | `dtAbsLastOn`  | `DT`   |                   |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://support.powerio.com/hub/codesys-hvac/en/hvac-library/functionblocks/binary/abs3p.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
