SOV_DA (Dual Acting Solenoid Valve) Logic Block Documentation
Overview
The SOV_DA logic block is used to control dual-acting solenoid valves, which require explicit actuation signals for both opening and closing actions. This block supports automatic and manual control modes, validates permissions and interlocks, and monitors feedback signals. It reports faults such as command mismatches and feedback timeout.

In above picture, we are showing inputs and output of SOV-DA block.

In the above picture, we are showing that how to use the SOV-DA block
Pins Information
| Signal Name | Type | Description |
|---|---|---|
| CMD_OPEN | BOOL | Manual open command from faceplate |
| CMD_CLOSE | BOOL | Manual close command from faceplate |
| MODE | BOOL | 0 = Auto mode, 1 = Manual mode |
| AUTO_CMD_OPEN | BOOL | Auto open command |
| AUTO_CMD_CLOSE | BOOL | Auto close command |
| PERM_OPEN | BOOL | Permission to open valve |
| PERM_CLOSE | BOOL | Permission to close valve |
| INTERLOCK_OK | BOOL | TRUE = Interlock condition satisfied |
| ZSO_FB | BOOL | Valve fully open feedback |
| ZSC_FB | BOOL | Valve fully closed feedback |
| ZS_TIMEOUT_SEC | TIME | Timeout to wait for feedback after command |
| CMD_OPEN_OUT | BOOL | Output to open solenoid coil |
| CMD_CLOSE_OUT | BOOL | Output to close solenoid coil |
| VALVE_OPEN | BOOL | Valve is confirmed open |
| VALVE_CLOSE | BOOL | Valve is confirmed closed |
| CMD_FAULT | BOOL | Feedback fault detected (timeout or mismatch) |
| STATUS | BYTE | 0 = Closed, 1 = Open, 2 = Fault, 3 = Running |
| OPEN_COUNT | UDINT | Total number of successful valve openings |
| CLOSE_COUNT | UDINT | Total number of successful valve closings |
| OPENED_TIME | TIME | Cumulative time valve has remained open (Hrs) |
| RESET | BOOL | Clears faults when TRUE |
| TAG_NAME | STRING | Unique name for this valve block |
| DESC | STRING | Block description |
Operational Behavior
Mode Selection
- Auto Mode (MODE = 0): Controlled using
AUTO_CMD_OPENorAUTO_CMD_CLOSE. - Manual Mode (MODE = 1): User controls valve using
CMD_OPENandCMD_CLOSE.
Command Execution
- Valve opens/closes only when:
- Corresponding PERM_OPEN/PERM_CLOSE is TRUE
-
INTERLOCK_OK is TRUE
-
Outputs:
CMD_OPEN_OUTis TRUE during valid open command-
CMD_CLOSE_OUTis TRUE during valid close command -
Feedback:
ZSO_FBconfirms valve is openZSC_FBconfirms valve is closed
Fault Handling
- CMD_FAULT is TRUE when:
- Feedback mismatch occurs (e.g., open command but ZSO not received)
- Feedback not received within
ZS_TIMEOUT_SEC
Safe Status Detail
| STATUS Value | Meaning |
|---|---|
0 |
Normal |
1 |
Opened and Closed False |
2 |
Opened True |
3 |
Closed True |
Output Summary
| Output | Description |
|---|---|
CMD_OPEN_OUT |
Energizes solenoid to open valve |
CMD_CLOSE_OUT |
Energizes solenoid to close valve |
VALVE_OPEN |
TRUE when ZSO_FB = TRUE |
VALVE_CLOSE |
TRUE when ZSC_FB = TRUE |
CMD_FAULT |
TRUE if feedback missing or command conflict |
STATUS |
Valve condition code (Open/Close/Fault/Running) |
OPEN_COUNT |
Increments on successful OPEN cycle |
CLOSE_COUNT |
Increments on successful CLOSE cycle |
OPENED_TIME_SEC |
Aggregated valve open duration |
Best Practices
- Set
ZS_TIMEOUT_SECcarefully to avoid false alarms. - Always check
PERMandINTERLOCK_OKsignals before allowing manual command. - Use fault output
CMD_FAULTto trigger alarms or diagnostics. - Use
OPEN_COUNT,CLOSE_COUNT, andOPENED_TIME_SECfor maintenance analysis. - Maintain unique
TAG_NAMEfor tracking and SCADA linking.
This logic ensures safe, redundant, and clear actuation and monitoring for dual-acting solenoid valves in process control systems.