HPR4738: کنترل منطق برنامه‌نویسی - قسمت ۴

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

این برنامه توسط برگزارکننده به عنوان "مناسب برای تمام سنین" (Clean) طبقه‌بندی شده است.

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

01 مقدمه

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

02

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

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

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

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

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

03 S5 پیشینه تاریخی

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

اولین PLC آنها S3 بود که در سال 1975 عرضه شد، دو سال قبل از عرضه PLC2 توسط آلن برادلی.

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

در سال‌های 1978 یا 1979، تاریخ دقیق انتشار سری S5 توسط شرکت سیمنز نامشخص است.

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

در این قسمت، تمرکز من بر روی سری U خواهد بود، که نسخه ارتقاء یافته‌ای نسبت به مدل اصلی S5 بودند.

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

04 یک مجموعه کامل از PLCها

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

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

می‌توان یک زندگی حرفه‌ای را صرفاً با استفاده از محصولات سیمنز گذراند.

05

در انتهای پایین، سری S5-100 شامل S5-100، 102، 103، 90 و 95 بود.

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

مدل S5-115، در محدوده میانی قرار داشت و از نظر بسته‌بندی و اندازه رک، دارای ابعاد "استاندارد" بود.

مدل‌های S5-135 و S5-155، قابلیت‌های سرعت و حافظه را نسبت به مدل S5-115 افزایش داده‌اند.

06

در این قسمت، تمرکز من بر سری S5-100 در سطح پایین خواهد بود، به منظور سادگی، و هیچ اشاره‌ای به قابلیت‌های اضافی مدل‌های بزرگ نخواهم کرد.

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

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

07، انواع حافظه

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

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

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

اکنون، من در مورد مدل‌های S5-100 توضیح خواهم داد.

آدرس‌های ورودی و خروجی 08

ماژول‌های ورودی/خروجی استاندارد برای این PLCهای کوچک، 8 ورودی یا 8 خروجی در هر ماژول داشتند.

این ماژول‌ها به یک باس تخت (به جای یک رک بسته) متصل می‌شدند، با اسلات‌هایی که از 0 تا 31 به صورت اعشاری شماره‌گذاری شده بودند.

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

09

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

حرف، عدد، نقطه اعشاری، عدد.

این نامه یا I یا Q بود.

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

Q نشان داد.

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

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

10

"I2.3" نشان دهنده یک ماژول ورودی در اسلات سوم (که از صفر شماره گذاری می شود) و آدرس دادن به ورودی چهارم (که از صفر شماره گذاری می شود) در آن ماژول بود.

خروجی ها نیز همینطور کار می کردند.

به عنوان مثال "Q 5.1"

11

ماژول های آنالوگ می توانند در اسلات های 0 تا 7 قرار گیرند.

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

هر ماژول آنالوگ، 8 بایت در هر اسلات اختصاص داده شد، که از آدرس 64 شروع و تا 127 ادامه داشت.

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

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

12

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

در این مورد، بایت‌های ورودی با پیشوند "IB" و کلمات ورودی با پیشوند "IW" مشخص شدند.

خروجی بایت‌ها از پیشوند "QB" و کلمات خروجی از پیشوند "QW" استفاده می‌کردند.

13 پرچم

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

این‌ها با پیشوند "F" شروع می‌شدند.

یک S5-103 دارای 2048 کانال بود که از F0.0 تا F255.7 شماره گذاری شده بودند.

14 شمارشگر

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

یک دستگاه S5-103 دارای 128 عدد از این نوع بود که شماره‌گذاری آن‌ها از C0 تا C127 انجام شده بود.

15 تایمر

ساعت‌های تایمر با پیشوند "T" شروع می‌شوند.

یک دستگاه S5-103 دارای 128 عدد از این نوع بود که از T0 تا T127 شماره‌گذاری شده بودند.

16 بلوک داده

برنامه‌هایی که نیاز به کار با حافظه با بایت و کلمه دارند، می‌توانند "بلوک‌های داده" را ایجاد کنند.

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

یک S5-103 می‌تواند حداکثر 254 بلوک داده با شماره‌گذاری از DB2 تا DB255 داشته باشد.

دو بلوک داده اضافی برای عملیات داخلی PLC رزرو شد.

