Mastering PLC Control of Paper Machines from Scratch: Essential Techniques You Must Know

In the paper industry, a reliable automation control system can significantly enhance production efficiency and product quality. This article will detail the core technical points of paper machine control, from hardware selection to program design.

1. Hardware Configuration Plan

1. PLC Selection Explanation

It is recommended to use Siemens S7-1500 series PLC for the paper machine control system, considering the following factors:

  • CPU Selection: CPU 1515-2 PN

  • Expansion Modules:

    • DI/DO Modules: 2 each of SM 521/522

    • AI/AO Modules: 1 each of SM 531/532

    • High-speed Counter: TM Count 2x24V

2. I/O Point Allocation Table

| Address | Signal Name | Description | Remarks |

|——|———-|——|——|

| I0.0 | START_PB | Start Button | Emergency Stop Interlock |

| I0.1 | STOP_PB | Stop Button | Normally Closed Contact |

| I0.2 | EMERGENCY | Emergency Stop Button | Safety Circuit |

| Q0.0 | MOTOR_RUN | Main Motor Running | Contactor Control |

| Q0.1 | VALVE_OPEN | Pulp Inlet Valve | Solenoid Valve Control |

| IW64 | SPEED_FEEDBACK | Speed Feedback | 4-20mA |

3. Peripheral Device Selection

  • Frequency Converter: Siemens G120 series, supports PROFINET communication

  • Sensor: E+H Pressure Transmitter, accuracy 0.2%

  • Actuator: SMC Solenoid Valve, fast response type

2. Control Program Design

1. Variable Definition Specification

// Global Data Block DB_Global

type TYPE_MACHINE_STATUS

   BOOL bRunning;        // Running Status

   BOOL bAlarm;          // Alarm Status

   REAL rSpeed;          // Current Speed

   INT  iProductCount;   // Production Count

end_type

var

   Status : TYPE_MACHINE_STATUS;

   Parameter : STRUCT

      rSpeedSetpoint : REAL;  // Speed Setpoint

      rTension : REAL;        // Tension Setpoint

   end_struct;

end_var

2. Function Block Design

FUNCTION_BLOCK FB_SpeedControl

VAR_INPUT

   bEnable : BOOL;           // Enable Signal

   rSetpoint : REAL;         // Setpoint

   rFeedback : REAL;         // Feedback Value

END_VAR

VAR_OUTPUT

   rOutput : REAL;           // Control Output

   bFault : BOOL;            // Fault Flag

END_VAR

VAR

   fbPID : TON;              // PID Controller

   rError : REAL;            // Error Value

END_VAR

// Main Program Logic

