Obsidean_VM/04-InLavoro/22 - 9.3841 - Sidel - Tilting/9.3841 - Sidel - Tilting - ...

310 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### Infeed:
![[Pasted image 20250115140051.png]]
### Outfeed:
![[Pasted image 20250115140130.png]]
The Tilter/SKID has the function to cool the bottom of the bottles that are transported inside.
### The machine can be separated in two:
***
#### SKID:
* The **SKID** system cools the water circulating in the **Tilter**. It uses **Pump M36** to circulate water through a heat-exchanger, which is cooled by liquid from the chiller. The cooling amount is controlled by the **analog valve AMV1** using a **PID** controller.
![[Pasted image 20250115140800.png|900]]
The logic for the SKID is done on the FB96
![[Pasted image 20250115141033.png]]
If all the conditions to run are meet then we set `"DB Tilter".Switches."Conditions to Run Infeed"` to enable the Tilter to Run
FC380 - Net 2:
```pascal
// Special conditions to Open Gate
UN "DB SKID"."Stop Filler for overtemperature"
U "DB Signal Transport".Signals.Digital.InputSignal[1]
U "DB SKID".SKID.isRunning
= "DB Tilter".Switches."Conditions to Run Infeed"
```
The temperature PID must be set up on-site. Due to the system's large inertia, this PID should be configured for a slow response. All this parametrization can be done on the Setup pages.
![[Pasted image 20250115141501.png]]
The primary sensors include:
- **Pressure sensor** SP60010: Measures the pressure exerted by the pump.
- **Tank level sensor** SP60030: Monitors the water level in the tank.
- **Temperature sensor** SP60050: Gauges the temperature of the water entering the tilter.
The system features a **closed-loop water circulation** that pumps water from the **SKID tank** through a **heat exchanger**. The heat exchanger has two circuits:
- **Water Circuit**: Water circulates from the **SKID tank** to the **Tilter** and back to the tank.
- **Coolant Circuit**: Coolant from an external **chiller** flows through the other side. We can only control the flow of this coolant using the **modulating analog valve AMV1**.
The AMV1 valve's position is regulated by a PID controller linked to the temperature sensor SP60050. To mitigate back pressure issues, the system includes a bypass valve AV3 that automatically opens if the AMV1 needs to close.
When the system starts, the **SKID** controls the minimum water level in the tank. If this level is reached, pump **M36** activates, and the system uses a **PID** regulator to adjust the **AMV1** valve, aiming to achieve the temperature set by the **Tilter** as the **Set Point**.
![[Pasted image 20250115142521.png]]
![[Pasted image 20250115142627.png|800]]
The PID controller adjusts the AMV1 based on readings from the temperature sensor, scaling the value as shown on the next image.
![[Pasted image 20250115142822.png|800]]
With the Time to smooth parameter the temperature of the sensor can be averaged to reduce small changes that dont need to be considered.
On the PID page, you can set the parameters for the PID control and adjust the Output scale as shown in the image below:
![[Pasted image 20250115143131.png|800]]
The **Feedforward** parameters reduce the PID's workload by adjusting the valve opening proportional to the desired temperature.
Other PID parameters include:
* **Kp**: Proportional gain, multiplied by the error.
* **Ki**: Integral gain, multiplied by the accumulated error.
* **Kd**: Derivative gain, multiplied by the rate of change of error (usually unnecessary for slow systems).
* **% to adjust by Integral Ki**: Limits the integral part's influence on the PID output to a maximum of max%.
* **Time to smooth**: A time window to average the input value before error calculation.
When the PID is disabled due to lack of water or another condition, a fallback command can force the valve to a specific opening if necessary.
![[Pasted image 20250115143943.png|800]]
## Tilter FB621 System Overview
***
The tilter infeed system is controlled by FB621, executing in OB30 with a 3ms cycle time. The system manages three motors to coordinate bottle movement through the tilter mechanism.
The tilter infeed starts when conditions from the **SKID** and the maximum photocell at the outfeed are met.
Key sensors for infeed control include:
- Minimum/maximum accumulation photocells
- Phase sensor **S50670** on the main chain motor (**M34**)
- Phase sensor **S50740** on the Minimotor endless screw
- Encoders on both the endless screw and **M34** motor
### Motors
1. Belt Motor (M35)
- Primary function: Transport bottles from infeed to outfeed
- Speed synchronization: Matches main chain speed with correction factor
- Speed calculation: Chain_Speed * (1 + K_correction_Belt/100)
2. Main Chain Motor (M34)
- Function: Drives slotted chain for bottle transport
- Speed control: Multiple speed modes (Low, Production, Over Speed)
- Features dynamic speed adjustment based on bottle count
3. Doser Motor (M32) - Minimotor Endless Screw
- Function: Bottle separation and alignment with chain slots
- Speed calculation: Chain_Speed * Ratio * (1 + K_correction_Doser/100) + PID_Output
- Includes phase correction via PID control
### Sensors
- Minimum/maximum accumulation photocells
- Phase sensors:
- S50670 (Main chain)
- S50740 (Endless screw)
- Encoders on both endless screw and M34
- Jam detection sensors at infeed/outfeed
### There is 3 phases to phase the system:
***
#### When the dosser (endlessscrew) start from stop use:
Recipe."Offset Chain Phase Startup mm" to compensate the start ramp to phase as soon as posible with the main chain slot:
```pascal
#"Offset Master Pulse Start"("Pulse In" := #"I_BottleStep_Chain",
"Step mm" := #"Fixed Paramters"."Chain Step",
"Ofsset in mm" := #Recipe."Offset Chain Phase Startup mm",
"Auto Calc Step Time" := FALSE,
"Fix Step Time" := #Aux."Estimated Step Time s");
```
This creates an artificial offset at startup, triggering the `Status.Doser Enable := TRUE` which activates the minimotor.
```pascal
// START PHASE
IF #Status."Conditions to Run Doser" AND NOT #Status."Doser Enable" AND #"Offset Master Pulse Start"."Pulse Out" THEN
#Aux."Search Angle To Stop" := FALSE;
#Status."Phase Start Doser" := TRUE;
#Status."Doser Enable" := TRUE;
#Aux.Counters[1] := 0;
END_IF;
```
After startup, the system switches to normal operation.
#### When the dosser maintain the phase with the main chain:
The PID is activated and the speed is controlled by the PID output
```pascal
// Doser Speed
#Status."Doser Speed" := #"Chain Speed Scaled" * #Status."Ratio Doser Chain" * (1 + #Recipe."K coorection Doser" / 100.0) + #PID.PID."Output Scaled";
```
The error is calculated as the difference between the center of each **bottle** and the center of the **slot** in the main chain. If this difference increases, the PID controller compensates to minimize the error. The center of the bottle is set at the S50740 pulse. The center of the slot is determined by the S50670 pulse, adjusted by the `Recipe.Offset Chain Phase mm`. This adjustment is applied to the pulse stored in the **Offset Master Pulse** DB.
#### When the dosser stop:
To stop the dosser, we must align it at a specific angle to allow the last bottle to exit while keeping the next one inside the endless screw. We use the `Recipe."Angle to Start Stop"` to trigger the `Status."Phase Stop Doser" := TRUE`, which halts the dosser. ==This parameter is linked to the `Recipe."Offset Chain Phase Startup mm"`==, so adjusting one might require adjusting the other due to the impact on the startup phase offset. Additionally, modifying the `Recipe."Low Speed"` could necessitate changes to `Recipe."Offset Chain Phase Startup mm"` to ensure proper bottle phasing at startup.
```pascal
// STOP PHASE
IF NOT #Status."Conditions to Run Doser" AND #Status."Doser Enable" AND #Aux."BottleStep_Doser Pulse" THEN
#Aux."Search Angle To Stop" := TRUE;
END_IF;
IF NOT #Status."Conditions to Run Doser" AND #Status."Doser Enable" AND #Aux."Search Angle To Stop" AND #Status."Doser Encoder" > #Recipe."Angle to Start Stop" THEN // #Aux."BottleStep_Doser Pulse" THEN
#Status."Phase Stop Doser" := TRUE;
END_IF;
```
##### The phasing of the Electronic Axis:
***
* **First bottle phase:** `Recipe."Offset Chain Phase Startup mm"`
* This value determines the precise moment to start the doser.
* **Production bottle phase:** `Recipe.Offset Chain Phase mm`
* This value represents the mechanical offset between sensors S50670 (Main chain) and S50740 (Endless screw).
* **Correctly stopping the last bottle:** `Recipe."Angle to Start Stop"`
* This value specifies the angle needed for the endless screw to stop the last bottle correctly.
## Control Logic
***
### Start/Stop Conditions
1. Start Requirements:
- Automatic mode enabled
- No active alarms
- SKID conditions met
- Maximum photocell conditions satisfied
- Minimum accumulation met (unless bypassed)
2. Stop Sequence:
- Initiated when run conditions are lost
- Waits for specific angle position
- Controlled ramp-down over 0.5 bottle cycles
### Speed Control System
***
#### Chain Speed Management
- Three primary speeds:
- Low Speed: < 25% of chain slots filled
- Production Speed: Normal operation
- Over Speed: High accumulation conditions
- Additional Refill Speed mode when replenishing
#### Speed Synchronization
1. Belt to Chain:
- Direct synchronization with correction factor
- Maintains consistent bottle flow
2. Doser to Chain:
- Phase-locked synchronization
- PID control for phase error correction
- Compensation for acceleration/deceleration
### Safety Features
***
#### Alarm Conditions
1. Mechanical:
- Chain stretching limits (high/low)
- Motor faults
- Guide position errors
2. Process:
- Jam detection (infeed/outfeed)
- Maximum accumulation timeout
- Fallen bottle detection
3. Operational:
- Phase mismatch
- Missing selector enable
- Motor feedback failures
#### Emergency Handling
- Immediate stop on safety circuit break
- Controlled stop on process alarms
- Automatic alarm logging and display
## Operational Modes
***
### Normal Operation
1. Startup Sequence:
- Initial low speed operation
- Gradual speed increase based on bottle count
- Phase synchronization establishment
2. Running State:
- Dynamic speed adjustment
- Continuous phase monitoring
- Automatic gap control
### Special Modes
1. Auto Emptying:
- Triggered by specific conditions
- Bypasses minimum accumulation check
- Controlled evacuation sequence
2. Energy Saving:
- Activates during extended idle periods
- Maintains system readiness
- Quick restart capability
## Reference Tables
### Alarm Codes
| Code | Description | Trigger Condition | Impact |
|------|-------------|------------------|---------|
| 1 | Main Chain Motor not OK | Motor feedback failure | System stop |
| 2 | Belt Motor not OK | Belt motor feedback failure | System stop |
| 3 | Doser Motor not OK | Doser motor feedback failure | System stop |
| 4 | Chain Exit Sensor Guide Open | Rejector feedback state without expulsion | Warning |
| 5 | Chain Pulse not OK | Phase sensor malfunction | System stop |
| 6 | Chain Stretching Position High | Chain piston max sensor activated | System stop |
| 7 | Chain Stretching Position Low | Chain piston min sensor activated | System stop |
| 8 | Max Accumulation Timeout | Maximum accumulation timer expired | Production slowdown |
| 9 | Waiting Infeed Selector Enable | Selector not enabled | Production halt |
| 10 | Jam Infeed Chain | Jam photocell timer expired | System stop |
| 11 | Jam Outfeed Chain | Outfeed guide jam timer expired | System stop |
| 12 | Bottle Fallen Infeed | Bottle fallen sensor activated | Production halt |
### Speed Transition Logic
| Condition | Speed Mode | Calculation | Purpose |
|-----------|------------|-------------|----------|
| Bottles < 25% of chain slots | Low Speed | From recipe | Startup/low load |
| Normal operation | Production Speed | From recipe | Standard operation |
| High accumulation | Over Speed | From recipe | Clear accumulation |
| Refilling needed | Refill Speed | From recipe | System refill |
### Motor Speed Relationships
| Motor | Base Speed | Correction Factor | Additional Control |
|-------|------------|-------------------|-------------------|
| Main Chain (M34) | Recipe defined | None | Dynamic based on conditions |
| Belt (M35) | Chain speed | K correction Belt % | None |
| Doser (M32) | Chain speed × Ratio | K correction Doser % | PID phase control |
### Timer Settings
| Function | Timer | ON Condition | Purpose |
|----------|--------|--------------|----------|
| Min Accumulation | Timer[1] | Min sensor active | Start permission |
| Max Accumulation | Timer[2] | Max sensor active | Speed control |
| Low Speed | Timer[3] | Low speed sensor | Speed adjustment |
| High Speed | Timer[4] | High speed sensor | Speed adjustment |
| Jam Detection | Timer[5] | Jam photocell | Safety monitoring |
| Outfeed Jam | Timer[6] | Guide jam condition | Safety monitoring |
| Auto Emptying | Timer[7] | Auto empty conditions | Mode control |
| Energy Saving | Timer[8] | Energy save conditions | Mode control |
### SIDEL Communication
***
The customer requested that communication be handled via TRCV/TSEND. We've set up an example PLC in the project with data to be transferred. This data needs on-site control based on what the filler/transport can send or receive.
The communication is managed by FC601, which reads from and writes to DB601/DB602.
![[Pasted image 20250115150418.png]]
![[Pasted image 20250115150555.png|800]]
![[Pasted image 20250115150605.png|800]]