HPR4718: Programmable Logic Controls - Episode 2 — Insubornavel

کنترل‌های منطق قابل برنامه‌ریزی - قسمت 2

به قلم Whiskeyjack02/09/2026 às 00:0075 بازدید
Foto: CC BY-SA / Hacker Public Radio
🎙 Whiskeyjack · Hacker Public Radio

این نمایش به عنوان "پاک" توسط میزبان علامت‌گذاری شده است.

--------------------

01 معرفی

این دومین قسمت از مجموعه 8 قسمتی است.

02

در قسمت قبلی، ما درباره پیشگامان PLCها، به ویژه منطق رله صحبت کردیم.

در این قسمت، ما درباره چگونگی تبدیل منطق رله به نرم‌افزار به جای قطعات سخت‌افزاری واقعی بحث خواهیم کرد.

03

موضوعاتی که قرار است پوشش داده شود شامل:

* رایانه‌های اولیه در صنعت.

* اولین PLC.

* کامپیوتر شخصی در مقابل کنترلر منطقی برنامه‌پذیر - تفاوت در نام چیست؟

چه برندهای اصلی هستند.

* چگونه یک PLC (کنترل کننده منطقی برنامه‌پذیر) به واقعیت ظاهر می‌شود؟

معماری ماشین

برنامه‌های PLC

اسکن

زبان‌های برنامه‌نویسی PLC.

مقایسه محبوبیت نسبی زبان‌های برنامه‌نویسی PLC با زبان‌های برنامه‌نویسی کامپیوتر متداول‌تر.

--------------------

کامپیوترهای اولیه در صنعت

کامپیوترها نسبتاً زود در صنعت مورد استفاده قرار گرفتند.

میکروکامپیوترها در برخی از صنایع بزرگ برای کنترل چیزهایی مانند نیروگاه‌های برق به کار می‌رفتند.

برای مثال، DEC PDP8 برای کنترل ماشین‌های باز و بار کردن سوخت در نیروگاه‌های هسته‌ای CANDU استفاده می‌شد.

این کامپیوترها سوخت را از رآکتور بار می‌کردند و تخلیه می‌نمودند، که به صورت مداوم در طول روز اتفاق می‌افتاد در حالی که رآکتور در حال کار بود.

05

اولین کامپیوتر مبتنی بر میکروپردازنده که در بازار تجاری به فروش رسید، MICRAL از فرانسه بود، بر اساس Intel 8008.

آن به عنوان جایگزینی مقرون به صرفه برای میکروکامپیوترهای مورد استفاده در صنعت به فروش می‌رسید.

آن قبل از آنچه به طور کلی به عنوان اولین کامپیوترهای شخصی در نظر گرفته می‌شوند، قرار داشت.

بنابراین می‌توانید ببینید که صنعت نسبت به پذیرش فناوری‌های جدید تمایلی نداشت.

06

با این حال، کامپیوترهای کوچک سیستم‌های پیچیده‌ای بودند که به خوبی در کف کارخانه جا نمی‌گرفتند.

آنها دارای نیش‌های خاصی در سیستم‌های یکپارچه بسیار بزرگ بودند، اما برای کنترل ماشین‌های فردی بسیاری در کارخانه‌ای که کالاهایی مانند خودرو یا لوازم خانگی تولید می‌کرد، مناسب نبودند.

07

چیزی که مورد نیاز بود، چیزی بود که در یک محفظه الکتریکی استاندارد جا می‌شد،

دمای یافت شده در کارخانه را تحمل می‌کرد،

می‌توانست در برابر لرزش و صدا مقاومت کند،

در برابر نوسانات ولتاژ تحمل داشت،

مستقیماً به سنسورها و عملگرها متصل می‌شد.

و می‌توانست به راحتی توسط مهندسان، تکنیسین‌ها و کارگران ماهر که با فرآیندهایی که باید کنترل می‌شد، آشنا بودند، اما تجربه کمی یا اصلاً تجربه‌ای با کامپیوترها نداشتند، برنامه‌ریزی شود.

08

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

چیزی که می‌تواند این معیارها را برآورده کند، چیزی است که برای تبدیل شدن به PLC مورد نیاز بود.

--------------------

تاریخ ۰۹

بسیاری از داستان‌ها به یک توسعه‌دهنده آمریکایی اشاره دارند که به Modicon تبدیل شد.

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

در واقع، شرکت‌های متعددی در ایالات متحده، اروپا و ژاپن بر روی این مشکل کار می‌کردند و در اوایل دهه ۱۹۷۰، محصولات قابل قیاس را تقریباً در همان زمان عرضه کردند.

