در ایام اخیر این سوال ایجاد شد که آیا منابعی در دسترس هستند که از طریق آنها بتوان یاد گرفت که چطور برای یک کنترلر صنعتی برنامه بنویسیم؟ آیا با استفاده از آن منابع می توانیم یاد بگیریم که مثلا چطور برای پیاده سازی یک کنترلر آسانسور یا کنترلر دستگاه تزریق پلاستیک یا کنترلر دستگاه پرکن مایعات یا اینورتر سه فاز و امثال آنها کد بنویسیم؟ حالا چرا این سوال مطرح شد؟ هدف این بود که اگر چنین منابعی در دسترس عموم نیستند، درباره امکان تشکیل یک دوره آموزشی برای این منظور بررسی شود. در همین رابطه یک نظرسنجی در کانال قرار داده شد که مطابق نتیجه آن هر چند فقط ۱۶ درصد اعلام کردند که چنین منابعی اعم از حضوری، مجازی و مکتوب را می شناسند. اما تعداد این افراد قابل توجه بود (۱۲۰ نفر) که نشان می دهد منابع آموزشی برای منظور فوق، به حد کفایت در دسترس هستند.
Читать полностью…از پیام های کانال اشتغال که چند سال است به صورت رایگان برای یافتن شغل و پروژه فعال شده استفاده کنید:
@KnowledgePlusir
ضمنا از ارسال هرگونه سوال، انتقاد، پیشنهاد و ... در مورد کانال اصلی به ادمین کانال اشتغال جدا خودداری کنید.
این ربات در صورت درخواست، کدهای مختلف را برای شما می نویسد:
@GPT4Telegrambot
مثلا اگر تایپ کنید:
برنامه ای با stm32f103ret6 بنویس که با یک تایمر، سه موج با فرکانس های ۱۰۰ و ۲۰۰ و ۳۰۰ کیلوهرتز بسازد
در عرض چند ثانیه کد را به شما تحویل می دهد.
@KnowledgePlus
محیط صنعتی:
وقتی درباره محیط صنعتی و جواب دادن مدارهای الکترونیک در آن صحبت می شود، منظور چه شرایطی است؟ بخش اول توضیحات مربوط به شرایط فیزیکی حاکم بر محیط های صنعتی است. در محیط صنعتی به دلیل اعوجاج و تزریق هارمونیک های ناشی از دستگاه های در حال کار، برق شهر لزوما سینوسی نیست و مقدار ولتاژ آن هم ممکن است بالاتر یا پایین تر از حدود مورد انتظار باشد. برق و خطوط تغذیه در محیط های صنعتی می توانند حاوی نویزها و اسپایک ها و نوسانات شدیدی باشند که منجر به بد کار کردن و حتی خراب شدن دستگاه های الکترونیک شوند. در محیط صنعتی همچنین ممکن است میدان ها و تشعشعات الکترومغناطیسی قوی وجود داشته باشد که روی عملکرد مدارات الکترونیک اثر منفی و مخربی داشته باشد. وضعیت دما و رطوبت و استرس های مکانیکی و لرزش و میزان اسیدی بودن هوا و چربی محیط و ... و به طور کلی شرایط فیزیکی موثر روی مدارها در محیط های صنعتی می تواند بسیار متفاوت از شرایط آزمایشگاهی باشد و موجب مختل شدن عملکرد مدارات شود.
به غیر از شرایط فیزیکی، نوع کاربران شاغل در محیط های صنعتی هم از جمله عوامل متفاوت دیگر نسبت به شرایط معمول است. وقتی این احتمال وجود داشته باشد که کاربران یک دستگاه یا مدار الکترونیکی، معذورات کار با آن دستگاه یا مدار را به دلایلی مانند ناآگاهی و عدم آموزش یا بی تعهدی یا حتی دشمنی با کارفرما رعایت نکنند، ملاحظات زیادی از نظر سخت افزاری و نرم افزاری متناسب با آن شرایط باید در نظر گرفته شود. کسانی که سابقه طولانی کار با محیط های صنعتی را دارند معمولا با این تجربه آشنا هستند که در محیط های صنعتی پر جمعیت گاهی افرادی هستند که علاقه خاصی به مهندسی کردن و دست زدن بی جهت به دستگاه ها را دارند و تنظیمات دستگاه ها را به هم می زنند و پارامترها را بالا و پایین می کنند و وضعیت ولوم ها و پتانسیومترها را تغییر می دهند و کانکتورها را جابجا یا برعکس می زنند و مواردی از این قبیل. وقتی دستگاه یا مداری قرار است در معرض چنین افرادی قرار بگیرد مسلما باید معذورات و ملاحظاتی در طراحی آن رعایت شود تا احتمال بروز مشکل تا حد امکان کمتر شود.
بصورت خلاصه منظور از محیط صنعتی شرایطی است که هم عوامل فیزیکی در وضعیتی هستند که می توانند منجر به بد کار کردن و خرابی مدارات شوند و هم کاربرانی در آن محیط وجود دارند که احتمال تاثیر نامطلوب عمدی یا سهوی آنها در عملکرد دستگاه ها و مدارها بیشتر است.
(نقل با ذکر مرجع)
@KnowledgePlus
عقب افتادن قدر و قیمت کار فنی و مهندسی از تورم به این شکل است که سه دهه پیش برای تعمیر یک برد معادل پول ۷.۵ سکه طلا را پرداخت کردند، ولی امروز حقوق یک مهندس الکترونیک در حد ارزش یک نیم سکه است:
T.me/KnowledgePlus/1398
دست به دست دادن عواملی مثل:
۱- مهاجرت یا بازنشسته شدن تعدادی از متخصصان صاحب تجربه
۲- کاهش تقاضا برای کارها و پروژه های الکترونیکی به علت رکود
۳- کم شدن اقبال جامعه به رشته های گرایش ریاضی و مهندسی و هجوم به سمت رشته های گروه پزشکی و انسانی و کاهش جمعیت فارغ التحصیلان
سبب شده که دسترسی به افراد متخصص و صاحب تجربه کافی در الکترونیک سخت تر از گذشته باشد.
@KnowledgePlus
انتخابات از نگاه یک برنامه نویس C:
typedef enum
{
TRUE,
FALSE,
NONE
}VOTE_TYPE;
VOTE_TYPE vote;
...
if((vote==FALSE)||(vote==NONE)) while(1);
...
@KnowledgePlus
یک تجربه مهم که حاصل فعالیت طولانی در محیط های صنعتی مختلف است:
در بدنه صنعت وجود پیچیدگی و "نیاز به کار کشیدن از فکر" برای استفاده از محصولات و پروژه ها، یک نکته منفی و ضد ارزش محسوب می شود و سادگی و سهولت در کار از جمله مهمترین پارامترهایی است که باید در طراحی و برنامه نویسی برای یک محصول و پروژه مد نظر قرار بگیرد. گاهی افراد متخصص چون خودشان از توان ذهنی بالایی برخوردارند از این حقیقت غافل می شوند که اپراتوری که پای یک دستگاه صنعتی ایستاده، ممکن است نتواند مثل آنها محاسبه کند یا ارتباط بین اجزای پیچیده را بفهمد و به علت عدم توجه به این اصل مهم، بعضا مواردی پیش می آید که حاصل کار آنها علیرغم کارا بودن با شکست تجاری مواجه می شود.
@KnowledgePlus
نقل یک تجربه:
در یک کنترلر صنعتی مبتنی بر میکروکنترلر با تعداد زیادی ورودی و خروجی که از طریق RS232 فرمان می گرفت، در مقطعی این نیاز ایجاد شد که امکانات برد از نظر تعداد ورودی و خروجی ها دو برابر و قدرت پردازشی و ظرفیت حافظه بیشتر شود. برای رفع این نیاز یک گزینه ممکن این بود که از میکروکنترلر قوی تری استفاده شود و برد مجددا از نو طراحی شود که این روش مستلزم صرف زمان و هزینه زیادی بود. اما روی این برد ۲ پین آزاد وجود داشت و کاری که عملا انجام شد این بود که با کد نویسی مناسب، دو برد مشابه با یک پروتکل ارتباط سریال به صورت Master-Slave به هم متصل شدند و کنترلر اول از طریق ارتباط RS232 دستورات لازم را دریافت و بخشی را که مربوط به خودش بود اجرا می کرد و بخشی که به کنترلر دیگر مربوط می شد از طریق ارتباط سریال به آن کنترلر منتقل می شد تا توسط میکروکنترلر دوم اجرا شود. با این روش بدون هیچ گونه صرف هزینه ای برای طراحی سخت افزار و PCB جدید، اولا نیاز موجود برای ورودی و خروجی های بیشتر برطرف گردید و دوم این که به علت وجود دو CPU در مجموعه و تقسیم وظایف پردازشی بین آنها، نیاز به میکروکنترلری با قدرت پردازش و حافظه بیشتر منتفی شد.
@KnowledgePlus
نوشتن برنامه های بزرگ بدون استفاده از فلوچارت یا شبه کد علاوه بر طولانی شدن فرایند کد نویسی، احتمال ایجاد خطا در خروجی برنامه را هم بالا می برد و عموما روش درستی نیست.
در همین رابطه یک گام فراتر این است که در هنگام نوشتن برنامه، فهرست کلیه متغیرهای تعریف شده را پیش روی خود داشته باشیم و همیشه حواسمان باشد که هر متغیر یا فلگ در هر مرحله چه وضعیتی دارد؟ یکی از عوامل ایجاد باگ و عملکرد ناصحیح در خروجی برنامه ها این است که متغیرهایی برای رفع نیاز تعریف می شوند، اما بعدا تعیین تکلیف این متغیرها توسط برنامه نویس فراموش می شود و بعد از کلی وقت گذاشتن برای رفع اشکال تازه متوجه می شود که فلان متغیر یا فلگی که جایی تعریف کرده و بعدا به حال خود رها شده، موجب چنین مشکلی شده است. یک روش برای جلوگیری از چنین خطاهایی این است که کلیه متغیرهای تعریف شده را جایی کنار هم یادداشت کنیم و در هر مرحله از برنامه نویسی این سوال را مد نظر داشته باشیم که الان هر متغیر در این مرحله چه وضعیتی دارد و آیا مقدارش تاثیری در این بخش از کد دارد یا نه.
@KnowledgePlus
کاربردهایی در الکترونیک وجود دارند که پیاده سازی آنها با میکروکنترلر نه به قابلیت پردازشی بالایی احتیاج دارد و نه سخت افزارهای جانبی چندان ویژه ای مورد نیاز است و حجم بخش اجرایی کد نوشته شده هم در حدی است که فلش میکروکنترلرهای ضعیف و ارزان هم برای ذخیره سازی جوابگو هستند. اما به علت وجود اطلاعات و دیتای از پیش محاسبه شده و Lookup Table های حجیم در آن کاربرد، سایزحافظه فلش مورد نیاز بسیار بزرگ است. بعضی طراحان در این شرایط فقط به واسطه دسترسی به حافظه فلش با ظرفیت بالا، از انواع گران قیمت خانواده stm32 استفاده می کنند. اما بجای این کار می توان از آی سی های فلش ارزان قیمت سریال مثل سری W25Qxx استفاده کرد که قابلیت اتصال به میکروکنترلر با ۴ پین از طریق ارتباط SPI را دارند و با قیمتی بسیار مناسب، ظرفیتی در حد مگا بایت را برای ذخیره سازی اطلاعات فراهم می کنند. در کارهای تولیدی و تعداد بالا که قیمت قطعات مهم است، چنین روشی می تواند صرفه جویی قابل توجهی در قیمت تمام شده ایجاد کند.
@KnowledgePlus
معرفی قطعه:
سری 23LC1024
یک آی سی ۸ پین SRAM
با ظرفیت 128KByte
است که ارتباط با آن از طریق پروتکل های SPI/SDI/SQI
و فقط با چند پین محدود قابل انجام است و در پروژه هایی می تواند مورد استفاده قرار بگیرد که حافظه SRAM
داخلی میکروکنترلر جوابگوی نیاز مورد نظر نباشد.
@KnowledgePlus
در دهه ۷۰ و ۸۰ اکثر دانش آموختگان رشته الکترونیک از دانشگاه های درجه یک دولتی، افراد نخبه و توانمندی بودند و همین که یک نفر فارغ التحصیل این دانشگاه ها بود این اطمینان را تا حد بالایی ایجاد می کرد که در انجام کارهایی که از او انتظار می رود به لحاظ ضریب هوشی و سطح دانش مورد نیاز، مشکل چندانی نداشته باشد. اما اخیرا نقل هایی از میزان اطلاعات و توانمندی بعضی فارغ التحصیلان دانشگاه ها شنیده می شود که واقعا باور کردنی نیست که چطور ممکن است یک فارغ التحصیل دانشگاه خوب دولتی تا این حد فاقد اطلاعات اولیه باشد.
@KnowledgePlus
این پست مربوط به ۳ سال قبل است اما در بخش قابل توجهی از صنایع عملا فرق خاصی ایجاد نشده. این شرایط از منظر توسعه صنعتی و تکنولوژی تا حدودی نگران کننده است.
@KnowledgePlus
انجام بعضی کارها مثل این است که درخت میوه ای را بکاری و بروی و بعد از چند سال برگردی ببینی افراد پرشماری از محصول آن درخت استفاده کرده اند و خوشحال شوی.
@KnowledgePlus
در طول ۹ سال فعالیت این کانال و ارسال حدود ۱۶۰۰ پست، تاکنون پستی نظیر این نداشته ایم. اما اگر حتی روی یک نفر از این چند هزار نفر هم تاثیر گذار باشد، ارسالش لازم و موجه است:
یکی از اقوام سال ها سیگار می کشید و هر چه هم به او می گفتیم چرا این سموم سرطانزای سیگار را مرتب وارد ریه و جریان خون خود می کنی؟ یک جور توجیه می کرد که فلان نگرانی را دارم و تقصیر فلان کس است و دارم تعدادش را کم می کنم و غیره. ایشان امروز در حالی که برنامه های زیادی برای خود و خانواده اش داشت و بسیار به آینده امیدوار بود، بر اثر گرفتگی رگ ها ناگهان دچار ایست قلبی شد و فوت کرد.
اگر خود و خانواده تان را دوست دارید، یک بار برای همیشه سیگار را کنار بگذارید🌹
@KnowledgePlus
یک محصول با نام هدربرد اینورتر داریم که برای ساخت اینورتر سه فاز طراحی شده. از زمان عرضه این محصول تاکنون افراد بسیار زیادی به ادمین کانال پیامی شبیه به این ارسال کرده اند:
"سورس هم همراه برد تحویل می شود؟"
واقعا این سوال مطرح می شود که کجای کار اشکال دارد که چنین فرهنگی حاکم شده؟ آیا یک نفر که در خارج از کشور محصولی را می خرد، اصلا به ذهنش خطور می کند که از پشتیبانی شرکت فروشنده بپرسد ببخشید سورس محصول هم همراهش هست؟
@KnowledgePlus
در یک مدار الکترونیکی که قرار است در محیطی صنعتی کار کند، قطعه های زیادی وجود دارند که حتی اگر از مدار حذف شوند، خللی در عملکرد آن مدار در محیط آزمایشگاهی و کم نویز ایجاد نمی شود. در واقع وجود آن قطعات وقتی موضوعیت پیدا می کند که مدار وارد یک محیط صنعتی پر نویز و نوسان شود و تازه آنجا است که آن قطعات خود را نشان می دهند. یک فرق عمده مدارهای صنعتی و غیر صنعتی در وجود یا عدم وجود همین قطعات به ظاهر اضافه است.
@KnowledgePlus
نقل یک تجربه:
۱ - دو کارتن از طریق تیپاکس به شهرستان ارسال شد.
۲- موقع ارسال بابت اشتباهی که خودشان در ثبت ارزش بسته مرتکب شده بودند و بعدا مجبور به تصحیح شدند، با شخص فرستنده به نحو شدیدا توهین آمیزی رفتار کردند که از آنها شکایت شد.
۳- در مقصد گیرنده اعلام کرد که به محتوای یک کارتن آسیبی وارد شده و با این که بار بیمه شده بود اما در نهایت تیپاکس اعلام کرد که چون بار در همان زمان دریافت در حضور خودشان باز نشده، طبق ضوابط خسارتی پرداخت نمی کنند و پرداخت نکردند.
توصیه یک: اگر کسی بسته یا کارتنی را که بیمه شده به هر طریق از راه دور برای شما فرستاد به محض دریافت، محتوای آن را در حضور خودشان چک کنید تا اگر کسری دارد یا آسیبی به آن وارد شده بعدا از جبران خسارت شانه خالی نکنند.
توصیه دو: از ارسال بار از طریق شرکت تیپاکس خوداری کنید.
@KnowledgePlus
در تعدادی برد کنترلر صنعتی قدیمی، پدیده ای مشاهده شد به این ترتیب که بردها کارشان را به درستی انجام می دهند. اما گاهی دچار مشکلات اتفاقی می شوند و ممکن است روزها به درستی عمل کنند و ممکن است در یک روز، چند بار عملکردشان مختل شود. بعد از بررسی بسیار مشخص شد که این مشکل ناشی از خازن های موازی شده با کریستال میکروکنترلر برد است که زمان زیادی از تولیدشان گذشته است و بعد از چند سال کار، اخیرا چنین مسئله ای را ایجاد می کنند.
@KnowledgePlus
چند سال پیش در پست زیر به یکی از مواردی اشاره شد که می تواند منجر به ایجاد باگ در برنامه نویسی به زبان C شود:
T.me/KnowledgePlus/1141
اخیرا در جریان کدنویسی یک کنترلر صنعتی به زبان C و کامپایلر IAR که قرار بود محاسبات ریاضی متعددی در آن انجام شود، در عمل مشاهده شد که خروجی کنترلر گاهی عملکرد صحیحی ندارد و این در حالی بود که در ظاهر اشکالی در برنامه وجود نداشت. بعد از بررسی های متعدد و زمانبر مشخص شد که ریشه مشکل در نقطه ای از برنامه است که عملیات ریاضی بین متغیرهای علامت دار و بدون علامت انجام شده که این قضیه در حالت های خاص نتایج غلطی را در محاسبات ایجاد می کرد. در نهایت با اضافه کردن type casting به متغیر های بدون علامت، مشکل بر طرف گردید.
@KnowledgePlus
فضای آکادمیک در الکترونیک و برنامه نویسی و بخش قابل توجهی از بدنه صنعت و مسائلش انگار دو دنیای مختلف و متفاوتند. در اولی بحث پیشرفته ترین و آخرین تکنولوژی ها و نرم افزارها مطرح است و در دومی صورت مسئله ها و مشکلات متعددی وجود دارند که حتی از طریق تکنولوژی های چند ده سال پیش هم قابل حل و برطرف کردن هستند، اما کسی نیست که انجامشان بدهد. حالا چرا این دو فضا تا این حد از یکدیگر فاصله دارند بحث مفصلی است که باید در مجالی به آن پرداخته شود.
@KnowledgePlus
در گذشته تعدادی پیام صوتی (پادکست) در کانال قرار داده شده که لینک بعضی از آنها برای دسترسی بهتر در یک پست ارسال می شود:
درباره پیشرفت در الکترونیک و برنامه نویسی
چند نکته در مورد مطالعه و تمرین و کسب تجربه
نکاتی درباره کار و اشتغال در الکترونیک
نکاتی درباره تبدیل ایده به محصول و اهمیت بخش بازاریابی
درباره مطالب آموزشی
درباره رعایت اخلاق و وجدان کاری
تحلیلی در مورد بازار کار رشته الکترونیک
@KnowledgePlus
اطلاع رسانی:
اخیرا از اکانت هایی با تیک آبی و تحت عنوان Support تلگرام پیام هایی را به افراد ارسال می کنند و از آنها درخواست هایی دارند و در متن پیام عنوان می شود که اگر این درخواست را انجام ندهید اکانت شما از طرف تلگرام غیر فعال می شود و مواردی از این قبیل.
دقت کنید که این پیام ها از جانب افراد کلاهبردار ارسال می شوند. در این مورد هشیار باشید.
@KnowledgePlus
درباره برنامه نویسی حرفه ای و شباهت عملکرد مغز به عضلات:
شاید برای کسانی که در مقاطعی درگیر برنامه نویسی و نوشتن کدهای پیچیده و پرحجم شده اند، این تعبیر ملموس باشد که عملکرد مغز تا حدی شبیه به عملکرد عضلات بدن است. همانطور که آمادگی عضلات با تمرینات جسمی افزایش می یابد و سکون و بی حرکتی موجب ضعیف شدن آنها می شود، به طریق مشابه مغز نیز مانند یک عضله نیاز به تمرین دارد و این قابلیت که کسی بتواند مثلا 12 ساعت بصورت مداوم در یک روز کدهای پیچیده را بنویسد و تحلیل کند، نیاز به تمرین و ممارست زیاد برای تقویت قابلیت کار کشیدن از مغز در مدت طولانی دارد و تنها وابسته به خواست فرد یا حتی سواد و دانش او به تنهایی نیست. یک ورزشکار حرفه ای به دلیل آمادگی که به واسطه تمرین پیدا کرده قادر است ساعت ها در یک روز ورزش و فعالیت کند و خسته نشود. اما یک شخص کم تحرک در فعالیت های مشابه زود خسته می شود و عضلاتش قدرت و استقامت عضلات یک فرد ورزشکار را ندارند. به همین ترتیب کسی که در کدنویسی تمرین نداشته باشد، در هنگام کار بعد از مدت کوتاهی خسته می شود و نمی تواند متمرکز باقی بماند. عبارت معروف "حوصله ندارم" در بسیاری از موارد حاصل همین تنبل شدن ذهن و عادت نداشتن به تمرکز و انجام پردازش های ذهنی پیچیده است.
@KnowledgePlus