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

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

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

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

01 معرفی

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

02

در قسمت قبلی ما:

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

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

* برندهای اصلی

* ظاهر فیزیکی آنها

توضیح مختصر معماری ماشین انتزاعی

نگاهی کوتاه به ساختار یک برنامه PLC (Note: This is a direct translation of the provided text and may not be contextually accurate on its own. "PLC" remains unchanged as it is an acronym.)

مفهوم اسکن

* زبان‌های برنامه‌نویسی اصلی PLC (PLC: Programmable Logic Controller)

* زبان‌های برنامه‌نویسی PLC کم‌سن (کودک) (PLCC - زبان‌های برنامه‌نویسی کنترل کننده‌های منطقی قابل برنامه‌ریزی)

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

03

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

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

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

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

04 آلن برادلی PLC/2

آلن برادلی PLC/2 در سال 1977 به بازار عرضه شد.

این اولین ورود آنها به این حوزه نبود، اما اولین موفقیت واقعی آنها بود.

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

این همچنین به عنوان سری 1771 آنها شناخته می‌شود.

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

05 طرح فیزیکی

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

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

06

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

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

برای PLC2/30، می‌توانستید حداکثر 896 نقطه ورودی/خروجی دیجیتال داشته باشید.

07

قفسه‌ها 315 میلی‌متر ارتفاع داشتند و بین 247 میلی‌متر تا 610 میلی‌متر عرض داشتند، با قفسه‌هایی که در انواع 4، 8، 12 و 16 اسلات موجود بودند.

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

08

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

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

09 الکترونیک داخلی

مدل‌های اولیه PLC/2 از نوعی پردازنده 8 بیتی استفاده می‌کردند، برخی منابع می‌گویند یک Intel 8080.

10

آنها همچنین از چهار پردازنده برش بیتی AMD 2900 به عنوان یک پردازنده منطقی همکار استفاده می‌کردند.

اگر با پردازنده‌های برش بیتی آشنا نیستید، این تراشه‌ها مانند یک برش عمودی 4 بیتی از یک پردازنده هستند و می‌توانند با تراشه‌های منطقی برای تشکیل یک CPU کامل متصل شوند.

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

11

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

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

12

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

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

بعداً آنها به نوعی حافظه حالت جامد تغییر کردند، احتمالاً حافظه RAM ثابت نوعی.

13

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

آنها می‌خواهند کاربر آن را فقط به عنوان یک جعبه سیاه ببیند.

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

جدول داده 14

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

جدول داده، حافظه داده PLC است.

15

برای PLC2، این یک آرایه از کلمات 16 بیتی است.

هر کلمه از دو بایت 8 بیتی تشکیل شده است.

آدرس‌گذاری برای بیت‌ها و کلمات به صورت هشت‌گانه است.

16

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

عدد بعدی پس از هفت، ده است.

شمارش سپس از 11، 12، 13 و غیره ادامه می‌یابد تا 17، 20، 21 و غیره.

هر رقم هشت‌گانه دقیقاً 3 بیت را اشغال می‌کند.

17

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

برای مثال، 030/12 بیت 12 در کلمه 030 است. به یاد داشته باشید که این به صورت هشت‌گانه است، بنابراین 12 بیت دوازدهم نیست اگر به صورت ده‌گانه شمارش کنید.

سازماندهی حافظه 18

در PLC2/30، جدول داده به شرح زیر سازماندهی شده است.

19

آدرس‌های کلمه 000 تا 007 مربوط به منطقه کار پردازشگر شماره 1 است.

این بخش برای کاربر قابل دسترسی نیست.

20

آدرس‌های کلمه 010 تا 100، جدول تصویر خروجی است.

این یک تصویر حافظه‌ای از خروجی‌های ورودی/خروجی است.

از 010 تا 077 مربوط به قفسه 1 است.

از 020 تا 027 مربوط به قفسه 2 است.

این الگو تا قفسه 7 ادامه می‌یابد، که از 070 تا 077 است.

21