10

ایده چند سال قبل از اجرا پیش آمد.

به عنوان مثال، شرکت جنرال موتورز در اواسط دهه ۱۹۶۰ از تامین‌کنندگان تجهیزات کنترل صنعتی درخواست کرد تا دستگاهی قابل برنامه‌ریزی برای کنترل جایگزین منطق رله ارائه دهند.

این موضوع به تامین‌کنندگان بالقوه نشان داد که بازار برای این نوع محصولات وجود دارد و به آنها ایده‌ای روشن‌تر از نیازهای مشتریان داد.

11

چیزی که این امکان را فراهم کرد، توسعه اولین میکروپروسسور ۸ بیتی در آن دوره زمانی بود، همراه با پردازنده‌های برش‌پذیر بیت از صنعت میکروکامپیوتر و سایر قطعات.

12

مردم می‌دانستند چه کاری انجام دهند، اما مشکل در انتظار توسعه سخت‌افزار قطعات مناسب بود.

میکروکامپیوترها در صنعت مورد استفاده قرار می‌گرفتند، اما معمولاً در اتاق‌های کنترل قرار داشتند.

PLCها تلاشی بودند برای بیرون کشیدن آن فناوری از اتاق‌های کنترل و قرار دادن آن در کف کارخانه.

۱۳ کامپیوتر شخصی در مقابل PLC - معنای نام چیست؟

در روزهای اولیه، این سیستم‌ها به عنوان PLC شناخته می‌شدند که به معنی "کنترل‌کننده منطق قابل برنامه‌ریزی" است، یا PC که به معنی "کنترل‌کننده قابل برنامه‌ریزی" است.

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

من یک کتاب دارم که در یک زمان یکی از کتاب‌های مرجع استاندارد این صنعت بود که در سال 1989 منتشر شد، و به آنها به عنوان کنترلرهای قابل برنامه‌ریزی، یا PCها، اشاره می‌کند.

14

اصطلاح PC همچنین برای به معنی "کامپیوتر شخصی" استفاده می‌شد، اما این واقعاً مشکلی در روزهای اولیه نبود.

با این حال، یک شرکت بزرگ تصمیم گرفت ورود خود را به بازار کامپیوترهای شخصی با نام "IBM PC" نام‌گذاری کند، و ناگهان "PC" به یک اصطلاح کلی برای کامپیوترهای رومیزی تبدیل شد.

15

پس از مبارزه طولانی برای ادامه اشاره به محصولات خود به عنوان "PCها"، حتی بزرگترین فروشندگان تسلیم شدند و مبارزه را رها کردند و به استفاده از اصطلاح "PLC" روی آوردند.

بنابراین، من در این مجموعه پادکست از اصطلاح "PLC" استفاده خواهم کرد حتی زمانی که در مورد محصولاتی صحبت می‌کنم که در زمان معرفی به عنوان "PCها" شناخته می‌شدند.

16 کدام برندهای اصلی هستند

شرکت‌هایی که در اوایل به تسلط صنعت دست یافتند، به طور کلی شرکت‌هایی بودند که قبلاً سخت‌افزار الکتریکی صنعتی تولید می‌کردند.

اینها بودند

سیمنس

آلن برادلی، که بعداً به راکول شناخته شد

شنايدر

میتسوبیشی

اومرون

17

هنوز هم این شرکت‌ها در کسب و کار غالب هستند، اگرچه بسیاری از برندهای کوچک، به ویژه در بخش ارزان‌تر بازار، وجود دارند.

همه آنها تامین‌کنندگان طیف گسترده‌ای از سخت‌افزار کنترل صنعتی بودند، به طوری که می‌توانستید تقریباً تمام قطعات سیستم کنترل خود را با استفاده از تنها محصولات آنها بسازید.

18

هر کدام از اینها یک بسته یکپارچه سخت‌افزار و نرم‌افزار را به فروش می‌رسانند، از جمله نرم‌افزار توسعه، که کاملاً متعلق به آنهاست.

اگر فکر می‌کردید که کسب و کار اصلی دارای قفل فروشنده زیادی است، بازار صنعتی را ندیده‌اید.

--------------------

۱۹ چه چیزی از این چیزها واقعاً به نظر می‌رسد؟

در این مرحله، احتمالاً هنوز بسیار گیج هستید که PLC دقیقاً چیست.

من سعی خواهم کرد یکی را با اصطلاحات پایه توصیف کنم با ارائه مثالی از آن.

