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

blog
۱۴۰۲-۰۳-۱۸
6 دقیقه

در قسمت قبلی از سری آموزش 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 استفاده کنید و حداکثر اونها رو تغییر بدید.

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

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

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

 

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

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

 

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

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

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

بخش HAL

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

 بخش TRAJ

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

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

 

 بخش JOINT و AXIS

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

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

 

فایل HAL

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

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

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

اتصالات بالا رو تصور کنید، همین کار به صورت کد در یک فایل 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 قابل دسترسی هست.)

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

اطلاعات
8
0
لینک و اشتراک
profile

Mahdi.h  

متخصص الکترونیک

علاقه مند به سیستم های امبدد | http://mahdi2001h.ir

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

دیدگاه ها

profile
امین رضا گفت :
۱۴۰۲-۰۶-۱۰ ۲۱:۱۰

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

profile
Mahdi.h   گفت :
۱۴۰۲-۰۶-۱۸ ۱۴:۴۵

ممنون از شما 🙂

profile
امید گفت :
۱۴۰۲-۰۴-۱۰ ۲۲:۲۳

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

profile
Mahdi.h   گفت :
۱۴۰۲-۰۴-۱۱ ۱۶:۱۲

لطف دارید 🙂

profile
مهران گفت :
۱۴۰۲-۰۳-۱۹ ۰۱:۵۰

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

profile
Mahdi.h   گفت :
۱۴۰۲-۰۳-۱۹ ۱۲:۲۳

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

profile
Ehsan Pourali گفت :
۱۴۰۲-۰۳-۱۸ ۲۲:۴۱

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

profile
Mahdi.h   گفت :
۱۴۰۲-۰۳-۱۹ ۱۲:۲۱

ممنون از شما 🙂

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله