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

اتصال انکودر به PLC S7-300 یکی از مهمترین مراحل و پیش نیازهای کار با این قطعات حساب میشود. پی ال سی زیمنس سازوکار و ساختار متفاوتی دارد به همین دلیل اتصال انکودر به آنها هم نیازمند فرایند مجزایی است. همانطور که میدانید انکودرها در تشخیص زاویه چرخش، سرعت، مسافت، جهت و موقعیت در تجهیزات و ماشینآلات مختلف استفاده میشوند و برای انجام این کار نیز با موتورها کوپل میشوند.
در واقع یک انکودر، سنسور محسوب میشود چون حرکات مکانیکی را تشخیص داده و به سیگنال الکتریکی تبدیل میکند و به یک واحد کنترل کننده مثل PLC میفرستد. پی ال سی هم بعد از بررسی فیدبکها، فرامین لازم را صادر میکند. در این مطلب آموزشی و تخصصی دیگری از آزند اتوماسیون در کنار شما عزیزان هستیم تا نحوه اتصال انکودر به پی ال سی زیمنس سری S7-300 را بررسی کنیم. با ما همراه باشید.در اموزش های بعدی نحوه اتصال انکودر به پی ال سی زیمنس سری خواهیم پرداخت.
نکات اتصال انکودر به PLC S7-300
اولین موردی که باید در اتصال انکودر به پی ال سی زیمنس سری S7-300 بدانید این است که پی ال سی باید حتما از نوع کامپکت باشد و در صورتی که از نوع کامپکت نیست باید از کارت FM350 استفاده کنید. موردی که ما بررسی میکنیم از نوع کامپکت است.
بسته به نوع PLC زیمنس تعداد کانالهایی که میتوانید به انکودر High Speed وصل کنید به شرح زیر هستند:
- CPU 312C: 2 کانال
- CPU 313C: 3 کانال
- CPU 313C-2 DP, PtP: 3 کانال
- CPU 314C-2 DP, PN/DP, PtP: 4 کانال
ضمنا ماکزیمم فرکانسی که پالسهای انکودر را میتوان در پی ال سی زیمنس S7-300 شمارش کرد به شرح زیر است:
- CPU 312C: 10 هزار هرتز
- CPU 313C: 30 هزار هرتز
- CPU 313C-2 DP, PtP: 30 هزار هرتز
- CPU 314C-2 DP, PN/DP, PtP: 60 هزار هرتز
مراحل اتصال انکودر به PLC S7-300 کامپکت
برای اینکه بتوانید انکودر را به پی ال سی زیمنس سری S7-300 کامپکت وصل کنید باید مراحل زیر طی شوند:
مرحله اول
پالسهای A و B انکودر که پالس 24 ولت میدهند را باید طبق مراحل زیر بسته به مدل پی ال سی به ورودیهای مربوطه وصل کنید:
همانطور که در جداول بالا هم مشاهده کردید هر نوع پی ال سی مشخص بوده و میتوانید متوجه شوید که پالس A و B انکودر باید به کدام ورودی وصل شود. مثلا در پی ال سی زیمنس S314C برای استفاده از کانال اول یا صفر باید پالس A به ورودی i0.0 و پالس B به ورودی IO.1 وصل شود.
منظور از اولین ورودی، ورودی دیجیتال است اما لزوما آدرس دیجیتالها احتمالا از صفر شروع نشود ولی از منظر سخت افزاری، بایت اول ورودی منظور ماست مثل کانکتور X2 شماره 2 و 3 در شماتیک سخت افزاری.
مرحله دوم
در این مرحله ابتدا وارد برنامه سیماتیک منیجر از بخش Hardware شده و سی پی یو مدنظر را انتخاب کرده و روی count کلیک کنید:
مرحله سوم
در مرحله سوم، پنجره باز شده در قسمت Channel به شما این امکان را میدهد که کانال مدنظرتان را انتخاب کرده و در قسمت operation mode میتوانید مشخص کنید که در چه مدی کار خواهد کرد. کاربرد اولین مد یا Count Continuously شمارش پیوسته پالسها بوده و Frequency counting برای کسب فرکانس پالس انکودر هست.
اولین مد Count Continuously به منظور حالت شمارش مداوم و در حالت Frequency Counting برای بدست آوردن فرکانس پالس انکودر است. اما اینکه برای بفهمید این مدها چقدر درست و دقیق هستند و اتصال انکودر به PLC S7-300 چگونه است ابتدا باید مدهای معرفی شده را توضیح دهیم.
Count continuously
همانطور که از اسم این مد مشخص است برای شمارش پالسهای مداوم بوده و برای پوزیشن استفاده میشود. اگر در کانال مدنظر این مد را انتخاب کنید، ستونی به اسم count به پنجره قبلی اضافه خواهد شد:
پس از آن با کلیک روی سربرگ count وارد بخش تنظیمات انکودر خواهید شد:
در این بخش مهمترین قسمت، input بخش signal evaluation است تا نوع سیگنالی که قصد دارید پالس آن را بشمارید مشخص گردد. برای این منظور ابتدا گزینه مناسب را باید انتخاب کنید.
- مثلا اگر سنسور دیجیتالی دارید و میخواهید پالس آن را بشمارید، یک ورودی تحت عنوان جهت شمارش یا Direction تعیین نمایید که همان گزینه اول یا pulse /direction است. سپس طبق جداولی که بالاتر برای نوع PLC گذاشتیم باید ورودیهای مدنظر را متصل کنید که در اینجا Pulse و Direction هستند.
- اگر انکودر دارید باید گزینه بعدی یعنی Rotary Encoder را انتخاب نمایید.
در این حالت 3 انتخاب دارید که شامل single، double و quadruple هستند:
- حالت single موقعی است که فقط لبه بالایی پالس A خوانده شود و پالس B برای تغییر حرکت باشد. بنابراین در این حالت تعداد پالسهای یک دور با تعداد پالسهای انکودر در یک دور برابر هستند.
- حالت double لبه بالا و پایین پالس A خوانده شده و دقت دو برابر خواهد بود و پالس B کماکان برای تغییر جهت حرکت استفاده میگردد. در این وضعیت تعداد پالس شمارش شده در یک دور، دو برابر تعداد پالسهای انکودر خواهد بود.
- در حالت quadruple دقت 4 برابر است چون لبههای بالا و پایین پالس A و پالس B هر دو خوانده میشوند و کماکان از پالس B هم برای تعیین تغییر جهت حرکت استفاده میشود. در این وضعیت تعداد پالسهای خوانده شده در یک دور از حرکت انکودر 4 برابر تعداد پالسهای انکودر خواهد بود.
در حالتهای گفته شده برای اتصال انکودر به PLC S7-300، به تصویر زیر دقت کنید تا بهتر متوجه شوید:
- برای اتصال انکودر به PLC S7-300، اگر ورودی GATE دارید که بعد از فعال شدن، ورودی پالس انکودر باید شمارش شود، باید تیک گزینه Hardware gate را بزنید که از طریق نرمافزار هم میتوانید این تیک را بردارید. دقت کنید وقتی این گزینه را تیک میزنید طبق جداول قبلی مربوط به پی ال سی، ورودی گیت را باید به ورودی دیجیتال پی ال سی متصل کنید.
- اگر قصد دارید در اتصال انکودر به PLC S7-300، شمارش پالسها در جهت معکوس باشد، یعنی برای حالت ساعتگرد، شمارش بهصورت کاهشی و در جهت پادساعتگرد جهت شمارش افزایشی باشد، باید تیک گزینه count direction inverted را مطابق تصویر زیر بزنید در غیر این صورت بهصورت پیش فرض، جهت شمارش در حالت ساعتگرد افزایشی و در حالت پاد ساعتگرد کاهشی خواهد بود:
Frequency counting
همه این مواردی که تا اینجا توضیح دادیم برای حالت یا مد count continuously بود که برای شمارش پیوسته پالسها بودند. اما در حالتی که مد فرکانس را بخواهید باید این مد را انتخاب نموده و بعد از انتخاب کردن سربرگ frequency counting، طبق پنجره زیر این حالت باز خواهد شد:
با کلیک روی آن صفحه تنظیمات باز خواهد شد:
تنظیمات این مد برای اتصال انکودر به PLC S7-300 تقریبا مشابه مد قبلی است. در بخش Input و signal evaluation اگر نوع ورودی شما مربوط به سنسور دیجیتال فرکانس بالاست، حالت Pulse/direction و اگر انکودر دارید، حالت Rotary encoder single، را انتخاب کنید. بخش hardware gate و count direction inverted هم مثل مد count است که کامل توضیح دادیم.
در قسمت operating parameters دقت کنید که فرکانس محاسبه شده برحسب میلی هرتز (mHz) است. از طرفی چون ماکزیمم تا 60 هزار هرتز قابل محاسبه است بنابراین عدد فرکانس ماکزیمم تا 60 میلیون میلی هرتز بالا خواهد رفت. در بخش integration time میتوانید برای زمان آپدیت محاسبه فرکانس عددی بین 1 تا 10 هزار میلی ثانیه وارد کنید که پیش فرض، عدد 100 میلی ثانیه قرار داده شده است.
پس از اینکه تنظیمات مدنظر را برای اتصال انکودر به PLC S7-300 انجام دادید، گزینه OK را بزنید و بخش Hardware را ذخیره کرده و کامپایل کنید.
مرحله چهارم
بعد از اینکه تنظیمات بخش hardware را انجام دادید، وارد ob1 شده یا در fc دلخواه برنامه را بنویسید و در ob1 فراخوانی کنید. براساس نوع مد انتخاب شده یعنی count continuously و یا frequency counting از مسیر زیر، sfb مدنظر را فراخوانی کنید.
- فرض کنیم مد count continuously را انتخاب کردهاید. در این حالت sfb47 برای مد شمارش پالسها از مسیر زیر باید انتخاب شود و فراخوانی کنید.
این مسیر در تصویر زیر مشخص است:
بعد از اینکه sfb47 را انتخاب کردید در یک برنامه، دیتا بلاک به آن اختصاص دهید تا موارد ورودی و خروجی در آن ایجاد گردد. البته میتوانید به شکل جداگانه هم پایههای ورودی و خروجی تابع را آدرسدهی یا مقداردهی کنید مثل تصویر زیر:
پایههای مهم تابع sfb47
در جهت تکمیل مبحث اتصال انکودر به PLC S7-300 باید در خصوص پایههای مهم تابع sfb47 هم اطلاعات داشته باشید که به شرح زیر هستند:
- پایه LADDR
در این قسمت باید شروع آدرس بخش count که در قسمت hardware وارد شده را به شکل کد Hex وارد نمایید که بهصورت پیش فرض عدد 768 است که به شکل کد هگز عدد 300 میشود. پس شروع آدرس به شکل W#16#300 خواهد بود. اگر آدرس را در بخش count تغییر بدهید طبیعتا باید کد هگز شروع آدرس را در این قسمت وارد کنیم.
- پایه CHANNEL
در این پایه باید شماره کانالی که انکودر نصب شده و در بخش hardware تنظیم کردید را وارد نمایید. اگر در چند کانال انکودر را نصب کرده باشید در این حالت باید به تعداد کانالها، تابع sfb47 فراخوانی شود ولی چون شروع آدرس همه آنها یکسان است، در همه آنها برای بخش پایه LADDR، عدد ثابت خواهد بود ولی عدد CHANNEL متفاوت میشود که بستگی به نوع پی ال سی کامپکت ما دارد. مثلا در اتصال انکودر به PLC S7-300 مدل 312، فقط 2 کانال دارید پس عدد مربوطه میتوانید صفر یا یک باشد ولی در مدل 314C که 4 کانال دارید عدد مربوطه میتواند بین صفر تا 3 باشد.
- پایه SW-GATE
پایه بسیار مهم در مبحث اتصال انکودر به PLC S7-300 که در حقیقت GATE نرمافزاری است. در حالتی که در بخش تنظیمات سخت افزاری پایه GATE ندارید و ورودی سخت افزاری GATE ندارید شما میتوانید یک بیت نرمافزاری مشخص کنید تا در صورت فعال بودن این بیت، شمارش پالس انجام گردد و در صورت غیر فعال بودن شمارش انجام نشود. اگر میخواهید همیشه انکودر در برنامه شمارش انجام دهد، یک بیت همواره 1 به این پایه نسبت بدهید که در تصویر بالا همانطور که مشاهده کردید بیت M0.0 قرار داده بودیم.
- پایه JOB_REQ
در بحث اتصال انکودر به PLC S7-300 تنها پایه برای فعالیتهای خاص همین پایه JOB_REQ است. کاربرد اصلی و مهم آن موقعی است که میخواهید مقدار شمارش انکودر را صفر کنید که برای این منظور باید یک بیت به آن اختصاص دهید. این پایه به لبه بالا حساس است و موقعی که فعال میشود با توجه به پایههای دیگر یعنی JOB_ID و JOB_VAL این کار را انجام میدهد. مثلا بیت M0.1 برای این پایه جهت صفر کردن مقدار شمارش انکودر در نظر گرفته شده که میتوانید در HMI قرار داده و اپراتور با فعال کردن آن، مقدار شمارش انکودر را صفر کند. دقت داشته باشید چون این پایه به لبه بالایی حساس است همیشه نباید فعال باشد و فقط برای یک لحظه فعال شود.
- پایه JOB_ID
در این پایه برای اتصال انکودر به PLC S7-300 کد مدنظر کار خاصی که میخواهید را باید به شکل کد هگز وارد کنید. مثلا اگر میخواهید برای صفر کردن مقدار شمارش شده استفاده کنید کد هگز W#16#1 را وارد کنید که همان کد نوشتن در مقدار COUNTVAL یا مقدار شمارش پالس انکودر است.
- پایه JOB_VAL
در این پایه مقداری که عمل JOB براساس JOB_ID انتخاب کردیم را قرار دهیم. برای این پایه باید مقدار DOUBLE INTIGER بگذاریم پس عدد صفر به شکل L#0 بهصورت عدد اینتیجر 32 بیتی میدهیم تا عمل صفر شدن انکودر با توجه به کد هگز W#16#1 در پایه JOB_ID و فعال شدن پایه JOB_REQ انجام شود. البته میتوانید یک MD اختصاص دهید که مثلا ما MD10 را در برنامه گذاشتیم که با عدد دلخواه ما عمل شمارش از این عدد شروع خواهد شد.
- پایه COUNTVAL
این پایه مربوط به شمارش پالسهای انکودر است. میتوانید یک حافظه 32 بیتی از نوع DOUBLE INTIGER به آن بدهید تا عدد شمارش پالسهای انکودر را داشته باشید و در لحظه آن را صفر کنید که نحوه انجام آن را توضیح دادیم. اگر انکودر حرکتش ساعتگرد باشد شمارش افزایشی در غیر این صورت کاهشی خواهد بود. در تصویر بالا ما MD20 را اختصاص دادیم.
مثالهای کاربردی در خصوص اتصال انکودر به PLC S7-300
مثال 1 اتصال انکودر به PLC S7-300
انکودری دارید که رزولوشن آن 1000 پالس است و آن را به یک محور بال اسکرو متصل کردهاید و به کانال اول یک PLC314C هم متصل است. اگر 10 سانتیمتر از حرکت محور معادل 34 دور حرکت انکودر باشد، برنامهای بنویسید که مقدار حرکت انکودر را به شکل میلیمتر در MD20 داشته باشیم. از طرفی اگر محور به سنسور پراکسی سوئیچ که به ورودی l1.0 متصل است رسید، مقدار انکودر صفر شود.
راه حل
بعد از تنظیمات بخش Hardware اول ضریب مدنظر پالس را باید به دست بیاورید و در ادامه در ob1 برنامه مدنظر را بنویسید.
مقدار پالس انکودر در حرکت 100 میلیمتر: 34×1000=34000
ضریب پالس انکودر در حرکت 1 میلیمتر: 34000/100=340
پس اگر مقدار پالس شماره شده انکودر را همیشه بر 340 تقسیم کنید مقدار حرکت برحسب میلیمتر خواهید داشت که اگر ضریب به دست آمده اعشاری باشد، میتوانید مقادیر شمارش شده پالسها را به عدد اعشاری تبدیل کرده و محاسبات را بهصورت اعشاری جلو ببرید. بنابراین برنامه به شکل زیر خواهد شد:
بیت M0.0 را یک بیت همواره set تعریف کرده و سپس sfb47 را فراخوانی کنید و آدرس کانال اول را وارد کنید. برای اینکه همیشه پالسهای انکودر شمارش شود، به پایه sw_gate بیت M0.0 بدهید.
به منظور ریست شدن کانتر با ورودی سنسور l1.0، باید آن را به پایه JOB_REQ بدهید و کد W#16#1 را به پایه JOB_ID بدهید که در حالت نوشتن در COUNTVAL باشد و مقدار صفر را هم به پایه JOB_VAL بدهید. مقدار شمارش کانتر که در پایه COUNVAL هست باید در MD4 بریزید و پس از آن در نتورک مقدار MD4 را بر عدد 340 تقسیم کرده و حاصل را در MD20 بریزید. مقدار عددی MD20 در واقع پوزیشن محور برحسب میلیمتر است. اکنون میتوانید از این مقدار در برنامه یا HMI استفاده کنید. همه توضیحات مثال اول در بحث اتصال انکودر به PLC S7-300 را در تصویر زیر مشاهده میکنید:
مثال 2 اتصال انکودر به PLC S7-300
فرض کنید قصد دارید در همان مثال 1، محور که با درایو راهاندازی شد، در پوزیشن 500 میلیمتری محور را نگه دارید. مثلا فرض کنید تا فاصله 400 میلیمتری با فرکانس 50 هرتز حرکت کرده و بعد از آن در دو یا چندین مرحله فرکانس درایو را کم کنید و در نهایت محور را در 500 میلیمتری نگهدارید.
برای این منظور از مقایسه کننده استفاده میکنید. فرض کنید مقدار فرکانس در خروجی PQW100 را میخواهید بهصورت ولتاژ صفر تا 10 بریزید پس اول مقدار فرکانس را از صفر تا 50 هرتز در MD40 بریزید و پس از آن با FC106 آن را به خروجی آنالوگ تبدیل کنید.
راه حل
باید برنامه زیر را بنویسید:
در برنامه بالا نتورک 4، پوزیشن محور که اسکیل کردهاید برحسب میلیمتر را با عدد 400 مقایسه کنید. اگر کمتر بود، فرکانس 50 را در MD40 که مربوط به فرکانس اینورتر محور است منتقل کنید تا محور با بیشترین سرعت حرکت کنید. پس از آن در نتورک های 5 و 6 و 7 به ترتیب مقدار فرکانس را براساس پوزیشن محور کمتر تا به مقدار 500 میلیمتر رسید فرکانس را صفر کنید تا موتور متوقف شود. در نتورک آخر نیز از FC106 استفاده کنید تا مقدار رجیستر فرکانس یعنی MD40 به آنالوگ خروجی مدنظر تبدیل شود.
مد frequency counting:
بعد از اینکه تنظیمات سخت افزاری برای این مد در ob1 انجام دادید این بار از مسیر زیر تابع sfb48 را انتخاب کرده و فراخوانی نمایید:
Libraries > standard library > system function Blocks > sfb48
بعد از انتخاب و فراخوانی sfb48 در برنامه یک دیتا بلاک به آن اختصاص دهید تا موارد ورودی و خروجی در آن ایجاد شوند هر چند میتوانید به شکل مجزا هم پایههای ورودی و خروجی تابع را آدرسدهی یا مقداردهی کنید.
تابع sfb48 با sfv47 بجز در کدهای JOB_ID که هر کدام کدهای خاص خودشان را دارند و یک پایه هم اضافهتر دارد (MEAS_VAL) فرق دیگری ندارد. کار این پایه این است که مقدار فرکانس پالس انکودر را به شکل آنلاین در بازه زمانی که تعیین شده (در بخش سخت افزار مثلا 100 میلی ثانیه)، بهصورت DOUBLE INTIGER با دقت میلی ثانیهای نشان دهد. از طرفی تعداد پالسهای شمارش شده را هم مثل تابع SFC47 در پایه COUNTVAL خواهید داشت. دقت کنید که برای فعال نگه داشتن تابع باید حتما پایه SW_GATE همیشه فعال باشد.
مثال 3 اتصال انکودر به PLC S7-300
انکودری با رزولوشن 500 پالس را به یک موتور وصل میکنیم و پالسهای انکودر را هم به PLC 314C وصل میکنیم. فرکانس موتور برحسب هرتز و سرعت موتور برحسب RPM به ترتیب در رجیسترهای MD10 و MD20 بهصورت عدد صحیح قابل نمایش در HMI محاسبه کنید.
راه حل
برای این منظور اول SFB48 را فراخوانی نموده و مقدار فرکانس پالس انکودر را از پایه MEAS_VAL به MD30 بدهید. پس از آن چون رزولوشن انکودر 500 اعلام شده و هدف ما محاسبه فرکانس موتور است باید این مقدار را بر 500 تقسیم کرده و سپس مقدار فرکانس را برحسب میلی هرتز محاسبه کنیم. برای اینکه برحسب هرتز باشد عدد خاص را بر 1000 هم تقسیم کنید. عدد نهایی محاسبه شده باید به MD10 منتقل شود.
برای محاسبه RPM موتور باید فرکانس موتور که برحسب هرتز بیان میشود را در 60 ضرب کرده و مقدار را به MD20 منتقل کنید. برنامهای که باید بنویسید به شکل زیر است:
جمعبندی مطالب
در این مطلب تلاش کردیم به طور کامل در خصوص اتصال انکودر به PLC S7-300 صحبت کنیم. حالتهای مختلف به همراه دو مد را بررسی کردیم و سپس در نهایت با ذکر مثالهای کاربردی تلاش کردیم این آموزش را تکمیل کنیم. دقت داشته باشید که این مطلب آموزشی برای پی ال سی های زیمنس کامپکت بود.
ضمنا مفتخر هستیم که اعلام کنیم شما میتوانید هر نوعی از پی ال سی زیمنس را از نمایندگی زیمنس در لاله زار تهیه کنید. کاملترین موجودی انبار تجهیزات اتوماسیون صنعتی متعلق به آزند اتوماسیون در منطقه لاله زار تهران است و سفارش شما چه بهصورت حضوری و چه خرید آنلاین در اسرع وقت تحویل داده میشود. ضمنا میتوانید از خدمات مشاوره رایگان قبل از خرید هم استفاده کنید.