کنترل موقعیت سروو موتور با استفاده سیگنال PTO در پی ال سی S7-1200

در این مقاله می خواهیم به نحوه پیکره بندی و موقعیت دهی یک سروو موتور با استفاده از پی ال سی S7-1200 بپردازیم. پیشنهاد می کنیم به منظور آشنایی با موقعیت دهی سروو و نحوه انجام آن تا آخر این مقاله با ما همراه باشید.  قبل از اینکه به بحث اصلی بپردازیم لازم است که راجع به سروو موتور و سروو درایو دانش ابتدایی داشته باشیم.

سروو موتور یک نمونه موتور است که می تواند با دقت بسیار زیادی بچرخد. در سروو موتورها یک مدار کنترلی وجود دارد که با  فیدبک گرفتن شفت داخلی موتور امکان چرخش با دقت بالا را ایجاد می کند. اگر در یک پروژه می خواهید عمل چرخش در برخی از زوایا یا فواصل خاص انجام شود، باید حتما از یک سروو موتور استفاده کنید. ورودی یک سروو موتور الکتریکی است و اگر سرووموتور از یک برق DC تغذیه شود، به آن سرووموتور DC و اگر سرووموتور از یک برق AC تغذیه شود، سرووموتور AC می گوییم. بعضی از سرووموتورها به منظور تولید گشتاور بالا در سایز کوچک، معمولاً به صورت چرخ دنده ای تولید می شوند. درجه بندی و مشخصه سروو موتورها بر حسب کیلوگرم بر سانتی متر (Kg/cm) تعیین می شود. به طور مثال یک سروو موتور 6 کیلوگرم بر سانتی متر می تواند باری به وزن 6 کیلوگرم را که در فاصله یک سانتی متری از محور معلق است، جابه جا کند. با توجه به ثابت بودن گشتاور تولیدی موتور هر چه بار در فاصله بیشتری از محور قرار داشته باشد، امکان تحمل وزن برای سروو موتور کم تر می شود. دقت کنید که این پارمتر با  گشتاور اشتباه نگیرید. واحد گشتاور Nm و یا Kg.cm می باشد و با Kg/cm اشتباه نگیرید. نحوه کارکرد سروو موتور به این صورت است که سنسور موقعیت شفت را sense می­ کند و اطلاعات آن را به مدار کنترل می دهد. مدار کنترل بر این اساس سیگنال­ های سنسور، موقعیت را رمزگشایی می کند و موقعیت واقعی موتورها را با موقعیت مطلوب مقایسه می کند و بر این اساس جهت چرخش موتور DC را برای بدست آوردن موقعیت مورد نیاز کنترل می کند. سروو موتورها به طور کلی به ولتاژ 4/8 ولت تا 6 ولت برای راه اندازی نیاز دارند.

فرمان دادن به سروو موتور از طریق سروو درایو انجام می شود. به طور ساده می توانیم بگوییم که سروو درایو به موتور می گوید که چه کاری، چه زمانی و چگونه آن را با جزئیات دقیق انجام دهد. سروو درایو یک سیگنال فرمان برای موقعیت، سرعت یا جریان دریافت می کند و ولتاژ و جریان اعمال شده به سرووموتور را بر اساس فیدبک حلقه بسته تنظیم می­ کند. توجه داشته باشید که به درایوهای سروو، تقویت کننده نیز گفته می شود. دلیل این نام گذاری این است که سرو درایو سیگنال کنترل را از یک کنترلر می گیرد و آن را تقویت می کند تا مقدار مشخصی ولتاژ و جریان را به سروو موتور منتقل کنند.

در سروو درایو سه لوپ کنترلی قابل اجرا می باشد که عبارتند از:

  1. مد گشتاور
  2. مد سرعت
  3. مد موقعیت
  1. در مد گشتاور، فرمان از لوپ سرعت یا ورودی آنالوگ مربوط به کنترل گشتاور ارسال و فیدبک از سنسور جریان گرفته می شود.
  2. در مد سرعت، فرمان از لوپ موقعیت یا ورودی آنالوگ مربوط به کنترل سرعت ارسال و فیدبک از انکودر (فرکانس پالس) گرفته می­شود.
  3. در مد موقعیت، فرمان از برنامه کنترلی یا قطار پالس ارسال می شود و فیدبک از انکودر (تعداد پالس) گرفته می شود.

در توضیح مدهای کنترلی سروو درایو و اینکه چرا به سروو درایو تقویت کننده نیز می گویند، بیان کردیم که سروو درایو سیگنالی که از یک کنترلر می گیرد تقویت می کند تا مقدار مشخصی ولتاژ و جریان را به سروو موتور منتقل کند. حال سوال این است که سیگنال کنترلی اعمالی به سروو درایو توسط چه دستگاهی ارسال می شود. پاسخ این است که یکی از روش های اعمال سیگنال به درایو کنترلر یا همان پی ال سی می باشد. در ادامه به بررسی نحوه کنترل موقعیت یک سروو موتور توسط پی ال سی می پردازیم. پی ال سی که در اینجا وظیفه ارسال کنترل موقعیت را بر عهده دارد، پی ال سی S7-1200 است. مدل پی ال سی S7-1200 انتخاب شده برای انجام این کار پی ال سی S7-1200 با کد فنی 6ES7 214-1AG40-0XB0 می باشد.

کنترل موقعیت یا همان ارسال سیگنال کنترلی به سروو درایو توسط پالس های خروجی فرکانس بالا پی ال سی S7-1200 انجام می شود. برای انجام این کار ابتدا تنظیمات مربوط به خروجی فرکانس بالا را در پی ال سی S7-1200 انجام می دهیم.

پس از انتخاب پی ال سی-PLC  می توان یا از نمودار درختی سمت چپ با کلیک راست بر روی مدل پی ال سی و انتخاب گزینه properties  و یا با انتخاب گزینه Device Configuration و ظاهر شدن تب properties در پایین نرم افزار، وارد منوی تنظیمات پی ال سی شد. از منوی تنظیمات مطابق شکل زیر گزینه PTO/PWM را انتخاب می کنیم. در این مدل پی ال سی می توان تا 4 خروجی پالسی با فرکانس بالا یا PWM را تنظیم کرد.

SRVO MOTOR

 

پس از انتخاب گزینه PTO1/PWM1 تنظیمات خروجی فرکانس بالا ظاهر می شود. در مرحله اول باید خروجی فرکانس بالا را مطابق شکل فعال کنیم.

پس از فعال سازی خروجی فرکانس بالا توسط پی ال سی گزینه های pulse option مطابق شکل زیر ظاهر می شوند.

SERVO CONTROL

در مرحله اول باید نوع سیگنال PTO/PWM را تعیین کرد.  

PWM: مخفف Pulse Width Modulation که با توجه به یک Duty Cycle تعیین می شود که در چه مدت زمانی از سیکل فعال و در چه مدت زمانی از سیکل غیر فعال باشد.

PTO (Pulse A and direction B): در این حالت یک خروجی به تولید پالس و یک خروجی به کنترل جهت محور اختصاص داده می شود.

SERVO MOTOR

PTO (Count up A and count down B): در این نوع سیگنال پالس های یک خروجی ارزیابی می شوند. پالس با جهت مثبت با خروجی Pulse output up فعال و پالس با جهت منفی با خروجی Pulse output down فعال می شود.

SERVO CONTROL

PTO (A/B phase-shifted): لبه بالا رونده در یک خروجی برای این نوع سیگنال ارزیابی می شود. در این نوع سیگنال پیش فاز و پس فاز شدن خروجی ها نسبت به جهت چرخش را مشخص می کند.

  • اگر سیگنال A نسبت به B پیش فاز باشد، جهت مثبت چرخش
  • اگر سیگنال B نسبت به سیگنال A پیش فاز باشد، جهت منفی چرخش

PTO (A/B phase-shifted - fourfold): در این حالت لبه های مثبت و منفی هر دو خروجی ارزیابی می شوند. تغییر فاز بین خروجی ها جهت چرخش را مشخص می کند.

  • اگر سیگنال A نسبت به B پیش فاز باشد، جهت مثبت چرخش
  • اگر سیگنال B نسبت به سیگنال A پیش فاز باشد، جهت منفی چرخش

