Control Scheme for Industrial Waste Gas Treatment System

The industrial waste gas treatment system is crucial for environmental compliance and safe production. This article details the control scheme based on Siemens PLC, assisting enterprises in meeting emission standards.

Hardware Configuration

  1. Selection of PLC and Expansion ModulesFor the control requirements of the industrial waste gas treatment system, the Siemens S7-1200 series CPU 1214C is selected as the main control unit. This model has 14 digital inputs, 10 digital outputs, and 2 analog inputs, making it suitable for small to medium-sized waste gas treatment systems. Considering the need to monitor multiple gas parameters and control multiple actuators, the following additional modules are included:SM1231 8AI Analog Input Module: Used to receive signals from various sensorsSM1232 4AO Analog Output Module: Used for variable frequency drive speed controlSM1222 16DO Digital Output Module: Used to control electromagnetic valves, indicator lights, and other switching devicesI/O Point Allocation TableDigital Inputs (DI)Address Function Description Signal TypeI0.0 System Start Button NO ContactI0.1 System Stop Button NC ContactI0.2 Emergency Stop Button NC ContactI0.3 Induced Draft Fan Running Feedback NO ContactI0.4 Water Pump Running Feedback NO ContactI0.5 Waste Gas High Temperature Alarm NO ContactI0.6 Low Water Level Alarm NC ContactI0.7 Auto/Manual Switch NO ContactDigital Outputs (DO)Address Function Description Control ObjectQ0.0 Induced Draft Fan Start/Stop ContactorQ0.1 Circulating Water Pump Start/Stop ContactorQ0.2 Spray Valve Switch Electromagnetic ValveQ0.3 Drain Valve Switch Electromagnetic ValveQ0.4 Dosing Pump Start/Stop ContactorQ0.5 System Running Indicator Green Indicator LightQ0.6 System Fault Indicator Red Indicator LightQ0.7 Alarm Buzzer BuzzerAnalog Inputs (AI)Address Function Description Signal TypeIW64 Waste Gas Temperature 4-20mAIW66 Waste Gas Pressure 4-20mAIW68 pH Value 4-20mAIW70 VOC Concentration 4-20mAIW72 Tank Liquid Level 4-20mAAnalog Outputs (AO)Address Function Description Signal TypeQW80 Induced Draft Fan Frequency Control 4-20mAQW82 Circulating Water Pump Frequency Control 4-20mASelection Criteria for Peripheral DevicesTransmitter Selection:Temperature Transmitter: PT100 + Temperature Transmitter, Measurement Range 0-150℃Pressure Transmitter: Differential Pressure Type, Range 0-5000PapH Transmitter: Online Type, Range 0-14pHVOC Detector: FID Principle, Range 0-2000ppmActuator Selection:Induced Draft Fan: Variable Frequency Control Type, Matched with ABB Frequency ConverterWater Pump: IP55 Protection Level, Matched with Siemens Frequency ConverterElectromagnetic Valve: Normally Closed Type, Powered by 24VDCKey Points for System WiringAnalog signals use shielded twisted pairs, with grounding on one sideFrequency converter control lines and power lines are wired separately to prevent interferenceThe emergency stop circuit uses hardwired logic, in parallel with PLC controlAll input and output signals are isolated through intermediate relays to enhance the system’s anti-interference capability
  2. Control Scheme for Industrial Waste Gas Treatment System
  3. Control Program Design
  4. A. Variable Definition SpecificationsGlobal Variable TableCopy// System Running Status“SYS_STATUS” : INT // 0-Stop, 1-Starting, 2-Running, 3-Fault“AUTO_MODE” : BOOL // TRUE-Automatic Mode, FALSE-Manual Mode“ERROR_CODE” : WORD // System Error Code// Device Running Status“FAN_RUN” : BOOL // Induced Draft Fan Running Status“PUMP_RUN” : BOOL // Water Pump Running Status“SPRAY_VALVE” : BOOL // Spray Valve Status“DRAIN_VALVE” : BOOL // Drain Valve Status“DOSING_PUMP” : BOOL // Dosing Pump Status// Alarm Flags“ALARM_TEMP” : BOOL // Temperature Alarm“ALARM_PRESS” : BOOL // Pressure Alarm“ALARM_PH” : BOOL // pH Value Alarm“ALARM_VOC” : BOOL // VOC Concentration Alarm“ALARM_LEVEL” : BOOL // Water Level AlarmTemporary Variable TableCopy// OB1 Temporary Variables

