اتصال انکودر به plc s7-1200

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

سنسور high speed

همانند جدول بالا، plcهای 1211 و 1212 در صورت اضافه کردن سیگنال برد به 2 عدد به تعداد کل انکودرها یا سنسور high speed اضافه می‌شود. اگر همه plcها سیگنال تک باشند، فرکانس 100 کیلوهرتز در برخی کانال‌ها و 30 کیلوهرتز در دیگر کانال‌ها را نیز پشتیبانی می‌کنند. اگر انکودر متصل شود، به دلیل 2 فاز بودن A و B، ماکزیمم فرکانس تا 80 کیلوهرتز در برخی کانال‌ها و 2 کیلوهرتز در دیگر کانال‌ها ساپورت می‌شود. با توجه به کاربرد آن، باید به ماکزیمم فرکانس مورد نظر توجه داشت.

مراحل اتصال انکودر به پی ال سی S7-1200

در برنامه PLC، نرم افزار TIA PORTAL مورد نظر انتخاب شود. در بخش سخت افزار (Device view) روی plc کلیک شود. در پنجره پایین سربرگ properties و زیر گروه General مطابق شکل، بخش High speed counters (HSC) انتخاب گردد.

High speed counters

کانال مورد نظر (HSC1 یا HSC2 یا …) و زیر شاخه کانال مورد نظر انتخاب شود. در تب General در HSC مورد نظر، با تیک Enable this high speed counter فعال می‌شود.

تیک Enable this high speed counter

در بخش function نوع مد کاری و موارد مربوط به آن تنظیم شود. در ادامه موارد مهم تنظیمات سخت افزاری را توضیح می‌دهیم. برای مشاوره و خرید پی ال سی S7-1200 با کارشناسان فروش ما تماس بگیرید.

بخش Type of counting (تعیین مد کاری آن)

بخش Type of counting

در این بخش نوع مد کاری طبق توضیحات زیر تعیین می‌شود.

  • Count: اگر در مد پوزیشن از انکودر یا سنسور استفاده شود، مد count انتخاب گردد.
  • Period: اگر پالس‌های انکودر یا سنسور را در یک فاصله زمانی مشخص (0.01 یا 0.1 یا 1 ثانیه در بخش frequency measuring period) شمارش شود، این مورد استفاده قرار می‌گیرد. این مد شبیه به مد فرکانس است، با این تفاوت که در فرکانس تعداد پالس، مدت زمان یک ثانیه نشان می‌دهد اما در این مد در سه بازه زمانی می‌توان این مقدار را تنظیم کرد.
  • Frequency: برای محاسبه فرکانس پالس‌های انکودر، از این مد استفاده می‌شود. با این مد Frequency همانند مد period می‌توان زمان رفرش شدن فرکانس را تنظیم کرد. تفاوت Frequency با مد period است که با تنظیم هر زمان، تعداد پالس‌های انکودر یا سنسور را در مدت یک ثانیه به ما نشان می‌دهد. که یعنی همان فرکانس منتها زمان رفرش آن متفاوت است که بنا به استفاده ما می‌تواند قابل تنظیم باشد.
  • Motion Control: برای راه اندازی محور سروو یا استپ موتور را از طریق توابع موشن و پالس خارجی اجرا می‌شود. از انکودر یا سنسور می‌توان به‌صورت close loop به‌عنوان فیدبک پوزیشن به کار می‌رود.

بخش Operation phase (تعیین نوع سیگنال)

بخش Operation phase

در این بخش نوع سیگنال مورد نظر را تعیین می‌شود:

  • Single phase: اگر یک سنسور سرعت بالا روی چرخ دنده محور تنظیم شود، در این صورت جهت شمارش را می‌توان افزاینده یا کاهنده به‌صورت نرم افزاری یا سخت افزاری (به عنوان یک ورودی دیجیتال) تعیین کرد.
  • Two phase: در این حالت دو سنسور سرعت بالا وجود دارد که یکی برای حالت افزاینده شمارش و دیگری برای حالت کاهنده شمارش استفاده می‌شود که در بخش Hardware input در زیر گروه HSC این ورودی‌ها رو می‌توان تعیین کرد. این حالت خیلی کم مورد استفاده قرار می‌گیرد.
  • A/B counter: این حالت برای اتصال انکودر است که خرجی پالس انکودر افزایشی، 24 ولت است. دو پالس A و B را به ورودی‌های دیجیتال متصل است که در این حالت تعداد پالس‌ها به‌صورت نرمال شمارش می‌شود. از پالس B به دلیل تعیین جهت گردش برای افزایشی یا کاهشی کانتر استفاده می‌شود.
  • A/B counter fourfold: این حالت هم برای اتصال انکودر است که تنها تفاوت آن، شمارش لبه‌های پایین و بالا هر دو پالس A و B انکودر است. تعداد شمارش کانتر 4 برابر مد a/b counter است؛ یعنی یک دور انکودر بزند، تعداد پالس شمارش شده در کانتر 4 برابر رزولوشن انکودر است. در این حالت دقت بسیار زیادتر است که برای محاسبه پوزیشن از این حالت استفاده می‌شود.