کوچک‌ترین و ساده‌ترین آنها آنهایی هستند که "PLC جعبه‌ای" نامیده می‌شوند.

اینها اساساً یک جعبه مستطیلی با یک قاب پلاستیکی هستند.

20

اینجا ابعاد یک مدل معمولی با قیمت پایین، یک Mitsubishi FX3U-32M است.

بر اساس مشخصات ذکر شده در راهنما، عرض آن ۱۵۰ میلی‌متر، ارتفاع ۹۰ میلی‌متر و عمق ۸۶ میلی‌متر است.

21

می‌توان آن را به پنل در یک محفظه الکتریکی با قفل کردن آن به ریل DIN نصب کرد.

ریل‌های DIN سیستم‌های نصب استانداردی هستند که از یک نوار فلزی با شکل U و لبه در بالای هر دو انتهای U استفاده می‌کنند.

شما ریل DIN را به پنل الکتریکی در محفظه نصب می‌کنید، و اکثر قطعات صنعتی مانند PLCها، بلوک‌های اتصالی، قطع‌کننده‌های مدار و انواع دیگر چیزها به سادگی به آن قفل می‌شوند و آماده اتصال هستند.

22

در طول لبه‌های بالا و پایین PLC، اتصالاتی وجود دارند که می‌توانید سیم‌ها را از دکمه‌های فشار، چراغ‌های راهنما، سنسورهای نزدیک‌سنجی و شیرها و غیره که می‌خواهید در بقیه ماشین حس کنید یا کنترل کنید، به آن متصل کنید.

23

ورودی‌ها در بالا و خروجی‌ها در پایین قرار دارند.

FX3U-32M دارای ۱۶ ورودی و ۱۶ خروجی است.

این ورودی‌ها/خروجی‌ها می‌توانند ۲۴ ولت DC یا ۱۰۰ تا ۱۲۰ ولت AC، بسته به مدل، باشند.

به جای آن ممکن است از رله‌های کوچک برای خروجی‌ها استفاده کند.

در حالی که ورودی/خروجی AC قبلاً غالب بود، 24VDC چند دهه پیش به استاندارد اکثر صنایع تبدیل شد زیرا به راحتی با دستگاه‌های الکترونیکی تعامل داشت و همچنین اجازه می‌داد سیم‌کشی ارزان‌تر و فشرده‌تری داشته باشد.

24

می‌توان ورودی‌ها و خروجی‌های بیشتری را با اتصال ماژول‌های ورودی/خروجی اضافی به PLC اصلی در کنار آن روی همان ریل DIN، تا 256 ورودی/خروجی اضافه کرد.

اتصال معمولاً از طریق کابل‌های نوار کوتاه است که به ماژول مجاور متصل می‌شوند.

این ماژول‌های ورودی/خروجی شبیه PLC اصلی هستند، اما فقط ورودی/خروجی اضافه می‌کنند.

25

داخل PLC یک CPU، حافظه و نرم‌افزار عمیق وجود دارد.

این مدل 64K "مرحله" حافظه دارد، که می‌توان آن را به عنوان تعداد دستوراتی که می‌توانید داشته باشید، در نظر گرفت.

برنامه در RAM اجرا می‌شود، اما می‌توانید یک دستگاه حافظه فلش کوچک را اضافه کنید تا برنامه را ذخیره کنید.

دکمه شروع/توقف وجود دارد که به شما اجازه می‌دهد برنامه کاربر را شروع یا متوقف کنید.

یک پورت وجود دارد که می‌توانید از آن برای اتصال PLC به یک کامپیوتر لپ‌تاپ با کابل استفاده کنید تا بتوانید برنامه خود را بر روی آن دانلود کنید.

26

بخش عمده بازار PLCها برای این سبک "جعبه‌ای" است.

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

این‌ها برای وظایفی مانند هماهنگی خطوط مونتاژ بزرگ و چیزهای مشابه طراحی شده‌اند.

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

پردازنده اصلی را به اتوبوس متصل می‌کنید، معمولاً در موقعیت چپ‌ترین، و سپس ماژول‌های ورودی/خروجی را به قفسه متصل می‌کنید.

ماژول‌های ورودی/خروجی جعبه‌های بلند و باریک کاملاً بسته‌ای هستند که پایانه‌های ورودی/خروجی در جلوی آن‌ها قرار دارند.

27