#Timer_10ms : TON // 10ms Timer#Timer_1s : TON // 1s Timer#Counter_Flush : CTU // Flush Counter// FB Temperature Control Temporary Variables#Temp_Value : REAL // Temperature Value#Temp_Set : REAL // Temperature Set Value#Temp_Diff : REAL // Temperature DeviationSystem Parameter DefinitionsCopy// Waste Gas Treatment Parameters (Stored in DB10)“DB_PARAM”.TEMP_MAX : REAL := 80.0 // Maximum Temperature Limit (℃)“DB_PARAM”.PRESS_MIN : REAL := 100.0 // Minimum Pressure Limit (Pa)“DB_PARAM”.PH_MIN : REAL := 6.5 // Minimum pH Value“DB_PARAM”.PH_MAX : REAL := 9.0 // Maximum pH Value“DB_PARAM”.VOC_MAX : REAL := 500.0 // Maximum VOC Concentration (ppm)“DB_PARAM”.LEVEL_MIN : REAL := 20.0 // Minimum Liquid Level (%)B. Program Architecture DesignSystem Initialization Part (OB100)Copy// Execute system initialization in OB100 (Startup OB)// Clear all outputsFILL_BLK(BVAL := 0,BLK => “ALL_OUTPUTS”
);
// Set system status to stop“SYS_STATUS” := 0;// Load system parameters“LOAD_PARAMETERS”();Main Control Program (OB1)Copy// Call Device Status Detection Function Block“FB_DEVICE_STATUS”(FAN_FEEDBACK := “I0.3”,PUMP_FEEDBACK := “I0.4”,FAN_STATUS => “FAN_RUN”,PUMP_STATUS => “PUMP_RUN”
);
// Call Sensor Data Acquisition Function Block“FB_SENSOR_ACQ”();// Call Mode Control Function Block“FB_MODE_CONTROL”(AUTO_SWITCH := “I0.7”,MODE => “AUTO_MODE”
);
// Execute different control logic based on system statusCASE “SYS_STATUS” OF0: // Stop State“FB_SYSTEM_STOP”();1: // Starting“FB_SYSTEM_STARTUP”();2: // Running StateIF “AUTO_MODE” THEN“FB_AUTO_CONTROL”();ELSE“FB_MANUAL_CONTROL”();END_IF;3: // Fault State“FB_FAULT_HANDLING”();END_CASE;// Call Alarm Handling Function Block“FB_ALARM_HANDLER”();// Call HMI Data Update Function Block“FB_HMI_UPDATE”();Interrupt Handling Logic (OB40)Copy// Configure Hardware Interrupt OB40 for Emergency Stop Handling// Triggered when the emergency stop button is pressed// Immediately stop all device operations// Turn off all outputs“Q0.0” := FALSE; // Stop Induced Draft Fan“Q0.1” := FALSE; // Stop Circulating Water Pump“Q0.2” := FALSE; // Turn off Spray Valve“Q0.4” := FALSE; // Stop Dosing Pump// Set system status to fault“SYS_STATUS” := 3;“ERROR_CODE” := 16#0001; // Emergency Stop Error Code// Activate alarm indication“Q0.6” := TRUE; // Fault Indicator Light“Q0.7” := TRUE; // Alarm BuzzerC. Function Block DesignTaking the VOC Control Function Block in the Waste Gas Treatment System as an example:CopyFUNCTION_BLOCK “FB_VOC_CONTROL”{ S7_Optimized_Access := ‘TRUE’ }VERSION : 0.1VAR_INPUTVOC_Value : REAL; // Current VOC Value (ppm)VOC_Max : REAL; // Maximum Allowable VOC Value (ppm)System_Run : BOOL; // System Running StatusEND_VARVAR_OUTPUTFan_Speed : REAL; // Induced Draft Fan Speed Output (0-100%)Alarm_VOC : BOOL; // VOC Exceeding AlarmEND_VARVARVOC_Error : REAL; // VOC Deviation ValueSpeed_Base : REAL; // Base Speed ValueKp : REAL := 0.5; // Proportional CoefficientEND_VARVAR_TEMP#Calc_Speed : REAL; // Calculated Intermediate ValueEND_VARBEGIN// Control only when the system is runningIF System_Run THEN// Calculate VOC ErrorVOC_Error := VOC_Value – (VOC_Max * 0.8); // Set 80% as the warning value

  // Base speed value is 50%
  Speed_Base := 50.0;

  // Adjust fan speed based on VOC value
  IF VOC_Error > 0 THEN
     // VOC exceeds 80% threshold, increase wind speed
     #Calc_Speed := Speed_Base + (VOC_Error * Kp);
     
     // Limit within 100%
     IF #Calc_Speed > 100.0 THEN
        Fan_Speed := 100.0;
     ELSE
        Fan_Speed := #Calc_Speed;
     END_IF;
  ELSE
     // VOC is within a safe range
     IF VOC_Value < (VOC_Max * 0.5) THEN
        // Below 50% threshold, reduce wind speed to save energy
        Fan_Speed := 40.0;
     ELSE
        // Maintain base speed
        Fan_Speed := Speed_Base;
     END_IF;
  END_IF;

  // Check if an alarm is needed
  IF VOC_Value >= VOC_Max THEN
     Alarm_VOC := TRUE;
  ELSE
     Alarm_VOC := FALSE;
  END_IF;