بخش Counting direction is specified (تعیین جهت گردش افزایشی یا کاهشی)

بخش Counting direction is specified by

این بخش اگر در مد operation phase حالت single phase انتخاب کنید، این حالت فعال می‌شود و در مابقی موارد غیر فعال است.

  • User program (internal direction control): این حالت برای تعیین جهت گردش به‌صورت افزایشی یا کاهشی برای شمارش پالس‌ها است که به‌صورت نرم افزاری از داخل برنامه و تابع مربوطه تعیین می‌شود.
  • Input (external direction control): این حالت برای تعیین جهت گردش به‌صورت افزایشی یا کاهشی برای شمارش پالس‌ها است که به‌صورت ورودی سخت افزاری تعیین می‌شود. ورودی مورد نظر در بخش hardware inputs در HSC تعیین می‌شود.

بخش Initial counting direction

این بخش برای تعیین اولیه نوع افزایشی یا کاهشی بودن کانتر شمارش (یعنی جهت حرکت) است.

بخش Initial counting direction

برای شمارش افزایشی count up و برای شمارش کاهشی count down را انتخاب می‌شود.

بخش Frequency measuring period

این بحش زمانی که در operation mode حالت period یا frequency را انتخاب شود، آن‌گاه فعال می‌گردد. سه حالت زمانی 0.01 یا 0.1 یا 1 ثانیه دارد که می‌توان هم از این قسمت تعیین کرد و هم در حین برنامه با استفاده از تابع تغییر داد.

بخش Frequency measuring period

بخش capture input

اگر بخش capture input فعال شود، در بخش hardware input یک ورودی سخت افزاری به آن می‌توان اختصاص داد. همچنین می‌توان در حالت لبه بالا یا لبه پایین یا در هر دو لبه مقدار کانتر در این حالت‌ها ثبت شود. به‌طور مثال یک حالت خاص وجود دارد که مقدار پوزیشن محور در لحظه خاص از سنسور عبور می‌کند. در حالت عادی، سرعت بالا است و شاید نتوان مقدار انکودر را در لبه بالا ورودی به‌طور دقیق ثبت کرد اما می‌توان از این حالت استفاده کرد. برای استفاده از این حالت، حتما باید تابع خاص انکودر استفاده شود.

بخش gate input

اگر قسمت gate input فعال شود، در بخش hardware input یک ورودی سخت افزاری به آن می‌توان اختصاص داد. اگر ورودی فعال شود، کانتر عمل شمارش پالس‌های انکودر را انجام می‌دهد؛ در غیر این صورت، اگر ورودی غیرفعال شود، با پالس انکودر هم عمل شمارش انجام نمی‌شود. ورودی فعال با سطج بالا، می‌توان 1 منطقی تعریف کرد و برای ورودی غیر فعال با سطح پایین یعنی صفر منطقی را اعمال کرد.  می‌توان این حالت را نرم افزاری نیز انتخاب کرد و این بخش را غیر فعال کرد.

بخش gate input

بخش Event configuration

قسمت Event configuration اینتراپت‌ها را تنظیم می‌کند که اولین بخش آن، مربوط به تنظیم شماره اینتراپتی است. اگر مقدار کانتر با مقدار رفرنس تابع انکودر یکسان باشد، برنامه به ob اینتراپت مربوطه می‌رود و Ob مربوطه را اجرا می‌کند. در حقیقت زمانی که دقیقا CV=RV شود، این اینتراپت اجرا می‌شود.

بخش Event configuration اینتراپت تابع انکودر