آدرس‌های کلمه از 100 تا 107، شماره منطقه کار پردازنده 2 است.

این نیز برای کاربر قابل دسترسی نیست.

22

آدرس‌های کلمه از 110 تا 200، جدول تصویر ورودی است.

این یک تصویر حافظه‌ای از ورودی‌های I/O است.

این به همان شیوه‌ای که جدول تصویر خروجی چیده شده است، ترتیب یافته و از 110 تا 177 ادامه می‌یابد.

از 110 تا 117 برای قفسه 1 است.

از 120 تا 127 برای قفسه 2 است.

این الگو تا قفسه 7 ادامه می‌یابد، که از 170 تا 177 است.

23

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

آنها در واقع همین کار را انجام می‌دهند.

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

24

آدرس‌های 200 تا 277 برای مقادیر تجمعی تایمر/شمارنده است.

یک مقدار تجمعی زمان یا شمار فعلی است.

25

آدرس‌های 300 تا 377 برای مقادیر پیش‌فرض تایمر/شمارنده است.

یک مقدار پیش‌فرض زمان یا شمار هدفی است که وقتی به آن رسید، تایمر یا شمارنده نشان می‌دهد که به مقدار مورد نظر رسیده است.

26

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

منطقه ذخیره‌سازی داده‌ها جایی است که شما داده‌هایی را که برنامه شما برای استفاده نیاز دارد و بخشی از ورودی/خروجی (I/O) یا شمارنده‌ها نیست، ذخیره می‌کنید.

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

27

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

=

با این حال، باید ایده‌ای نسبتاً خوب از حافظه یک مدل اولیه PLC داشته باشید.

چیزهایی که باید درک کنید این است که I/O به آدرس‌های حافظه اختصاص داده می‌شوند و

محدوده‌های حافظه مختلف برای اهداف مختلف استفاده می‌شوند.

28

تمام مدیریت حافظه به صورت دستی بود.

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

آلن برادلی به طور مفید فرم‌های کاغذی ارائه کرد که می‌توانستید کپی کنید و از آن‌ها برای برنامه‌ریزی و مستندسازی استفاده کنید تا هر آدرس برای چه منظوری استفاده خواهد شد.

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

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

برنامه کاربر

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

هر دستور معمولاً یک کلمه حافظه را اشغال می‌کند.

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

30

یک برنامه اصلی وجود دارد.

می‌توانید این را مانند تابع "اصلی" در سی در نظر بگیرید.

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

برنامه اصلی با یک مرحله پس از دیگری ادامه می‌یابد تا به عبارت «پایان» برسد.

31

همچنین یک منطقه زیرروال وجود دارد.

برنامه اصلی با استفاده از دستور «پرش به زیرروال» یا JSR، یک زیرروال را فراخوانی می‌کند.

ترمینال برنامه‌نویسی T3

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

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

در واقع، اولین PLC/2 پس از اولین کیت کامپیوتر Altair معرفی شد.

33

برنامه‌نویسی در ابتدا با استفاده از یک ترمینال برنامه‌نویسی ویژه به نام T3 انجام می‌شد.

T3 یک جعبه با اندازه کیف بود که در انتهای آن یک نمایشگر CRT کوچک و یک صفحه کلید به آن متصل بود.

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

34

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

آن یک صفحه کلید پد ممبران با نمادهای گرافیکی داشت.

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

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

35

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

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

36

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

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

37

برنامه‌نویسی با اتصال T3 به PLC در حالی که PLC در حالت برنامه‌نویسی بود، انجام شد.

دستورالعمل‌ها مستقیماً از ترمینال به حافظه PLC وارد می‌شدند.

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

برنامه زمانی اجرا می‌شد که PLC به حالت اجرا تنظیم می‌شد.

38

علاوه بر این، ترمینال T3 امکان اشکال‌زدایی آنلاین برنامه‌ها را فراهم می‌کرد.

وقتی T3 در حالت اجرا متصل شد، نمودار پله‌ای به‌روزرسانی زنده می‌شد.

