Design and Implementation of Industrial Solid Waste Treatment Control System
The automation control system for industrial solid waste treatment can significantly improve processing efficiency and reduce environmental risks, serving as a key technological support for sustainable industrial development. This article details the control scheme based on Siemens PLC.
1. Hardware Configuration
PLC and Expansion Module Selection
Considering the characteristics of the industrial solid waste treatment system, we selected the Siemens S7-1500 series PLC as the main control unit, with the following specific configuration:
- • CPU: S7-1516-3 PN/DP (with sufficient program storage space and high-speed processing capability)
- • Digital Input Module: SM 521 DI 32x24VDC HF (for collecting switch signals)
- • Digital Output Module: SM 522 DO 32x24VDC/0.5A (to control motors, valves, and other actuators)
- • Analog Input Module: SM 531 AI 8xU/I/RTD/TC ST (for collecting analog signals such as temperature, pressure, and liquid level)
- • Analog Output Module: SM 532 AO 4xU/I ST (to control inverters, proportional valves, etc.)
I/O Point Allocation Table
| Address | Function Description | Signal Type | Remarks |
|———–|————————-|———–|————————|
| I0.0-I0.7 | Solid Waste Feeding System Status | Digital Input | Includes limit switches, material level detection, etc. |
| I1.0-I1.7 | Crushing System Status | Digital Input | Motor operation, overload protection, etc. |
| I2.0-I2.7 | Conveying System Status | Digital Input | Conveyor status, material blockage detection, etc. |
| I3.0-I3.7 | Sorting System Status | Digital Input | Status of various sorting devices |
| IW64-IW72 | Temperature, Pressure, and Other Analog Measurement Values | Analog Input | Process parameters at each measurement point |
| Q0.0-Q0.7 | Feeding System Control | Digital Output | Control motors, valves, etc. |
| Q1.0-Q1.7 | Crushing System Control | Digital Output | Start/stop of the crusher, etc. |
| QW64-QW66 | Inverter Speed Control | Analog Output | Conveyor belt speed, etc. |
2. Control Program Design
Program Architecture Design
Based on the Siemens S7-1500 series PLC, we adopted a structured programming approach, dividing the entire control system into the following functional modules:
- OB1: Main loop program, responsible for calling various function blocks
- OB30: Time interrupt (100ms), for fast response process control
- OB100: Startup organization block, system initialization
- FB10: Feeding control function block
- FB20: Crushing control function block
- FB30: Conveying control function block
- FB40: Sorting control function block
- FB50: Exception handling function block
- DB10-DB50: Data blocks corresponding to function blocks
- DB100: Global data block, storing system configuration parameters
- DB200: Alarm information data block
Function Block Design
Below is the detailed design of the crushing control function block (FB20):
FUNCTION_BLOCK "Crushing Control"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
Start_Command : Bool; // HMI start command
Stop_Command : Bool; // HMI stop command
Manual_Mode : Bool; // TRUE=Manual, FALSE=Automatic
Set_Speed : Real; // Crusher set speed (rpm)
Feed_Detection : Bool; // Feed inlet material level sensor
END_VAR
VAR_OUTPUT
Running_Status : Bool; // Crusher running status
Actual_Speed : Real; // Crusher actual speed (rpm)
Motor_Current : Real; // Crusher motor current (A)
Overload_Alarm : Bool; // Motor overload alarm
END_VAR
VAR
Start_Delay : TON; // Start delay timer
Stop_Delay : TON; // Stop delay timer
Running_Time : TIME; // Accumulated running time
Start_Count : Int; // Start count
END_VAR
VAR_TEMP
Temp_Variable1 : Real;
END_VAR
BEGIN
// 1. Automatic/manual mode switching logic
IF #Manual_Mode THEN
// In manual mode, directly respond to start/stop commands
IF #Start_Command AND NOT #Stop_Command THEN
#Running_Status := TRUE;
ELSIF #Stop_Command THEN
#Running_Status := FALSE;
END_IF;
ELSE
// In automatic mode, control based on material level
// Automatically start when there is material and no stop command
IF #Feed_Detection AND NOT #Stop_Command THEN
#Start_Delay(IN := TRUE,
PT := T#3S); // Delay 3 seconds to start
IF #Start_Delay.Q THEN
#Running_Status := TRUE;
#Start_Count := #Start_Count + 1; // Increment counter by 1
END_IF;
ELSE
// Stop when there is no material or a stop command
#Start_Delay(IN := FALSE);
#Stop_Delay(IN := TRUE,
PT := T#10S); // Delay 10 seconds to stop
IF #Stop_Delay.Q THEN
#Running_Status := FALSE;
END_IF;
END_IF;
END_IF;
// 2. Overload protection
IF #Motor_Current > 50.0 THEN // Current exceeding 50A is considered overload
#Overload_Alarm := TRUE;
#Running_Status := FALSE; // Force stop in case of overload
ELSE
#Overload_Alarm := FALSE;
END_IF;
// 3. Accumulated running time
IF #Running_Status THEN
#Running_Time := #Running_Time + 100; // Accumulate 100ms each cycle
END_IF;
// 4. Output control
"Inverter Speed"(Start := #Running_Status,
Set_Speed := #Set_Speed,
Actual_Speed => #Actual_Speed);
END_FUNCTION_BLOCK
Status Control Design
The status control of the solid waste treatment system adopts a state machine design pattern, including the following main states:
- 1. Initialization State: System self-check after power on, equipment in place
- 2. Standby State: System ready, waiting for start command
- 3. Running State: Normal processing of solid waste
- 4. Paused State: Temporarily pausing processing, keeping equipment powered
- 5. Fault State: System detects an anomaly, requiring manual intervention
- 6. Maintenance State: System enters maintenance mode, prohibiting automatic operation
State transitions are triggered by operator commands, safety interlocks, and abnormal conditions, with each state having clear entry/exit actions and allowed operations.
// State machine implementation code segment
CASE #System_Status OF
0: // Initialization State
IF #Self_Check_Complete THEN
#System_Status := 1; // Transition to Standby State
END_IF;
1: // Standby State
IF #Start_Command AND NOT #Has_Fault THEN
#System_Status := 2; // Transition to Running State
ELSIF #Maintenance_Command THEN
#System_Status := 5; // Transition to Maintenance State
END_IF;
2: // Running State
IF #Stop_Command THEN
#System_Status := 1; // Transition to Standby State
ELSIF #Pause_Command THEN
#System_Status := 3; // Transition to Paused State
ELSIF #Has_Fault THEN
#System_Status := 4; // Transition to Fault State
END_IF;
// Other state handling...
END_CASE;
3. Fault Diagnosis and Troubleshooting
Common Fault Analysis
Common faults in the industrial solid waste treatment system and their handling methods:
- 1. Feed Blockage
- • Detection Method: Feed inlet material level sensor remains high for an extended period, while downstream equipment detects no material
- • Handling Method: Reverse the feeding device, vibrate to clear, and restore normal feeding
- • Detection Method: Crusher motor current exceeds set value, or motor thermal protection activates
- • Handling Method: Stop and check for uncrushable materials, clean and restart
- • Detection Method: Sorting efficiency decreases, false positive rate increases
- • Handling Method: Clean sensors, check sorting algorithm parameters, recalibrate if necessary
Using Diagnostic Tools
Siemens PLC provides various diagnostic tools:
- 1. System Diagnostic View: Built-in diagnostic function in TIA Portal, allows real-time viewing of hardware status
- 2. Variable Monitoring Table: Create custom variable tables to monitor key signals online
- 3. Fault Diagnosis FB: Custom fault diagnosis function block, implementing the following functions:
- • Signal validity check
- • Sensor rationality verification
- • Actuator response time monitoring
- • Historical fault recording and statistics
// Fault diagnosis function block example
IF NOT #Sensor1_Value BETWEEN #Lower_Limit AND #Upper_Limit THEN
#Sensor_Fault := TRUE;
// Record fault
#Fault_Code := 101;
#Fault_Time := #System_Time;
CALL "Record_Fault"(Fault_Code := #Fault_Code,
Fault_Time := #Fault_Time,
Fault_Description := 'Sensor 1 out of range');
END_IF;
4. Operation Interface Design
Interface Layout Description
The HMI operation interface adopts a multi-level structure, mainly including:
- 1. Main Interface: Displays overall system status, provides entry to subsystems
- 2. Process Flow Interface: Displays a dynamic diagram of the complete process flow
- 3. Device Control Interface: Provides detailed operation interface for each device
- 4. Parameter Setting Interface: System parameter configuration
- 5. Alarm Interface: Displays current and historical alarms
- 6. Trend Interface: Trend graphs of key process parameters
The interface design follows these principles:
- • Clear information hierarchy, highlighting important information
- • Short operation paths, core functions not exceeding 2 clicks
- • Unified status colors, green for normal, red for abnormal
- • Key operations require double confirmation
Parameter Setting Description
The parameter setting interface includes the following main parameter groups:
- 1. Process Parameters:
- • Feeding Speed: 0.5-10 t/h
- • Crushing Granularity: 10-50 mm
- • Sorting Accuracy: 85%-99%
- • Motor Start/Stop Delay: 0-60s
- • Inverter Acceleration/Deceleration Time: 5-30s
- • Overload Protection Threshold: 30-60A
- • Automatic Start/Stop Conditions
- • Interlock Logic Configuration
- • Alarm Limit Settings
All parameters have access control, and modifications to critical parameters require high-level permissions and operation records.
5. Data Management and Storage
Data Block Example
The global data block (DB100) stores system configuration parameters:
DATA_BLOCK "System_Parameters_DB"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
NON_RETAIN
STRUCT
Process_Parameters : STRUCT
Feeding_Speed_Set : Real := 5.0; // Unit: t/h
Crushing_Speed_Set : Real := 50.0; // Unit: rpm
Belt_Speed_Set : Real := 0.5; // Unit: m/s
Sorting_Sensitivity : Int := 85; // Unit: %
END_STRUCT;
Device_Parameters : STRUCT
Feeding_Start_Delay : Time := T#5S;
Crushing_Start_Delay : Time := T#8S;
Conveying_Start_Delay : Time := T#3S;
System_Stop_Order : Int := 1; // 1=stop feeding first, 2=stop simultaneously
END_STRUCT;
Alarm_Settings : STRUCT
Motor_Overload_Threshold : Real := 45.0; // Unit: A
Blockage_Detection_Time : Time := T#30S;
Temperature_Upper_Limit_Alarm : Real := 85.0; // Unit: °C
Pressure_Upper_Limit_Alarm : Real := 2.5; // Unit: MPa
END_STRUCT;
Running_Statistics : STRUCT
Total_Running_Time : Time;
Total_Processing_Amount : Real; // Unit: tons
Fault_Count : Int;
Start_Count : Int;
END_STRUCT;
END_STRUCT;
BEGIN
Process_Parameters.Feeding_Speed_Set := 5.0;
Process_Parameters.Crushing_Speed_Set := 50.0;
Process_Parameters.Belt_Speed_Set := 0.5;
Process_Parameters.Sorting_Sensitivity := 85;
END_DATA_BLOCK
Running Data Recording
The system automatically records the following running data:
- 1. Process Data: Records key process parameters every minute
- 2. Batch Data: Information on materials processed per batch
- 3. Energy Consumption Data: Statistics on equipment operating power and energy consumption
- 4. Quality Data: Records of processing effects and qualification rates
The data storage structure adopts a dual-layer design:
- • Short-term data is stored in PLC data blocks (24-hour rolling)
- • Long-term data is transmitted to a database server via industrial Ethernet
Conclusion
The application of Siemens PLC in industrial solid waste treatment requires solid foundational knowledge as well as rich on-site experience. We welcome discussions on more technical challenges in solid waste treatment automation!