پس از انجام مراحل بالا، بخش event configuration را با استفاده از تابع انکودر می‌توان فعال کرد که مقدار RV یا مقدار رفرنس را داخل رجیستر آن انتقال یابد. هنگامی که کانتر به این مقدار رسید، اینتراپت مربوطه (شکل ob40) را اجرا می‌کند که می‌توان برنامه مورد نظر را در ob40 نوشته شود. در ادامه تابعی را مثال می‌زنیم که بتوان چندین رفرنس را فقط با یک ob اینتراپتی اجرا کرد.

بخش Hardware input

در این بخش Hardware input آدرس ورودی‌های سخت افزاری هر بخش را با توجه به فعال کردن بخش‌های مختلف قبلی می‌توان وارد کرد. به عنوان مثال، اگر کانتر را به‌صورت دو فاز A و B انتخاب شود و بخش Gate hardware و Capture فعال باشد، می‌توان مطابق شکل زیر، آدرس ورودی‌های مورد نظر را وارد کرد.

بخش Hardware input

بخش I/O addresses

در قسمت I/O addresses آدرس یک double word باید وارد شود که مقدار کانتر انکودر در آن ریخته شود. اگر تابع انکودر استفاده نشود، در صورت فعال کردن hsc، مقدار کانتر به این ورودی، به‌طور پیش فرض در ID1000 ریخته می‌شود. (cv= ID1000) برایفر کردن کانتر باید حتما از تابع انکودر استفاده شود. (در بخش start address آدرس شروع اولین بایت داده می‌شود و در بخش end address آدرس بایت آخر به‌طور اتومات نوشته می‌شود که جمعا 4 بایت است (چون یک double word است). اگر با خطا مواجه شدسد می‌توانید برای عیب یابی و تعمیر پی ال سی S7-1200 اقدام نمایید.

بخش I/O addresses

بخش Hardware identifier

قسمت Hardware identifier مربوط به آدرس سخت افزاری است که به عنوان شماره خاص برای این کانتر در نظر گرفته می‌شود. این قسمت باید در تابع انکودر از آن استفاده کرد که این بخش تنظیمی نیست و فقط نمایشی است.

بخش Hardware identifier

پس از تنظیمات بخش سخت افزاری می‌توان وارد برنامه نویسی شد و با توجه به کاربرد مورد نظر و مد انتخابی، تابع انکودر را استفاده کرد. در plc S7-1200 دو تابع انکودر وجود دارد که یک تابع خاص محسوب می‌شود اما تابع دیگری عمومی است. اگر از تمامی قابلیت‌های ورودی‌های مختلف به خصوص capture استفاده شود؛ باید از تابع خاص و کلی استفاده کرد. اکثر مواقع از تابع عمومی استفاده می‌شود و ابتدا تابع عمومی را توضیح می‌دهیم.

استفاده از تابع CTRL_HSC برای توابع عمومی

کاربر وارد بخش برنامه نویسی شود و در ob1 یا fc از سمت راست ستون Technology، پوشه counting و از زیر پوشه others، تابع CTRL_HSC را انتخاب نماید و آن را وارد نتورک برنامه کند. یک دیتا بلاک برای تابع انتخاب شود یا به‌طور اتومات یک DB برای تابع انتخاب شود.

استفاده از تابع CTRL_HSC

در ادامه پایه‌های تابع CTRL_HSC را توضیح می‌دهیم.

پایه HSC
  • پایه HSC: دراین پایه شماره HSC مورد نظر را در بخش hardware وارد شود که همان کد Hardware identifier است.
  • پایه DIR: این پایه مربوط به مد تک سیگنال است و می‌توان با این پایه، جهت کانتر (افزایشی یا کاهشی) را به‌صورت نرم افزاری تعیین و انتخاب کرد. این پایه برای فعال کردن جهت جدید استفاده می‌شود؛ یک ورودی از بیت می‌گیرد و اگر این ورودی فعال شود، مقدار جهت جدید مطابق با پایه NEW_DIR داده می‌شود. اگر این پایه برای تغییر افزایشی یا کاهشی کانتر انتخاب شود، می‌توان این پایه را یک داد و عدد NEW_DIR را تغییر داد.
  • پایه CV: این پایه برای انتقال مقدار جدید کانتر است. اگر این پایه فعال شود، هر مقدار که در پایه NEW_CV است به مقدار CV منتقل می‌شود (در این مثال رجیستر ID1000 تنظیم شده است). از این پایه می‌توان برای صفر کردن مقدار کانتر انکودر استفاده کرد. در این پایه یک بیت مثلا M10.0 آدرس دهی شود. سپس مقدار صفر به پایه NEW_CV داده شود و با فعال کردن M10.0، مقدار صفر در رجیستر کانتر انکودر (CV) یا همان آدرس سخت افزاری به‌طور پیش فرض ID1000 ریخته می‌شود. می‌توان به جای M10.0 ورودی یک سنسور سخت افزاری مثلا I1.0 داده شود که این سنسور نقطه شروع حرکت محور باشد. در ادامه حالت Homing را اجرا کند و هنگامی که محور حرکت به این سنسور برسد، مقدار کانتر انکور صفر می‌شود.
  • پایه RV: این پایه برای فعال کردن انتقال مقدار NEW_RV به رجیستر RV (رفرنس) است. اگر مقدار فعلی کانتر انکودر (CV) با مقدار رجیستر رفرنس (RV) برابر شود، برنامه اینتراپت بخورد و OB مربوط به اینتراپت اجرا می‌شود. اگر مقادیر مختلفی را داخل رفرنس قرار داده شود، می‌توان پایه RV در این تابع را یک بیت آدرس دهی کرد. به عنوان مثال M10.1، با فعال شدن این پایه مقدار رجیستر NEW_RV به رجیستر RV منتقل می‌شود.
  • پایه PERIOD: این حالت فقط زمانی کاربرد دارد که کانتر در مد فرکانس و پریودیک قرار بگیرد. اگر زمان پریدویک شمارش پالس‌ها برای محاسبه فرکانس تغییر یابد، از این پایه استفاده می‌شود. ابتدا به این پایه، یک ورودی بیت داده می‌شود و با فعال شدن این پایه، مقدار پایه NEW_PERIOD، به عنوان زمان پریود جدید اعمال می‌شود.

نکته خیلی مهم

پس از تنظیم ورودی‌های سخت افزاری برای پالس‌های A و B، مطابق با شکل، زمان فیلتر برای این ورودی‌ها را روی کمترین حالت یعنی 0.1 میکرو ثانیه قرار داده شود. در غیر این صورت پالس‌ها به درستی شمارش نمی‌شود.

زمان فیلتر

مثال 1) محاسبه سرعت خطی با اتصال انکودر به پی ال سی S7-1200