وقتی یک شرط منطقی درست بود، برجسته می‌شد.

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

39

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

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

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

40

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

با این حال، آنها هنوز به همان شیوه اساسی کار می‌کنند.

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

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

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

و غیره.

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

41 دستور

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

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

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

دستورالعمل‌های نوع رله ۴۲

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

دستورالعمل‌های ورودی ۴۳

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

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

بررسی روشن - این درست است زمانی که بیت مورد نظر به ۱ تنظیم شده باشد.

بررسی خاموش - این درست است زمانی که بیت مورد نظر به ۰ تنظیم شده باشد.

دستورالعمل‌های خروجی ۴۴

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

دستورالعمل‌های خروجی در سمت راست هر مرحله قرار دارند.

همیشه حداقل یک دستورالعمل خروجی وجود باید.

خروجی انرژی - وقتی شرایط منطقی قبل از آن درست باشد، یک بیت را به 1 تنظیم می‌کند.

وقتی شرایط منطقی قبل از آن نادرست باشد، یک بیت را به 0 تنظیم می‌کند.

45

خروجی قفل - وقتی درست باشد، بیت را روشن می‌کند.

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

خروجی باز کردن قفل - وقتی درست باشد، بیت را خاموش می‌کند.

وقتی نادرست است، کاری انجام نمی‌دهد.

46 دستور شاخه

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

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

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

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

47 دستور تایمر و شمارنده

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

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

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

48

تایمرها و شمارنده‌ها بر اساس مقادیر باینری کدگذاری شده دهدهی، یا BCD کار می‌کنند.

هر مقدار BCD 4 بیت حافظه اش را می‌گیرد.

با این حال، برخلاف هگزادسیمال، فقط مقادیر از 0 تا 9 معتبر هستند.

مقادیر A تا F در هگزادسیمال معتبر نیستند و در BCD نیز مقادیر معتبر نیستند.

49

مقادیر پیش‌فرض و جمع‌آوری شده در کلمات 16 بیتی ذخیره می‌شوند. 12 بیت اول برای ذخیره تا 3 رقم BCD استفاده می‌شود.

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

50 تایمر

زمان‌بند پایه زمان با دقت زمان‌بند مطابقت دارد.

پایه‌های زمان 1.0 ثانیه، 0.1 ثانیه و 0.01 ثانیه هستند.

بنابراین، یک زمان‌بند با پایه زمان 1 ثانیه می‌تواند از 0 تا 999 ثانیه را با دقت یک ثانیه اندازه‌گیری کند.

یک زمان‌بند با پایه زمان 0.1 ثانیه می‌تواند از 0 تا 99.9 ثانیه را با دقت 0.1 ثانیه اندازه‌گیری کند.

51

سه نوع زمان‌بند وجود دارد،