بلوک‌های داده می‌توانند تا 255 کلمه 16 بیتی را در خود جای دهند.

17

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

حتی 20 کیلوبایت به عنوان حافظه بزرگ در نظر گرفته می‌شد و این حافظه باید با برنامه به اشتراک گذاشته می‌شد.

"بلوک داده" باید "نام‌گذاری" شود تا به عنوان بلوک داده فعلی در نظر گرفته شود.

سپس، کلمات به صورت جداگانه با پیشوند "DW" مشخص می شدند.

به عنوان مثال، "DW5".

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

۱۸ بلوک برنامه‌نویسی

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

در S5، برنامه‌ها به "بخش‌ها" تقسیم شده بودند.

این‌ها بودند

سازمان، اقدام را متوقف کرد

بلاک‌های برنامه‌نویسی

بلوک‌های توابع

بلوک‌های متوالی

یک S5-103 می‌تواند تا 256 واحد از این بلوک‌ها را داشته باشد.

19 سازمان مسدود شده

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

می‌توانید این را به عنوان معادل تابع "main" در یک برنامه C در نظر بگیرید.

سازمان‌ها دارای پیشوند "OB" در نام خود بودند.

به عنوان مثال، OB1.

با یک برنامه بسیار ساده در یک PLC S5 بسیار کوچک، می‌توان تمام منطق برنامه را به سادگی در OB1 قرار داد.

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

20 بلوک برنامه‌نویسی

اینها دارای پیشوند PB بودند.

به عنوان مثال، PB10.

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

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

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

21 بلوک عملکرد

اینها دارای پیشوند FB بودند.

به عنوان مثال FB64.

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

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

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

همچنین، برخی از مدل‌های پردازنده دارای واحدهای عملکردی (FB) داخلی بودند که عملیاتی مانند تبدیل BCD (یا اعداد اعشاری با کد باینری) به اعداد صحیح معمولی را انجام می‌دادند.

22 بلوک دنباله

این‌ها دارای پیشوند SB هستند.

به عنوان مثال، SB25.

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

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

23 زبان برنامه‌نویسی

سری S5 چهار زبان برنامه‌نویسی مختلف را ارائه می‌داد.

این‌ها بودند

لدر (که با اختصاری LAD نیز شناخته می‌شود)

لیست اظهارات (که به اختصار STL نامیده می‌شود)

نمودار جریان سیستم کنترل (که به اختصار SCF نامیده می‌شود)

گراف 5

24

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

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

25

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

نتایج منطق بولی محاسبه و در یک پشته ذخیره شدند، در حالی که مقادیر صحیح مستقیماً از حافظه یا در دو شمارنده، ACCU1 و ACCU 2، پردازش می‌شدند.

26

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

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

27

نمودار 5، پیاده‌سازی SIEMENS از استاندارد نمودار جریان GRAFCET (Graphe Fonctionnel de Commande Étapes Transitions) IEC 60848 است.

IEC، کمیسیون بین‌المللی الکتروتکنیک است، یک سازمان استاندارد بین‌المللی.

28

من بر روی لیست "Ladder" و "Statement List" تمرکز خواهم کرد، زیرا این دو مورد بیشترین استفاده را داشتند و ما زمان محدودی برای بحث در مورد S5 داریم.

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

لیست 29

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

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

۳۰ RLO

دستورالعمل‌های بولی یا مبتنی بر بیت، بر روی یک پشته منطقی به نام RLO (یا نتیجه عملیات منطقی) عمل می‌کنند.

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

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

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

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

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

31، جمع‌کننده‌ها

دستورالعمل‌های مبتنی بر کلمه بر روی دو شمارنده، ACCU 1 و ACCU 2، کار می‌کنند.

دستور بارگذاری داده، یک کلمه یا مقدار بایت را از یک مکان حافظه یا یک مقدار ثابت در ACCU 1 بارگذاری می‌کند.

مقدار موجود در ACCU 1 سپس به ACCU 2 منتقل می‌شود.

دستور انتقال مقدار را در حافظه، در رجیستر ACCU 1 ذخیره می‌کند.