یک انکودر 1024 پالس به یک موتور متصل است. این موتور به گیربکس با ضریب نسبت 5 به 1 متصل است و یک شفت با قطر 100 میلی متر می‌چرخاند. این انکودر را به PLC S7-1200 متصل است. فرکانس محور، rpm محور و سرعت خطی بر حسب m/min (متر بر دقیقه) محاسبه شود.

در تنظیمات plc، مد تنظیمی را در مد فرکانس (سرعت) تنظیم شود و سپس در ID1000 فرکانس پالس انکودر از قبل محاسبه شده بود.

ID1000 تنظیمات plc

برای محاسبه فرکانس محور، ابتدا فرکانس موتور را محاسبه می‌شود. برای محاسبه فرکانس موتور، باید فرکانس پالس انکودر را بر رزولوشن انکودر تقسیم کرد.

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

در MD10 فرکانس موتور، از قبل محاسبه شد و همان مقدار باید بر ضریب گیربکس تقسیم شود تا فرکانس محور را به دست بیاید.

فرکانس محور

در MD14 فرکانس محور را از قبل محاسبه شد. اگر rpm یا همان دور در دقیقه را داشته باشیم، کافی است فرکانس را در عدد 60 ضرب شود.

دور در دقیقه

برای محاسبه سرعت خطی بر حسب واحد متر بر دقیقه، باید محیط محور یا شفت را به دست بیاید. برای محاسبه محیط شفت، باید قطر شفت یا محور را بر حسب متر در عدد پی ضرب شود.

متر 0.314= 3.14 *0.1 = محیط شفت

برای محاسبه سرعت خطی، سرعت محور بر حسب rpm را در محیط شفت یا محور ضرب شود. باید ابتدا سرعت را به عدد اعشاری تبدیل شود و سپس در عدد محیط ضرب شود.

