C# Industrial Recipe Automation

Job ID: 39943573

Budget: ₹75,000 – ₹150,000 INR

Industrial Recipe Control and Monitoring System (C# /.NET + SQL Server)

## Objective

Design and develop an industrial control and monitoring software system to manage process recipes, monitor furnace/moulding units, record process data (temperature, pressure, CO %, CPMV etc.), handle alarms, and generate reports.
The system must interface with Siemens S7-1200 PLCs over Ethernet using the S7 TCP/IP protocol and store all production data in Microsoft SQL Server.

---

## System Overview

| Layer | Technology / Component | Description |
| ----------------------- | ---------------------------- | ---------------------------------------------------------- |
| **Field Layer** | Siemens S7-1200 PLCs | Control process logic, sensors and actuators. |
| **Communication Layer** | C# Service using S7.NetPlus | Reads/writes PLC data over Ethernet (S7 TCP). |
| **Data Layer** | Microsoft SQL Server 2019 + | Stores recipes, telemetry, alarms, batch history. |
| **Application Layer** | C# WPF Desktop App (Phase 1) | Operator interface for control, monitoring, and reporting. |
| **Optional Phase 2** | ASP.NET Core Web Dashboard | Browser-based view for supervisors (read-only). |

---

## Functional Requirements

### 3.1 Recipe Management

* Create, edit and delete process recipes.
* Each recipe contains multiple phases with:

* Target Temperature (°C)
* Target Pressure (bar)
* Duration (minutes)
* Stop Condition (type & value)
* Maintain versioning and change audit.

### 3.2 Batch Execution

* Assign a recipe to any unit (e.g., GCF1, GCF2, VFC1, VFC2).
* Start, Pause, Resume, Stop batch operations.
* Each phase runs until:

* its time expires, or
* its condition (temperature/pressure) is met.
* On completion, trigger alarm and buzzer.
* Operator acknowledges alarm, and next phase begins.
* Batch completion recorded with status (Completed / Aborted / Re-inspect).

### 3.3 Live Data Acquisition

* Poll PLCs every 2 seconds for sensor values.
* Store timestamped readings to SQL Server.
* Auto-reconnect on communication loss.

### 3.4 Alarm Handling

* Generate alarms automatically on phase end or abnormal conditions.
* Audible/visual alerts on operator station.
* Operator “OK” acknowledgement recorded (user & time).
* Optional write-back of acknowledgment bit to PLC.

### 3.5 Reporting and Graphs

* Display temperature/pressure graphs vs time per batch.
* Export detailed batch reports to PDF (iTextSharp / QuestPDF).
* Filter by date, unit, or recipe.

### 3.6 User Management

* Roles: Operator / Supervisor / Administrator.
* Secure login and audit log of key operations.

---

## 4 Non-Functional Requirements

| Area | Specification |
| --------------------- | --------------------------------------------------- |
| **Performance** | PLC poll ≤ 2 s; UI update ≤ 3 s. |
| **Reliability** | 24 × 7 runtime with auto-restart. |
| **Scalability** | New units can be added via config file. |
| **Security** | LAN-only access; Windows Authentication for SQL. |
| **Offline Tolerance** | Cache readings if SQL offline → sync on reconnect. |
| **Reporting** | PDF and CSV export. |
| **Technology** | .NET 8 (C#), SQL Server 2019 +, S7 NetPlus library. |

---

## 5 System Architecture

```
+-------------------------+
| Siemens S7-1200 PLCs |
| (Furnace / Mould Units)|
+-----------+-------------+
|
| S7 TCP/IP
v
+---------------------------+
| Data Collector Service |
| (C# /.NET + S7.NetPlus) |
+-----------+---------------+
|
v
+---------------------------+
| SQL Server Database |
| Recipes / Batches / |
| Telemetry / Alarms |
+-----------+---------------+
|
v
+---------------------------+
| WPF Desktop Application |
| • Recipe Editor |
| • Batch Control |
| • Live Graphs |
| • Alarm Ack & Reports |
+---------------------------+
(Optional Web Dashboard – Phase 2)
```

---

## Proposed Database Structure (High Level)

| Table | Key Fields | Purpose |
| --------------- | ------------------------------------------------------- | ------------------------- |
| **Recipe** | RecipeId, Name | Recipe header |
| **RecipePhase** | PhaseId, RecipeId, TargetTemp, TargetPressure, Duration | Steps per recipe |
| **Batch** | BatchId, RecipeId, UnitName, Start/End Time, Status | Each production run |
| **Telemetry** | TelemetryId, BatchId, TagName, Value, Timestamp | Real-time data log |
| **AlarmLog** | AlarmId, BatchId, UnitName, Text, AckBy, AckAt | Alarms & acknowledgements |
| **UserAccount** | UserId, UserName, Role | Security management |

---

## Deliverables

1. Design & Architecture Document (including ER diagram & PLC tag map)
2. Source Code (C# Service + Desktop App + SQL scripts)
3. Executable Installer for runtime deployment
4. Configuration Manual (PLC IP / DB settings)
5. Testing Report & User Manual

---

## Implementation Phases & Indicative Timeline

| Phase | Scope | Duration | Output |
| ------------ | --------------------------------------- | -------- | -------------------- |
| 1 | Requirements & Design Finalization | 1 week | Design Doc + ERD |
| 2 | Data Collector Service (PLC ↔ SQL) | 2 weeks | Functional service |
| 3 | WPF Desktop UI (Recipe & Batch Control) | 3 weeks | Operator application |
| 4 | Reporting & User Management | 2 weeks | Reports + Security |
| 5 | Integration & Factory Testing | 1 week | Acceptance testing |
| 6 (optional) | Web Dashboard (LAN Monitoring) | 2 weeks | Browser dashboard |

**Total (core)** ≈ 8 weeks (**with optional web**) ≈ 10 weeks

---

## Technology Stack

| Layer | Tool / Framework | Purpose |
| ----------------- | ----------------------------- | ------------------------------- |
| PLC Communication | S7.NetPlus | Read/write Siemens S7-1200 tags |
| Core Logic | .NET 8 / C# | Application development |
| Database | SQL Server 2019 / Express | Data storage |
| UI | WPF (.NET 8) | Operator interface |
| Charts | ScottPlot / LiveCharts 2 | Real-time trend graphs |
| PDF | iTextSharp / QuestPDF | Report generation |
| OS | Windows 10 / 11 Industrial PC | Deployment environment |

---

## Acceptance Criteria

* PLC data collected every ≤ 60 seconds without loss.
* Complete recipe cycle execution with phase logic and alarms.
* Alarm sound and acknowledgement workflow functional.
* Reports generated accurately with graphs per batch.
* System stable for 24 × 7 operation.

---

## Summary

Develop a new industrial recipe control and monitoring system using C# /.NET 8 and SQL Server, communicating directly with Siemens S7-1200 PLCs via S7 TCP/IP.
The solution will provide recipe management, batch execution, live data logging, alarm handling, and PDF reporting within a secure, LAN-based environment.