دستورالعمل‌های باقی‌مانده که بر اساس کلمات هستند، بر روی مقادیر موجود در ACCU 1 و ACCU 2 عمل خواهند کرد و نتیجه را در ACCU 1 قرار می‌دهند، و محتوای موجود را جایگزین می‌کنند.

به عنوان مثال، دستور زیر مقدار موجود در ACCU 2 را به مقدار موجود در ACCU 1 اضافه می‌کند و نتیجه را در ACCU 1 نگه می‌دارد.

32 پله

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

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

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

33

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

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

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

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

34

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

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

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

نمودار جریان و نمودار سیستم کنترل 35

مانند ladder، CSF و GRAPH 5، این موارد نیز در لیست دستورالعمل‌ها پیاده‌سازی شده‌اند و بسیاری از ملاحظات ذکر شده در بالا نیز برای آن‌ها قابل اعمال هستند.

با این حال، من قصد ندارم در مورد این موضوعات بیشتر توضیح دهم.

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

36 نرم‌افزار و سخت‌افزار برنامه‌نویسی

دو راه برای ورود به یک برنامه در یک PLC S5 وجود داشت.

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

سایر روش، از طریق نرم‌افزار برنامه‌نویسی STEP 5 بود.

37 ترمینال قابل حمل

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

این نمونه‌ها شامل تعدادی از آن‌ها بود، به عنوان مثال PG 605.

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

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

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

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

38 گام 5، نرم‌افزار برنامه‌نویسی

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

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

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

ابتدا، این نرم‌افزار بر روی CP/M اجرا می‌شد.

39

شرکت سیمنز، کامپیوترهای قابل حمل خود را همراه با نرم‌افزار نصب شده و ویژگی‌های سخت‌افزاری داخلی اضافی مانند یک دستگاه записи EPROM، به فروش رساند.

این کامپیوترها همچنین به عنوان "PGs" شناخته می‌شدند.

مرحله 5 سپس توسط اجرای آن روی یک شبیه‌ساز CP/M، به MS-DOS منتقل شد، که کاربران می‌توانستند از آن برای اجرای آن روی یک کامپیوتر شخصی معمولی مانند یک لپ‌تاپ استفاده کنند.

همچنین، یک نسخه بومی برای MS-DOS نیز تولید شد.

40

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

گراف 5 یک برنامه جداگانه بود.

شما می توانید بین حالت های STL، LAD و CSF جابجا شوید، و اگر نرم افزار بتواند اطلاعات موجود را از یک حالت به حالت دیگر ترجمه کند، آن کار را انجام می دهد.

41

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

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

بارگذاری یک برنامه برای ایجاد پشتیبان

تغییر یک برنامه در حال اجرا،

عیب‌یابی یک برنامه در حال اجرا.

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

دستورالعمل شماره 42

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

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

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

43 عملیات اساسی

عملیات منطقی

یک مجموعه کامل از عملیات منطقی شامل AND، NOT، OR، NOT، SET، RESET و ASSIGN وجود دارد.

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

44 بارگیری و انتقال

دستور Load مقدار یک آدرس حافظه (یک کلمه یا بایت) یا یک مقدار ثابت را در رجیستر 1 بارگذاری می‌کند.

حدود 24 نوع مختلف از دستورالعمل بارگذاری وجود دارد.

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

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

45 تایمر و شمارنده

۵ نوع مختلف تایمر وجود دارد.

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

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

بار دیگر، این مقادیر را به عنوان مقدار پیش‌فرض در جمع‌کننده 1 ذخیره می‌کنند.

46 عملیات حسابی

تنها عملیات حسابی بومی در سری S5-100U، جمع و تفریق هستند.

این عمل‌ها مقادیر موجود در جمع‌کننده 1 و 2 را اضافه یا کم می‌کنند.

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

با این حال، پردازنده‌های 103 و 95، عملگرهای ضرب و تقسیم باینری را به عنوان بلوک‌های توابع یکپارچه، FB242 و FB243، ارائه می‌کردند.

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

47 عملیات مقایسه‌ای

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

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

نتیجه بولی، در RLO ذخیره می‌شود.

تماس ۴۸ بلوکی و بازگشت

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

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

تعیین یک بلوک داده، آن را به بلوک داده فعلی تبدیل می‌کند، برای عملیات بارگذاری و انتقال روی کلمات داده.

