مقدمه
در مقالات مربوط به Servo معمولاً دستورات PLC مانند PLSY، DDRVI یا DDRVA جداگانه توضیح داده میشوند، اما در یک ماشین صنعتی واقعی Servo فقط یکی از اجزای سیستم کنترل است.
برای مثال در یک ماشین بستهبندی، حرکت فیلم باید با عملیات پرکردن، دوخت، برش، دما، وزن، سنسورها و وضعیت Servo هماهنگ باشد.
اگر Servo حرکت کند ولی دمای فک مناسب نباشد، ماشین نباید دوخت را انجام دهد.
اگر Loadcell هنوز وزن موردنظر را تأیید نکرده باشد، ماشین نباید وارد مرحله بعد شود.
اگر Servo Alarm داشته باشد، PLC نباید فرمان Motion جدید صادر کند.
بنابراین یک پروژه واقعی Servo در حقیقت ترکیبی از:
- PLC Programming
- Motion Control
- Servo Control
- Positioning
- Sensor Control
- Temperature Control
- Loadcell
- Pneumatic Control
- HMI
- Alarm Management
- Interlock
است.
در این مقاله یک نمونه کامل از چنین ماشینی را طراحی میکنیم.
معرفی پروژه ماشین بستهبندی
ماشین موردنظر را بهصورت یک Vertical Form Fill Seal یا VFFS در نظر میگیریم؛ یعنی فیلم از رول وارد ماشین شده، به شکل بسته درمیآید، محصول داخل آن ریخته میشود و در نهایت بسته دوخت و برش داده میشود.
فرآیند کلی:
Film Roll
│
▼
Film Feeding
│
▼
Servo Motor
│
▼
Forming
│
▼
Filling
│
▼
Vertical Sealing
│
▼
Horizontal Sealing
│
▼
Cutting
│
▼
Finished Sachet
کنترل این فرآیند توسط PLC انجام میشود.
معماری کلی سیستم
ساختار پیشنهادی پروژه:
HMI
│
▼
┌────────────┐
│ PLC │
│ DAS-14SS2 │
└─────┬──────┘
│
┌────────────────┼───────────────────┐
│ │ │
▼ ▼ ▼
Servo Control Loadcell Temperature
│ │ │
▼ ▼ ▼
Servo Drive DAS-02LC DAS-04MTC
│
▼
Servo Motor
│
▼
Film Feeding
در کنار این بخشها، PLC با سنسورها، شیرهای پنوماتیک، سیستم برش و تجهیزات حفاظتی نیز ارتباط دارد.
تجهیزات اصلی پروژه
PLC
در این پروژه میتوان از DAS-14SS2-T بهعنوان PLC اصلی استفاده کرد.
وظایف PLC:
- اجرای Sequence ماشین
- کنترل Start و Stop
- کنترل Servo
- Homing
- Positioning
- کنترل سنسورها
- کنترل Pneumatic
- کنترل Sequence پرکردن
- مدیریت Alarm
- ارتباط با HMI
- مدیریت Recipe
- شمارش تولید
- مدیریت وضعیت ماشین
نکته: در این مقاله DAS-14SS2-T بهعنوان نمونه PLC پروژه استفاده شده است. Mapping واقعی I/O، فرکانس High-Speed Pulse و قابلیت دقیق دستورات باید از Manual همان مدل تأیید شود و نباید صرفاً براساس یک نمونه آموزشی فرض شود.
Servo Drive
Servo Drive واسط بین PLC و موتور Servo است.
PLC
│
├──── Pulse ───────► Servo Drive
│
└──── Direction ───► Servo Drive
│
▼
Servo Motor
PLC موقعیت یا سرعت موردنظر را به شکل فرمان Pulse در اختیار Drive قرار میدهد و Servo Drive وظیفه کنترل جریان و حرکت موتور و استفاده از Feedback Encoder را بر عهده دارد.
در Servo Driveهای Delta، حالت Position Control و ورودی External Pulse در مدلهای مختلف وجود دارد و پارامترهایی مانند Electronic Gear برای تبدیل نسبت Pulse ورودی به Position Command استفاده میشوند. برای نمونه، Manual سری ASDA-B پارامترهای External Pulse Input و Electronic Gear Ratio را مشخص میکند.
Servo Motor
Servo Motor برای حرکت دقیق رولر تغذیه فیلم استفاده میشود.
ساختار مکانیکی نمونه:
Servo Motor
│
▼
Coupling / Gearbox
│
▼
Film Pulling Roller
│
▼
Packaging Film
در این سیستم، مقدار حرکت موتور مستقیماً با طول فیلم مصرفشده ارتباط دارد.
Encoder
Servo Motor دارای Encoder داخلی است.
مسیر Feedback بهصورت کلی:
Servo Motor
│
│ Encoder Feedback
▼
Servo Drive
│
│ Control Loop
▼
Servo Motor
این نکته مهم است که در یک سیستم Servo استاندارد، Encoder موتور معمولاً مستقیماً برای اجرای حلقه کنترل موتور توسط PLC استفاده نمیشود؛ Servo Drive حلقه کنترل Servo را مدیریت میکند.
PLC در سطح بالاتر فرمان Motion را مدیریت میکند.
Loadcell و DAS-02LC
برای ماشین بستهبندی پودری، وزن محصول یکی از پارامترهای اصلی است.
ساختار:
Product
│
▼
Weighing Hopper
│
▼
Loadcell
│
▼
DAS-02LC
│
▼
PLC
فرض کنیم وزن هدف:
Target Weight = 100 g
PLC میتواند مقدار وزن را بررسی کند:
0 g
↓
25 g
↓
50 g
↓
75 g
↓
95 g
↓
99 g
↓
100 g
وقتی مقدار به Setpoint برسد:
Filling = OFF
و Sequence وارد مرحله بعد میشود.
کنترل دما با DAS-04MTC
فکهای دوخت نیاز به کنترل دمای دقیق دارند.
در پروژه میتوان از DAS-04MTC برای دریافت سنسورهای دما و کنترل خروجیهای مربوط به Heating استفاده کرد.
مثلاً:
CH1 → Vertical Sealing
CH2 → Horizontal Sealing
CH3 → Auxiliary Heater
CH4 → Spare
ساختار کنترل:
Temperature Sensor
│
▼
DAS-04MTC
│
▼
Temperature Control
│
▼
Heater / SSR
در برنامه PLC یک شرط مهم خواهیم داشت:
Temperature_OK = TRUE
فقط در صورت برقرار بودن این شرط، عملیات Sealing اجازه اجرا خواهد داشت.
سنسورهای ماشین
ماشین میتواند سنسورهای زیر را داشته باشد:
| سنسور | وظیفه |
|---|---|
| Film Sensor | تشخیص علامت یا موقعیت فیلم |
| Home Sensor | تعیین مرجع مکانیکی |
| Door Sensor | وضعیت حفاظ |
| Product Sensor | تشخیص محصول |
| Cylinder Sensor | تأیید موقعیت جک |
| Cutter Sensor | موقعیت تیغه |
| Low Material Sensor | تشخیص کمبود مواد |
| Servo Alarm | دریافت خطای Servo |
| Servo Ready | آمادهبودن Servo |
آدرسهای جدول زیر صرفاً نمونه طراحی نرمافزاری هستند و باید با I/O واقعی ماشین تطبیق داده شوند.
سیستم Pneumatic
برای عملیات مکانیکی میتوان از چند Cylinder استفاده کرد.
مثلاً:
Cylinder 1
↓
Vertical Sealing
Cylinder 2
↓
Horizontal Sealing
Cylinder 3
↓
Cutter
هر Cylinder بهتر است علاوه بر فرمان خروجی، Feedback موقعیت نیز داشته باشد.
مثلاً:
PLC
│
└──► Solenoid
│
▼
Cylinder
│
▼
End Sensor
│
└────► PLC
در نتیجه PLC فقط فرمان نمیدهد؛ بلکه وضعیت واقعی مکانیزم را نیز بررسی میکند.
Sequence کامل ماشین
اکنون وارد قسمت اصلی برنامه میشویم.
Sequence پیشنهادی:
IDLE
↓
SAFETY CHECK
↓
SERVO ON
↓
HOMING
↓
READY
↓
FILM FEED
↓
POSITION OK
↓
FILLING
↓
WEIGHT OK
↓
SEALING
↓
CUTTING
↓
CYCLE COMPLETE
↓
NEXT CYCLE
مرحله اول: Machine Ready
قبل از Start شدن ماشین باید شرایط اولیه بررسی شوند.
مثلاً:
Emergency_OK
AND
Door_Closed
AND
Air_OK
AND
Servo_Ready
AND
Servo_Alarm = OFF
AND
Temperature_OK
اگر تمام شرایط برقرار باشند:
Machine_Ready = ON
این اولین و مهمترین Interlock ماشین است.
مرحله دوم: Servo ON
پس از Ready شدن ماشین:
Servo Enable
│
▼
Wait Servo Ready
│
▼
Servo Ready = ON
اگر Servo Ready فعال نشود، برنامه نباید وارد مرحله Motion شود.
مرحله سوم: Homing
پس از Servo ON باید موقعیت مرجع مشخص شود.
START
│
▼
SERVO ON
│
▼
HOMING
│
▼
HOME SENSOR
│
▼
ZERO POSITION
│
▼
HOME COMPLETE
در PLCهای Delta، دستورات خانواده ZRN/DZRN برای Zero Return/Homing در مدلهایی که از آنها پشتیبانی میکنند استفاده میشوند. انتخاب دقیق دستور و پارامترها باید با Manual همان سری PLC انجام شود.
چرا Homing مهم است؟
فرض کنید PLC بعد از روشنشدن ماشین نمیداند Servo دقیقاً در چه موقعیتی قرار دارد.
اگر بدون تعیین Reference فرمان Absolute Position صادر شود، موقعیت نرمافزاری PLC ممکن است با موقعیت مکانیکی واقعی یکسان نباشد.
بنابراین:
Power ON
↓
Servo ON
↓
Homing
↓
Machine Zero
↓
Production
ساختار مطمئنتری ایجاد میکند.
مرحله چهارم: Film Feeding
پس از Homing، ماشین آماده تغذیه فیلم است.
فرض کنیم طول بسته:
Bag Length = 120 mm
باشد.
Servo باید فیلم را دقیقاً به اندازه موردنیاز حرکت دهد.
Servo
↓
Roller
↓
120 mm Film
محاسبه Pulse برای حرکت فیلم
فرض کنیم برای مثال آموزشی:
Servo Command Resolution = 10,000 pulse/rev
Roll Diameter = 50 mm
محیط رول:
C = π × D
C = 3.1416 × 50
C ≈ 157.08 mm
بنابراین:
10,000 pulses
↓
157.08 mm
تعداد Pulse برای هر میلیمتر:
10,000 / 157.08
≈ 63.66 pulse/mm
برای 120 میلیمتر:
120 × 63.66
≈ 7,639 pulses
بنابراین در این مثال سادهشده:
Target Pulse ≈ 7,639
خواهد بود.
در ماشین واقعی باید مواردی مانند Gear Ratio، قطر واقعی رول، لغزش، Electronic Gear و مکانیزم انتقال نیز در محاسبه لحاظ شوند.
DRVI و DDRVI برای حرکت نسبی
فرض کنیم موقعیت فعلی فیلم:
Position = 500 mm
و میخواهیم 120 میلیمتر دیگر حرکت کنیم.
500 mm
+
120 mm
=
620 mm
این مفهوم Relative Positioning است.
Current Position
│
│ +120 mm
▼
Target Position
دستورات DRVI/DDRVI برای حرکت نسبی در خانوادههای PLC Delta که از آنها پشتیبانی میکنند استفاده میشوند. Manual رسمی Delta این دستورات را در مجموعه Pulse Output/Positioning معرفی میکند.
DRVA و DDRVA برای موقعیت مطلق
در Absolute Positioning، مقصد بهصورت یک موقعیت مشخص تعریف میشود.
مثلاً:
Position 1 = 120 mm
Position 2 = 240 mm
Position 3 = 360 mm
Position 4 = 480 mm
فرمان Absolute به PLC میگوید محور باید به کدام موقعیت برسد.
Current
│
├────► 120 mm
│
├────► 240 mm
│
└────► 360 mm
در این حالت DRVA/DDRVA در PLCهای سازگار برای Absolute Positioning استفاده میشوند.
PLSY در پروژه
PLSY یکی از دستورات پایه Pulse Output در PLCهای Delta است.
بهصورت مفهومی:
PLSY
│
├── Frequency
├── Pulse Count
└── Pulse Output
برای مثال:
Frequency = 50 kHz
Pulse Count = 7,639
البته syntax دقیق و Operandهای قابل استفاده باید مطابق مدل PLC نوشته شوند.
Delta در Application Note رسمی خود نیز نمونهای از استفاده PLSY برای ارسال Pulse به Servo و کنترل حرکت ارائه کرده است.
DPLSY
DPLSY نسخه Extended مربوط به Pulse Output در PLCهای سازگار است.
در طراحی پروژه، انتخاب بین:
PLSY
DPLSY
باید براساس موارد زیر انجام شود:
- مدل PLC
- محدوده Operand
- نوع داده
- محدوده فرکانس
- تعداد Pulse
- ساختار پروژه
نباید syntax یک مدل PLC را بدون بررسی Manual به مدل دیگر منتقل کرد.
PLSV و DPLSV
برای بعضی سناریوهای Motion، بهجای تمرکز روی تعداد مشخصی Pulse، کنترل سرعت Pulse اهمیت بیشتری دارد.
در چنین شرایطی دستورات خانواده:
PLSV
DPLSV
در PLCهای سازگار میتوانند مورد استفاده قرار گیرند.
مثلاً:
Speed Command
↓
Pulse Frequency
↓
Servo Speed
این ساختار برای کاربردهایی که محور باید با سرعت مشخص حرکت کند، مناسبتر از یک Position Move ساده است.
PLSR و DPLSR
در Motion Control فقط سرعت نهایی مهم نیست.
اگر موتور ناگهان از:
0 RPM
به:
1000 RPM
برسد، ممکن است به مکانیک و محصول فشار وارد شود.
به همین دلیل Acceleration و Deceleration اهمیت دارند.
Speed
│
│ ┌──────────
│ /
│ /
│ /
│_____/
└──────────────── Time
دستورات خانواده PLSR/DPLSR، در PLCهای پشتیبانیکننده، برای سناریوهای Pulse Output همراه با مشخصات حرکتی مربوط به Ramp استفاده میشوند.
Acceleration و Deceleration
در ماشین بستهبندی، شتاب زیاد میتواند باعث موارد زیر شود:
- لغزش فیلم
- لرزش مکانیکی
- صدای زیاد
- خطای Position
- فشار به Gearbox
- ناپایداری حرکت
بنابراین باید شتاب مناسب برای مکانیزم تعیین شود.
همچنین در برخی Servo Driveهای Delta، فیلترهای S-curve یا Low-pass برای نرمتر کردن فرمان حرکت وجود دارند؛ Manualهای Delta توضیح میدهند که Electronic Gear و پروفایل شتاب/کاهش سرعت باید با توجه به رفتار مکانیکی تنظیم شوند.
Electronic Gear
Electronic Gear یکی از مهمترین قسمتهای تنظیم Servo است.
فرض کنیم:
PLC Pulse
↓
Electronic Gear
↓
Motor Position Command
مثلاً اگر نسبت:
N/M
تغییر کند، رابطه بین Pulse ورودی و Position Command نیز تغییر میکند.
Delta در Manualهای Servo خود Electronic Gear را برای تغییر نسبت حرکت معرفی میکند و هشدار میدهد که تنظیم اشتباه آن میتواند باعث حرکت ناخواسته شود؛ بنابراین این پارامتر باید با Servo خاموش و مطابق Manual همان مدل تنظیم شود.
محاسبه سرعت Servo
فرض کنیم:
Pulse per Revolution = 10,000
RPM = 300
فرکانس Pulse:
F = RPM × Pulse/Rev / 60
بنابراین:
F = 300 × 10,000 / 60
F = 50,000 Hz
یعنی:
50 kHz
بنابراین قبل از انتخاب تنظیمات نهایی باید حداکثر فرکانس Pulse قابل پشتیبانی توسط PLC و Servo Drive بررسی شود.
Interlock در پروژه
Interlock قلب برنامه ماشین است.
مثلاً Servo نباید حرکت کند اگر:
Servo Alarm = ON
یا:
Home Complete = FALSE
یا:
Emergency = ON
یا:
Door Open = TRUE
یک منطق مفهومی:
Motion_Allow =
Machine_Run
AND Servo_Ready
AND NOT Servo_Alarm
AND Home_Complete
AND Safety_OK
سپس:
Motion_Allow
│
▼
Execute Motion
جلوگیری از اجرای همزمان فرمانهای Motion
فرض کنید این دو فرمان همزمان اجرا شوند:
DRVI → Film Feed
و:
ZRN → Homing
اگر هر دو بخواهند یک خروجی Pulse را کنترل کنند، برنامه میتواند دچار Conflict شود.
بنابراین باید Axis State داشته باشیم:
AXIS_IDLE
AXIS_HOMING
AXIS_MOVING
AXIS_STOPPING
AXIS_ALARM
و فقط در AXIS_IDLE اجازه اجرای Motion جدید بدهیم.
Delta برای Pulse Output مکانیزمهای مربوط به Flag و Auto-reset را مستند کرده است که برای مدیریت آزادشدن کنترل Pulse Output پس از پایان عملیات اهمیت دارد.
State Machine پروژه
بهترین روش برای این ماشین، تقسیم برنامه به Stateهای مشخص است.
STATE 0
IDLE
STATE 10
SAFETY CHECK
STATE 20
SERVO ON
STATE 30
HOMING
STATE 40
FILM FEED
STATE 50
POSITION CHECK
STATE 60
FILLING
STATE 70
WEIGHT CHECK
STATE 80
SEALING
STATE 90
CUTTING
STATE 100
CYCLE COMPLETE
STATE 900
ALARM
این روش باعث میشود برنامه نسبت به یک Ladder بزرگ و بدون ساختار، قابلفهمتر و قابلعیبیابیتر باشد.
منطق Film Feed
منطق مفهومی:
IF State = FILM_FEED
AND Servo_Ready
AND Home_Complete
AND NOT Servo_Busy
AND Safety_OK
THEN
Start Relative Motion
END_IF
بعد:
IF Motion_Complete
THEN
State = POSITION_CHECK
END_IF
یعنی PLC منتظر میماند تا حرکت واقعاً تمام شود.
Filling
وقتی فیلم در موقعیت قرار گرفت:
Position Complete
│
▼
Filling Valve ON
│
▼
Read Loadcell
│
▼
Weight ≥ Setpoint
│
▼
Filling OFF
Weight Interlock
فرض کنیم:
Target = 100 g
برنامه نباید صرفاً بعد از زمان مشخص Filling را متوقف کند.
بهتر است Weight Feedback نیز بررسی شود:
IF Actual_Weight >= Target_Weight
THEN
Filling = OFF
Weight_OK = TRUE
END_IF
Temperature Interlock
قبل از Sealing:
IF
Temperature_1_OK
AND
Temperature_2_OK
AND
Weight_OK
AND
Film_Position_OK
THEN
Allow_Sealing = TRUE
END_IF
در غیر این صورت:
Allow_Sealing = FALSE
Sealing Sequence
ترتیب نمونه:
Film Stop
↓
Weight Complete
↓
Temperature OK
↓
Vertical Seal
↓
Horizontal Seal
↓
Cylinder Feedback
↓
Release
Cutting Sequence
بعد از تأیید دوخت:
Seal Complete
│
▼
Cutter ON
│
▼
Cutter Home / End Sensor
│
▼
Cutter OFF
│
▼
Cycle Complete
Cycle Complete
در پایان Cycle:
Cycle Complete
│
▼
Production Counter +1
│
▼
Return to FILM FEED
بنابراین ماشین دوباره وارد Cycle بعدی میشود.
ساختار کامل Cycle
START
│
▼
SAFETY CHECK
│
▼
SERVO ON
│
▼
HOMING
│
▼
MACHINE READY
│
▼
FILM FEED
│
▼
POSITION OK
│
▼
FILLING
│
▼
WEIGHT OK
│
▼
TEMPERATURE OK
│
▼
SEALING
│
▼
CUTTING
│
▼
CYCLE COMPLETE
│
▼
NEXT CYCLE
HMI پروژه
HMI باید وضعیت ماشین را برای اپراتور قابل فهم کند.
صفحه اصلی:
┌──────────────────────────────┐
│ PACKING MACHINE │
│ │
│ Machine RUN │
│ Servo READY │
│ Home DONE │
│ │
│ Weight 100.0 g │
│ Bag Length 120 mm │
│ Temperature 152 °C │
│ │
│ [ START ] [ STOP ] │
└──────────────────────────────┘
صفحه Servo
SERVO STATUS
Servo Enable ON
Servo Ready ON
Servo Alarm OFF
Servo Busy OFF
Home Complete ON
Current Position
Target Position
Speed
Acceleration
Deceleration
اپراتور میتواند وضعیت محور را بدون ورود به برنامه PLC مشاهده کند.
صفحه Manual
در Manual Mode میتوان برای سرویس و Commissioning کنترلهای جداگانه قرار داد:
Servo Forward
Servo Reverse
Film Feed
Filling Valve
Vertical Seal
Horizontal Seal
Cutter
اما Manual Mode باید همچنان محدودیتهای Safety و Interlock را رعایت کند.
Manual Mode نباید به معنی حذف Safety باشد.
صفحه Recipe
برای مثال:
Recipe 01
Product Weight = 100 g
Bag Length = 120 mm
Seal Temp = 150 °C
Servo Speed = 40 %
و:
Recipe 02
Product Weight = 250 g
Bag Length = 180 mm
Seal Temp = 155 °C
Servo Speed = 35 %
مقادیر بالا صرفاً نمونه هستند و در ماشین واقعی باید براساس محصول و تست فرآیند تعیین شوند.
صفحه Alarm
Alarmهای پیشنهادی:
Servo Alarm
Servo Not Ready
Homing Timeout
Motion Timeout
Film Sensor Error
Loadcell Error
Temperature Low
Temperature High
Cylinder Not Home
Cutter Error
Door Open
Emergency Active
Air Pressure Low
برای هر Alarm بهتر است علاوه بر نمایش پیام، یک Code نیز تعریف شود.
مثلاً:
A001 = Servo Alarm
A002 = Servo Not Ready
A003 = Homing Timeout
A004 = Loadcell Error
A005 = Temperature Error
A006 = Cutter Error
ساختار برنامه PLC
برنامه را میتوان به بخشهای منطقی تقسیم کرد:
MAIN
│
├── Safety
│
├── Machine State
│
├── Servo Control
│
├── Homing
│
├── Film Position
│
├── Loadcell
│
├── Temperature
│
├── Pneumatic
│
├── HMI
│
├── Alarm
│
└── Production Counter
این ساختار برای پروژههای بزرگتر نیز قابل توسعه است.
ISPSoft و WPLSoft
در پروژههای Delta باید یک نکته مهم را در نظر گرفت: نرمافزار برنامهنویسی به سری PLC وابسته است.
بنابراین نباید در یک مقاله عمومی گفت که تمام PLCهای Delta را میتوان با ISPSoft و WPLSoft به یک شکل برنامهریزی کرد.
برای نمونه، مستندات رسمی Delta برای سری DVP-ES3/EX3/SV3/SX3 مجموعه دستورات و محیط برنامهنویسی مربوط به همان سری را مشخص میکنند.
بنابراین هنگام نوشتن برنامه واقعی:
PLC Model
↓
Firmware
↓
Programming Software
↓
Instruction Set
↓
Pulse Output Capability
باید همه با یکدیگر تطبیق داده شوند.
نمونه منطق برنامه برای Servo
نمونه زیر Pseudo Code است و syntax نهایی Ladder/ST باید براساس PLC واقعی نوشته شود:
IF START
AND Safety_OK
AND Servo_Ready
AND NOT Servo_Alarm
THEN
Machine_Run := TRUE;
END_IF;
سپس:
IF Machine_Run
AND NOT Home_Complete
THEN
State := HOMING;
END_IF;
بعد:
IF Home_Complete
THEN
State := FILM_FEED;
END_IF;
و:
IF State = FILM_FEED
AND NOT Servo_Busy
THEN
Execute_Relative_Move := TRUE;
END_IF;
پس از پایان حرکت:
IF Motion_Complete
THEN
State := FILLING;
END_IF;
چرا از State Machine استفاده کنیم؟
بدون State Machine ممکن است برنامه به شکل زیر شود:
IF Start ...
IF Sensor ...
IF Servo ...
IF Weight ...
IF Temperature ...
IF Cylinder ...
IF Cutter ...
IF Stop ...
IF Alarm ...
و با بزرگترشدن ماشین، پیدا کردن خطا دشوار شود.
اما با State Machine:
STATE 40 = Film Feed
STATE 60 = Filling
STATE 80 = Sealing
STATE 90 = Cutting
مشخص است ماشین دقیقاً در کدام مرحله قرار دارد.
محاسبه سرعت و Pulse Frequency
فرمول عمومی:
F = RPM × PPR / 60
یا:
RPM = F × 60 / PPR
مثلاً:
PPR = 10,000
RPM = 300
بنابراین:
F = 300 × 10,000 / 60
= 50,000 Hz
پس فرکانس Pulse برابر:
50 kHz
خواهد بود.
این محاسبه فقط زمانی معتبر است که PPR مورد استفاده واقعاً همان تعداد Pulse command موردنظر در سیستم باشد و Electronic Gear یا نسبت مکانیکی دیگری بین PLC و موتور رابطه را تغییر نداده باشد.
محاسبه طول فیلم
اگر:
Roll Diameter = 50 mm
باشد:
Circumference = π × 50
≈ 157.08 mm
اگر:
10,000 pulses = 1 revolution
آنگاه:
Pulse/mm ≈ 63.66
برای:
120 mm
داریم:
120 × 63.66
≈ 7,639 pulses
این محاسبه پایه است و برای طراحی صنعتی نهایی باید با انتقال مکانیکی و تنظیمات Servo Drive تطبیق داده شود.
خطای رایج: اشتباه گرفتن Pulse و RPM
Pulse بهتنهایی به معنی RPM نیست.
رابطه بین آنها به Resolution یا Pulse/Rev بستگی دارد.
مثلاً:
10,000 pulse/rev
با:
5,000 pulse/rev
در یک فرکانس یکسان، RPM متفاوتی ایجاد میکند.
بنابراین هنگام طراحی باید همیشه بدانیم:
Pulse Frequency
Pulse/Rev
Electronic Gear
Mechanical Gear Ratio
چه مقادیری دارند.
خطای رایج: انتخاب اشتباه خروجی PLC
برای High-Speed Pulse باید مشخصات خروجی PLC بررسی شود.
خروجی Relay برای تولید پالسهای سریع مناسب نیست.
بنابراین:
PLC Transistor Output
↓
High Speed Pulse
↓
Servo Drive
معماری موردنظر است.
اما شماره دقیق خروجی Pulse، فرکانس قابل پشتیبانی و قابلیت محور باید از Manual همان PLC تأیید شود.
خطای رایج: شروع حرکت قبل از Homing
اگر سیستم Position را نمیداند:
Absolute Position
ممکن است با موقعیت واقعی ماشین هماهنگ نباشد.
بنابراین در بسیاری از ماشینها:
Power ON
↓
Servo ON
↓
Homing
↓
Production
ترتیب منطقیتری است.
خطای رایج: نادیده گرفتن Servo Alarm
این ساختار اشتباه است:
Start
↓
Move Servo
ساختار بهتر:
Start
↓
Safety OK
↓
Servo Ready
↓
No Servo Alarm
↓
Home Complete
↓
Motion
خطای رایج: نبود Motion Complete
اگر PLC بلافاصله بعد از ارسال فرمان Servo وارد مرحله بعد شود، ممکن است هنوز حرکت تمام نشده باشد.
ساختار صحیح:
Motion Command
↓
Servo Busy
↓
Wait
↓
Motion Complete
↓
Next State
این یکی از مهمترین اصول برنامهنویسی Motion است.
خطای رایج: عدم هماهنگی دما و Sealing
PLC نباید صرفاً براساس زمان بگوید:
Wait 5 seconds
→ Seal
بلکه بهتر است وضعیت فرآیند نیز بررسی شود:
Temperature_OK
AND
Film_Position_OK
AND
Weight_OK
AND
Cylinder_Ready
سپس:
Seal = ON
خطای رایج: حذف Interlock در Manual Mode
Manual Mode باید برای تست و تعمیر استفاده شود، اما نباید Safety را حذف کند.
مثلاً:
Door Open
نباید صرفاً بهدلیل فعال بودن Manual Mode اجازه حرکت خطرناک را ایجاد کند.
Safety Circuit و Emergency Stop نیز نباید صرفاً به یک شرط نرمافزاری معمولی در PLC محدود شوند؛ طراحی واقعی ایمنی باید براساس معماری ایمن ماشین، تجهیزات مناسب و استانداردهای مربوط انجام شود.
Commissioning پروژه
پس از ساخت ماشین، بهتر است راهاندازی مرحلهای انجام شود.
مرحله اول
PLC بدون موتور تست شود:
Inputs
Outputs
HMI
Alarms
مرحله دوم
Servo بدون بار تست شود:
Servo ON
Direction
Speed
Homing
Position
Stop
مرحله سوم
حرکت مکانیکی با سرعت پایین تست شود.
مرحله چهارم
Film بدون محصول تست شود.
مرحله پنجم
Film با عملیات دوخت تست شود.
مرحله ششم
Loadcell و Filling فعال شوند.
مرحله هفتم
Automatic Cycle اجرا شود.
تست Servo
در اولین تست بهتر است:
Low Speed
Low Acceleration
Low Position
استفاده شود.
سپس بهتدریج افزایش داده شود.
قبل از تغییر Electronic Gear نیز باید Servo Drive خاموش یا در شرایط مجاز Manual تنظیم شود؛ Delta برای برخی سریهای Servo درباره تنظیم Electronic Gear هشدار ایمنی صریح دارد.
ساختار نهایی کنترل ماشین
در نهایت سیستم ما به شکل زیر است:
HMI
│
▼
┌────────────┐
│ DAS-14SS2 │
│ PLC │
└─────┬──────┘
│
┌─────────────────┼─────────────────┐
│ │ │
▼ ▼ ▼
Servo Motion Loadcell Temperature
│ │ │
▼ ▼ ▼
Servo Drive DAS-02LC DAS-04MTC
│
▼
Servo Motor
│
▼
Film Roller
│
▼
Packaging Film
│
├────────► Filling
│
├────────► Sealing
│
└────────► Cutting
منطق کامل پروژه در یک نگاه
POWER ON
│
▼
SAFETY CHECK
│
▼
SERVO READY
│
▼
HOMING
│
▼
MACHINE READY
│
▼
FILM FEED
│
▼
POSITION COMPLETE
│
▼
FILLING
│
▼
WEIGHT COMPLETE
│
▼
TEMPERATURE CHECK
│
▼
SEALING
│
▼
CUTTING
│
▼
PRODUCTION COUNT
│
▼
NEXT CYCLE
اگر هر خطایی اتفاق بیفتد:
Any Fault
│
▼
STOP
│
▼
ALARM
│
▼
Operator Reset
│
▼
Safety Check
نتیجهگیری
این پروژه نشان میدهد که کنترل Servo در یک ماشین صنعتی فقط به ارسال چند Pulse محدود نمیشود.
یک سیستم واقعی شامل چند لایه است:
HMI
↓
PLC
↓
Sequence
↓
Interlock
↓
Motion Command
↓
Servo Drive
↓
Servo Motor
↓
Mechanical System
و در کنار آن:
Loadcell
Temperature
Sensors
Pneumatic
Alarm
Safety
قرار دارند.
در بخش Motion، دستورات Delta مانند PLSY، DPLSY، DRVI، DDRVI، DRVA، DDRVA و ZRN/DZRN ابزارهای مهمی برای کنترل Pulse و Position هستند، اما استفاده صحیح از آنها به مدل PLC، Firmware، قابلیت خروجی Pulse و Manual همان خانواده بستگی دارد.
در طرف Servo نیز پارامترهایی مانند Position Mode، Pulse Input، Electronic Gear، Maximum Speed و Acceleration/Deceleration باید براساس مدل Servo Drive انتخاب و تنظیم شوند. Manualهای Delta برای سریهای مختلف Servo ساختارهای متفاوتی ارائه میکنند، بنابراین نباید یک تنظیم را بدون بررسی Manual به تمام Servoهای Delta تعمیم داد.
در نهایت، مهمترین قسمت چنین پروژهای ایجاد ارتباط صحیح میان Motion، Position، Sensor، Weight، Temperature و Machine Sequence است؛ زیرا یک ماشین صنعتی موفق فقط با حرکتکردن Servo کار نمیکند، بلکه تمام اجزای آن باید در زمان و شرایط درست با یکدیگر هماهنگ شوند.
سوالات متداول
آیا برای ماشین بستهبندی حتماً Servo لازم است؟
خیر. بسته به دقت موردنیاز، سرعت، مکانیزم و هزینه میتوان از روشهای مختلف استفاده کرد؛ اما Servo برای کاربردهایی که Positioning دقیق، سرعت متغیر و کنترل حرکت موردنیاز است گزینهای رایج است.
آیا میتوان فیلم را فقط با PLSY کنترل کرد؟
در PLCهای سازگار بله، PLSY میتواند برای Pulse Output استفاده شود؛ اما انتخاب دستور مناسب به نوع حرکت، Positioning، سرعت و قابلیت PLC بستگی دارد.
تفاوت DRVI و DRVA چیست؟
بهصورت مفهومی:
DRVI / DDRVI
= Relative Position
DRVA / DDRVA
= Absolute Position
یعنی Relative نسبت به موقعیت فعلی حرکت میکند و Absolute به یک موقعیت مشخص فرمان میدهد.
Homing چرا لازم است؟
برای مشخصکردن Reference Position محور و هماهنگکردن موقعیت نرمافزاری با موقعیت مکانیکی.
Loadcell چه نقشی دارد؟
Loadcell مقدار وزن را اندازهگیری میکند و در این پروژه میتواند برای کنترل مقدار محصول داخل بسته استفاده شود.
آیا میتوان این پروژه را با ISPSoft و WPLSoft پیادهسازی کرد؟
دستورها و قابلیتهای دقیق به مدل PLC، نسخه نرمافزار و Firmware بستگی دارد. خانواده DVP دلتا شامل دستورهای Positioning مانند DRVI، DDRVI، DRVA، DDRVA و ZRN است، اما قبل از اجرای پروژه باید Manual مدل دقیق PLC بررسی شو
DAS-04MTC در این پروژه چه کاری انجام میدهد؟
برای دریافت و کنترل کانالهای دما و مدیریت فرآیندهای حرارتی مانند فکهای دوخت استفاده میشود.
آیا میتوان همه این موارد را با یک PLC کنترل کرد؟
در پروژههای واقعی باید ظرفیت I/O، High-Speed Pulse، Communication، Memory، Processing و قابلیتهای Motion PLC بررسی شود. در صورت نیاز میتوان از Expansion و ارتباطات صنعتی استفاده کرد.
آیا ISPSoft و WPLSoft برای تمام PLCهای Delta یکسان هستند؟
خیر. نرمافزار و Instruction Set به خانواده PLC وابسته است و باید Manual مدل دقیق بررسی شود.
آیا میتوان طول بسته را از HMI تغییر داد؟
بله. PLC میتواند مقدار Length دریافتشده از HMI را به تعداد پالس تبدیل کند و فرمان Motion جدید ایجاد کند.
آیا میتوان این پروژه را به چند محصول مختلف توسعه داد؟
بله. با استفاده از Recipe میتوان پارامترهایی مانند وزن، طول بسته، سرعت Servo و دمای دوخت را برای محصولات مختلف ذخیره کرد.