محاسبه سرعت خطی

در نهایت سرعت خطی (متر بر دقیقه) را در MD26 به دست می‌آید.

مثال 2) محاسبه طول جسم اتصال انکودر به PLC S7-1200

یک انکودر با رزولوشن 2000 پالس به محور یک نوار نقاله متصل است. انکودر به plc1200 است و روی این نوار نقاله، جسم در طول‌های متفاوت تولید می‌شود. یک سنسور خازنی به‌طور ثابت در یک طرف نوار نقاله متصل است. هنگامی که جسم به این سنسور می‌رسد ،سنسور فعال می‌شود تا از مقابل آن عبور کند. طول هر جسم توسط انکودر و سنسور بر حسب میلی متر محاسبه شود و در HMI نمایش داده شود. (هر 500 پالس از انکودر معادل 1 میلی متر حرکت روی نوار نقاله است)

سنسور خازنی و انکودر

تنظیمات plc 1200 را روی حالت count و از نوع A/B (مربوط به انکودر است) تنظیم شود. (می‌توان برای دقت بیشتر روی حالت 4 بار شمارش گذاشته شود اما در این مثال روی حالت عادی شمارش گذاشته شده است).

حالت count plc 1200

عدد انکودر را در ID1000 وجود دارد و شمارش عدد انکودر زمانی است که جسم در مقابل سنسور است. به همین دلیل، ورودی سنسور را به ورودی gate داده می‌شود و در بخش gate input تنظیم می‌گردد. آدرس ورودی‌ها را در بخش hardware inputs مطابق با شکل تنظیم می‌شود.

بخش gate input hardware inputs

اکنون تابع انکودر فراخوانی می‌شود.

تابع انکودر

تابع انکودر باید در مواقع ضروری و حرکت جسم در مقابل سنسور آماده شمارش باشد. از بیت M0.0 به عنوان ریست انکودر استفاده می‌شود که با فعال شدن بیت M0.0 مقدار صفر در پایه New_cv است و در مقدار کانتر ID1000 ریخته می‌شود. مقدار کانتر یعنی ID1000 را بر اساس مقدار میلی متر کالیبره می‌شود و با فعال شدن ورودی سنسور gate باید کانتر مقدارش در رجیستر مربوط به طول جسم ریخته شود و کانتر ریست شود. برای کالیبره کردن باید مقدار کانتر را طبق صورت مسئله در هر 500 پالس معادل 1 میلی متر تقسیم شود.

کالیبره کردن

در MD30 مقدار طول جسم را بر حسب میلی متر است. هنگامی که لبه پایین ورودی سنسور است یعنی جسم کاملا از مقابل سنسور رد می‌شود. سپس سنسور غیر فعال می‌شود و با لبه پایین آن مقدار پالس شمارش شده بر عدد 500 تقسیم می‌شود و حاصل به عنوان طول جسم بر حسب میلی متر در MD30 منتقل می‌شود. باید با لبه بالا سنسور بیت مربوط به ریست کانتر انکودر فعال شود.

سنسور بیت مربوط به ریست کانتر انکودر

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

رجیستر

طول آخرین جسم تولید شده را آنلاین در MD30 است و طول کل جسم را در MD40 قرار دارد. می‌توان به جای MD40 یک حافظه از دیتا بلاک را تعیین کرد که با خاموش شدن برق plc مقدار کل ریست نمی‌شود.

مثال 3) محاسبه برش دهی با اتصال انکودر به پی ال سی 1200

یک انکودر، 1000 پالس در یک دور دارد که به یک محور نوار نقاله متصل است. روی نوار نقاله یک ورق مقوا به‌طور پیوسته در حال حرکت است. هنگامی که شروع به شمارش شد، یک کاتر که با یک شیر برقی فرمان می‌گیرد، برش‌ها را به ترتیب 50 سانتی متر و 100 سانتی متر و 150 سانتی متر انجام دهد و مجددا از 50 سانتی متر دوباره شروع کند. هر بار برای فرمان برش باید plc به مدت 500 میلی ثانیه به کاتر فرمان دهد و سپس فرمان را قطع کند. هر 2000 پالس از انکودر معادل یک سانت است.