49 NOP یا No Op

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

50 توقف

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

عملیات‌های دودویی 51

اینها بر روی کلمات در حافظه‌های جمع‌کننده عمل می‌کنند.

این‌ها شامل AND، OR، XOR، شیفت به چپ و شیفت به راست می‌شوند.

عملیات 52 بیتی

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

دستورالعمل‌های تبدیل 53

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

54 عملیات پرش

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

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

55 آدرس‌دهی غیرمستقیم یا عملیات "DO"

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

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

56 موارد متنوع

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

یا محتویات جمع‌کننده‌ها را جابجا کنید،

دستورالعمل‌های بیشتر 57

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

خلاصه دستورالعمل شماره 58

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

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

59

در یک طرف، این موضوع مثبت است، زیرا تقریباً می‌توان هر کاری انجام داد.

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

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

60

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

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

61

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

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

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

سرعت اجرای 62

سرعت اجرای دستورات بسته به مدل CPU PLC متفاوت بود.

در اینجا مقادیر معمول برای سری CPU های S5-100 در پایین آورده شده است.

63

یک دستور AND بولی در CPU S5-100U در 70 میکروثانیه اجرا می شود،

یا در 4 میکروثانیه در CPU S5-102U،

یا در 1.6 میکروثانیه در CPU S5-103U.

64

اضافه کردن دو کلمه در جمع‌کننده‌ها در 55 میکروثانیه در یک S5-100U انجام می‌شود.

یا 23 میکروثانیه در یک S5-102U،

یا 1.6 میکروثانیه در یک S5-103U.

65

مدل S5-103U دارای یک پردازنده منطقی سفارشی با نام M5 بود.

دستورالعمل‌هایی که روی پردازنده M5 اجرا می‌شدند، معمولاً 1.6 میکروثانیه زمان می‌گرفتند.

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

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

66

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

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

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

سری S7 جایگزین S5 است.

در اواسط دهه ۱۹۹۰، شرکت سایمنز شروع به معرفی سری S7 کرد که در نهایت جایگزین سری S5 شد، اگرچه این فرایند چندین سال طول کشید.

68

سخت‌افزار کاملاً جدید بود، اما از دید یک برنامه‌نویس، S7 یک تکامل از S5 محسوب می‌شد.

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

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

انتقال یک برنامه S5 به S7، یک بازنویسی کامل بود، اما نسبتاً ساده بود.

69

استثنا در این مورد، سری S7-200 بود که به همراه خرید بخش PLC شرکت Texas Instruments توسط سیمیز، از خارج به این شرکت منتقل شد.

S7-200 یک کپی آمریکایی از یک PLC ژاپنی بود که به عنوان یک محصول آلمانی فروخته می‌شد.

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

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

70

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

این می‌تواند ریشه خود را به دهه 1970 و دوران اولیه PLCها بازگرداند.

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

71 پیشرفت‌های دیگر

شرکت‌های تولیدکننده PLC ژاپنی

من تاکیدی بر شرکت‌های تولیدکننده PLC ژاپنی به همان شکلی که بر PLC2 و S5 تمرکز داشتم، ندارم.

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

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

72 سرعت نوآوری

از نظر تاریخچه کلی در صنعت، در اوایل تکامل PLCها، سرعت تغییرات نسبتاً بالا بود.

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

فناوری نسبتاً ثابت شده است، اما این لزوماً چیز بدی از نظر تجاری نیست.

من این موضوع را بعداً دوباره بررسی خواهم کرد.

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

نتیجه‌گیری

در این قسمت، ما به سری PLC های سیمیانس S5 پرداختیم.

ما در مورد تاریخچه S5 پوشت کردیم،

حافظه و آدرس‌دهی

انواع مختلف زیرروال‌ها،

زبان‌های برنامه‌نویسی،

دستورالعمل‌ها

و اینکه چگونه توسط سری S7 جایگزین شد.

74

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

در قسمت بعدی، به بررسی ماژول‌های ورودی/خروجی و نحوه عملکرد آن‌ها در ارتباط با CPU یک PLC و کنترل ماشین‌ها خواهیم پرداخت.

75

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

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

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

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

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

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

بحث‌ها 0

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

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

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

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