نحوه ارتباط انکودر به PLC FATEK

در plc های فتک نیز همانند plc های دلتا دو نوع کانتر برای کانترهای High speed وجود دارد. یک نوع به نام software high speed counter و یک نوع به نام hardware high speed counter. در حقیقت یک نوع نرم افزاری هست و یک نوع سخت افزاری.

رجیسترهای CV و PV

در جدول زیر رجیستر CV به عنوان رجیستر مقدار فعلی کانتر است که پالس های انکودر را شمارش کرده. رجیستر PV به عنوان رجیستر رفرنس یا ست پوینت است که اگر مقدار CV=PV شود اینتراپت مربوطه انجام می شود.
در جدول زیر شماره رجیسترهای هر کانتر و همچنین آدرس ورودی های پالس های A و B انکودر مشخص شده است.

رجیسترهای CV و PV

کانترهای سخت افزاری با نام HHSC و کانترهای نرم افزاری با نام SHSC شناخته شده اند.
پایه MASK: این پایه در صورتی که فعال و ست شود شمارش کانتر متوقف می شود. با غیر فعال شدن این پایه کانتر در صورت وجود عمل شمارش را انجام خواهد داد . می توان هم برای این پایه ورودی سخت افزاری تعریف کرد و هم می توان با بیت خاص این عمل را نرم افزاری انجام دهیم .
پایه Clear: این پایه در حقیقت همان ریست کانتر است . البته می توان از طریق تابع 93 نیز کانتر را ریست کرد. اما این پایه چنانچه فعال شود رجیستر CV در حقیقت صفر می شود. هم می توان برای هر کانتر پایه سخت افزاری تعریف کرد و هم می توان از بیت های خاص هر کانتر برای ریست کردن این پایه استفاده کرد.
در ستون آخر جدول قبل شماره های اینتراپت هر کانتر مشخص شده است و به عنوان مثال اینتراپت کانتر HSC0، با نام HSC0I مشخص می شود. که در صورت فراخوانی در برنامه هنگامی که رجیستر CV=PV شود در حقیقت رجیستر R4096=R4098 عمل اینتراپت را اجرا می کند (دقت کنید هم می توان با R4096 و هم با D4096 استفاده کرد).

جدول ماکزیمم فرکانس پالس ورودی انکودر برای هر مدل PLC

جدول ماکزیمم فرکانس پالس ورودی انکودر برای هر مدل PLC

بنابراین با توجه به جدول، سرعت حرکت و روزولوشن انکودر، می بایست نوعPLC مورد نظر را انتخاب کنید. با توجه به مطالب بالا فرکانس کانترهای High speed نرم افزاری در هر plc در مجموع نباید بیشتر از 8 کیلو هرتز شود بنابراین همانطور که قبلا اشاره شد کانترهای نرم افزاری فرکانس پایین تری را پشتیبانی می کنند .و معمولا می بایست از کانترهای سخت افزاری برای اتصال انکودر استفاده کرد.

نحوه تنظیم کانتر High speed درPLC فتک

برای تنظیم کانترهای High speed می بایست وارد نرم افزار WinProladder شوید و یک پروژه تعریف کنید. سپس نوع PLC را انتخاب کنید و در ستون سمت چپ وارد بخش system configuration شوید. حالا گزینه i/o configuration را انتخاب و کلیک نمایید.

نحوه تنظیم کانتر High speed درPLC فتک

در این مرحله جدول زیر ظاهر می شود. حالا وارد سر برگ Timer/Counte شوید

سر برگ 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/B *3 : پالس های انکودر با ضریب 3 شمارش می شوند در حقیقت لبه های بالا و پایین پالسو همچنین لبه بالای پالسشمارش می شود (این حالت بیشتر در plc فتک مرسوم است).
  • حالت A/B *4 : پالس های انکودر با ضریب 4 شمارش می شوند و در حقیقت لبه های بالا و پایین هم پالس و هم پالسشمارش می شود .

این حالت ها برای دقت بیشتر پوزیشن به کار می رود. منتها دقت کنید که هر چقدر دقت بالاتر رود از ماکزیمم فرکانس شمارش کاهش خواهد شد . به این صورت که در حالت A/B *4 کمترین ماکزیمم فرکانس پالس را نسبت به حالت عادی A/B داریم اما دقت 4 برابر بیشتر خواهد بود .

A-phase : در این قسمت آدرس ورودی مورد نظر را برای اتصال پالس انکودر انتخاب می کنبم. (برای کانترهای سخت افزاری برای هر کانتر فقط یک مورد انتخاب وجود دارد).
B-phase : در این قسمت به طور اتوماتیک هنگامی که آدرس در A-phase انتخاب شود ورودی انتخاب می شود .این آدرس برای اتصال پالس انکودر است.
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 را اتخاب می کنیم.

گزینهF

سپس روی خط برنامه با موس کلیک می کنیم پنچره ذیل باز میشود. در بخش Function name عدد 92 را تایپ کرده و سپس OK می کنیم.

بخش Function name

تابع 92 به صورت ذیل ظاهر می شود

تابع 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 استفاده نمود .

استفاده کرد.

HSCTW

توضیح پایه های تابع 93
پایه
: در این پایه می توان یک مقدار عددی 32 بیتی ثابت وارد کرد یا یک رجیستر وارد کرد که می خواهیم به رجیسترCV یاPV کانترHigh Speed منتقل شود .
پایهCN : شماره HSC مورد نظر را وارد می کنیم. عدد 0 تا 3 مربوط بهHSC0 تاHSC3 است .
پایه: اگر عدد صفر وارد کنیم مقدار در رجیستر CV منتقل می شود و اگر عدد 1 وارد کنیم مقداردر رجیسترPV منتقل می شود .