SERVO MOTOR

در این مقاله قصد داریم نحوه کنترل سروو موتور از طریق PTO (Pulse A and direction B) را توضیح دهیم و این گزینه را انتخاب می کنیم. پس از انتخاب، تنظیمات مربوط خروجی این گزینه مطابق شکل زیر ظاهر می شود. در این قسمت حتما باید گزینه enable direction output را فعال کنیم تا بتوانیم با استفاده از خروجی فرکانس بالا عمل کنترل را انجام دهیم.

SERVO MOTOR

پس انجام تنظیمات بالا و فعال کردن خروجی فرکانس بالای پی ال سی باید تنظیمات مربوط motion control را انجام دهیم. از نمودار درختی پروژه مربوطه در سمت چپ مطابق شکل زیر یک technology object جدید ایجاد می کنیم.

SERVO MOTOR

پس از انتخاب add new object پنجره ای مطابق شکل زیر ظاهر می شود.

SERVO MOTOR

در اینجا گزینه motion control و پس از آن گزینه TO_PositioningAxis را انتخات می کنیم. پس از انتخاب نام دلخواه گزینه ok فعال شده را انتخاب می کنیم. پس از این مرحله وارد تنظیمات مربوط به motion contrl می شویم. تنظییمات این قسمت شامل موارد زیر می باشد که آن ها را مرحله به مرحله همراه با توضیح انجام خواهیم داد:

SERVO MOTOR

تنظیمات مربوط به Basic parameters:

این قسمت از دو بخش General و درایو تشکیل شده است. قسمت تنظیمات درایو نیز از دو بخش Hardware Interface وEnable and feedback of the drive تشکیل شده است.

تنظیمات  بخش General از تب Basic Parameters:

SERVO MOTOR

در قسمت General نام، نوع کنترل سروو درایو و واحد positioning تعیین می شوند. انواع واحدهای اندازه گیری positioning عبارتند از:

  • Mili meter
  • Meter
  • Inch
  • Foot
  • Pulses
  • Degree

در این پروژه چون هدف ما کنترل چرخش تک محوره است واحد درجه را انتخاب کردیم. تنظیمات مربوط به تب Basic parameters  و بخش درایو به صورت زیر است:

SERVO MOTOR

با انتخاب گزینه select pulse generator بر روی pulse_1 سایر گزینه ها به طور اتوماتیک فعال می شوند. دقت شود ما در قسمت Device Configuration از بین 4 خروجی فرکانس بالا PTO/PWM، خروجی اولی را با نام پیش فرض Pulse_1 انتخاب کردیم. 

قسمت بعدی تنظیمات بخش درایو شامل تنظیمات Enable and feedback of the drive می باشد.

SERVO MOTOR

تنظیمات این قسمت اختیاری است. می توان در گزینه select enable output یک خروجی از پی ال سی S7-1200 را تعریف کنیم. زمانی که این خروجی یک می شود درایو، سروو را برای انجام عمل positioning آماده به کار می کند و زمانی که از سمت درایو خطا و مشکلی وجود نداشته باشد می توان یک فیدبک را برای ورودی پی ال سی در نظر گرفت، تا با یک شدن آن مطمئن شویم مشکلی از سمت درایو برای انجام کنترل موقعیت وجود ندارد. می توان به جای اختصاص یک ورودی، از TRUE استفاده کرد به معنای این که فرض شده است که درایو مربوط به سروو یا همان سروو درایو مشکلی ندارد و همیشه آماده به کار است.

تنظیمات بعدی که باید انجام دهیم، تنظیمات مربوط به  Extended parameters است که شامل بخش های Mechanics، Position Limits، Dynamics و homing است.

در بخش Mechanics مطابق شکل زیر پارامترهای زیر تنظیم می شوند:

SERVO MOTOR

Pulses per motor revolution: تعداد پالس هایی  که از سمت پی ال سی به سروو انتقال پیدا می کند و سروو به ازای آن یک دور می چرخد.

Load movement per motor revolution: در این گزینه تعیین می کنیم که به ازای هر دور کامل سروو، بار چه میزان جابه جا می شود. واحد این عدد همان واحد تنظیم شده در بخش Basic parameters می باشد. مقدار این پارامتر با توجه به مکانیک پروژه تعیین می گردد.

اگر مشاهده کردیم جهت موتور با جهت حرکت ارسالی ما مطابقت ندارد، می توان گزینه Invert direction signal را فعال کرد.

در بخش position limit می توان ورودی هایی را به عنوان ابتدا و انتهای خط لحاظ کنیم. این کار در تنظیمات هم به صورت سخت افزاری و هم به صورت نرم افزاری قابل انجام است. در شکل زیر مفهوم محدوده کاری مجاز تشریح شده است:

SERVO MOTOR

در شکل بالا منظور از SW حد نرم افزاری و HW حد سخت افزاری است.

سوئیچ های حد سخت افزاری سوئیچ های هستند که حداکثر محدوده عبور مجاز محور را محدود می کنند. سوئیچ های محدودکننده سخت افزاری عناصر سوئیچینگ فیزیکی هستند که باید به ورودی های پی ال سی با قابلیت وقفه متصل شوند.

سوئیچ های نرم افزاری سوئیچ هایی هستند که محدوده کاری محور را محدود می کنند. این سوئیچ ها فقط از طریق نرم افزار پیاده سازی می شوند و نیاز به سوئیچ های سخت افزاری ندارند. تنظیمات position limit مطابق شکل زیر انجام می شود:

SERVO MOTOR

در ابتدا باید حد سخت افزاری و نرم افزاری را فعال کرد. با فعال کردن حد سخت افزاری باید ورودی های پی ال سی که قرار است تعیین کننده حد سخت افزاری باشند، تعیین شود. در گزنه Select level نیز تعیین می کنیم که با فعال شدن حد بالا یا پایین سیگنال ورودی اعمالی به پی ال سی low level  و یا high level باشد.

تنظیمات بعدی که باید انجام دهیم تنظیمات مربوط به بخش Dynamics است که دو بخش General و Emergency stop را شامل می شود. تنظمات بخش General به صورت زیر انجام می شود:

SERVO MOTOR

در این بخش تنظیمات مربوط به سرعت سروو انجام می شود. با توجه به اینکه در تنظیمات واحد موقعیت را درجه انتخاب کردیم در اینجا نیز واحد سرعت را درجه بر ثانیه تعریف می کنیم. در maximum velocity حداکثر سرعت و در start/stop velocity حداقل سرعت را تعیین می کنیم. گزینه Acceleration و Ramp-up time به همدیگر وابسته هستند بدین صورت که با تغییر یکی از اعداد، دیگری نیز تغییر می کند. در Acceleration شتاب موتور در افزایش سرعت تعیین می شود. هر چه مقدار Acceleration بیشتر شود، عدد مربوط به Ramp-up time کم تر می شود. گزینه های Deceleration و Ramp-down time نیز به یکدیگر وابسته هستند. در Deceleration شتاب کاهش سرعت تعیین می شود. هر چه این مقدار بیشتر باشد عدد مربوط به Ramp-up down نیز کاهش می یابد.

با فعال سازی گزینه enable jerk limit نمودرهای سرعت و Acceleration/Deceleration تغییر می کنند. در صورت فعال کردن گزینه گفته شده، افزایش و کاهش شتاب با یک شیب نرم صورت می گیرد.

SERVO MOTOR

در قسمت بعد باید تنظیمات مربوط به Emergency Stop را انجام دهیم. تنظیمات این قسمت مطابق شکل زیر انجام می شود.

SERVO MOTOR

با توجه به اینکه پارامترهای این قسمت قبلا نیز توضیح داده شده اند از توضیح اضافی آن ها خودداری می کنیم. این پارامترها مربوط به استپ کردن اضطراری سروو است. استپ اضطراری برای مواقعی است که سروو از محدوده سخت افزاری تعیین شده خارج شود یا یا محور آن از طریق  بلاک MC_Power غیر فعال شود.

پس از انجام تنظیمات مربوط به technology object به منظور برنامه نویسی positioning مربوطه به سروو وارد OB1 پروژه مربوطه می شویم. پس از آن در بخش Instruction و در motion control می توان از بلاک های آن در کنترل موقعیت استفاده کرد.

SERVO MOTOR

زمانی که می خواهیم کنترل موقعیت انجام دهیم، به منظور فعال سازی motion control باید بلاک MC_Power در برنامه وجود داشته باشد تا بتوانیم از بقیه بلاک هایی شکل بالا، استفاده کنیم. با انتخاب و درگ کردن، پس از انتخاب نام دلخواه گزینه ok را انتخاب می کنیم. مطابق شکل زیر این بلاک نیز همانند سایر بلاک ها تعدادی ورودی و خروجی دارد که تنظیمات آن را در ادامه شرح خواهیم داد.

SERVO MOTOR

پایه Axis: در این پایه نام Axis را که در قسمت technology object تنظیمات مربوط به آن را انجام دادیم، وارد می کنیم.

پایه Enable: در صورت فعال سازی این پایه بلاک مرتبط با Axis می توانند فعال باشند و عملکرد داشته باشند. می توان برای ورودی از یک بیت لاجیک N.O استفاده کرد.

پایه Stop Mode: داده این پایه یک عدد int است و عدد می توان 0، 1 و یا 2 باشد.

  • ورودی صفر به معنای توقف اضطراری (Emergency stop) است. اگر درخواستی برای غیرفعال کردن محور وجود داشته باشد، محور با شتاب Deceleration تنظیم شده در پیکربندی از حرکت می ایستد. محور پس از سکون غیرفعال می شود.
  • ورودی یک به معنای توقف فوری (Immediate stop) است و اگر درخواستی برای غیر فعال کردن محور وجود داشته باشد، خروجی صفر و محور غیر فعال می شود.
  • ورودی 2 به معنای توقف اضطراری با jerk control، اگر درخواستی برای غیر فعال کردن محور وجود داشته باشد محور مطابق تنظیمات jerk control متوقف می شود.

پایه خروجی Status: داده این پایه از نوع BOOL است. مقدار این پایه می تواند صفر یا یک باشد.

  • صفر بودن به معنای این است که axis غیر فعال است. برای سروو درایو که ارتباط با پی ال سی از طریق PTO برقرار شده است به معنای این است که axis مورد نظر جانمایی نشده است (axis is not homed).
  • یک بودن به معنای این است کهaxis فعال شده است.

پایه خروجی Busy: داده این پایه از نوع BOOL است. غیر فعال بودن و یا True نبودن به معنای عدم فعال بودن بلاک MC_Power است.

پایه خروجی Error: داده این پایه از نوع BOOL است. در این پایه وجود خطا در بلاک MC_Power مشخص می شود. یک بودن داده این پایه به معنای وجود خطا است. دلیل خطا در پایه های ErrorID و ErrorInfo مشخص می شود.

پایه ErrorID: داده این پایه از نوع word است (2 بایت حافظه نیاز دارد) و ID مربوط به خطای رخ داده، در این پایه نمایش داده می شود.

پایه Errorinfo: این پایه از نوع word است. در این پایه نیز یک ID نشان داده می شود که در HELP خود نرم افزار می توان توضیحات مربوط به ID را مشاهده کرد.

پس از انجام تنظیمات مربوط به MC_Power، باید رفرنس شدن axis را انجام دهیم. به دلیل اینکه در این مقاله هدف تنظیم بر حسب درجه است منظور از رفرنس شدن این است که بابد محور را بچرخانیم تا به یک نقطه مبنا دست پیدا کنیم تا تغییرات axis بر مبنای نقطه رفرنس اتفاق بیفتد.  برای این کار یک لیمیت سوئیچ تعبیه می­کنیم و با سرعتی بالاتری از سرعت تنظیم شده به سمت لیمیت سوئیچ حرکت می کنیم و به محض تحریک لیمیت سوئیچ باید سرعت را کم تر کنیم. دلیل این کار این است که مبنای رفرنس شدن پالس ocz سروو است و چون دامنه این پالس بسیار محدود است ما باید سرعت سزوو را تا حد امکان کم تر کنیم تا در یک نقطه پالس را دریافت و اعتبار رفرنس شدن تضمین شود. برای انجام تنظیمات گفته شده از بلاک MC_MoveVelocity استفاده می کنیم. (یلاک MC_MoveVelocity مربوط به منظور تنظیم سرعت است)

SERVO MOTOR

پایه Axis: در این پایه،  نام axis که تنظیمات آن را در قسمت technology object انجام دادیم، انتخاب می کنیم.

پایه Excute: داده از نوع BOOL است و با لبه بالارنده پالس فعال می شود. آدرس پایه Status را در اینجا وارد می کنیم. همانطور که قبلا توضیح دادیم، برای فعال سازی بلاک ها در ابتدا باید بلاک MC_Power را فعال کرده باشیم. پایه خروجی Status در بلاک MC_Power نشان دهنده فعال یا غیر فعال بودن بلاک است.  علاوه بر فیدبکی از خروجی MC_Power می گیریم یک بیت لاجیک دیگر نیز تعریف می کنیم که بیانگر رفرنس گیری از HMI است.

پایه velocity: در این پایه سرعت تعیین می شود. واحد سرعت در این پایه همان واحدی است که در بخش تنظیمات مربوط به Technology object تعیین کردیم.

پایه Direction: مقدار این پایه یکی از مقادیر int صفر، یک و یا دو تعیین شود.

  • صفر بودن این پایه به معنای این است که جهت حرکت با توجه به علامت عدد مربوط به پایه velocity  تعیین می شود.
  • یک بودن این پایه به معنای این است که جهت حرکت مثبت در نظر گرفته شود.
  • دو بودن این پایه به معنای این است که جهت حرکت منفی در نظر گرفته شده است.

پایه current: مقدار این پایه از نوع Bool است و صفر بودن به معنای غیر فعال بودن سرعت جاری و یک بودن مقدار این پایه به معنای حفظ سرعت جاری است.

پایه InVelocity: داده مربوط به این پایه از نوع Bool است. صفر بودن مقدار این پایه به معنای این است که مقدار تنظیم شده در پایه velocity حاصل شده است و یک بودن به معنای این است که سرعت در زمان شروع، سرعت جاری است.

پایه Busy: داده مربوط به این پایه از نوع BOOL است و نشان دهنده عملکرد بلاک است. اگر صفر باشد به معنای این است که بلاک در حال اجرا نمی باشد و اگر یک باشد به معنای این است که بلاک در حال اجرا می باشد.

پایه :CommandAborted داده مربوط به این پایه از نوع BOOL است و نشان دهنده این است که عملکرد این بلاک در حین اجرا  توسط بلاک دیگری لغو شده است یا خیر؟ یک شدن این پایه بدین معناست که عملکرد این بلاک در حین اجرای توسط بلاک دیگری لغو شده است.

پایه Error: داده مربوط به این پایه از نوع BOOL است و یک بودن به معنای وجود خطا در عملکرد این بلاک است.

پایه Error ID: داده مربوط به این پایه از نوع WORD است. در این پایه کد مربوط به خطای رخ داده نمایش داده می شود.

پایه ErrorInfo: داده مربوط به این پایه از نوع WORD است. در این پایه یک کد که بیانگر خطای نشان داده شده در پایه Error ID نمایش داده می شود.

بعد از اینکه با سرعت تنظیم شده در بلاک move_ velocity، سروو به سمت لیمیت سوئیچ حرکت کرد، به محض مشاهده لیمیت سوئیچ باید سرعت کاهش پیدا کند. برای انجام این کار از یک move_velocity دیگر استفاده کنیم. برای فعال سازی بلاک علاوه بر فعال بودن MC_Power که فیدبک کنتاکت باز پایه خروجی status را در پایه execute پایه move_velocity قرار می دهیم، در اینجا باید یک کنتاک باز دیگر سری با کنتاکت باز status قرار دهیم. دلیل استفاده از این کنتاکت، فعال سازی بلاک به محض فعال شدن لیمیت سوئیچ و کم شدن سرعت می باشد.

SERVO MOTOR