شما باید در این مرحله یک ایده کلی از ظاهر آنها داشته باشید، بنابراین من برای لحظه از توصیف فیزیکی کنار می‌کشم و به مفاهیمی که پشت نحوه کار واقعی آنها و آنچه که آنها را از چیزی مانند Raspberry Pi متمایز می‌کند، می‌روم.

--------------------

معماری ماشین 28

در واقع، سخت‌افزار تعریف‌کننده PLC نیست.

به جای آن، معماری سیستم نرم‌افزاری است.

هر PLC که من از آن آگاهم، مجموعه‌ای معمول از ویژگی‌ها را دارد.

جدول داده 29

یک جدول داده به سادگی بلوک حافظه‌ای است که ممکن است یا ممکن است به بخش‌های مختلف تقسیم شود.

تمام منطق، و تمام یا تقریباً تمام ورودی/خروجی با نوشتن به و خواندن از آدرس‌ها در جدول داده کار می‌کند.

۳۰ ورودی/خروجی

هر نقطه ورودی و خروجی به یک آدرس حافظه ثابت در PLC متصل می‌شود.

برای خواندن وضعیت یک ورودی، آدرس حافظه آن را می‌خوانید.

برای تغییر وضعیت یک خروجی، به آدرس حافظه آن می‌نویسید.

31

این ورودی/خروجی‌های دیجیتال به عنوان مقادیر بولین تک بیت ظاهر می‌شوند.

زبان برنامه‌نویسی PLC دستوراتی دارد که اجازه می‌دهد بیت‌های تک به طور مستقیم خوانده یا نوشته شوند بدون اینکه نیاز باشد بیت‌های دیگر را مانند زبان‌های برنامه‌نویسی متعارف ماسک کنید.

تا به حال فقط ورودی/خروجی‌های دیجیتال را ذکر کردم که مقادیر روشن/خاموش تک بیت هستند.

۳۲ نوع دیگر ورودی/خروجی

بسیاری از PLCها همچنین دارای انواع دیگر ورودی/خروجی مانند...

ورودی/خروجی آنالوگ، که ولتاژ متغیر را به جای مقادیر فقط روشن/خاموش نشان می‌دهد.

به عنوان مثال، ممکن است بخواهید دمایی را از یک ترموکوپل بخوانید که سطح ولتاژ با دما متغیر است.

اغلب اینها به عنوان مقادیر بایت یا کلمه در جدول داده‌ها نقشه‌برداری می‌شوند.

33 حافظه بیت داخلی یا بولین

محدوده‌ای از حافظه بیت تک یا بولین وجود دارد که برای حالت منطقی داخلی استفاده می‌شود.

برنامه شما ممکن است نیاز به تولید مجموعه‌ای از مقادیر منطقی موقت داشته باشد، و آنها را در این بیت‌های داخلی یا پرچم‌ها ذخیره می‌کنید.

34 تایمرها و شمارنده‌ها

کنترل ماشین‌آلات اغلب شامل زمان‌بندی و شمارش است.

تایمر و شمارنده‌ها در جدول داده‌ها نقشه‌برداری می‌شوند.

تنظیمات و مقادیر تایمر و شمارنده می‌توانند به صورت کلمات خوانده شوند، و آدرس‌های بیتی وجود خواهند داشت که وضعیت تایمر یا شمارنده را نشان می‌دهند، مانند اینکه آیا آن به تنظیمات خود رسیده و "تکمیل" شده است.

35 مقادیر صحیح و اعشاری

آدرس‌های کلمه‌ای وجود خواهند داشت که در آن می‌توان کلمات صحیح و اعشاری را ذخیره کرد.

اگر نیاز به انجام محاسبات ریاضی و ذخیره نتایج دارید، آن‌ها را در یک کلمه صحیح یا اعشاری ذخیره می‌کنید.

36 حافظه تایپ‌شده

برخلاف زمانی که چیزی مانند یک کامپیوتر را برنامه‌نویسی می‌کنید که فقط یک محدوده از بایت‌های بدون تفاوت دارید و نرم‌افزار شما باید معنا را بر آن تحمیل کند، حافظه جدول داده‌های PLC دارای تایپ‌ها و معانی تعریف‌شده‌ای است و سیستم فیرم‌ور به روش‌های دسترسی صحیح به حافظه اجبار می‌کند.

اندازه جدول داده: 37

جداول داده اندازه‌های متفاوتی دارند.

یک جدول داده بزرگ‌تر، اجازه برنامه‌های بزرگتر و پیچیده‌تر را می‌دهد.

به طور کلی، PLCهای جدید دارای جداول داده بزرگتر از PLCهای قدیمی‌تر هستند.