ELSE// System not running, output set to 0Fan_Speed := 0.0;Alarm_VOC := FALSE;END_IF;END_FUNCTION_BLOCKStatus Control DesignThe system adopts a state machine design, controlling the system working state through the SYS_STATUS variable:Stop (0) → Starting (1): Check if all parameters are normal before sequentially starting the induced draft fan and water pumpStarting (1) → Running (2): Device startup is complete, entering normal control logicRunning (2) → Fault (3): An anomaly is detected, recording the error codeFault (3) → Stop (0): After troubleshooting, reset the systemD. Data Storage DesignParameter Configuration Table (DB10)CopyDATA_BLOCK “DB_PARAM”{ S7_Optimized_Access := ‘TRUE’ }VERSION : 0.1NON_RETAINSTRUCT// System ParametersTEMP_MAX : REAL := 80.0; // Maximum Temperature Limit (℃)PRESS_MIN : REAL := 100.0; // Minimum Pressure Limit (Pa)PH_MIN : REAL := 6.5; // Minimum pH ValuePH_MAX : REAL := 9.0; // Maximum pH ValueVOC_MAX : REAL := 500.0; // Maximum VOC Concentration (ppm)LEVEL_MIN : REAL := 20.0; // Minimum Liquid Level (%)

  // Control Parameters
  FAN_STARTUP_TIME : TIME := T#30S;    // Fan Startup Time
  PUMP_STARTUP_TIME : TIME := T#15S;   // Water Pump Startup Time
  SPRAY_INTERVAL : TIME := T#2H;       // Spray Interval Time
  SPRAY_DURATION : TIME := T#5M;       // Spray Duration Time
  DOSING_TRIGGER_PH : REAL := 7.0;     // Dosing Trigger pH Value
  
  // Alarm Parameters
  ALARM_DELAY : TIME := T#10S;         // Alarm Delay
  ALARM_AUTO_RESET : BOOL := FALSE;    // Alarm Auto Reset

END_STRUCT;END_DATA_BLOCKRuntime Data Record (DB20)CopyDATA_BLOCK “DB_RUNTIME”{ S7_Optimized_Access := ‘TRUE’ }VERSION : 0.1STRUCT// Runtime StatisticsTOTAL_RUN_HOURS : DINT; // Total Running HoursFAN_RUN_HOURS : DINT; // Induced Draft Fan Running HoursPUMP_RUN_HOURS : DINT; // Water Pump Running Hours

  // Processing Efficiency Data
  DAILY_PROCESS_VOL : REAL;  // Daily Processing Air Volume (m³)
  VOC_REMOVE_EFF : REAL;     // VOC Removal Efficiency (%)
  ENERGY_CONSUMPTION : REAL; // Energy Consumption (kWh)
  
  // Maintenance Counter
  MAINTENANCE_COUNTER : INT; // Maintenance Countdown (Days)

END_STRUCT;END_DATA_BLOCKAlarm Information Management (DB30)CopyDATA_BLOCK “DB_ALARM”{ S7_Optimized_Access := ‘TRUE’ }VERSION : 0.1STRUCT// Current Alarm StatusCURRENT_ALARMS : ARRAY[0..31] OF BOOL;

  // Alarm History Record (Circular Buffer)
  ALARM_HISTORY : ARRAY[0..49] OF STRUCT
     ALARM_ID : WORD;          // Alarm ID
     ALARM_TIME : DATE_AND_TIME; // Alarm Time
     ALARM_VALUE : REAL;       // Value at Alarm Time
  END_STRUCT;
  
  // Alarm Counter
  ALARM_COUNTER : ARRAY[0..31] OF INT;
  
  // Alarm Buffer Pointer
  HISTORY_POINTER : INT := 0;

END_STRUCT;END_DATA_BLOCK

Operating Interface

Interface Layout DescriptionThe HMI interface of the waste gas treatment system is divided into 5 main screens:Main Screen: System Overview, displaying the process flow diagram and key parametersParameter Setting Screen: System Operating Parameter Configuration InterfaceTrend Curve Screen: Historical Trend Display of Key ParametersAlarm Screen: Current Alarm and Historical Alarm QueryMaintenance Screen: Equipment Running Time and Maintenance InformationParameter Setting DescriptionThe parameter setting screen is divided into three permission levels:Operator Level: Can only view parameters, cannot modifyEngineer Level: Can modify operating parameters, such as temperature thresholds, pH ranges, etc.Administrator Level: Can modify all parameters, including control parameters and system configurationEach parameter setting includes three limits: minimum value, maximum value, and default value, to prevent misoperation leading to system anomalies.Operating Monitoring DescriptionThe operating monitoring screen displays in real-time:Parameters such as waste gas temperature, pressure, pH value, and VOC concentrationRunning status and running time of devices such as the induced draft fan and water pumpSystem processing efficiency and energy consumption dataReal-time trend curves, supporting time range switching of 1 hour, 8 hours, and 24 hoursAlarm Handling DescriptionThe alarm system is divided into three levels:Prompt Information: Non-critical parameters deviating from the normal rangeWarning: Critical parameters approaching limits, requiring attentionAlarm: Serious anomalies in the system, requiring interventionThe alarm screen supports:Alarm confirmation functionAlarm filtering function (by type, time, device)Alarm export function (CSV format)4. System DebuggingStep-by-step debugging methodI/O Point Testing:Force input signals, check if PLC readings are correctForce output signals, check if actuators operate correctlyUnit Function Testing:Test temperature control, pH control, fan control, and other function blocks separatelyVerify the response of each function block under boundary conditionsLinkage Function Testing:Test automatic/manual mode switchingTest startup/stop sequenceVerify emergency stop functionParameter Tuning StepsFan Control Parameter Tuning:Start from 50% speed, gradually adjust Kp valueMonitor VOC concentration changes, ensure control stabilityTest control effects under different loadspH Control Parameter Tuning:Set initial dosing amount and dosing timeObserve pH value change curveAdjust dosing frequency and dosing amountAbnormal Simulation TestingSensor Fault Simulation:Disconnect sensor signal line, verify system alarm functionInput over-range signals, test system protection mechanismDevice Fault Simulation:Cut off fan feedback signal, check fault detection logicSimulate water pump overload, verify protection functionPower Failure Simulation:Simulate momentary power outage, test system recovery capabilityVerify parameter saving function after power outagePerformance Verification PointsProcessing Efficiency Verification:Measure removal efficiency at different VOC concentrationsVerify system full-load operation capabilityResponse Speed Testing:Measure system response time to concentration changesVerify delay time for alarm triggeringStability Verification:Continuous operation for 72 hours, monitor key parameter fluctuationsVerify system performance after long-term operation

Experience Summary

Problem Handling ProcessFrequent Start/Stop Issue of Fan:Phenomenon: The fan frequently starts and stops during system operationCause: The proportional parameter Kp value in the VOC control function block is too largeSolution: Reduce Kp value to 0.3, increase 10 seconds start/stop delay judgmentExcessive pH Value Fluctuation Issue:Phenomenon: The pH value of the circulating liquid fluctuates beyond 1.5Cause: The dosing pump control logic uses simple switch controlSolution: Change to PWM pulse width modulation control for precise dosingSystem Optimization SuggestionsEnergy Consumption Optimization:Add variable frequency start function for the fan to reduce starting currentDynamically adjust processing air volume based on VOC concentration to reduce energy consumptionControl Precision Optimization:Introduce PID control to replace simple proportional controlAdd adaptive parameter adjustment functionFunction Expansion DirectionsRemote Monitoring Function:Add industrial Ethernet module for remote data accessDevelop mobile APP to support remote parameter adjustment and alarm pushData Analysis Function:Add data recording and analysis functionsAchieve energy consumption prediction and optimization suggestionsDaily Maintenance PointsRegular Calibration:Calibrate VOC sensors once a monthCalibrate pH electrodes every two weeksPreventive Maintenance:Check fan bearing vibration once a weekClean the spray system once a month to prevent cloggingSoftware Maintenance:Backup PLC programs and parameters once a quarterRegularly check data storage space usageThe PLC control scheme for the waste gas treatment system has been comprehensively elaborated. If you have any questions or need a personalized solution, feel free to leave a message for discussion on process optimization ideas.

Leave a Comment