در ادامه با چندین مثال کاربرد این توابع را بهتر درک خواهید کرد.

مثال 1: یک انکودر با رزولوشن 2500 پالس را به یک محور طولی متصل نموده ایم . پالس های این انکودر را به یک PLC FATEK FBS-20MC متصل کردیم . اگر به ازاء هر 1000 پالس یک میلیمتر حرکت داشته باشیم . مطلوبست محاسبه موارد ذیل:
1)سرعت خطی محور برحسب mm/s ) میلیمتر بر ثانیه
2) پوزیشن محور بر حسب میلیمتر
( پالس انکودر به ورودی X0 و پالس انکودر به ورودی 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 قرار میدهیم برای دقت بیشتر).

بخش i/o configuration

سپس در برنامه اصلی تابع 92 را فراخوانی می نماییم:

تابع 92 را فراخوانی می نماییم

سپس برای محاسبه پوزیشن رجیستر R4096 را طبق آنچه توضیح داده شد تقسیم بر عدد 4000 میکنیم و حاصل که برابر پوزیشن محور بر حسب میلیمتر است را در رجیستر R20 منتقل میکنیم :

رجیستر R20

ادامه حل مثال 1:
برای محاسبه سرعت در برنامه اصلی رجیستر R14 ( که در اینتراپت زمانی محاسبه میشود و طبق توضیحات قبلی تعداد پالس ها با ضریب 4 در فاصله زمانی 100 میلی ثانیه می باشد ) را در عدد 10 ضرب میکنیم و سپس بر 4 تقسیم میکنیم تا فرکانس پالس های انکودر را داشته باشیم .(R40 ) و اگر بر ضریب پالس برای ملیمتر تقسیم کنیم ( هر 1000 پالس معادل یک میلیمتر می باشد ) سرعت خطی محور را بر حسب میلیمتر بر ثانیه خواهیم داشت (R50).

محاسبه سرعت در برنامه اصلی رجیستر فرکانس پالس های انکودر

 

حال در بخش Sub_program برنامه اینتراپت زمانی را می نویسیم

برنامه اینتراپت زمانی

ادامه حل مثال 1:

در بخشsub _unit1 (می توانید نامش را به دلخواه تغییر دهید) برنامه زیر نوشته می شود:

بخشsub _unit1

ادامه حل برنامه

ادامه حل مثال 1:
در برنامه بالا از تابع جمع به عنوان کانتر استفاده نمودیم و مقدار کانتر را در R100 در نظر گرفته ایم . دقت کنید که حتما در ابتدا باید نام اینتراپت ( 100MSI ) برای اینتراپت سایکل زمانی 100 میلی ثانیه آورده شود و انتهای لیبل حتما دستور RTI استفاده شود .برای ریست کردن کانتر High speed میتوانید از بیت M1941 برای کانترHSC0 استفاده نمایید.

بیت M1941

مثال 2 : یک انکودر با رزولوشن 1000 به یک موتور متصل شده است .پالس های انکودر را به یک plc فتک با مدل Fbs 40_MC متصل کرده ایم . این موتور یک رول لفاف را به سمت جلو هدایت میکند . میخواهیم این لفاف را به اندازه های متفاوت که اپراتور از روی HMI بر حسب سانتی متر تعیین میکند (R40 ) برش دهیم . یک کاتر در قسمت جلو دستگاه طبق شکل قرار داده ایم میخواهیم هنگامی که به اندازه مورد نظر رسید کاتر به مدت 300 میلی ثانیه فعال شود و لفاف را برش دهد .
( پالس را به ورودی X0 و پالس را به ورودی X1 متصل کرده ایم و در حالت نرمال A/B پالس ها را شمارش میکنیم . به ازاء هر 500 پالس معادل یک میلیمتر از لفاف حرکت می کند).
خروجی Y0 برای فعال شدن موتور ، ورودی X4 به عنوان پوش باتن استارت ،X5 به عنوان ورودی استپ دستگاه ، خروجی Y1 برای شیر برقی کاتر در نظر گرفته شده است.

انکودر با رزولوشن 1000

حل مثال 2:

ابتدا کانتر HSC0 را تنظیم می کنیم (در حالت A/B با ضریب یک تنظیم میکنیم اگر دقت بیشتر خواستید میتوانید با ضریب 4 تنظیم کنید).

کانتر HSC0 را تنظیم می کنیم

ادامه حل مثال 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 به صورت ذیل نوشته میشود:

Main _ program حل مثال 2

 

ادامه حل مثال 2 :
در قسمت Sub _ program در بخش Sub_ unit1 برنامه اینتراپت HSC0I را به صورت ذیل مینویسیم :

Sub_ unit1

در برنامه اینتراپت ، ابتدا خروجی کاتر را فعال میکنیم و سپس کانتر HSC0 را با استفاده از تابع 93 ریست می نماییم .

در صورت تمایل به یادگیری تخصصی و حرفه‌ای پی ال سی های فتک، حتما از آموزش PLC فتک نیک صنعت استفاده کنید.

 

راه‌های ارتباطی نیک صنعت:

  • تماس با نیک صنعت: 021:87700210
  • واحد فروش نیک صنعت: 09197872783
  • واحد تعمیرات نیک صنعت: 09197872789
  • ایمیل نیک صنعت: info@nicsanat.com
  • آدرس شرکت: تهران، خیابان بهشتی، خیابان میرعماد، کوچه پیمانی(یازدهم)، پلاک 17