مقدمه
در مقالات مربوط به 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 MotorPLC موقعیت یا سرعت موردنظر را به شکل فرمان 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 gPLC میتواند مقدار وزن را بررسی کند:
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 OFFWeight Interlock
فرض کنیم:
Target = 100 gبرنامه نباید صرفاً بعد از زمان مشخص Filling را متوقف کند.
بهتر است Weight Feedback نیز بررسی شود:
IF Actual_Weight >= Target_Weight
THEN
Filling = OFF
Weight_OK = TRUE
END_IFTemperature 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 = FALSESealing Sequence
ترتیب نمونه:
Film Stop
↓
Weight Complete
↓
Temperature OK
↓
Vertical Seal
↓
Horizontal Seal
↓
Cylinder Feedback
↓
ReleaseCutting Sequence
بعد از تأیید دوخت:
Seal Complete
│
▼
Cutter ON
│
▼
Cutter Home / End Sensor
│
▼
Cutter OFF
│
▼
Cycle CompleteCycle 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 CYCLEHMI پروژه
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 و دمای دوخت را برای محصولات مختلف ذخیره کرد.

