اتصال انکودر به PLC S7-300
اتصال انکودر افزایشی به PLC S7 300 کامپکت زیمنس برای اتصال انکودر به plcهای سری 300 احتیاج هست که plc […]
اتصال انکودر افزایشی به PLC S7 300 کامپکت زیمنس
برای اتصال انکودر به plcهای سری 300 احتیاج هست که plc از نوع کامپکت است. چنانچه Plc s7 300 از نوع کامپکت نبود از کارت fm350 استفاده میکنیم. در این قسمت ما نحوه اتصال انکودر به plc سری کامپکت 300 را توضیح میدهیم. بنا به نوع plc تعداد کانالهایی که میشود به آن انکودر یا سنسور high speed متصل کرد. به صورت زیر است:
برای بهرهمندی از مشاوره رایگان جهت خرید پی ال سی زیمنس براساس نوع پروژه خود با کارشناسان فروش نیک صنعت تماس حاصل فرمایید. همچنین ماکزیمم فرکانسی که پالس های انکودر در plc s7 300 میشود شمارش کرد به صورت ذیل می باشد:
نحوه اتصال انکودر به plc s7 300 کامپکت زیمنس
برای اتصال پی ال سی 300 زیمنس مراحل زیر را انجام دهید:
- ابتدا باید پالس های A و B انکودر را که پالس 24 ولت میدهند. بهصورت ذیل با توجه به نوع plc به ورودیهای مورد نظر متصل کنید.
شماتیک سخت افزاری plc s7 314c کامپکت
در جدولهای بالا سه نوع Plc s7 300 کامپکت مشخص است و هر کانال پالس A و B انکودر باید به کدام ورودی متصل شود. مثلا در plc 314 c اگر از کانال صفر (اولین کانال) استفاده شود. باید پالس A را به ورودی i0.0 و پالس B به ورودی i0.1 متصل شود. (البته منظور از اولین ورودی دیجیتال، لزوما آدرس دیجیتالها ممکن است از بایت صفر شروع نشود اما از لحاظ سخت افزاری بایت اول ورودی مد نظر است، یعنی کانکتور X2 شمارههای 2 و 3 در شماتیک سخت افزاری توجه کنید)
- در برنامه سیماتیک منیجر وارد بخش hardware شوید و cpu مورد نظر را انتخاب کنید و روی بخش count کلیک نمایید.
- در پنجره باز شده در قسمتchannel شماره کانال مورد نظر را انتخاب کنید و در بخشoperation mode میتوانید انتخاب کنید که در چه مدی کار کنید. اولین مد یعنیcount continuously برای همان حالت شمارش مداوم پالسها هست و مد frequency counting برای بدست آوردن فرکانس پالس انکودر هست.
در ادامه هریک از این مدها را توضیح میدهیم:
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 باز برای تغییر جهت حرکت استفاده میشود. در این حالت تعداد پالس خوانده یا شمارش در یک دور 2 برابر رزولوشن انکودر خواهد بود اما در حالت quadruple دقت 4 برابر میشود. لبههای بالا و پایین پالس A و لبههای بالا و پایین پالس B هر دو خوانده میشود و همچنین از پالس B برای تعیین جهت حرکت استفاده میشود. در این صورت تعداد پالسهای خوانده شده در یک دور از حرکت انکودر 4 برابر رزولوشن انکودر است. بنا به دقت مورد نیاز ما یکی از این سه حالت را استفاده میشود.
چنانچه دارای یک ورودی GATE است که در صورت فعال شدن آن، ورودی پالسهای انکودر شمارش میشود میتوانید تیک Hardware gate را مطابق شکل تیک بزنید اما از طریق نرم افزار میتوانید این تیک را بردارید. اگر تیک مورد نظر را بزنید باید ورودی gate مورد نظر را طبق جدول های 1، 2 یا 3 به ورودی دیجیتال plc متصل کنید.
اگر میخواهید جهت شمارش پالسها بهطور معکوس باشد؛ یعنی در جهت ساعتگرد شمارنده، مورد نظر کاهشی است و در جهت پادساعتگرد کانتر مورد نظر افزایشی است؛ تیک count direction inverted را بزنید. در غیر این صورت بهصورت پیش فرض (Default) شمارش در جهت ساعتگرد افزایشی و در خلاف جهت کاهشی خواهد بود.
frequency counting
چنانچه مد فرکانس را انتخاب کردید و پس از انتخاب سربرگ frequency counting، مطابق شکل زیر نمایش میدهد.
روی سربرگ frequency counting کلیک کرده وارد تنظیمات آن شوید:
در قسمت input و signal evaluation میتوانید نوع ورودی رو تعیین کنید که اگر یک سنسور دیجیتال فرکانس بالا داشتید میتوانید حالت pulse/direction را انتخاب کنید و اگر انکودر داشتید میتوانید حالت Rotary encoder single را انتخاب کنید. بخش hardware gate و بخش count direction invert نیز همانند بخش count قبلی تنظیم میشود. واحد فرکانس بهصورت میلی هرتز (mHz) است و چون تا ماکزیمم 60 کیلوهرتز میتواند محاسبه کند. بنابراین عدد فرکانس میتواند تا عدد 60 میلیون (mHz) باشد. در بخش integration time شما میتوانید زمان آپدیت محاسبه فرکانس را وارد کنید. همچنین میتواند عددی بین 1 تا 10000 میلی ثانیه باشد که بهصورت پیش فرض 100 میلی ثانیه است که عدد مناسبی است.
پس از تنظیمات مورد نظر ok را بزنید و بخش hardware را save و کامپایل کنید. در قسمت بعد نحوه نوشتن برنامه در بلوک ob مورد نظر را توضیح میدهیم. پس از انجام تنظیمات در بخش hardware وارد ob1 شوید یا در fc دلخواه برنامه را نوشته شوید و در ob1 فرخوانی کنید. با توجه به مد انتخابی مورد نظر count continuously ویا frequency counting از مسیر زیر sfb مورد نظر را فراخوانی میشود. ابتدا مد count continuously را در نظر بگیرید و sfb47 را برای مد شمارش پالسها از مسیر زیر انتخاب کنید و فراخوانی کنید.
پس از انتخاب sfb47 و فراخوانی در برنامه، یک دیتا بلاک به آن اختصاص دهید که موارد ورودی و خروجی در دیتابلاک مورد نظر ایجاد شود. البته میتوانید جداگانه نیز پایههای ورودی و خروجی تابع را مانند شکل زیر آدرس دهی یا مقدار دهی کنید.
توضیح پایه های مهم تابع sfb47
در این قسمت پایههای مهم و کاربردی تابع را توضیح میدهیم.
پایه LADDR
شروع آدرسی که در بخش hardware برای بخش count تعیین شده را بهصورت کد hex وارد کنید. بهصورت پیش فرض شروع آدرس در بخش hardware عدد 768 است که این عدد بهصورت hex (هگزا دسیمال) میشود. بنابراین باید به صورت W#16#300 وارد کنید؛ چنانچه آدرس را در بخش count تغییر دادید باید کد hex شروع آدرس را در این قسمت تابع وارد کنید.
پایه CHANNEL
در این پایه شماره کانالی که در آن انکودر نصب شده است و در بخش hardware تنظیم کردید، را وارد کنید. در صورت متصل کردن انکودر به کانالها، باید با توجه به تعداد کانالها، تابع sfb47 را فراخوانی کنید اما در هر کدام بخش پایه LADDR عدد ثابت است. شروع آدرس مشترک است اما عدد CHANNEL متغیر و متفاوت است و به نوع PLC کامپکت مربوط است. بهطور مثال در PLC 312 فقط 2 کانال وحود دارد، بنابراین این عدد میتواند 0 یا 1 است. در PLC 314C فقط 4 کانال وجود دارد و این عدد بین 0 تا 3 بیانگر کانال اول تا چهارم است.
پایه SW- GATE
این پایه GATE تنظیمات نرم افزاری است و در تنظیمات سخت افزاری پایه GATE وجود ندارد. برای جبران ورودی سخت افزاری GATE میتوان یک بیت نرم افزاری تعیین کرد که در صورت فعال شدن، این بیت عمل شمارش پالسها را انجام میدهد. در صورت غیر فعال بودن، این بیت، عمل شمارش را انجام نمیدهد. اگر میخواهید همیشه عمل شمارش توسط انکودر پی ال سی 300 انجام شود، یک بیت همیشه 1 را به این پایه نسبت دهید.(بهطور مثال، در اینجا بیت M0.0 را در نظر گرفتیم)
پایه JOB_REQ
این پایه برای انجام فعالیتهای خاص بهکار میرود که باید مقدار شمارش انکودر را صفر شود. یک بیت را به این پایه اختصاص دهید که این پایه حساس به لبه بالا رونده است. اگر بیت فعال شود با توجه به پایههای JOB-ID و JOB-VAL این کار انجام میشود. برای مثال بیت M0.1 را برای صفر کردن مقدار انکودر در نظر بگیرید. این بیت را در HMI قرار دهید و اپراتور با فعال کردن این بیت مقدار شمارش انکودر را صفر میکند. نباید این بیت همواره فعال بماند و فقط برای یک لحظه فعال شود؛ زیرا این پایه حساس به لبه بالا رونده است.
پایه JOB_ID
در این پایه کد مورد نظر را بهصورت کد hex وارد کنید؛ زیرا از این پایه برای صفر کردن شمارش استفاده میشود و کد 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 به آن اختصاص داد و با توجه به توضیحات قبلی، میتوان آن را در هر لحظه صفر کرد. اگر انکودر ساعتگرد حرکت کند، این مقدار شروع افزایش مییابد و در جهت پادساعتگرد این مقدار کاهش پیدا میکند. برای کسب اطلاعات بیشتر میتوانید با نمایندگی زیمنس تماس حاصل فرمایید.
انواع مثال های نحوه اتصال انکودر پی ال سی s7-300 زیمنس
در ادامه چندین مثال از نحوه اتصال انکودر به PLC S7-300 را بیان میکنیم.
مثال نحوه اتصال انکودر پی ال سی 300 زیمنس در 34 دور بهصورت میلیمتری
انکودر دارای رزولوشن 1000 پالس است که این انکودر را به یک محور بال اسکرو متصل است و به کانال اول یک PLC314C متصل است. اگر 10 سانت حرکت محور معادل 34 دور حرکت انکودر باشد، برنامه ای در PLC 300 بنویسید که مقدار حرکت انکودر را بهصورت میلیمتری در MD20 داشته باشد. اگر محور به سنسور پراکسی سوئیچ که به ورودی I1.0 متصل است، مقدار انکودر صفر میشود.
حل مثال: پس از تنظیمات بخش HARDWARE ابتدا ضریب مورد نظر پالس را بهدست میآورید و در ادامه در ob1 برنامه مورد نظر را مینویسید.
- مقدار پالس انکودر در حرکت 100 میلی متر 34000 = 1000 × 34
- ضریب پالس انکودر در حرکت 1 میلی متر 340 = 100 ÷ 34000
بنابراین اگر مقدار پالس شمارش شده انکودر را همواره تقسیم بر 340 کنید، مقدار حرکت را بر حسب میلیمتر محاسبه میشود. اگر ضریب، اعشاری باشد، میتوان مقادیر پالس شمارش شده را به اعشاری تبدیل کرد و محاسبات را با اعشار انجام میشود. با توجه به توضیحات، برنامه بهصورت زیر است:
همانطور که در شکل زیر میبینید ابتدا بیت M0.0 را یک بیت همواره set تعریف کنید. سپس sfb47 را فراخوانی کنید و آدرس کانال اول را بدهید. برای اینکه همیشه پالسهای انکودر را شمارش کند، به پایه sw_gate بیت M0.0 را دهید. برای اینکه با ورودی سنسور I1.0 کانتر ریست شود؛ آن را به پایه JOB_REQ دهید و پایه JOB_ID را کد w#16#1 دهبد. در حالت نوشتن در پایه COUNTVAL است و مقدار صفر را به پایه JOB_VAL بدهید. مقدار شمارش کانتر را هم که در پایه COUNTVAL ریخنه شود. در نتورک بعد، مقدار MD4 را بر عدد 340 تقسیم کنید و مقدار حاصل را در MD20 بریزید. مقدار عددی MD20 همان پوزیشن محور بر حسب میلیمتر است. از آن در برنامه یا در HMI میتوان استفاده کرد. این محاسبات باید بهصورت دقیق بررسی و انجام شود تا خطا نرم افزاری ایجاد نشود. در غیر اینصورت، این خطا را روی نرم افزار پی ال سی 300 زیمنس مشاهده میکنید. در صورت خرابی و تعمیر پی ال سی S7-300 میتوانید با واحد تعمیرات نیک صنعت تماس بگیرید.
مثال نحوه اتصال انکودر پی ال سی 300 زیمنس با راه اندازی اینورتر
فرض کنید بخواهید در مثال 1، محوری با درایو راه اندازی میشود و در پوزیشن مثلا 500 میلیمتری محور را نگهداشته شود. میتوانید مثلا تا فاصله 400 میلیمتری با فرکانس 50 هرتز حرکت کند و پس از آن در دو یا چند مرحله فرکانس درایو را کاهش دهید. در نهایت محور را در 500 میلی متری نگهداشته میشود.
برای حل این مثال، از مقایسهکنندهها استفاده میکنید. فرض کنید مقدار فرکانس را در خروجی PQW100 بهصورت ولتاژ 0 تا 10 میخواهید بریزید. بنابراین ابتدا مقدار فرکانس را از 0 تا 50 هرتز در MD40 میریزید. سپس با استفاده از FC106 آن را به خروجی آنالوگ تبدیل میکنید. در ادامه مثل اشکال زیر جلو بروید.
در برنامه بالا در NET WORK 4، پوزیشن محور که SCALE کردید، بر حسب میلیمتر رو با عدد 400 میلیمتر مقایسه کنید. اگر در صورتیکه فرکانس 50 کمتر باشد، در MD40 که مربوط به فرکانس اینورتر است، مراحل بعدی را اجرا کنید. محور با بیشترین سرعت حرکت کند و سپس در NET WORK 5 و NET WORK 6 و NET WORK 7 به ترتیب مقدار فرکانس را صفر کنید. البته با توجه به پوزیشن محور، اگر به مقدار کمتر از 500 میلیمتر رسید فرکانس صفر میشود و موتور متوقف میشود. NET WORK 9 نیز از FC106 استفاده میکنید تا مقدار رجیستر رفرنس فرکانس یعنی MD40 را به آنالوگ خروجی مورد نظر تبدیل شود.
برای تنظیم مد frequency counting مراحل زیر را اجرا کنید:
- تنظیمات سخت افزاری برای این مد frequency counting در ob1 انجام دهید.
- این بار از مسیر زیر تابع sfb48 را انتخاب کنید و فراخوانی نمایید.
مسیر انتخاب تابع sfb48 بهصورت زیر است:
- Libraries > standard library > system function Blocks > sfb48
پس از انتخاب تابع sfb48، فراخوانی در برنامه یک دیتا بلاک را به آن اختصاص دهید که موارد ورودی و خروجی در دیتابلاک مورد نظر ایجاد شود. البته میتوانید جداگانه نیز پایههای ورودی و خروجی تابع را آدرسدهی یا مقداردهی کنید. تابع sfb48 دقیقا مشابه sfc47 است اما جز کدهای JOB_ID که هر کدام کدهای مخصوص خود را دارد. اینکه این تابع sfb48 یک پایه اضافهتر از sfb47 دارد و اون پایه MEAS_VAL است. این پایه مقدار فرکانس پالس انکودر را بهصورت آنلاین در زمان معین ( در بخش سخت افزار مثلا 100 میلیثانیه تعیین شده) را بهصورت عدد DOUBLE INTIGER با دقت میلی ثانیه نشان میدهد. همچنین تعداد پالس شمارش شده را نیز همانند تابع SFC47 در پایه COUNTVAL میتوانید داشته باشید. برای فعال بودن تابع sfb48 حتما پایه SW_GATE همیشه فعال باشد.
مثال نحوه اتصال انکودر پی ال سی 300 زیمنس با تابع SFB48
یک انکودر را با رزولوشن 500 پالس را به یک موتور متصل کنید و پالسهای انکودر را به PLC 314C متصل کنید. محاسبه فرکانس موتور بر حسب هرتز و سرعت موتور برحسب RPM به ترتیب در رجیسترهای MD10 و MD20 بهصورت عدد صحیح قابل نمایش در HMI را بهدست بیاورید.
حل مثال: برای این کار ابتدا SFB48 را فراخوانی کنید و مقدار فرکانس پالس انکودر را از پایه MEAS_VAL به MD30 بدهید. رزولوشن انکودر 500 است و هدف نیز محاسبه فرکانس موتور است. این مقدار را ابتدا تقسیم بر 500 میکنید و سپس مقدار فرکانس موتور بر حسب میلیهرتز را بهدست میآورید. برای اینکه این مقدار برحسب هرتز باشد، عدد حاصل را بر 1000 تقسیم میکنید. مقدار حاصل نهایی را در MD10 منتقل کنید. برای بدست آوردن RPM موتور، باید فرکانس موتور بر حسب هرتز را در عدد 60 ضرب کنید و مقدار حاصل را در MD20 منتقل کنید. این برنامه بهصورت زیر است:
در صورتیکه قصد یادگیری پی ال سی برند زیمنس را دارید و میخواهید به برنامه نویسی دستگاه PLC مسلط شوید در دوره PLC زیمنس مجموعه نیک صنعت که بهصورت عملی و پروژه محور برگزار میشود، شرکت کنید.
راههای ارتباطی نیک صنعت:
- تماس با نیک صنعت: 87700210
- واحد فروش نیک صنعت: 09197872783
- واحد تعمیرات نیک صنعت: 09197872789
- ایمیل نیک صنعت: info@nicsanat.com
- آدرس شرکت: تهران، خیابان بهشتی، خیابان میرعماد، کوچه پیمانی (یازدهم)، پلاک 17
نظرات کاربران