آموزش, آموزش linux CNC, توصیه شده, دستگاه cnc, رباتیک و مکاترونیک

آموزش linuxCNC – قسمت سوم – کار با کانفیگ ها

آموزش linuxCNC – قسمت سوم – کار با کانفیگ ها

در قسمت قبلی از سری آموزش LinuxCNC، نحوه نصب نرم افزار و راه اندازی لینوکس CNC  رو توضیح دادیم، حالا در این قسمت میخوایم سراغ کار با کانفیگ های نرم افزار بریم و اون رو برای خودمون شخصی سازی کنیم.

همونطور که در قسمت قبل گفتیم دوتا از فایل های مهمی که تنظیمات ما در اون ذخیره میشه فایل های ini و hal هستند، پس از باز کردن نرم افزار برای بار اول، یک کپی از کانفیگی که انتخاب کردیم در پوشه home ما در پوشه linuxcnc کپی میشه و یک شورتکات هم برای اجرای مستقیم کانفیگ ما در دستکاپ ساخته میشه، اگر این شورتکات رو بررسی کنیم میبینیم که در اصل داره این دستور رو اجرا میکنه.

با توجه به این موضوع نقطه شروع ما برای بررسی فایل ini هست، در ادامه این فایل رو بررسی میکنیم.

 

فایل INI

یک فایل ini از سه جز اصلی تشکیل شده که شامل موارد زیر میشه.

  • کامنت
  • بخش
  • متغیر

کامنت ها

خطوطی که با ; یا # شروع میشند به عنوان کامنت در نظر گرفته میشند، به طور مثال:

 

شاید برای شما مفید باشد: آموزش الکترونیک از 0 تا 100

 

بخش ها (Sections)

در فایل ini بخش های مختلفی از نرم افزار قابل تنظیم هستند که پارامتر های هر کدوم رو در Section مربوطه مقدار دهی میکنیم، هر بخش هم به صورت [THIS_SECTION] از بقیه جدا میشه و پارامتر های هر SECTION از [THIS_SECTION] قبلی شروع شده و تا [THIS_SECTION] بعدی ادامه داره.

در ادامه section های مختلف فایل ini رو بررسی میکنیم.

  • EMC : متغیر های کلی
  • DISPLAY : مرتبط با رابط کاربری (نوع رابط کاربری، مقدار های اولیه که نمایش داده میشه و …)
  • RS274NGC : مرتبط با RS274NGC که برنامه پردازش  G code در لینوکس سی ان سی است.
  • EMCMOT : تنظیماتی که توسط کنترلر real time استفاده میشه (سادش اینکه مثلا میگه حلقه های اصلی برنامه هر چند میکرو یا میلی ثانیه اجرا میشند و بستگی به پیچیدگی دستگاه و سرعت سیستم داره تنظیمش)
  • HAL : آدرس فایل های HAL و تنظیمات مربوطه رو داره.
  • APPLICATIONS : اجرای نرم افزار های دیگه هنگام اجرای linuxCNC

توضیحات بیشتر در این لینک موجود هست و ما اصلی هاش رو بررسی کردیم.

متغیر های پرکاربرد

 

بخش DISPLAY

در بخش DISPLAY از این متغیر ها استفاده زیادی میشه.

از اینها میتونید جهت تنظیم این پارامتر ها در GUI استفاده کنید و حداکثر اونها رو تغییر بدید.

این متغیر هم برای تغییر پله های حرکت استفاده میشه.

 

با این دو متغیر میتونید تصویری که در هنگام باز شدن نرم افزار نشون داده میشه رو تغییر بدید و زمان نمایشش رو هم مشخص کنید.

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

 

این متغیر فایل g code  پیشفرضی که هنگام باز شدن نرم افزار در پیش نمایش نشون داده میشه رو مشخص میکنه.

به جای این فایل میاد

بخش HAL

در این متغیر ها اسم فایل های HAL که در برنامه استفاده میشه رو مشخص میکنیم.

 بخش TRAJ

با کمک این دو متغیر میتونید تعداد محور هاتون و نام اونها رو مشخص کنید.

با این دو متغیر میتونید واحد اندازه گیری طول و درجه رو مشخص کنید.

 

 بخش JOINT و AXIS

پارامتر های این دو بخش رو معمولا باید بگردید ببینید کجا ها و توسط کدوم بخش ها استفاده شدند 🙂 ولی معمولا در فایل های HAL استفاده میشند و یا توسط GUI برای مقدار دهی یکسری پارامتر ها.

شاید برای شما مفید باشد: آموزش رزبری پای به صورت 100% رایگان

 

فایل HAL

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

هر سیستمی از چندین جز تشکیل شده، مثلا در دستگاه CNC، میکرو سوییچ، درایور موتور، کلید های فشاری، انکودر ها و … جز های مختلف آن هستند. برای اتصال این بخش ها به هم کافیه اونها رو انتخاب و سیم کشی کنیم تا کار انجام بشه.