بعد از اینکه پالس ocz را دریافت کردیم باید axis را متوقف کنیم و نقطه رفرنس را مشخص کنیم. برای متوقف کردن Axis از بلاک MC_Halt استفاده می کنیم. پایه های این بلاک به صورت زیر تنظیم می شوند:

SERVO MOTOR

پایه Axis: نام Axis که می خواهیم غیر فعال شود در این پایه وارد می شود.

پایه execute: این پایه با اعمال لبه بالارونده فعال می شود. برای فعال سازی این پایه یک فیدبک از خروجی MC_Power گرفته و یک کنتاکت باز با آدرس خروجی status قرار می دهیم. علاوه بر این، باید کنتاکت باز دیگر که فعال شدن آن منوط به تحریک پالس ocz است قرار دهیم. آدرس این کنتاکت آدرس ورودی است که با تحریک پالس سروو فعال می شود.

پایه Done: داده مربوط به این پایه از نوع BOOL است و در صورت محقق شدن سرعت صفر، فعال (TRUE) یا یک می شود.

پایه Busy: داده مربوط به این پایه از نوع BOOL است. یک بودن مقدار این پایه به این معناست که بلاک در حال اجرا است.

پایه CommandAborted: داده مربوط به این پایه از نوع BOOL است. مقدار این پایه یک می شود در صورتی در حین اجرا، عملکرد آن توسط بلاک دیگری غیر فعال شود.

پایه Error: داده مربوط به این پایه از نوع BOOL است و یک بودن به معنای وجود خطا در عملکرد این بلاک است.

پایه Error ID: داده مربوط به این پایه از نوع WORD است. در این پایه کد مربوط به خطای رخ داده نمایش داده می شود.

پایه ErrorInfo: داده مربوط به این پایه از نوع WORD است. در این پایه یک کد که بیانگر خطای نشان داده شده در پایه Error ID نمایش داده می شود.

در قسمت بعد می ­توانیم تنظیم کنیم زمانی که رفرنس axis اتفاق می افتد یک Bit Lamp را بر روی HMI نشان داد. فعال شدن Bit Lamp نشان دهنده این است که رفرنس (صفر محور) انجام شده و سروو آماده موقعیت دهی است.

در مرحله بعد باید نقطه position صفر axis را تعریف کنیم.  این کار با استفاده از بلاک MC_Home انجام می شود. تنظیمات پایه های این بلاک به صورت زیر انجام می شود:

SERVO MOTOR

پایه axis: نام axis را که در قسمت technology object تنظیمات مربوط به آن را انجام دادیم، وارد می کنیم.

پایه execute: با اعمال لبه بالارونده به این پایه، بلاک به منطور عملکرد فعال می شود. همانند سایر بلاک ها فعال شدن این بلاک منوط به فعال شدن بلاک MC_Power می باشد. پس یک کنتاکت باز خروجی status را در پایه execute این بلاک قرار می دهیم.  همچنین یک تیغه باز  بالارونده از خروجی Bit Lamp تعریف شده را به صورت سری با تیغه باز MC_Power  قرار می دهیم.

پایه position: مقدار این پایه از نوع Real است. با اجرای ابن بلاک، مقدار تعریف شده در این پایه را به عنوان مقدار position axis در نظر می گیرد.

پایه Mode: داده ای که به این پایه اختصاص داده شده است از نوع int است و مقدار آن می تواند یکی از اعداد صفر تا 3 باشد:

  • 0: direct homing (absolute)
  • 1: direct homing (relative):
  • 2: passive homing
  • 3: active homing

پایه Done: داده مربوط به این پایه از نوع BOOL است. یک بودن به معنای انجام دستور و فرمان است.

پایه Busy: داده مربوط به این پایه از نوع BOOL است. یک بودن مقدار این پایه به این معناست که بلاک در حال اجرا است.

پایه CommandAborted: داده مربوط به این پایه از نوع BOOL است. مقدار این پایه یک می شود در صورتی در حین اجرا، عملکرد آن توسط بلاک دیگری غیر فعال شود.

پایه Error: داده مربوط به این پایه از نوع BOOL است و یک بودن به معنای وجود خطا در عملکرد این بلاک است.