با استفاده از مقایسه کننده‌ها نمی‌توان مقدار انکودر را مقایسه کرد. به دلیل این‌که دقت کار بالا است و این کار با مقایسه کننده‌های عادی امکان پذیر نیست. بنابراین از اینتراپت مخصوص انکودر استفاده می‌شود. مقدار پالس معادل سانتی متر را در پایه RV لود شود و هر بار که عمل اینتراپت انجام شد، باید مجددا مقدار RV را تغییر داد. این مثال بسیار پرکاربرد است و خیلی در صنعت مشابه این مثال استفاده می‌شود.

ابتدا پالس‌های معادل هر سانتی متر محاسبه شود. (طبق اطلاعات صورت مسئله، هر 2000 پالس معادل یک سانتی متر است).

100000 = 50 × 2000 (برای 50 سانتی متر، مقدار انکودر باید به 100000 پالس برسد.)

200000 = 100 × 2000 (برای 100 سانتی متر، مقدار انکودر باید به 200000 پالس برسد.)

300000 = 150 × 2000 (برای 150 سانتی متر، مقدار انکودر باید به مقدار 300000 پالس برسد.)

در هر بار در سه نقطه متفاوت مقدار RV را که به عنوان رفرنس برای اینتراپت است و مقادیر 100000، 200000 و 300000 منتقل شود تا زمانی که مقدار کانتر یعنی CV با مقدار RV برابر شد (CV=RV). اینتراپت مورد نظر را اجرا شود و در اینتراپت، باید خروجی مورد نظر شیر برقی کاتر را فعال شود. سپس در بیرون از ob، اینتراپت تایمر مربوطه برای ریست کردن آن را نوشته می‌شود. در ادامه اینتراپت از مقایسه کننده استفاده می‌شود تا هر بار مقدار جدید RV را در رجیستر (مربوط NEW-RV) منتقل شود تا اینتراپت بعدی با توجه به مقدار جدید RV اجرا شود.

مراحل کار به ترتیب زیر انجام شود:

  • طبق موارد قبل تنظیمات انکودر انجام شود.
بخش عمومی بخش FUNCTION
  • بخش سخت افزار و HSC انتخاب شود و برای تنظیم و فعال کردن اینتراپت قسمت Event configuration انتخاب شود. مطابق شکل ob اینتراپتی را تنظیم شود.
Event configuration اضافه کردن روی OK کلیک می‌کنیم

اینتراپت مربوط به انکودر OB40 ایجاد شد که در ادامه برنامه آن را بررسی می‌کنیم.

  • پس از تنظیم موارد سخت افزاری انکودر و ایجاد OB، وارد اینتراپت شود و تابع انکودر را فرخوانی کند.

OB1در برنامه بالا M0.0 برای ریست کانتر است و رجیستر MD50 برای بارگذاری مقادیر مقایسه کانتر انکودر است. در ابتدا بیت M1.0 در بخش سخت افزار به عنوان بیت first scan تنظیم شود (سیکل اول اسکن plc فقط SET است و مقدار اولیه 100000 را برای 50 سانتی متر بارگذاری می‌شود).

first scanخروجی کاتر Q0.0 است که یک تایمر on delay گذاشته می‌شود که هرگاه کاتر در OB40 فعال شد، پس از 500 میلی ثانیه آن را ریست کند. برنامه مهم را در OB40 مخصوص اینتراپت کانتر انکودر به‌صورت زیر نوشته شود:

اینتراپت کانتر انکودر اینتراپت کانتر انکودر-2

در نتورک1، خروجی Q0.0 مربوط به کاتر فعال شود و پس از 500 میلی ثانیه خروجی ریست می‌شود. مقایسه کننده عدد مربوط به اینتراپت بعدی را در رجیستر MD50 ذخیره می‌شود و پایه RV تابع انکودر بارگذاری می‌شود. بار اول در عدد 100000 اینتراپت اجرا می‌شود، سپس مقدار 100000 در رجیستر MD50 است. عدد بعدی 200000 برای 100 سانتی متر است که اینتراپت در عدد 200000 فعال می‌شود. در ادامه عدد 300000 در رجیستر MD50 ریخته می‌شود و سپس بار سوم که اینتراپت برای 150 سانتی متر فعال می‌شود. مجددا عدد 100000 در رجیستر MD50 بارگذاری می‌شود.

