The software engineering survival guide to automation programming
M. T. White

#PLC
#Programming
#SOLID
#HMI
📊 برنامهنویسی PLC را از دیدگاه Software Engineering درک کنید و بر مفاهیم پیشرفتهای مثل OOP و توسعه HMI مسلط بشید تا بتونید کدهایی با قابلیت Reusable، پرتابل و Robust طراحی کنید.
🚀 شیرجه عمیق در برنامهنویسی شیءگرا (Object-Oriented) در PLCها از طریق مباحث عملی و بروز
🔄 بررسی مفاهیم مهندسی نرمافزار مانند SDLC، فرآیند Debugging، سیستمهای Version Control و اصول برنامهنویسی SOLID
⚙️ درک کامل توسعه HMI برای ساخت و پیادهسازی پروژههای مختلف HMI
💬 توضیحات کتاب
برنامهنویسی شیءگرا (OOP) یک قابلیت انقلابی در برنامهنویسی PLC محسوب میشه که صنعت اتوماسیون رو دگرگون کرده. این کتاب شما رو به مهارتهای لازم برای موفقیت در محیطهای مدرن برنامهنویسی اتوماسیون مجهز میکنه.
🛠 ویرایش دوم این کتاب به شکلی سیستماتیک طراحی شده تا شما رو در مسیر مباحث پیشرفتهای مثل طراحی OOP، اصول SOLID، چرخه حیات توسعه نرمافزار (SDLC)، طراحی Library، سیستمهای Version Control، توسعه HMI و شیوههای عمومی مهندسی نرمافزار هدایت کنه. برای تقویت مهارتهای کدنویسی، هر فصل شامل یک پروژه شبیهسازیشده از دنیای واقعیه که بهتون اجازه میده آموختههاتون رو به صورت عملی پیاده کنید. در مجموع، این کتاب نه تنها مباحث پیچیده PLC را پوشش میده، بلکه سد مالی خرید نرمافزارها رو هم میشکنه؛ چون تمام مثالها با ابزارهای رایگان پیادهسازی شدن و برای پیش برد کتاب نیازی به خرید هیچگونه سختافزار یا نرمافزار PLC ندارید.
⚙️ در پایان این کتاب، شما تمام ابزارهای لازم برای ساخت Codebaseهای ماندگار و پایدار رو برای هر نوع پروژه اتوماسیون مدرن در اختیار خواهید داشت.
💻 آشنایی با نحوه نوشتن برنامههای PLC با استفاده از تکنیکهای پیشرفته برنامهنویسی
🧠 بررسی مفاهیم OOP و UML در برنامهنویسی PLC
🧱 ورود به مباحث مهندسی نرمافزار مانند کتابخانهها و اصول برنامهنویسی SOLID
📊 بررسی HMIs، کنترلهای HMI، Layoutهای HMI و سیستمهای Alarm
🌍 درک مفاهیم نسل چهارم صنعت (Industry 4.0) برای خلق سیستمهای صنعتی هوشمند، متصل و خودکار
🧪 کسب تجربه عملی از طریق ساخت پروژههای شبیهسازیشده PLC و HMI
🛠 کار به صورت عملی با سیستمهای Version Control (مثل Git)
👥 این کتاب برای چه کسی است
این کتاب برای برنامهنویسان اتوماسیون (Automation Programmers) با بکگراند مفاهیم مهندسی نرمافزار مثل برنامهنویسی شیءگرا و دانش عمومی نرمافزار تالیف شده. علاوه بر این، مهندسان اتوماسیون، مهندسان نرمافزار، مهندسان برق، تکنیسینهای PLC، افراد علاقهمند (Hobbyists) و دانشجویان سالهای آخر دانشگاه که به حوزه اتوماسیون علاقه دارند، این کتاب را بسیار مفید و جذاب خواهند یافت. به طور کلی، هر کسی که دانش پایهای از PLCها داشته باشه، میتونه از این کتاب بهره ببره.
✍️ درباره نویسنده
👨💻 ام. تی. وایت (M. T. White) از سن ۱۲ سالگی برنامهنویسی رو شروع کرده. اشتیاق اون به رباتیک از دوران کودکی و با برنامهنویسی میکروکنترلرها شکل گرفت. اون مدرک کارشناسی ریاضیات، کارشناسی ارشد مهندسی نرمافزار و MBA مدیریت فناوری اطلاعات داره. وایت در حال حاضر به عنوان Software Developer برای یکی از پیمانکاران دفاعی بزرگ آمریکا کار میکنه و به عنوان مدرس مدعو CIS، دورههای Python، C و زبانهای دیگه رو تدریس میکنه. بکگراند اصلی اون به صنعت اتوماسیون برمیگرده؛ جایی که برای اپلیکیشنهای مختلفی به برنامهنویسی PLC و HMI پرداخته. اون طی این سالها با برندهای مختلفی از PLC کار کرده و HMIهای متنوعی رو توسعه داده. از دیگر تکنولوژیهایی که بهشون مسلطه میشه به Linux، Ansible، Docker، AWS، C#، Java و Python اشاره کرد. حتماً به کانال یوتیوب اون به نام AlchemicalComputing سر بزنید.
Understand PLC programming from a software engineering perspective and master advanced concepts like OOP and HMI development to design reusable, portable, and robust code
Object-oriented programming (OOP) is a game-changing addition to PLC programming that’s revolutionizing the automation industry. This book equips you with the necessary skills to succeed in the modern automation programming environment.
This second edition is designed to systematically guide you through advanced topics such as OOP design, SOLID programming, the software development life cycle (SDLC), library design, version control, HMI development, general software engineering practices, and more. To hone your programming skills, each chapter has a simulated real-world project that'll enable you to apply the skills you've learned. In all, this book not only covers complex PLC programming topics but also removes the financial barrier that comes with most books, as all examples utilize free software. This means that to follow along, you do not need to purchase any PLC hardware or software.
By the end of this PLC book, you’ll have what it takes to create long-lasting codebases for any modern automation project.
This book is for automaton programmers with a background in software engineering topics such as object-oriented programming and general software engineering knowledge. Automation engineers, software engineers, electrical engineers, PLC technicians, hobbyists, and upper-level university students with an interest in automation will also find this book useful and interesting. Anyone with a basic knowledge of PLCs can benefit from reading this book.
1. Advanced Structured Text: Programming a PLC in Easy-to-Read English
2. Complex Variable Declaration: Using Variables to Their Fullest
3. Functions: Making Code Modular and Maintainable
4. Object-Oriented Programming: Reducing, Reusing, and Recycling Code
5. OOP: The Power of Objects
6. Best Practices for Writing Incredible Code
7. Libraries: Write Once, Use Anywhere
8. Getting Started with Git
9. SDLC: Navigating the SDLC to Create Great Code
10. Architecting Code with UML
11. Testing and Troubleshooting
12. Advanced Coding: Using SOLID to Make Solid Code
13. Industrial Controls: User Inputs and Outputs
14. Layouts: Making HMIs User-Friendly
15. Alarms: Avoiding Catastrophic Issues with Alarms
16. DCSs, PLCs, and the Future
17. Putting It All Together: The Final Project
18. Unlock Your Exclusive Benefits
M. T. White has been programming since the age of 12. His fascination with robotics flourished when he was a child programming microcontrollers. He holds an undergraduate degree in mathematics, a master's degree in software engineering, and an MBA in IT management. He is currently working as a software developer for a major US defense contractor and is an adjunct CIS instructor, where he teaches Python, C, and an array of other courses. His background mostly stems from the automation industry where he programmed PLCs and HMIs for many different types of applications. He has programmed many different brands of PLCs over the years and has developed HMIs using many different tools. Other technologies that he is fluent in include Linux, Ansible, Docker, AWS, C#, Java, and Python. Be sure to check out his channel AlchemicalComputing on YouTube.