IF bEnable THEN

   rError := rSetpoint - rFeedback;

   // PID Control Calculation
   fbPID(IN:=TRUE, PT:=T#100ms);

   // Output Limiting
   IF rOutput > 100.0 THEN
      rOutput := 100.0;
   ELSIF rOutput < 0.0 THEN
      rOutput := 0.0;
   END_IF;
ELSE
   rOutput := 0.0;
END_IF;

3. State Control Design

1. Main State Machine Design

CASE iMachineState OF

   0: // Initial State
      IF bStartRequest AND NOT bEmergency THEN
         iMachineState := 10;
      END_IF;

   10: // Pre-start Check
      IF bAllConditionsOK THEN
         iMachineState := 20;
      ELSE
         iAlarmCode := 1001;
         iMachineState := 100;
      END_IF;

   20: // Running State
      IF bStopRequest OR bEmergency THEN
         iMachineState := 30;
      END_IF;

   30: // Shutdown Process
      IF bStopComplete THEN
         iMachineState := 0;
      END_IF;

   100: // Fault State
      IF bResetRequest AND bFaultCleared THEN
         iMachineState := 0;
      END_IF;
END_CASE;

2. Exception Handling Mechanism

// Alarm Handling Function Block
FUNCTION_BLOCK FB_AlarmHandler

VAR_INPUT
   bTrigger : BOOL;          // Alarm Trigger
   iAlarmID : INT;           // Alarm ID
END_VAR

VAR
   dtTimeStamp : DATE_AND_TIME;  // Timestamp
   sAlarmText : STRING[80];      // Alarm Text
END_VAR

// Alarm Record Logic
IF bTrigger THEN
   dtTimeStamp := CURRENT_TIME();
   CASE iAlarmID OF
      1001: sAlarmText := 'Drive System Fault';
      1002: sAlarmText := 'Tension Exceeded';
      1003: sAlarmText := 'Speed Abnormal';
   END_CASE;
   // Write to Alarm Log
   WriteAlarmLog(dtTimeStamp, iAlarmID, sAlarmText);
END_IF;

4. Operation Interface Design

1. Main Interface Layout

  • Top Area: System Status, Alarm Indication, Time Display

  • Middle Area: Process Flow Diagram, Real-time Data

  • Bottom Area: Operation Buttons, Parameter Settings Entry

2. Parameter Settings Interface

| Parameter Name | Current Value | Set Value | Unit |
|----------------|---------------|-----------|------|
| Speed          | 350.0         | [350.0]   | m/min|
| Tension        | 2.5           | [2.5]     | N/m  |
| Basis Weight   | 80.0          | [80.0]    | g/m² |

3. Alarm Handling Interface

  • Real-time Alarm List: Displays current active alarms

  • Historical Record Query: Supports filtering by time and type

  • Alarm Acknowledgment Button: Operator acknowledgment and handling

5. System Debugging Methods

1. Step-by-step Debugging Process

  1. Hardware Check

  • Check Power Supply Voltage

  • Verify I/O Wiring

  • Test Communication Connections

  • Single Machine Debugging

    // Manual Mode Debugging Code
    IF bManualMode THEN
       // Test each actuator individually
       IF bTestMotor THEN
          qMotorRun := TRUE;
       END_IF;
    END_IF;
    
  • Linked Debugging

    • Empty Load Operation Test

    • Load Operation Test

    • Extreme Condition Testing

    2. Parameter Tuning Steps

    1. Speed Loop Tuning

    • Set P Parameter: Initial Value 0.5

    • Adjust I Parameter: Observe Steady-State Error

    • Optimize D Parameter: Improve Dynamic Response

  • Tension Loop Tuning

    • Use Critical Proportional Method

    • Record Oscillation Period

    • Calculate Using Ziegler-Nichols Formula

    6. Actual Project Case Analysis

    1. Project Background

    A paper mill with an annual output of 100,000 tons of cultural paper had an aging relay control system that required automation upgrades.

    2. Solution

    • Control System: S7-1500 PLC + PROFINET Network

    • Drive System: G120 Frequency Converter Group Control

    • Monitoring System: WinCC 7.5 SCADA

    3. Implementation Results

    • Production efficiency increased by 15%

    • Product qualification rate reached 98%

    • Energy consumption reduced by 8%

    • Maintenance costs decreased by 30%

    4. Key Code Example

    // Core Algorithm for Tension Control
    FUNCTION_BLOCK FB_TensionControl
    
    VAR_INPUT
       rActualTension : REAL;    // Actual Tension
       rSetTension : REAL;       // Set Tension
       bEnable : BOOL;           // Enable Signal
    END_VAR
    
    VAR_OUTPUT
       rSpeedCorrection : REAL;  // Speed Correction Value
    END_VAR
    
    VAR
       rKp : REAL := 0.8;       // Proportional Coefficient
       rKi : REAL := 0.1;       // Integral Coefficient
       rError : REAL;           // Error
       rIntegral : REAL;        // Integral Value
    END_VAR
    
    // Control Algorithm Implementation
    IF bEnable THEN
       rError := rSetTension - rActualTension;
       rIntegral := rIntegral + rError * 0.1;  // Integral Time 0.1s
       // PI Control Output
       rSpeedCorrection := rKp * rError + rKi * rIntegral;
       // Output Limiting ±10%
       rSpeedCorrection := LIMIT(-10.0, rSpeedCorrection, 10.0);
    ELSE
       rIntegral := 0.0;
       rSpeedCorrection := 0.0;
    END_IF;
    

    The development of the paper machine control system involves multiple technical aspects. This article focuses on core content such as hardware configuration, program design, and debugging methods. We welcome colleagues to share more practical experiences!

    Leave a Comment