برای بهره‌مندی از تمامی امکانات تابع انکودر از تابع CTRL_HSC_EXT استفاده می‌شود و این تابع تمامی امکانات را می‌دهد. یکی از کاربردهای این تابع، استفاده از پایه capture است که پایه در بخش سخت افزار است. برای فراخوانی این تابع در OB1 از بخش COUNTING مطابق شکل، تابع فراخوانی می‌شود.

تابع CTRL_HSC_EXT

پایه HSC: در بخش سخت افزار، شماره HSC تنظیم شده است، همان وارد شود. منظور همان کد Hardware identifier است.

پایه CTRL: این پایه بخش STATIC از یک DATA BLOCK مخصوص HSC آورده شود.

  • ابتدا یک DATA BLOCK دلخواه به‌صورت عمومی ایجاد شود.
DATA BLOCK

وارد دیتا بلاک شود و در قسمت DATA TYPE عبارت (HSC_COUNT) را تایپ شود و سپس ENTER زده می‌شود.

قسمت DATA TYPE

یک STATIC ایجاد می‌شود. اگر این آرایه باز شود، پایه‌های مهمی دارد که در شکل بعد می‌توان آن را مشاهده کنید.

HSC_COUNT دیتا بلاک

اکنون تمامی موارد در دیتا بلاک مورد نظر قابل دسترسی است. هر موردی که بخواهید فعال شود، باید پایه مربوط به Enable آن را در دیتا بلاک فعال شود. به طور مثال اگر بخواهید کانتر فعال شود، باید پایه EnHSC را SET شود. یکی از کاربردهای مهم این تابع، استفاده از پایه capture است.

مثال 4) مثالی کاربردی از پایه capture در انکودر به پی ال سی S7-1200

یک دستگاه کاتر لفاف نایلون وجود دارد که می‌خواهیم هرگاه سنسور چشمی فتوسل روی لفاف نایلون را دید، عدد کانتر انکودر را در رجیستری ثبت کند و  بدون اینکه کانتر انکودر را ریست شود.

چون سرعت ورودی یا فرکانس سنسور زیاد است، بنابراین نمی‌توان از لبه بالا سنسور استفاده کرد. برنامه OB1 باید به‌گونه‌ای نوشته شود که با لبه بالا، عدد کانتر را در رجیستر انتقال یابد. این کار دقیق نیست و قطعا خطا خواهد داشت اما اگر بخواهید این کاربا دقت بالا انجام شود، باید از تابع CTRL_HSC_EXT استفاده شود. ورودی سنسور چشم برای فتوسل را به پایه capture داده می‌شود. ابتدا HSC را در بخش سخت افزار فعال می‌شود و طبق موارد قبل، پایه capture را از بخش HSC سخت افزار فعال می‌شود. (این پایه برای ورژن‌های بالاتر فریمورک plc است و اگر در برخی plcها نبود؛ به دلیل ورژن انتخابی plc است).

پایه capture

از بخش Hardware inputs، آدرس ورودی سنسور را برای پایه capture input مشخص می‌شود:

پایه capture input

برای ورودی capture همانند ورودی‌های پالس A و B انکودر، باید فیلتر زمانی را در بخش Digital Inputs روی کمترین زمان تنظیم شود.

بخش Digital Inputs

تابع CTRL_HSC_EXT و دیتا بلاک مربوطه ایجاد شود.

تابع CTRL_HSC_EXT

در دیتا بلاک مربوط به پایه CTRL متصل می‌شود و پایه‌های EnHSC و EnCapture فعال می‌شود. برای این کار می‌توان این دو بیت را SET کرد.

پایه های EnHSC و EnCapture

با اجرا برنامه، هر بار که سنسور چشمی فتوسل را ببیند، با لبه بالا، ورودی عدد انکودر در رجیستر CapturedCount در دیتا بلاک مربوط به کانتر در بخش HSC_COUNT و متصل به پایه CTRL ثبت می‌شود.

رجیستر CapturedCount

پایه Sync input همانند پایه ریست در تابع انکودر است و ریست سخت افزاری کانتر انکودر است. این پایه را در بخش HSC در تابع انکودر فعال شود و یک ورودی به آن اختصاص یابد. می‌توان این ورودی را به‌صورت Normaly open (Active High) یا به صورت Normaly close (Active Low) تعریف کرد. چنانچه این پایه فعال شود کانتر انکودر ریست و صفر می‌شود .

پایه Sync input توضیح پایه Sync input

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