PLCهای گران‌تر دارای جداول داده بزرگتر از PLCهای ارزان‌تر در همان نسل هستند.

مثال: 38

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

سری Siemens S5-100 یک PLC کوچک بود که در اندازه‌های مختلف عرضه می‌شد.

مشخصات جدول داده‌های پایه S5-100 به شرح زیر بود.

39

ورودی/خروجی دیجیتال حداکثر 128 ورودی و خروجی را به طور جمعی داشت.

ورودی‌ها و خروجی‌های آنالوگ به طور جمعی حداکثر 8 داشتند.

حافظه پرچم، یا بیت، 1024 بود.

تایمرها - 16

شمارنده‌ها - 16

40

S5-103 بیشتر از همه چیز را در بسته‌بندی پایه مشابه ارائه می‌کرد، اما البته با قیمت بالاتری.

ورودی/خروجی دیجیتال حداکثر 256 ورودی و خروجی را به طور جمعی داشت.

ورودی‌های آنالوگ و خروجی‌ها به حداکثر 32 مورد در مجموع داشتند.

حافظه پرچم، یا بیت، 2048 بود.

تایمرها - 128

شمارنده‌ها - 128

--------------------

برنامه PLC 41

یک PLC با آنچه به نوعی سیستم عامل و ماشین مجازی ساخته شده در خود همراه می‌شود.

شما به عنوان برنامه‌نویس از نرم‌افزار توسعه اختصاصی فروشنده، که به طور کلی به عنوان "نرم‌افزار برنامه‌نویسی PLC" شناخته می‌شود، برای نوشتن یک برنامه برای آن استفاده می‌کنید.

42

سپس شما PC خود را به PLC با استفاده از یک کابل از نوعی به PLC متصل می‌کنید و برنامه خود را در آن دانلود می‌کنید.

برنامه در حافظه RAM PLC ذخیره می‌شود.

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

قبل از در دسترس بودن فلش، معمولاً یک باتری برای نگهداری حافظه RAM استاتیک مورد نیاز بود.

43

فقط یک برنامه در PLC وجود دارد.

هیچ سیستم فایل وجود ندارد، فقط حافظه برنامه و جدول داده.

وقتی PLC راه‌اندازی می‌شود، برنامه‌ای که شما نوشتید را اجرا می‌کند.

آن تا زمانی که برق را خاموش کنید یا سوئیچ راه‌اندازی/توقف را به موقعیت توقف تنظیم کنید، به اجرای برنامه ادامه می‌دهد.

44

بعداً به برنامه‌نویسی برمی‌گردم، اما ما باید این نکات اساسی را قبل از توصیف مفاهیم بیشتر که باید پوشش دهیم، بررسی کنیم.

--------------------

اسکن ۴۵

یک نکته کلیدی که باید در مورد PLCها درک کنید، مفهوم "اسکن" است.

این به این صورت کار می‌کند.

یک چرخه تکراری به نام اسکن وجود دارد.

46

ابتدا، PLC تمام ورودی‌های فیزیکی را می‌خواند و آدرس‌های ورودی متناظر را در جدول داده‌ها به‌روزرسانی می‌کند.

سپس یک بار برنامه کاربر را اجرا می‌کند.

در نهایت، آدرس‌های خروجی را در جدول داده‌ها می‌خواند و آن‌ها را به خروجی‌های فیزیکی متناظر می‌نویسد.

سپس اسکن را از مرحله ۱ تکرار می‌کند.

47

اسکن می‌تواند از چند میلی‌ثانیه تا صدها میلی‌ثانیه طول بکشد، بسته به مدل PLC.

PLC‌های قدیمی‌تر و ارزان‌تر تمایل به کندتر بودن داشتند.

با این حال، با پیشرفت فناوری مدارهای یکپارچه، برنامه‌ها سریع‌تر شدند.

48

PLC دارای تایمر نگهبان است.

این یک تایمر است که در پس‌زمینه اجرا می‌شود و در ابتدای اسکن ریست می‌شود.

49

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

این به عنوان "خطای پردازنده" شناخته می‌شود.

50

یک خطای نگهبان ممکن است به دلیل برنامه‌ای که بیش از حد طولانی است یا از دستورات بسیار کند زیادی استفاده می‌کند، یا در برخی موارد ممکن است به دلیل باگ در برنامه شما باشد.

با این حال، این علت آخر آنقدر رایج یا آسان برای ایجاد نیست که فکر می‌کنید، وقتی به نقص‌ها می‌رسد.

--------------------

51 زبان برنامه‌نویسی PLC

کلید تمام این موضوع، روش منحصر به فرد است که زبان‌های برنامه‌نویسی مورد استفاده در PLCها کار می‌کنند.

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

52 منطق لدر

چندین زبان برنامه‌نویسی وجود دارد، اما اصلی‌ترین آن به نام منطق لدر است.

اگر به قسمت قبلی گوش دادید، کلمه "لدر" قطعاً به ذهن‌تان خطور کرده است.

زمانی که ماشین‌ها توسط رله‌های الکترومکانیکی کنترل می‌شدند، طرح‌های الکتریکی که انواع رله‌ها و اتصالات بین آنها را مشخص و مستند می‌کردند، "نمودار لدر" نامیده می‌شدند.

53

PLCها این نمودارهای پله‌ای را می‌گیرند و آنها را بر روی صفحه نمایش کامپیوتر شما در نرم‌افزار برنامه‌نویسی با استفاده از نمادهای استاندارد نمودار تکرار می‌کنند.

54

شما نیازی به کشیدن نمادها مانند CAD ندارید.

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

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

سپس به وارد کردن مراحل بعدی یکی پس از دیگری می‌پردازید تا برنامه کامل خود را داشته باشید.

لیست دستورالعمل 55

یک نمایش جایگزین به نام "لیست دستورالعمل" است، اگرچه فروشندگان مختلف ممکن است از اصطلاحات دیگر استفاده کنند.

این یک نمایش متنی است که شبیه نوعی زبان مونتاژ به نظر می‌رسد.

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

56

این باید به شما سرنخی بدهد که چگونه یک PLC می‌تواند یک نمودار طرح‌بندی را اجرا کند.

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

57 زبان برنامه‌نویسی دیگر

زبان‌های برنامه‌نویسی دیگری وجود دارند، اما به ندرت دیده می‌شوند.

من وارد جزئیات نخواهم شد از نظر توصیف آنها، فقط به طور خلاصه به آنها اشاره خواهم کرد.

58

یکی به نام نمودار تابعی دنباله‌ای است.

این نوعی نمودار جریان است که برای نشان دادن توالی‌های پیچیده، از جمله مسیرهای جایگزین یا موازی، طراحی شده است.

نام اصلی این گرافکت است، که به صورت G R A F C E T نوشته می‌شود.

این مخفف "گراف عملکردی فرمان مرحله‌ای انتقال" است.

علاوه بر اینکه یک زبان برنامه‌نویسی است، ابزاری بسیار خوب برای طراحی و تحلیل است، حتی اگر PLC مورد استفاده از آن از آن پشتیبانی نکند.

59

یکی دیگر نمودار بلوک عملکردی است.

این یک زبان گرافیکی دیگر است که شبیه نمودارهای جریان مورد استفاده در صنایع فرآیندی است.

گفته می‌شود که عمدتاً در صنایع مانند تولید شیمیایی استفاده می‌شود.

با این حال، به نظر می‌رسد که بسیار تخصصی است و اکثر افرادی که از PLCها استفاده می‌کنند هرگز آن را ندیده‌اند و بسیاری از آنها حتی از وجود آن خبر ندارند.

60

زبان دیگری نیز وجود دارد به نام متن ساختاریافته.

این به وضوح از Modula-2 گرفته شده و شباهت زیادی به آن دارد.

اگر با Modula-2 آشنا نیستید، این زبان توسط نیکلاس ورث ایجاد شد و به عنوان جانشین پاسکال، که از آن گرفته شده بود، طراحی شده بود.

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

اگر از آن استفاده کنید، تقریباً تمام امکانات نظارت و اشکال‌زدایی داخلی PLC را از دست می‌دهید، بنابراین بی‌معنی است، مگر شاید برای چند کاربرد خاص.

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

61 زبان PLC غیر مسدود کننده هستند.

نکته مهم در مورد یک برنامه PLC این است که از بالا به پایین، از چپ به راست، بدون توقف یا مسدود شدن اجرا می‌شود.

هیچ انتظار برای ورودی، خروجی یا بازگشت یک فراخوانی سیستم وجود ندارد.

هر مرحله به طور فوری نتیجه‌ای را ارائه می‌دهد که به یک آدرس حافظه نوشته می‌شود یا یک تایمر یا شمارنده را فعال می‌کند.

هر مرحله در هر اسکن اجرا می‌شود.

62

می‌توانید این کار را در یک زبان برنامه‌نویسی کامپیوتر سنتی تکرار کنید.

در منطق لادر، این به نحو دستوری ذاتی است و به سختی یا غیرممکن است که به روش دیگری انجام شود.

من مثالی در پایتون از آنچه که قصد دارم بگویم ارائه می‌دهم.

63

a = (b یا c) و نه d

64

اگر b یا c درست باشد و d نادرست، آنگاه a به درست تنظیم می‌شود.

اگر b و c نادرست یا d درست باشد، آنگاه a نادرست است.

65

حالا تصور کنید که ما این جمله را یک بار اجرا نمی‌کنیم، بلکه به طور مکرر آن را اجرا می‌کنیم.

این جمله هرگز اجرای آن را مسدود نخواهد کرد.

این جمله همیشه بلافاصله نتیجه‌ای را ارائه می‌دهد.

حالا اجازه دهید کمی آن را تغییر دهیم.

66

a = (b یا a) و نه d

67

توجه کنید که ما c را با a جایگزین کرده‌ایم.

حالا مقدار a به ارزش قبلی a و همچنین b و d بستگی دارد.

با این حال، یک بار که a درست شود، مقدار b دیگر اهمیت ندارد زیرا b در شرط "یا" با a قرار دارد.

اگر ما این کار را بارها و بارها تکرار کنیم، تنها وقتی که d درست باشد، go نادرست خواهد شد.

68

این یک مدار دکمه فشار دادن استاندارد است، همچنین به عنوان "مدار بسته" شناخته می‌شود، زیرا در اطراف شرط شروع "بسته" می‌شود.

69

b دکمه شروع با تماس عادی باز است.

d دکمه توقف با تماس عادی بسته است.

a یک رله است که یکی از تماس‌های آن برای نگه داشتن آن استفاده می‌شود.

70

اگر این را با دکمه‌های واقعی فشار دادن و رله‌ها یا برنامه‌ریزی شده در یک PLC با منطق لادر متصل کنید، به همان شکل کار خواهد کرد.

یک برنامه PLC از رانگ‌های منطقی پس از یکدیگر تشکیل شده است و آن را بارها و بارها در هر اسکن تکرار می‌کند، فقط برای به‌روزرسانی ورودی/خروجی خود متوقف می‌شود.

برنامه‌نویسی آسنکرون 71

برخی از شما ممکن است فکر کنید که این اسکن چرخه‌ای شبیه برنامه‌نویسی ناهمزمان است که در حال حاضر در برنامه‌های سرور وب محبوب است.

در اصل، این دقیقاً همان اصل است.

72

با برنامه‌نویسی ناهمزمان، برنامه شما هرگز نباید از دستورات مسدودکننده استفاده کند و اجرای آن در یک چرخه تکراری پیش می‌رود.

PLCها این را با نداشتن هیچ دستوراتی که مسدود کنند، حل می‌کنند، و بسیاری از PLCها اجازه جهش به عقب را نمی‌دهند.

کارگران کارخانه در یونیفرم‌های کار، برنامه‌نویسی ناهمزمان را دهه‌ها قبل از اینکه بچه‌های خنک از آن باخبر شوند، انجام می‌دادند.

۷۳ زبان برنامه‌نویسی PLC از زبان‌های بصری یا گرافیکی هستند.

اگر لدر، نمودار تابع متوالی، یا گرافسیت و نمودار بلوک تابع به نظر زبان‌های برنامه‌نویسی بصری می‌رسند، این‌گونه هستند.

در واقع، پله‌ها احتمالاً یکی از اولین زبان‌های بصری در استفاده تجاری هستند.

ویکی‌پدیا زبان برنامه‌نویسی بصری را به این صورت تعریف می‌کند:

74

در محاسبات، زبان برنامه‌نویسی بصری (سیستم برنامه‌نویسی بصری، VPL یا VPS)، همچنین به عنوان برنامه‌نویسی نموداری، برنامه‌نویسی گرافیکی یا کد بلوک شناخته می‌شود، زبانی است که به کاربران اجازه می‌دهد برنامه‌ها را با دستکاری عناصر برنامه به صورت گرافیکی، به جای مشخص کردن آنها به صورت متنی، ایجاد کنند. یک VPL اجازه می‌دهد با بیانات بصری، چیدمان‌های فضایی متن و نمادهای گرافیکی، که یا به عنوان عناصر دستوری یا به عنوان یادداشت‌های فرعی استفاده می‌شوند، برنامه‌نویسی شود. برای مثال، بسیاری از VPLs بر اساس ایده "جعبه‌ها و فلش‌ها" بنا شده‌اند، جایی که جعبه‌ها یا سایر اشیاء صفحه نمایش به عنوان موجودیت‌ها در نظر گرفته می‌شوند، متصل به یکدیگر با فلش‌ها، خطوط یا قوس‌ها که روابط را نشان می‌دهند. VPLs عموماً پایه و اساس پلتفرم‌های توسعه کم‌کد هستند. Scratch نمونه‌ای از یک VPL است.

75

پایان نقل قول.

همانطور که می‌بینید، آنچه امروزه خنک است، بیش از 40 سال پیش در خط تولید وجود داشت.

--------------------

محبوبیت زبان‌های برنامه‌نویسی PLC

PLCs تقریباً به اندازه‌ای مالکیت دارند که می‌توان تصور کرد.

تقریباً هر تامین‌کننده‌ای رویکرد مالکانه خاص خود را برای هر زبان دارد.

نحوه برنامه‌نویسی هر PLC خاص، توسط نرم‌افزار برنامه‌نویسی تامین‌کننده تعیین می‌شود.

اگر فروشنده از آن حمایت نکند، نمی‌توانید از آن استفاده کنید.

یک فروشنده فردی حتی ممکن است چندین خط محصول نامتوازن داشته باشد که باید با نرم‌افزارهای مختلف و روش‌های برنامه‌نویسی متفاوت برنامه‌ریزی شوند، اگرچه این روزها آنقدر رایج نیست که قبلاً بود.

77

تقریباً تمام PLCها از برنامه‌نویسی در لدر (Ladder) پشتیبانی می‌کنند.

برخی از آنها از برنامه‌نویسی در لیست دستورها به علاوه لدر نیز پشتیبانی می‌کنند.

هر چیز دیگری بسیار کمتر رایج است.

78

لدر منطق اتفاقاً در شاخص تیوبه (Tiobe Index) است.

برای کسانی که از آن نشنیده‌اند، شاخص تیوبه، که T I O B E خوانده می‌شود، یک وب‌سایت است که بر اساس معیارهای مختلف، محبوبیت زبان‌های برنامه‌نویسی متعدد را فهرست می‌کند.

79

شماره یک لیست آنها اتفاقاً پایتون است، که در حال حاضر 19.98% است.

شماره دو C با 11.55% است.

80

در زمان نگارش این اسکریپت، لادر لوجیک در رتبه 46 با رتبه بندی 0.28% قرار داشت، که آن را درست زیر ارنگ و درست بالای هاسکل قرار می‌داد.

مطمئن نیستم که این بدان معناست که لادر لوجیک آنقدرها هم ناشناخته نیست که فکر می‌کردید، یا اینکه ارنگ و هاسکل در واقع بیشتر از آنچه فکر می‌کردید ناشناخته هستند.

--------------------

خلاصه قسمت 81

در این قسمت ما در مورد موارد زیر صحبت کردیم:

تاریخ اولیه کامپیوترها در کنترل صنعتی

تاریخ اولیه PLCها، از جمله اینکه چگونه نام خود را به دست آوردند

برندهای اصلی

چگونگی ظاهر فیزیکی آنها

82

توصیف ساده‌ای از معماری ماشین انتزاعی

نگاهی کوتاه به اینکه یک برنامه PLC چگونه است

مفهوم اسکن

زبان‌های برنامه‌نویسی اصلی PLC

زبان‌های برنامه‌نویسی فرعی PLC

محبوبیت نسبی هر یک از زبان‌های برنامه‌نویسی

83

در قسمت بعدی، نگاهی به یکی از PLC‌های اولیه در دوره‌ای که شروع به استفاده گسترده کردند، خواهیم انداخت.

این PLC بسیار موفق بود و برای بسیاری از شرکت‌ها اولین PLC مورد استفاده آنها بود.

این Allen Bradley PLC2 است.

84

این دومین قسمت از یک مجموعه 8 قسمتی بوده است.

--------------------

ارائهبازخورددر مورد این قسمت.

منبع
Hacker Public Radio
گشودن نسخه اصلی ↗

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

این خبر مفید بود؟

بحث‌ها 0

نخستین مشارکت‌کننده در بحث باشید.

اطلاعات خود را به اشتراک بگذارید و استدلال خود را مطرح کنید

در انتشار اطلاعات یا داده‌های مفید تردید نکنید.

برای شرکت در بحث، وارد شوید یا حساب رایگان بسازید.