زمان‌بند تاخیر روشن (یا TON

زمان‌بند تاخیر خاموش (یا TOF

زمان‌بند نگهدارنده (یا RTO).

52

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

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

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

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

53 شمارنده

شمارنده‌ها رویدادها را شمارش می‌کنند.

اینها به انواع زیر وجود دارند.

54

شمارنده بالا (یا CTU).

شمارنده نزولی (یا CTD)

ریست شمارنده (یا CTR)

شمارنده اسکن (یا SCT)

55

شمارنده‌های بالا از صفر شمارش می‌کنند و شمارنده‌های پایین از یک مقدار پیش‌فرض شمارش می‌کنند.

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

این چیزی نیست که معمولاً کاربرد آن را پیدا کنید، اگرچه می‌توانید از آن برای محاسبه زمان اسکن به عنوان مثال استفاده کنید.

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

56 دستور دستکاری داده

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

عملیات زمانی آغاز می‌شود که سطوح درست شوند.

57

GET یک کلمه 16 بیتی را از یک مکان حافظه می‌خواند.

PUT یک کلمه 16 بیتی را به یک مکان حافظه می‌نویسد.

LES به حقیقتی تبدیل می‌شود اگر مقداری که توسط دستور GET خوانده شده کمتر از یک مقدار مشخص باشد.

EQU به حقیقتی تبدیل می‌شود اگر مقداری که توسط دستور GET خوانده شده برابر با یک مقدار مشخص باشد.

58

دستورات LES و EQU می‌توانند به روش‌های مختلف با یکدیگر و با GET ترکیب شوند تا تمام ترکیب‌های ممکن مقایسه مانند بزرگتر از، کوچکتر از یا مساوی با و غیره را فراهم کنند.

59

GET BYTE یک بایت 8 بیتی را از یک مکان حافظه می‌خواند.

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

آزمایش محدوده با ترکیب GET BYTE استفاده می‌شود.

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

60 دستور ریاضی

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

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

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

اینها شامل می‌شوند

61

جمع

تفریق

ضرب کنید

تقسیم کنید

تبدیل BCD به دودویی

تبدیل دودویی به BCD

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

62 دستور انتقال بلوک

دستورات انتقال بلوک خروجی هستند که برای انتقال تا 64 کلمه 16 بیتی داده بین جدول داده و ماژول‌های ورودی/خروجی استفاده می‌شوند.

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

63

نمونه‌هایی از این‌ها چیزهایی مانند

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

PID که کنترل حلقه بسته را برای چیزهایی مانند دما مدیریت می‌کند.

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

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

کنترل موتور گام به گام

کدگذاران موقعیت

64

من وارد جزئیات انتقال بلوک‌ها نمی‌شوم، اما این کافی است تا یک ایده کلی از نحوه مدیریت PLC از این نوع تجهیزات در مقابل حالت‌های ساده روشن/خاموش ماژول‌های دیجیتال به شما بدهد.

به طور واضح، اینها می‌توانند به همراه GET، PUT و سایر دستورات دستکاری داده که قادر به خواندن و نوشتن در مکان‌های حافظه هستند، استفاده شوند.

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

۶۵ دستور جهش و برنامه‌نویسی زیررو

این دستورات شامل موارد زیر است.

66

جهش (یا JMP)

برچسب (یا LBL)

جهش به زیررو (یا JSR)

بازگشت (یا RET)

67

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

می‌توانید آن را مانند دستور GOTO در نظر بگیرید.

68

برچسب‌ها عددی هستند و می‌توانند از 00 تا 77 در سیستم هشت‌گانه باشند.

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

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

69

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

این بدان معناست که حلقه‌ها با استفاده از پرش امکان‌پذیر نیستند.

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

70

زیرروال‌ها پس از پایان برنامه اصلی ظاهر می‌شوند.

آن‌ها با استفاده از دستور برچسب در سیستم هشت‌گانه با شماره‌های برچسب تعریف می‌شوند.

زیرروال‌ها با استفاده از دستور "پریدن به زیرروال" (JSR) فراخوانی می‌شوند.

در پایان زیرروال، دستور "بازگشت" (RET) اجرای برنامه را به مرحله بعدی پس از JSR که آن را فراخوانی کرده است، بازمی‌گرداند.

می‌توانید فراخوانی‌های زیرروال را تا عمق 8 لایه تو در تو قرار دهید.

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

71 دستور انتقال فایل داده

علی‌رغم آنچه ممکن است فکر کنید از نام آن، فایل‌های دیسک در PLC2 وجود ندارند.

یک "دستور فایل" بلوک‌هایی از کلمات را از یک محل حافظه داده به محل دیگر منتقل می‌کند.

=

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

در واقع در این دستورات خیلی چیزها دخیل است، اما من قصد ندارم به جزئیات بپردازم.

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

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

72 دستور ثبت شیفت

این‌ها بر روی مجموعه‌ای کامل از کلمات عمل می‌کنند و شامل می‌شوند:

=

فایل را بالا شیفت دهید

فایل را پایین شیفت دهید

بارگذاری FIFO

تخلیه FIFO

73

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

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

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

جابجایی 74 بیتی

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

75

جابجایی بیت به چپ

جابجایی بیت به راست

بررسی بیت جابجایی خاموش

بررسی بیت جابجایی روشن

تنظیم بیت جابجایی

ریست بیت شیفت

76

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

با این حال، ثبت‌کننده شیفت می‌تواند به طولی از 1 تا 999 بیت تعریف شود، بنابراین محدود به اندازه کلمه نیست.

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

77 دستور دنبال‌کننده

دستورات دنبال‌کننده یک شبیه‌سازی نرم‌افزاری از کنترل‌کننده‌های مکانیکی-الکترومغناطیسی درام است.

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

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

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

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

78

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

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

79

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

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

کنترل‌کننده PLC/2 درام این دنبال‌کننده را تقلید می‌کرد.

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

80

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

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

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

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

81 دستور منطق فایل

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

این دستورات شامل:

و

یا

XOR انحصاری

تکمیل کننده

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

تکنیک‌های برنامه‌نویسی ویژه 82

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

اینها شامل موارد زیر است.

لبه پیشرو یک‌بار مصرف

لبه عقب یک‌بار مصرف

83

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

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

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

چرا PLC2 از BCD استفاده کرد؟

احتمالاً تعجب می‌کنید که چرا PLC2 از اعداد BCD به جای اعداد صحیح معمولی استفاده کرد.

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

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

85

سوئیچ‌های چرخ انگشتی دستگاه‌های کوچک شبیه طبل بودند که اعداد 0 تا 9 روی لبه آن‌ها چاپ شده بود.

چندین چرخ کنار هم قرار می‌گرفتند.

آن‌ها تا حدی شبیه عداد مکانیکی خودرو‌های قدیمی بودند.

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

هر رقم با اتصال چهار سیم به چهار ورودی PLC خوانده می‌شود.

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

86

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

نمایشگرهای اپراتور معمولاً نمایشگرهای LED هفت‌بخش، نئون یا نمایشگرهای فلورسنت خلأ بودند.

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

هر رقم عددی چهار ورودی داشت که به چهار خروجی PLC متصل می‌شد.

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

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

87

با رشد قابلیت‌ها و پیچیدگی برنامه‌های کاربر PLC، آنها شروع به کار با اعداد صحیح معمولی و حتی اعداد اعشاری کردند.

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

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

تأثیر PLC2

PLC2 یک محصول بسیار موفق برای Allen Bradley بود و آنها را به عنوان یکی از تأمین‌کنندگان پیشرو PLC تثبیت کرد، با جایگاه اول در بازار آمریکای شمالی و در میان 5 برتر در سطح جهانی.

با این حال، آن دارای چندین ضعف بود، به ویژه معماری بسیار ابتدایی حافظه و زیرروال و تمرکز بر اعداد هشت‌گانه و BCD.

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

89

جانشین واقعا موفق PLC2 برای Allen Bradley، PLC5 بود.

این مجموعه دستورات پایه PLC2 را با یک سیستم حافظه جدید، انواع داده‌های جدید، فضای نام‌های جداگانه و توابع پارامتریک ترکیب کرد.

90

این مثل تغییر از برنامه‌نویسی در بیسیک با شماره‌های خط و جهش‌ها به پاسکال بود.

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

91

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

آلن برادلی همچنان یکی از تأمین‌کنندگان اصلی کنترل‌کننده‌های منطقی قابل برنامه‌ریزی (PLC) در امروز است، که تحت نام راکول عمل می‌کند.

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

نتیجه‌گیری ۹۲

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

ما موضوعات زیر را پوشش دادیم.

الالکترونیک داخلی

جدول داده

برنامه کاربر

پایانه برنامه‌نویسی T3

و نگاهی اجمالی به مجموعه دستورات

93

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

94

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

در این مثال، به مدلی از کمی بعدتر از PLC2، سری S5، نگاه خواهیم کرد.

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

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

95

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

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

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

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

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

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

بحث‌ها 0

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

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

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

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