پایه Error ID: داده مربوط به این پایه از نوع WORD است. در این پایه کد مربوط به خطای رخ داده نمایش داده می شود.

پایه ErrorInfo: داده مربوط به این پایه از نوع WORD است. در این پایه یک کد که بیانگر خطای نشان داده شده در پایه Error ID نمایش داده می شود.

در مرحله بعد می خواهیم بین 0 تا 360 درجه محور را تحت کنترل خودمان قرار دهیم و با اعمال فرمان از طریق HMI، موقعیت های مختلفی را در این بازه برای سروو تعیین کنیم. برای انتقال سروو به یک موقعیت مشخص باید از بلاک MC_MoveAbsolute استفاده کنیم. پایه های این بلاک به صورت زیر تنظیم می کنیم:

SERVO MOTOR

پایه axis: نام axis را که در قسمت technology object تنظیمات مربوط به آن را انجام دادیم، وارد می کنیم.

پایه execute: با اعمال لبه بالارونده به این پایه، بلاک به منطور عملکرد فعال می شود. همانند سایر بلاک ها فعال شدن این بلاک منوط به فعال شدن بلاک MC_Power می باشد. پس یک کنتاکت باز خروجی status را در پایه execute این بلاک قرار می دهیم. علاوه بر این، باید یک مقایسه قرار دهیم تا اگر مقدار axis برابر صفر باشد، اجازه انتقال به position  بعدی بدهد.

 

پایه position: مقدار این پایه از نوع Real است. با اجرای ابن بلاک، مقدار تعریف شده در این پایه را به عنوان مقدار position axis در نظر می گیرد.

پایه velocity: مقدار این پایه از نوع Real است. با اجرای ابن بلاک، مقدار تعریف شده در این پایه را به عنوان مقدار سرعت axis در نظر گرفته می شود.

پایه Done: داده مربوط به این پایه از نوع BOOL است. در صورت اجرای دستور، پایه خروجی یک می شود.

پایه Busy: داده مربوط به این پایه از نوع BOOL است. یک بودن مقدار این پایه به این معناست که بلاک در حال اجرا است.

پایه CommandAborted: داده مربوط به این پایه از نوع BOOL است. مقدار این پایه یک می شود در صورتی در حین اجرا، عملکرد آن توسط بلاک دیگری غیر فعال شود.

پایه Error: داده مربوط به این پایه از نوع BOOL است و یک بودن به معنای وجود خطا در عملکرد این بلاک است.

پایه Error ID: داده مربوط به این پایه از نوع WORD است. در این پایه کد مربوط به خطای رخ داده نمایش داده می شود.

پایه ErrorInfo: داده مربوط به این پایه از نوع WORD است. در این پایه یک کد که بیانگر خطای نشان داده شده در پایه Error ID نمایش داده می شود.

در این مقاله هدف رسیدن به 4 موقعیت  180،90،0، 270 و 360 درجه است. فرض می کنیم برای صفر تا نود درجه با مقدار موقعیت تعیین شده در حافظه %MD300 حرکت کند، یعنی %MD300 را روی 90 درجه تنظیم می کنیم. یک بلاک دیگر MC_MoveAbsolute انتخاب و مشابه حالت قبل مقدار موقعیت جدید را  در پایه position اعمال کرد. به همین ترتیب این کار را برای 3 موقعیت دیگر انجام داد. دقت شود پس باید به ازای فعال بودن axis و محقق شدن موقعیت 360 درجه و رفرنس شدن بلاک MC_Home فعال شود. به منظور اینکه بتوانیم مقدار جاری محور را بر روی hmi دید. مقدار مقدار موقعیت را در یک حافظه قرار داد و باید از دستور move استفاده کنیم.

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

مجموعه نوآوران با کادری مجرب و تجربیات فراوان در اجرای پروژه های صنعتی، تامین و فروش، راه اندازی و تعمیر محصولات شرکت زیمنس شامل پی ال سی های Logo ، S7-200 ، S7-300 ، S7-400، S7-1200 و S7-1500  آماده ارائه­ ی خدمات، مشاوره و آموزش به شما عزیزان است.

 

 

 

افزودن نظر