اتصالات بالا رو تصور کنید، همین کار به صورت کد در یک فایل HAL به صورت زیر انجام میشه.

برای شروع ابتدا  فایل های زیر رو که در فایل axis.ini معرفی شده بررسی کنید تا یه ذهنیتی پیدا کنید.

مفاهیم HAL

اگر HAL رو زبان برنامه نویسی در نظر بگیریم منظور از مفاهیم همون حلقه، دستورات شرطی، متغیر ها و .. هست که HAL مفاهیم مختص خودش رو داره، در ادامه اون ها رو بررسی میکنیم.

Component

به تصویری که بالاتر قرار داده شده نگاه کنید، منظور از یک component هر بخش از سخت افزار یا نرم افزار هست که در فایل HAL قابل فراخوانیه . به طور مثال ما یک کارت توسعه داریم که میخوایم اون رو در نرم افزار اضافه کنیم، اون کارت توسعه باید یک درایوری داشته باشه که روی سیستم نصب بشه و با کد های HAL بتونه ارتباط بگیره، بعد از برقراری ارتباط اون کارت توسعه ما میتونه شامل چندین component باشه مثلا یک کامپوننت stepgen  که کار اون تولید پالس برای کنترل استپر موتور هست و یا کامپوننت pwmgen که میتونه برای کنترل سرعت اسپیندل استفاده بشه.

Parameter

اغلب سخت افزار ها بخشی برای تنظیم دارند، به طور مثال یک درایور استپر جامپر هایی برای مشخص کردن میکرو استپ ها داره یا پتانسیومتری برای تعیین حداکثر جریان، در HAL هم Component ها دارای دو نوع پارامتر هستند یک نوع ورودی که به کمک آن تنظیم میشند و یک نوع خروجی که وضعیت کامپوننت رو نشون میدند.

Pin

اگر همون مثال درایور استپر رو در نظر بگیریم در اینجا پینها همون پایه های خروجی درایور هستند که به استپر وصل میشند، در حقیقت از pin ها جهت اتصال component های به همدیگه استفاده میشه.

Signal

سیگنال ها حکم سیمی رو دارند که دوتا پین رو به هم وصل میکنند .

هنگام استفاده از سخت افزار واقعی، هیچ وقت خروجی رله ۲۴ ولت رو به ورودی آنالوگ اسپیندل وصل نمیکنیم، پین های HAL هم رفتار مشابهی دارند و انواع مختلفی دارند که هر پین فقط به هم نوع خودش میتونه وصل بشه.

انواع پین

  • bit : فقط دو حالت صفر یا یک
  • float : اعداد اعشاری
  • u32 : عدد صحیح ۳۲ بیتی بدون علامت
  • s32 : عدد صحیح ۳۲ بیتی با علامت

Function

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

Thread

گفتیم که توابع یک کامپوننت مقادیر پین های مرتبط رو بروز میکنند اما خود توابع هم نیاز به فراخوانی دارند و اینکار با تعریف thread انجام میشه و هر thread در بازه های مشخصی اجرا میشه.

 

فعلا تا همینجا توضیح HAL کافی هست، در ادامه لازمه که خودتون بقیه توضیحات HAL رو از این لینک بررسی کنید.

 

برای تمرین بیشتر هم همین فایل های HAL ی که در کانفیگ axis.ini معرفی شده رو بررسی کامل کنید و نتایج اونها رو با کمک نرم افزار HAL Configuration بررسی کنید. (از منوی machine -> show Hal Configuration قابل دسترسی هست.)

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

8 دیدگاه در “آموزش linuxCNC – قسمت سوم – کار با کانفیگ ها

  1. Avatar for امین رضا امین رضا گفت:

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

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      ممنون از شما 🙂

  2. Avatar for امید امید گفت:

    عالی ، یعنی 100 تا سایت خارجی و فوروم خود linuxcnc بری هم به این خوبی نیس
    در انتظار ادامه ی پارت ها

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      لطف دارید 🙂

  3. Avatar for مهران مهران گفت:

    بسیار عالی اگر در پروسه آموزش اشاره کنید که چطور میشه سیستم رو برای یک سی ان سی مثلا 5 محوره کانفیگ کرد و کجا به این تنظیمات ربط داره ممنون میشم

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      کل تنظیماتی که باید برای cnc یک محور تا ۹ محور انجام بدید داخل همین فایل های ini و hal هست
      در همین قسمت بخشی از پارامتر های مربوطه رو اشاره کردیم که در قسمت های بعد دقیق تر توضیح داده میشه

  4. Avatar for Ehsan Pourali Ehsan Pourali گفت:

    عالی، منتظر ادامه مطالب هستیم
    خسته نباشید

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      ممنون از شما 🙂

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *