اتصال انکودر به PLC فتک
نحوه ارتباط انکودر به PLC FATEK در plc های فتک نیز همانند plc های دلتا دو نوع کانتر برای کانترهای […]
نحوه ارتباط انکودر به PLC FATEK
در plc های فتک نیز همانند plc های دلتا دو نوع کانتر برای کانترهای High speed وجود دارد. یک نوع به نام software high speed counter و یک نوع به نام hardware high speed counter. در حقیقت یک نوع نرمافزاری هست و یک نوع سختافزاری میباشد.
رجیسترهای CV و PV
در جدول زیر رجیستر CV به عنوان رجیستر مقدار فعلی کانتر است که پالسهای انکودر را شمارش کرده. رجیستر PV به عنوان رجیستر رفرنس یا ست پوینت است که اگر مقدار CV=PV شود اینتراپت مربوطه انجام میشود.
در جدول زیر شماره رجیسترهای هر کانتر و همچنین آدرس ورودیهای پالسهای A و B انکودر مشخص شده است.
کانترهای سختافزاری با نام HHSC و کانترهای نرمافزاری با نام SHSC شناخته شدهاند.
پایه MASK: این پایه در صورتی که فعال و ست شود شمارش کانتر متوقف میشود. با غیر فعال شدن این پایه کانتر در صورت وجود عمل شمارش را انجام خواهد داد. میتوان هم برای این پایه ورودی سختافزاری تعریف کرد و هم میتوان با بیت خاص این عمل را نرمافزاری انجام دهیم.
پایه Clear: این پایه در حقیقت همان ریست کانتر است. البته میتوان از طریق تابع 93 نیز کانتر را ریست کرد. اما این پایه چنانچه فعال شود رجیستر CV در حقیقت صفر میشود. هم میتوان برای هر کانتر پایه سختافزاری تعریف کرد و هم میتوان از بیتهای خاص هر کانتر برای ریست کردن این پایه استفاده کرد.
در ستون آخر جدول قبل شمارههای اینتراپت هر کانتر مشخص شده است و به عنوان مثال اینتراپت کانتر HSC0، با نام HSC0I مشخص میشود. که در صورت فراخوانی در برنامه هنگامی که رجیستر CV=PV شود در حقیقت رجیستر R4096=R4098 عمل اینتراپت را اجرا میکند (دقت کنید هم می توان با R4096 و هم با D4096 استفاده کرد).
جدول ماکزیمم فرکانس پالس ورودی انکودر برای هر مدل PLC
بنابراین با توجه به جدول، سرعت حرکت و روزولوشن انکودر، میبایست نوعPLC مورد نظر را انتخاب کنید. با توجه به مطالب بالا فرکانس کانترهای High speed نرمافزاری در هرplc در مجموع نباید بیشتر از 8 کیلو هرتز شود بنابراین همانطور که قبلا اشاره شد کانترهای نرمافزاری فرکانس پایین تری را پشتیبانی میکنند. معمولا میبایست از کانترهای سختافزاری برای اتصال انکودر استفاده کرد.
نحوه تنظیم کانتر High speed درPLC فتک
برای تنظیم کانترهای High speed میبایست وارد نرمافزار WinProladder شوید و یک پروژه تعریف کنید. سپس نوع PLC را انتخاب کنید و در ستون سمت چپ وارد بخش system configuration شوید. حالا گزینه i/o configuration را انتخاب و کلیک نمایید.
در این مرحله جدول زیر ظاهر میشود. حالا وارد سر برگ Timer/Counte شوید.
HSC0 تا HSC مربوط به کانترهای High spee سختافزاری هستند. HSC4 تا HSC7 مربوط به کانترهای High speed نرمافزاری است. همانطور که پیشتر اشاره شد به دلیل فرکانس بالا ما معمولا انکودر را به کانترهای سختافزاری متصل میکنیم. برای نمونه کانتر HSC0 را انتخاب مینماییم. موارد مهم جدول بالا در ذیل توضیح داده شده است.
Counter Type:در این قسمت عنوانHardware Counter را انتخاب میکنیم.
Counting Mode: در این قسمت چنانچه برای انکودر بخواهیم انتخاب کنیم، مد هایی کهA/B را دارند انتخاب میکنیم. که در اینplc چهار مد میتوان برای حالت اتصال انکودر با پالسهای A و B انتخاب کرد.
- حالت A/B : پالسهای انکودر به صورت معمول و با ضریب 1 شمارش میشود .
- حالت A/B *2 : پالسهای انکودر با ضریب 2 شمارش میشوند و در حقیقت لبههای بالا و پایین پالس A شمارش میشود.
- حالت A/B *3 : پالسهای انکودر با ضریب 3 شمارش میشوند در حقیقت لبههای بالا و پایین پالسA و همچنین لبه بالای پالسB شمارش میشود (این حالت بیشتر در plc فتک مرسوم است).
- حالت A/B *4 : پالسهای انکودر با ضریب 4 شمارش میشوند و در حقیقت لبههای بالا و پایین هم پالس A و هم پالسB شمارش میشود.
این حالتها برای دقت بیشتر پوزیشن به کار میرود. منتهی دقت کنید که هر چقدر دقت بالاتر رود از ماکزیمم فرکانس شمارش کاهش خواهد شد. به این صورت که در حالت A/B *4 کمترین ماکزیمم فرکانس پالس را نسبت به حالت عادی A/B داریم اما دقت 4 برابر بیشتر خواهد بود.
A-phase : در این قسمت آدرس ورودی مورد نظر را برای اتصال پالس A انکودر انتخاب میکنیم. (برای کانترهای سخت افزاری برای هر کانتر فقط یک مورد انتخاب وجود دارد).
B-phase : در این قسمت به طور اتوماتیک هنگامی که آدرس در A-phase انتخاب شود ورودی انتخاب میشود. این آدرس برای اتصال پالس B انکودر است.
Mask(MSK) : در صورت تمایل میتوانید یک ورودی سختافزاری برای Mask در نظر بگیرید به طوریکه اگر ورودی فعال شود عمل شمارش متوقف شود و اگر غیر فعال شود عمل شمارش ادامه خواهد داشت.
Clear (CLR): در صورت تمایل میتوانید یک ورودی سختافزاری برای ریست انکودر در نظر بگیرید به طوریکه اگر ورودی مورد نظر فعال شود رجیستر CV کانتر مورد نظر صفر میشود. همچنین میتوانید از بیت نرمافزاری مخصوص این کانتر نیز که طبق جدول ارائه شده است برای ریست استفاده کنید. همچنین میتوانید از تابع 93 استفاده کنید.
Mask signal : در صورتی که روی حالت Normal باشد ورودی با یک شدن فعال و با صفر شدن غیر فعال میشود. اما چنانچه روی حالت Inverse باشد ورودی با صفر شدن فعال و با یک شدن غیر فعال میشوند.
Clear signal : در صورتی که روی حالت Normal باشد ورودی با یک شدن فعال و با صفر شدن غیر فعال میشود. اما چنانچه روی حالت Inverse باشد ورودی با صفر شدن فعال و با یک شدن غیر فعال میشود.
Counter signal : در صورتی که روی حالت Normal باشد اگر انکودر راستگرد بچرخد کانتر افزایشی و اگر چپ گرد بچرخرد کانتر کاهشی است. اما چنانچه روی حالت Inverse باشد اگر انکودر راستگرد بچرخد کاهشی و اگر چپ گرد بچرخد افزایشی است.
HSCs Data Length : روی حالت 32 بیت قرار میدهیم. تا کانتر 32 بیتی باشد.
پس از تنظیم انکودر و انتخاب نوع کانتر و ورودی های مورد نظر در این قسمت میبایست تابع انکودر را در برنامه فراخوانی و Enable کنیم تا بتوانیم از رجیسترهای کانتر استفاده کنیم. برای این منظور از تابع 92 با نام HSCTR استفاده میکنیم.
برای تغییر در مقادیر رجیسترهایCV وPV در هر کانتر میبایست از تابع 93 با نام HSCTW استفاده کرد.
برای فراخوانی تابع 92 در برنامه به صورت ذیل عمل می کنیم و گزینهF را اتخاب میکنیم.
سپس روی خط برنامه با موس کلیک میکنیم پنچره ذیل باز میشود. در بخش Function name عدد 92 را تایپ کرده و سپس OK میکنیم.
تابع 92 به صورت ذیل ظاهر میشود.
در بخشCN شماره کانترHigh speed سختافزاری را وارد میکنیم (عدد صفر تا 3 مربوط به کانترهای اول تا چهارم است). دقت کنید برای کانترهای نرمافزاری احتیاجی به فراخوانی تابعای نیست و میبایست فقط تنظیم درI/O configuration انجام شود و مقدار شمارش در رجیسترهای مربوط به SHSC مربوطه قرار دارد و میتوان فقط آن رجیسترها را در برنامه فرخوانی کرد. میتوان از تابع93 به نامHSCTW برای مقدار دهی به رجیسترهایCV یاPV هر کانتردر بخش CN شماره کانتر High speed سختافزاری را وارد مینماییم ( عدد صفر تا 3 مربوط به کانترهای اول تا چهارم می باشد)
(دقت کنید برای کانترهای نرمافزاری احتیاجی به فراخوانی تابع ای نیست و میبایست فقط تنظیم در I/O configuration انجام شود و مقدار شمارش در رجیسترهای مربوط به SHSC مربوطه قرار دارد و میتوان فقط آن رجیسترها را در برنامه فرخوانی نمود)
از تابع 93 به نام HSCTW برای مقداردهی به رجیسترهای CV یا PV هر کانتر High Speed استفاده نمود .
توضیح پایههای تابع 93
پایهS : در این پایه میتوان یک مقدار عددی 32 بیتی ثابت وارد کرد یا یک رجیستر وارد کرد که میخواهیم به رجیسترCV یاPV کانترHigh Speed منتقل شود.
پایهCN : شمارهHSC مورد نظر را وارد میکنیم. عدد 0 تا 3 مربوط بهHSC0 تاHSC3 است .
پایهD : اگر عدد صفر وارد کنیم مقدار S در رجیستر CV منتقل میشود و اگر عدد 1 وارد کنیم مقدارS در رجیسترPV منتقل میشود.
در ادامه با چندین مثال کاربرد این توابع را بهتر درک خواهید کرد.
مثال 1
یک انکودر با رزولوشن 2500 پالس را به یک محور طولی متصل نمودهایم. پالسهای این انکودر را به یکPLC FATEK FBS-20MC متصل کردیم. اگر به ازاء هر 1000 پالس یک میلیمتر حرکت داشته باشیم. مطلوبست محاسبه موارد ذیل:
1) سرعت خطی محور برحسب) mm/s ) میلیمتر بر ثانیه
2) پوزیشن محور بر حسب میلیمتر
( پالسA انکودر به ورودی X0 و پالس B انکودر به ورودی X1 متصل شده است)
حل مثال 1:
نحوه محاسبه فرکانس و سرعت خطی:
چون هم پوزیشن و هم سرعت را میخواهیم همانند مثالی که در مبحث دلتا مطرح کردیم. میبایست از کانتر High Speed سختافزاری استفاده نمایید. برای اینکه دقت بیشتری داشته باشیم از اینتراپت زمانی 100 میلیثانیه استفاده میکنیم و داخل اینتراپت زمانی که هر 100 میلیثانیه اجرا میشود از یک کانتر ساده استفاده میکنیم و اگر کانتر برابر یک باشد مقدار رجیستر CV مربوط به کانتر HSC0 یعنی رجیستر R4096 را داخل رجیستر دلخواه به عنوان مثال R10 منتقل میکنیم و در اینتراپت بعدی یعنی 100 میلیثانیه بعدی کانتر برابر 2 میشود و اینبار رجیستر R4096 را در رجیستر بعدی R12 منتقل میکنیم. حال اگر اختلاف این دو رجیستر را در رجیستر R14منتقل کنیم. همواره تعداد پالسهای انکودر را در مدت زمان 100 میلیثانیه داریم (برای دقت بیشتر در حالت A/B*4 قرار میدهیم و تعدادپالسها با ضریب 4 خوانده میشود).حال اگر این رجیستر را در عدد 10 ضرب کنیم و تقسیم بر4 ( به جهت ضریب 4 ) کنیم. فرکانس پالس انکودر را داریم ( R40 ). حال اگر فرکانس را تقسیم برضریب میلیمتر کنیم ( هر 1000 پالس معادل 1 میلیمتر است)، سرعت خطی را بر حسب میلیمتر بر ثانیه خواهیم داشت. (R50)
نحوه محاسبه پوزیشن:
پس از فراخوانی تابع 92 در برنامه اصلی کافیه رجیستر CV مربوط به کانتر HSC0 یعنی رجیستر R4096 را ابتدا بر عدد 4 تقسیم کرده (چون با ضریب 4 پالس ها خوانده میشود) سپس بر ضریب میلیمتر تقسیم کنیم (هر 1000 پالس برابر یک میلیمتر میباشد). حاصل برابر پوزیشن محور بر حسب میلیمتر میباشد. (میتوانیم یکباره رجیستر R4096 را تقسیم بر عدد 4000 کنیم).
R4096 ÷ 4000= R20 ( position mm)
در PLC FATEK اینتراپت زمانی 100ms با نام 100MSI میباشد که اینتراپت ها را در بخش Sub _ programe نوشته میشود. انتهای هر اینتراپت میبایست دستور RTI حتما نوشته شود.
ادامه حل مثال 1:
برای نوشتن برنامه ابتدا در بخشi/o configuration کانتر HSC0 را تنظیم مینماییم (در حالت A/B*4 قرار میدهیم برای دقت بیشتر).
سپس در برنامه اصلی تابع 92 را فراخوانی مینماییم.
سپس برای محاسبه پوزیشن رجیستر R4096 را طبق آنچه توضیح داده شد تقسیم بر عدد 4000 میکنیم و حاصل که برابر پوزیشن محور بر حسب میلیمتر است را در رجیستر R20 منتقل میکنیم.
ادامه حل مثال 1:
برای محاسبه سرعت در برنامه اصلی رجیستر R14 (که در اینتراپت زمانی محاسبه میشود و طبق توضیحات قبلی تعداد پالسها با ضریب 4 در فاصله زمانی 100 میلی ثانیه میباشد) را در عدد 10 ضرب میکنیم و سپس بر 4 تقسیم میکنیم تا فرکانس پالسهای انکودر را داشته باشیم.(R40) و اگر بر ضریب پالس برای میلیمتر تقسیم کنیم (هر 1000 پالس معادل یک میلیمتر میباشد). سرعت خطی محور را بر حسب میلیمتر بر ثانیه خواهیم داشت (R50).
حال در بخش Sub_program برنامه اینتراپت زمانی را مینویسیم.
ادامه حل مثال 1:
در بخشsub _unit1 (میتوانید نامش را به دلخواه تغییر دهید) برنامه زیر نوشته میشود.
ادامه حل مثال 1:
در برنامه بالا از تابع جمع به عنوان کانتر استفاده نمودیم و مقدار کانتر را در R100 در نظر گرفتهایم. دقت کنید که حتما در ابتدا باید نام اینتراپت ( 100MSI ) برای اینتراپت سایکل زمانی 100 میلیثانیه آورده شود و انتهای لیبل حتما دستور RTI استفاده شود. برای ریست کردن کانتر High speed میتوانید از بیت M1941 برای کانترHSC0 استفاده نمایید.
مثال 2
یک انکودر با رزولوشن 1000 به یک موتور متصل شده است. پالسهای انکودر را به یک plc فتک با مدل Fbs 40_MC متصل کردهایم. این موتور یک رول لفاف را به سمت جلو هدایت میکند. میخواهیم این لفاف را به اندازههای متفاوت که اپراتور از روی HMI بر حسب سانتی متر تعیین میکند (R40 ) برش دهیم. یک کاتر در قسمت جلو دستگاه طبق شکل قرار دادهایم میخواهیم هنگامی که به اندازه مورد نظر رسید کاتر به مدت 300 میلی ثانیه فعال شود و لفاف را برش دهد.
( پالسA را به ورودی X0 و پالسB را به ورودیX1 متصل کردهایم و در حالت نرمال A/B پالسها را شمارش میکنیم. به ازاء هر 500 پالس معادل یک میلیمتر از لفاف حرکت میکند).
خروجی Y0 برای فعال شدن موتور، ورودی X4 به عنوان پوش باتن استارت،X5 به عنوان ورودی استپ دستگاه، خروجی Y1 برای شیر برقی کاتر در نظر گرفته شده است.
حل مثال 2
ابتدا کانتر HSC0 را تنظیم میکنیم (در حالت A/B با ضریب یک تنظیم میکنیم اگر دقت بیشتر خواستید میتوانید با ضریب 4 تنظیم کنید).
ادامه حل مثال 2:
پس از تنظیم کانتر HSC0 میبایست تابع92 را در برنامه فرخوانی نمود. پس از آن مقدار رجیسترR40 را که برحسب سانتی متر هست اگر در عدد 10 ضرب کنیم برحسب میلیمتر بدست میآید و سپس در ضریب پالس برای میلیمتر ضرب میکنیم. تا میزان رفرنس هر برش تعیین شود. بنابراین پس از ضرب در عدد 10 باید در عدد 500 ضرب کنیم (بنابراین رجیستر R40 را در عدد 5000 ضرب میکنیم و حاصل را در رجیسترR50 منتقل میکنیم).
برای فعال کردن خروجی کاتر (Y1) میبایست از اینتراپت کانترHSC0 استفاده میکنیم (با نام HSC0I ). قبل از برنامه اینتراپت با استفاده از تابع93 مقدار رجیسترR50 را در رجیسترPV منتقل میکنیم. تا هنگامی که رجیستر کانترCV با مقدار رجیسترPV برابر شد اینتراپت HSC0I اجرا شود. در برنامه اینتراپت ابتدا میبایست خروجی Y1 را فعال کنیم و سپس کانتر انکودر را ریست نماییم. (برای ریست انکودر میتوان از بیتM1941 استفاده کنیم یا مقدار صفر را با استفاده از تابع93 در رجیسترCV منتقل کنیم).
از تایمرT0 نیز برای مدت زمان فعال بودن خروجی کاتر به مدت 300 میلی ثانیه استفاده میکنیم.
مدار اصلی در قسمتMain _ program به صورت ذیل نوشته میشود.
ادامه حل مثال 2:
در قسمت Sub _ program در بخش Sub_ unit1 برنامه اینتراپت HSC0I را به صورت ذیل مینویسیم.
در برنامه اینتراپت، ابتدا خروجی کاتر را فعال میکنیم و سپس کانتر HSC0 را با استفاده از تابع93 ریست مینماییم .
در صورت تمایل به یادگیری تخصصی و حرفهای پی ال سی های فتک، حتما از آموزش PLC فتک نیک صنعت استفاده کنید.
راههای ارتباطی نیک صنعت:
- تماس با نیک صنعت: 021:87700210
- واحد فروش نیک صنعت: 09197872783
- واحد تعمیرات نیک صنعت: 09197872789
- ایمیل نیک صنعت: info@nicsanat.com
- آدرس شرکت: تهران، خیابان بهشتی، خیابان میرعماد، کوچه پیمانی(یازدهم)، پلاک 17
نظرات کاربران