electrical engineering

Mohammad Shahri Farimani

electrical engineering

Mohammad Shahri Farimani

پروتکل مودباس Modbus

بررسی و تشریح شبکه صنعتی مدباس:

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

 

 

 

 

 

 

 

   

 

 

 

 

 

تاریخچه:

شبکه ی مدباس اولین بار در سال 1979 توسط شرکت Modicon که بعدها زیر مجموعه ای از اشنایدر الکتریک گردید،معرفی شد. 

 

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

شبکه مدباس به صورت یک استاندارد باز(Open Source) می باشد و به همین دلیل به سهولت می توان بین تجهیزات با برندهای مختلف ارتباط ایجاد کرد.

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

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

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









مودباس یک پروتکل عمومی است!

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

مودباس پروتکل عمومی

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

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

  • پشتیبانی شدن توسط چندین تولید کننده‌، ‫فروشندگان نرم‌افزار و سازمان‌های نصب/سرویس
  • ‫حمایت شدن از طرف گروه‌های اجتماعی فعال
  • ‫امکان ثابت نگه داشتن شرایط و افزودن امکانات بیشتر در آینده

‫امروزه، یکی از رایج‌ترین پروتکل‌های ارتباطی اتوماسیون ‫برای اتصال دستگاه‌های الکترونیکی، مودباس (Modbus) است.

مودباس (Modbus) چیست؟

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

مودباس چیست

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

‫مودباس یک پروتکل ارتباطی است که ‫که در سال ۱۹۷۹ توسط مادیکان، ‫برای استفاده در ‫کنترل کننده منطقی قابل برنامه‌ریزی یا PLC منتشر شد. ‫در حال حاضر، شرکت اشنایدر الکتریک مالک مادیکان است.

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

شبکه مودباس

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

انواع پروتکل مودباس 

‫چندین نسخه از پروتکل Modbus برای پورت سریال ‫و اترنت وجود دارد که رایج‌ترین آنها عبارتند از:

  1. Modbus RTU
  2. ‫Modbus ASCII
  3. Modbus TCP
  4. Modbus Plus

انواع مودباس

‫شرکت Modicon یک رابط مودباس ‫را برای یک شبکه مولتی دراپ مبتنی ‫بر معماری master/slave منتشر کرد. ‫ارتباط بین گره‌های مدباس، ‫با ارسال درخواست و خواندن پیام‌های پاسخ به دست می‌آید.

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

شبکه مدباس دارای سه نسخه اصلی است که ویژگی های آن ها با هم تفاوت دارد.

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

  EIA-485 ارتباط برقرار می‌کنند.

1) Modbus RTU,ASCII:

(واحد پایانه از راه دور)    RTU: Remote Terminal Unit

( کد استاندارد آمریکایی برای تبادل اطلاعات  ) ASCII: American Standard Code For Information Interchange

این پروتکل بر روی پورت سریال و لایه فیزیکی RS-232 ،RS-422 ، RS-485 ،امواج رادیویی،فیبر نوری و سلولار(شبکه تلفن همراه) به صورت Master/Slave کار می کند.سرعت تبادل اطلاعات 115Kb/s تا 1200b/s بوده و مسافت 1 تا 1.3 کیلومتری تحت شرایط خاص که در ادامه مقاله بیان می شود،را پوشش می دهد.این پروتکل در هرم اتوماسیون،عموما در لایه کنترل و لایه ی فیلد مورد استفاده قرار می گیرد.

حداکثر تجهیزاتی که در این پروتکل می توانند در داخل شبکه قرار بگیرند بدون استفاده از ریپیتر،31 تجهیز و با استفاده از ریپیتر و تشکیل سگمنت،حداکثر 247 تجهیز می باشد.(آدرس های Slave می تواند از 1 تا 247 قرار گیرند و آدرس 0 برای عملیات Broadcast رزرو شده است.)

-تفاوت هایی در مد انتقال RTU و ASCII وجود دارد که در شکل زیر بررسی شده است:

 

♦ مدباس RTU که به مدباس باینری (Modbus-B یا Modbus Binary)معروف است،بدلیل کوتاه بودن فریم داده،سرعت تبادل بالایی نسبت به مد ASCII دارا می باشد.

(مد RTU حداکثر سایز داده 256 بایت بوده ولی در مد ASCII ماکزیمم سایز داده به 513 بایت می رسد).معمول ترین و مناسب ترین پیاده سازی در دسترس برای مودباس،مد RTU است.

 تشخیص خطا در داده (Check Sum) در مدباس RTU بوسیله ی (CRC(Cyclic Redundancy Check که 2 بایت هست انجام می گیرد ولی در مدباس  ASCII تشخیص خطا یا همان چک سام بوسیله ی (LRC(Longitudinal Redundancy Check که 1 بایت می باشد صورت می گیرد.

* چک سام چگونه وجود خطا را بررسی می کند؟

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

-فریم داده در مدباس RTU:

*مدباس ASCII که به مدباس کاراکتری(Modbus_A) شناخته می شود،بیشتر به عنوان تست مورد استفاده قرار گرفته و  برای ارتباط از کارکترهای اسکی استفاده می کند.

-فریم داده در مدباس ASCII:

 

-چهار اصطلاح Start Bit,Stop Bit,Data Bit و Parity در مدهای RTU وASCII کاربرد دارد که در زیر هر کدام تعریف شده اند:

Start Bit: بیت شروع می باشد که برای هر دو مد عدد 1 قرار می گیرد.

Data Bit: طول داده ارسالی با این گزینه مشخص می شود که در مد RTU هشت بیت و در مد ASCII هفت بیت انتخاب میشود. 

Parity: یا بیت توازن،که دارای دو نوع زوج و فرد است.مثلا در نوع زوج(Even)،اگر تعداد یک ها در هر بایت زوج بود،بیت پریتی صفر می شود تا زوج بودن بایت فرد نشود و اگر تعداد یک ها در یک بایت فرد بود،پریتی  یک شده و تعداد آن ها را زوج می کند. 

Stop Bit: بیت پایانی فریم داده می باشد و سایز آن بسته به انتخاب Parity می باشد.


***باید توجه شود که تمام تجهیزاتی که در داخل شبکه قرار دارند از یک مد(RTU یا ASCII) استفاده کنند.

 

>>> مشاهده جدول کارکترها اسکی <<<

 

2) Modbus TCP/IP:

پروتکل ارتباطی از نوع CSMA/CD یا همان پروتکل برخورد یاب بوده و لایه فیزیکی آن مشابه اترنت و به صورت Client/Server می باشد.این پروتکل مشابه شبکه اترنت بوده وبر طبق مدل OSI،در لایه ترنس پورت،TCP و در لایه نتورک IP تعیین می شود.

سرعت شبکه مدباس TCP مشابه اترنت بوده و در رنج 10 تا 100 مگابیت/ثانیه می باشد.این پروتکل در هرم اتوماسیون،در لایه های مدیریت و سوپروایزری مورد استفاده قرار می گیرد. 

در نگاه کلی Modbus TCP/IP همان پروتکل ModbusRTU میباشد که با اینترفیس  TCP/IP روی شبکه Ethernet کار میکند و در آن TCP برای اطمینان از ارسال درست دیتا و IP برای اطمینان از آدرس دهی و مسیر یابی صحیح بکار میرود.

 Modbus TCP/IP فریم استاندارد پیام مدباس را به فریم استاندارد TCP در پورت 502 که اصطلاحاً به آن فریم  MBAP که مخفف  ModbBus Application Protocol می باشد تبدیل می کند.

3) Modbus Plus: 

بر اساس پروتکل Token یا ارسال نشانه کار می کند و از نرخ تبادل اطلاعات نسبتا بالایی حدود 1Mb/s با لایه فیزیکی RS-485 برخوردار است.پروتکل مدباس پلاس برخلاف نسخه پایه بعنوان یک استاندارد باز طرح نشده است و انحصاری شرکت مدیکان می باشد.

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

 


 

 معایب شبکه مدباس RTU و ASCII:

-پروتکل مدباس در برابر دستورات غیر مجاز یا رهگیری داده هیچ نوع امنیتی را فراهم نمی کند.

-در مدباس RTU و ASCII به علت ارتباط سریال،نرخ تبادل دیتا در مقایسه با سرعت شبکه های ارتباطی امروزی  که 100Mb/s و یا چند Gb/s  می باشند سرعت پایینی است.

-در ارتباط سریال که به صورت Master/Slave است،تنها یک Master می تواند در شبکه قرار گیرد و بقیه نودها Slave هستند؛این بدین معنی است که تنها بر روی باس یک Master اجازه صحبت با گروهی ازSlaveها را دارد.

-از آنجا که توسط RS-232 تنها دو وسیله و با RS-485 بین 20 تا  30 وسیله امکان ارتباط وجود دارد از این رو با افزایش وسایل بیشتر، نیاز به ارتباطات پیچیده درختی است.

نحوه ی ارتباط Master و Slave در شبکه مدباس

این لایه از تکنیک دسترسی Master/Slave استفاده می کند. بنابراین در هر لحظه فقط یک مستر میتواند باس را در اختیار داشته و با ماکزیمم 247 وسیله Slave  که به همان باس متصل هستند ارتباط برقرار کند. بدیهی است در این تکنیک دسترسی،slave ها هیچگاه بدون درخواست مستر،دیتایی را نمی فرستند و هیچگاه نیز با یکدیگر ارتباط برقرار نمی کنند.   این نحوه ی ارتباط در لایه دیتا لینک مدل OSI پیاده سازی می شود.

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

 

-مستر به دو روش درخواست خود را ارسال می کند:

1-Unicast: در این مد،Master در میان تمامی Slaveها فقط یک Slave را خطاب قرار داده و درخواست دیتا می کند.بدیهی است که در این مد باید Slaveها هر کدام آدرس منحصر به فرد داشته باشند.

2-Broadcast:در این حالت  مستر پیام خود را برای تمامSlave ها میفرستد ولی هیچ پاسخی به مستر بر نمیگردد. این مد از جمله برای نوشتن فرامین  (Writing Commands) بکار میرود.برای مد Broadcast آدرس صفر ،رزرو شده است. 

پروتکل مودباس و لایه فیزیکی آن

‫مودباس یک استاندارد عمومی است که ‫پیام‌های هر گفتگو را توصیف می‌کند. ‫

مدباس بین چندین نوع رسانه فیزیکی ‫ارتباط برقرار می‌کند:

  • RS-232
  • RS-485
  • RS-422
  •  اترنت (Ethernet)

لایه فیزیکی مودباس

‫رسانه فیزیکی را شما هنگام خرید دستگاهها انتخاب خواهید کرد. ‫رابط اصلی مودباس بر روی ارتباطات سریال RS-232 اجرا می‌شود، ‫اما بیشتر پیاده‌سازی‌های سطوح بعدی مودباس از RS-485 استفاده می‌کنند؛ ‫زیرا دارای مزایای زیر است:

  • پشتیبانی از مسافت طولانی‌تر
  • ‫سرعت بیشتر
  • امکان اتصال چندین دستگاه بر روی یک شبکه مولتی دراپ

مودباس بر بستر RS-485

‫ارتباط مودباس Master-Slave ‫بر روی رسانه فیزیکی سریال RS-485، ‫اتصالات دو سیمی فرستنده و گیرنده را نشان می‌دهد. ‫

ارتباطات دوسیمی rs-485

در رابط‌های ساده‌ای مانند RS-232 یا RS-485، ‫پیام‌های مودباس با فرم ساده در شبکه ارسال می‌شوند ‫و شبکه تنها به اتصال مودباس اختصاص داده می‌شود. ‫با این حال، اگر شبکه شما ‫به چندین دستگاه ناهمگن نیاز داشته باشد ‫که از یک شبکه چندمنظوره ‫مانند TCP/IP بر بستر اترنت استفاده کند، ‫پیام‌های مودباس در بسته‌های اترنت ‫با فرمت تعریف شده برای این رابط فیزیکی تعبیه می‌شود.

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

مودباس و اترنت

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

(OSI :Open Systems Interconnection) 

 

 

 

 

 

بررسی لایه ی فیزیکی Modbus RTU/ASCII

RS-232: 

این استاندارد به صورت Point_To_Point می باشد.این یعنی تعداد Node در Rs-232 فقط 2 عدد است.یک مستر و یک اسلیو. در استاندارد Rs-232 حداکثر طول کابل 15 متر و با کابل ها ی خازنی حداکثر 50 متر با نرخ دیتا 115Kb/s قابل دسترس است.علت کاربرد داشتن در فواصل کم تفاضلی نبودن این استاندارد می باشد.یعنی تمامی سطح ولتاژها نسبت به سطح زمین بوده و کاملا نویز پذیر می باشد.اینکه سطح ولتاژها نسبت به زمین است را اصطلاحا Single-ended می گویند که  در بعضی از ماژول های PLC های مختلف این اصطلاح استفاده می شود.

*نحوه ی پردازش سیگنال:در سمت فرستنده سیگنالهای بین -5 تا -25 ولت به عنوان  یک منطقی و از 5 تا 25 ولت صفر منطقی هستند.  در سمت گیرنده سیگنالهای بین -3 تا -25 ولت به عنوان  یک منطقی و از 3 تا 25 ولت صفر منطقی هستند.  سیگنالهای بین -3 تا 3 در محدوده ی غیر مجازند.

 

RS-485:

این استاندارد به صورت Multi_Point یا Multi Drop بوده و در شبکه های صنعتی Profibus و Modbus RTU بسیار مورد استفاده قرار می گیرد. سیم بندی RS-485 می تواند به صورت دوسیمه(Half-Duplex) و یا چهارسیمه(Full-Duplex) باشد.لازم بذکر است که می توان این نوع سیم بندی را با تغییر آرایش به یکدیگر تبدیل نمود.بدین معنی که یک تجهیز دارای شبکه مدباس Rs-485 که به صورت 4 سیمه است را می توان به یک تجهیز مدباس Rs-485 دوسیمه متصل نمود و بالعکس.

در این استاندارد بر خلاف Rs-232،سیگنالها بصورت تفاضلی سنجیده می شوند یعنی ولتاژ A نسبت به B سنجیده می شود.یکی از مزایای بزرگ این استاندارد،استفاده از تقویت کننده تفاضلی است که نویز پذیری کمتر نسبت به RS232 را ایجاد می کند.بدلیل اینکه در این استاندارد سطح ولتاژ سیگنال ها مورد بررسی است و نسبت به زمین نمی باشد،اصطلاحا روش دیفرانسیلی(Deferential) گفته می شود که بعضی از ماژول های انالوگ PLC از این روش استفاده می کنند.

 

*** هر شبکه ای که بستر ارتباطی آن RS-485 می باشد،حتما باید از ترمیناتور(Terminator) در ابتدا و انتهای خط استفاده کند.ترمیناتور،مقاومت هایی هستند که در از بین بردن اثر نویز در مسافت های زیاد و خالی کردن انرژی باقیمانده خط در حالت عادی مورد استفاده قرار می گیرند.

 

 

 

 

 

 

RS-422:

در این استاندارد حداکثر طول کابل بین 800 تا 1200 متر می تواند پوشش دهی داشته باشد.بر خلاف RS-485،فقط نوع 4سیمه یا Full-Duplex را پشتیبانی می کند.حداکثر تعداد گیرنده 10 عدد می باشد و مشابه Rs-485 بدلیل استفاده از آپ آمپ تفاضلی نویز ناپذیر است.

***کانکتورهای مورد استفاده در لایه ی فیزیکی برای هر سه نوع استاندارد RS-232/485/422:

کانکتور میتواند به یکی از دو صورت DB-9 یا RJ45 باشند.

RJ45 استانداردهای )      

 USOC , 568-B, 568-A

  

 

 

 

 

 

 

 

 

  

نکات لازم جهت پوشش دهی RS-485 در فواصل طولانی تا 1 کیلومتر:

طول کابل Trunk یا باس اصلی شبکه،همانطور که گفته شد محدود است و این محدودیت بستگی به سرعت انتقال دیتا،مشخصات کابل مانند خازن کابل،تعداد تجهیزات موجود در شبکه با توپولوژی Daisy Chain(زنجیر وار) و نیز آرایش خروجی 2 سیمه و 4 سیمه بودن شبکه،بستگی دارد. 

برای نرخ دیتا 9.6Kb/s با کابل (AWG26(13mm² یا ضخیم تر و سیستم 2 سیمه،طول کابل Trunk به 1 کیلومتر می رسد.برای سیستم 4 سیمه با مشخصات فوق طول کابل نصف می شود.

آدرس دهی رجیسترها و حافظه ها در شبکه مدباس

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

⇔ فانکشن کدهای رایج در شبکه مدباس :

آشنایی با نرم افزار Modbus Poll

 تست،شبیه سازی و برنامه نویسی این سه ویژگی را در نرم افزار Modbus Poll در اختیار دارید.

*پروتکل های ارتباطی استفاده شده در این نرم افزار:

-مدباس RTU          -مدباس ASCII         -مدباس TCP/IP            -مدباس UDP/IP           

- RTU,ASCII over TCP/IP       

-RTU,ASCII over UDP/IP

-کلیپی از محیط نرم افزار را در لینک زیر مشاهده فرمایید.

>> How to use Modbus Poll with a Sage Thermal Mass Flow Meter <<

*لینک دانلود نرم افزار پرکاربرد Modbus Poll 

مقدمه ای بر ساختار پیامها در Modbus

ساختار اصلی پیام مودباس نقطه-به-نقطه است. ‫مودباس قادر است بر روی هر دو شبکه ‫نقطه-به-نقطه و مولتی دراپ اجرا شود. ‫

انواع شبکه ها در ساختار مودباس

ارتباط دستگاه‌های مدباس از ‫یک تکنیک master/slave یا client/server بر بستر اترنت استفاده می‌کند که ‫تنها یک دستگاه (Master یا سرور) می‌تواند تراکنش‌ها (یا درخواست‌ها) را آغاز کند.

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

‫دستگاه slave، یک دستگاه جانبی است، ‫مانند مبدل ورودی/خروجی، دریچه (والو)، راه‌انداز شبکه ‫یا دیگر انواع دستگاه‌های اندازه‌گیری که اطلاعات را پردازش می‌کنند؛ ‫و پیام پاسخ را با استفاده از ‫پروتکل مودباس به دستگاه master ارسال می‌کند.

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

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

پاسخگویی دستگاههای Slave به Master

‫درخواست دستگاه master حاوی این موارد است:‫

  • آدرس دستگاه slave یا آدرس گسترده،
  • ‫یک کد عملکرد با دستور داده‌ای خواندن/نوشتن به دستگاه slave
  • داده مربوطه؛ مثلا در صورتی که دستور نوشتن توسط Master و در فیلد قبلی صادر شده باشد این بخش باید حاوی داده‌ای باشد که قرار است نوشته شود.
  • فیلد کنترل خطا

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

ساختار پیام ارسالی Master در مودباس

‫پاسخ دستگاه slave حاوی فیلدهای زیر است:

  • فیلدی که تایید میکند درخواست دریافت شده است
  • داده‌ای که باید برگردانده شود
  • فیلد کنترلی خطا CRC

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

پیام برگشتی Slave در مودباس

‫فیلد بررسی خطای فریم پیام دستگاه slave، ‫امکان تائید محتواهای پیام معتبر ‫را برای دستگاه master فراهم می‌آورد.

تایید داده ارسالی Slave توسط Master

جزئیات پروتکل مودباس

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

ویدئوی آموزشی جزییات پروتکل مودباس









ساختار پیامها در پروتکل Modbus

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

‫یک گفتگو در شبکه مدباس‫ همیشه با Master شروع می‌شود. ‫دستگاه Master یک پیام ارسال می‌کند؛ ‫با توجه به محتواهای پیام ‫دستگاه Slave پیام را ‫تفسیر کرده و پاسخ می‌دهد.

‫آدرس‌دهی فیزیکی Slave در هدر (header) هر پیام، ‫تعیین می‌کند که ‫کدام دستگاه باید به پیام پاسخ ‌دهد. ‫دیگر نودهای موجود در شبکه مودباس، ‫در صورتی که فیلد آدرس با آدرس خودشان ‫مطابقت نداشته باشد، این پیام را نادیده می‌گیرند.

آدرس دهی Slave در هدر پیام مستر

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

دستگاههای شبکه مودباس

‫دستگاه‌های مودباس معمولاً ‫حاوی یک نقشه رجیستر (رجیستر مپ) هستند، ‫که مکان پیکره‌بندی و ‫خواندن/نوشتن ‫داده‌های ورودی و خروجی را مشخص می‌کند. ‫شما باید به رجیستر مپِ ‫دستگاه slave مرتباً مراجعه کنید تا ‫درک بهتری از عملیات کلی آن بدست آورید.

‫مدل داده‌های مدباس دارای یک ساختار ساده، ‫شامل چهار نوع داده اساسی است:

  • ‫ورودی‌های مجزا (Discrete Inputs)
  • خروجی‌های کویل (Coils Outputs)
  • ‫رجیسترهای ورودی (داده‌ ورودی)
  • ‫رجیسترهای نگهدارنده (داده‌ خروجی)

رجیستر مپ دستگاه slave

واحد داده پروتکل مدباس (PDU)

‫ناحیه درخواست سرویسِ پیام ‫یا واحد داده پروتکل مودباس (PDU)، ‫از کد عملکرد ‫و تعدادی بایت‌های داده درخواست شده ‫توسط دستگاه master تشکیل شده است.

ناحیه PDU در پیام Master

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

‫برای مثال:

  • عدد ۰ در رجیستر ‫به پیامی جهت خواندن و نوشتن خروجی‌های مجزا یا کویل اشاره می‌کند
  • عدد ۱ در رجیستر ‫به پیامی جهت خواندن ورودی‌های مجزا اشاره می‌کند
  • ‫و یا عدد ۳ در رجیستر ‫به پیامی جهت خواندن رجیسترهای ورودی‌ اشاره می‌کند
  • ‫و عدد ۴ در رجیستر ‫به خواندن یا نوشتن بر روی رجیسترهای خروجی یا نگهدارنده اشاره دارد

فیلد کد عملکرد در پیامهای Modbus

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

برای مثال، کد عملکرد 03 که ‫رجیسترهای نگهدارنده 40002-40001 را می‌خواند، ‫به عنوان رجیستر داده 0000، ‫در فیلد آدرس داده پیام ارسالی به slave آدرس‌دهی می‌شود.

‫کد عملکرد 03 بر روی این نوع رجیستر نگهدارنده (4xxxx) ‫در نقشه داده slave کار می‌کند؛ ‫زیرا درخواست، استفاده از ‫عملیات نوع داده رجیستر نگهدارنده را مشخص می‌کند. ‫و در درخواست هم به این نوع آدرس‌دهی 4xxxx اشاره می‌شود.

بخش کد عملکرد پیامهای مودباس

‫فیلدهای PDU به بایت‌های مختلف تقسیم شده و ‫سپس بر اساس عنوان فیلد گروه‌بندی می‌شوند. ‫پیام درخواست حاوی بخشهای زیر است:

  • آدرس دستگاه Slave، با 01
  • کد عملکرد 03 (خواندن از رجیسترهای نگهدارنده 4xxxx)
  • ‫آدرس شروع بایت‌های HI و LO به صورت 0000 که رجیستر ابتدایی را مشخص میکند.
  • تعداد آدرسهایی که باید از Slave خوانده شود، ‫با بایت‌های HI و LO رجیستر مقدار 0002 مشخص میشوند ‫و تعداد رجیسترهایی که باید از Slave خوانده شوند ‫را مشخص می‌کند.

ساختار PDU پیامهای مودباس

‫مثالی از یک درخواست برای ‫خواندن دو رجیستر اول در ناحیه رجیستر نگهدارنده، ‫از ۰ تا ۱ (رجیستر ۴۰۰۰۱ تا ۴۰۰۰۲) است و در تصویر زیر نمایش داده شده است.

خواندن رجیسترهای نگهدارنده

در تصویر فوق مشخص است که ‫رجیستر نگهدارنده 40108 در واقع، ‫به عنوان رجیستر 107 در ناحیه داده پیام PDU آدرس‌دهی می‌شود.

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

نامگذاری رجیسترهای حافظه

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

‫کدهای عملکرد معتبر از محدوده 1 تا 255 هستند، ‫اما همه کدها به یک دستگاه slave خاص ارسال نمی‌شوند.

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

توابع استاندارد پروتکل مودباس

فیلد داده در پیام مودباس

فیلد داده درخواست دستگاه Master، ‫اطلاعات اضافی مورد نیاز دستگاه Slave را فراهم می‌کند تا ‫عملیات مشخص شده توسط کد عملکرد در درخواست دستگاه Master را کامل کند.

‫این درخواست معمولاً شامل بخشهای زیر است:

  • آدرس رجیستر مپ Slave
  • تعداد رجیسترهای مورد نیاز در درخواست
  • هر دستور نوشتن از دستگاه Master

مدیریت خطا در پیام مدباس

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

‫به عنوان مثال، دستور خواندن رجیسترهای نگهدارنده، ‫دارای کد عملکرد 1 بایتی حاوی 8 بیت 0011 0000 (03 هگزادسیمال) است. ‫اگر دستگاه Slave درخواست را بدون خطا قبول کند، ‫همان کد را در پاسخ خود بازمی‌گرداند.

‫با این حال اگر خطایی رخ دهد، ‫دستگاه Slave، یک بایت حاوی 8 بیت ‫را در فیلد کد عملکرد به شکل 0011 1000 بازمیگرداند (پرارزش ترین بیت 1 شده) ‫و یک کد خاص به فیلد داده پیام پاسخ الحاق می‌کند، ‫که به دستگاه Master می‌گوید، ‫چه خطایی رخ داده است ‫یا علت خطا چیست؟

نمایش خطا در پیام پروتکل مودباس

‫پرکاربردترین کدهای عملکرد در Modbus

کد عملکرد ۰۱، کد خواندن کویل، ‫برای خواندن رجیسترهای پیوسته 1 تا 2000 ‫مربوط به وضعیت کویل‌ها در یک دستگاه Slave استفاده می‌شود. ‫درخواست PDU، کد شروع آدرس حافظه دستگاه Slave اولین کویل و‫تعداد کویل‌هایی که باید از دستگاه Slave خوانده شوند‫ را مشخص می‌کند.

‫کد عملکرد ۰۲، کد خواندن ورودی‌های مجزا، ‫برای خواندن حالت‌های پیوسته 1 تا 2000 ‫ورودی‌های مجزای یک دستگاه Slave در حالت ریموت استفاده می‌شود. ‫درخواست PDU، کد شروع آدرس ‫آدرس حافظه دستگاه Slave اولین ورودی ‫و تعداد کویل‌هایی که باید از دستگاه Slave خوانده شوند‫ را مشخص می‌کند. ‫

کد عملکرد ۰۳، کد خواندن رجیسترهای نگهدارنده، ‫برای خواندن محتواهای یک بلوک متوالی ‫از رجیسترهای نگهدارنده در دستگاه Slave در حالت ریموت به کار‌ می‌رود. ‫درخواست PDU، آدرس رجیستر آغازین ‫و تعداد رجیسترهایی که باید از دستگاه Slave خوانده شوند‫ را مشخص می‌کند. ‫

کد عملکرد ۰۴، کد خواندن رجیسترهای ورودی، ‫برای خواندن رجیسترهای ورودی پیوسته 1 تا 125 در یک دستگاه راه دور استفاده می‌شود. ‫درخواست PDU، آدرس رجیستر آغازین و تعداد رجیسترها را مشخص می‌کند.

‫کد عملکرد ۰۵، کد خواندن یک کویل، ‫برای نوشتن یک خروجی یکتا به صورت ON یا OFF ‫در یک دستگاه Slave راه دور استفاده می‌شود.

‫کد عملکرد ۰۶، کد نوشتن یک رجیستر، ‫برای نوشتن یک رجیستر نگهدارنده ‫در یک دستگاه Slave راه دور استفاده می‌شود. ‫درخواست PDU، آدرس رجیستر حافظه دستگاه Slave ‫که باید بر روی آن نوشته شود را تعیین می‌کند.

‫کد عملکرد ۱۵، کد نوشتن چندین کویل، ‫برای نوشتن یک کویل در دنباله‌ای از کویل‌ها، ‫به صورت ON یا OFF در یک ‫دستگاه Slave راه دور استفاده می‌شود. ‫درخواست PDU، آدرس حافظه کویل‌ها ‫به صورت ON یا OFF را مشخص می‌کند.

کد عملکرد 15 شبکه مودباس

‫و در نهایت کد عملکرد ۱۶، ‫نوشتن بر روی چندین رجیستر، برای نوشتن یک بلوک از رجیسترهای پیوسته، ‫از 1 تا 123 رجیستر در یک دستگاه Slave راه دور استفاده می‌شود.

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

‫برای مطالعه دقیق‌تر اطلاعات فنی پروتکل مودباس ‫لطفاً به آدرس Modbus.org مراجعه کنید.

نرم افزار شبیه ساز پروتکل Modbus

‫ارتباط با دستگاه‌های Slave یا PLCهای Master و یا کامپیوترها ‫می‌تواند با استفاده از نرم‌افزار شبیه‌ساز پروتکل مودباس ‫بر روی کامپیوتر شخصی اجرا شود.

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

‫شما به‌ راحتی می‌توانید یک کامپیوتر شخصی را‫ برای اجرای نرم‌افزار شبیه‌سازی دستگاه Slave، ‫و کامپیوتر دیگری را برای اجرای‫ نرم‌افزار شبیه‌سازی دستگاه Master به کار ببرید.

نرم افزار شبیه ساز Master و Slave مودباس

‫اتصال به یک Slave در ابتدا ‫با تنظیم پارامترهای ارتباطی برای پورت COM سریال، ‫سپس با وارد کردن آدرس Slave در فیلد شناسه دستگاه انجام میشود.

اتصال شبیه ساز از طریق پورت سریال COM

‫برای مثال 1، انتخاب کد عملکرد 01، ‫جهت خواندن وضعیت کویل دستگاه Slave، ‫در آدرس 0001 و خواندنی به طول 100 کویل انجام می‌شود.

نرم افزار شبیه ساز Slave مودباس

علاوه بر این، چندین شرکت ارائه دهنده محصولات و پشتیبانی ‫برای کمک به شما در استفاده از این پروتکل وجود دارد. ‫کمپانی ProSoft Technologies، ‫شرکت ارتباطات صنعتی HMS ‫و MOXA تعدادی از این شرکت‌ها هستند.

محیط برنامه نویسی گراف ( S7 - Graph ) در Simatic Manager به همراه فیلم آموزشی

محیط S7 - Graph  و زبان برنامه نویسی گراف با ایجاد فانکشن بلاک FB :

تفاوت ایجاد محیط برنامه نویسی گراف با ایجاد Function Block  با روش Sources File  در این است که در روش ایجاد با فانکشن بلاک ( FB ) ، چون Save & Compile می شود اگر Error  داشته باشد ، ذخیره نمی شود، اما در روش Sources  می توانید با وجود داشتن Error ، برنامه را ذخیره کنید و بعد از روی فرصت خطاهای ایجاد شده را برطرف نمایید.

ایجاد محیط S7 - Graph با روش ایجاد فانکشن بلاک ( FB ) :


آشنایی با محیط نرم افزار S7 - Graph :

پس از اجرای برنامه S7 - Graph ، پنجره برنامه به شکلی شبیه زیر ظاهر می شود ، برای توصیف بهتر بخش های این برنامه ، شماره گذاری شده اند ، برنامه در بخش شماره 2 ، ترسیم می شود :


بخش 1 : این بخش که در بالا و نیز سمت چپ ظاهر می شود ، همان نوار ابزار ( Toolbars ) برنامه است ، بخش بالا به دوقسمت Standard و View  تقسیم می شود که در فیلم آموزشی توضیح داده شده است.

بخش 1 در سمت چپ نیز به دو قسمت Sequencer و LAD/FBD تقسیم می شود که این قسمت هم در فیلم آموزشی توضیح داده شده است .

بخش 2 : برنامه کنترل ترتیبی در این بخش ترسیم و نوشته می شود ، وقتی برای اولین مرتبه ، برنامه Graph را باز می کنیم ، معمولاً شامل یک مستطیل به نام Step 1 که با S1  نشان داده می شود و یک خط افقی در زیر آن به نام  Transition 1 که با T1 نشان داده می شود ، می باشد .

بخش 3 : این بخش  Menu Bar برنامه است.

بخش 4 : این بخش Title Bar برنامه است ، نام پروژه ، شماره FB و DB و اطلاعاتی از این قبیل در این بخش نشان داده می شود .

بخش 5 : به این پنجره Overview گفته می شود ، و در آن می توان وضعیت کل Stepها که تشکیل یک Sequencer یا توالی را می دهند ، مشاهده کرد .

بخش 6 : به این پنجره Detail گفته می شود که در پایین برنامه ظاهر می شود و در آن می توان وضعیت متغیرها یا آدرس های استفاده شده را دید و در هنگام ذخیره سازی برنامه ، لیست Errorها و Warningها را در این بخش قابل مشاهده است .

بخش 7 : به این قسمت Status Bar گفته می شود ، وضعیت CPU در حالت Online در این قسمت قابل مشاهده است .


Step  و  Transition : در محیط اصلی S7 - Graph  ، شکل یک Step  و یک Transition نمایش داده می شود .

 مفهوم Step که به صورت یک باکس مستطیل شکل نمایش داده می شود ، مرحله ای است که PLC به آن وارد می شود و در آنجا دستور یا دستورات خاصی را اجرا می کند  ، CPU آنقدر در این مرحله می ماند تا شرایط گذر یا Transition که در زیر Step با یک خط افقی نمایش داده شده ، برآورده شود .

به عنوان مثال در شکل زیر درصورتی CPU از مرحله عبور کرده و  وارد مرحله می شود که سوئیچ I0.0  بسته شود :


دستورات دائمی ( Permanent Instruction ) : دستوراتی هستند که در هر سیکل اسکن ، صرفنظر از اینکه برنامه در کدام Step قرار دارد ، یکبار اجرا می شوند ، دستورات بخش Permanent بالای بلاک ، در ابتدای سیکل اسکن و دستورات Permanent پایین بلاک ، در انتهای سیکل اسکن اجرا می گردند ، دستورات می تواند از نوع condition  یا از نوع Call باشد ، که ازمنوی  Insert ، قسمت Permanent Instruction ، دستورات را می توان انتخاب کرد .

دستورات Permanent قبل از Sequencer :



دستورات Permanent بعد از Sequencer :


بخش Interlock : در این قسمت شرایط Interlock مربوط به Step  نوشته می شود، از شرایط Interlock می توان برای دستورات برنامه نویسی Step استفاده کرد و متناسب با آن دستوراتی را اجرا کرد ، پس از این حیث با شرایط Transition متفاوت است چون Transition فقط شرایط گذر از Step را در برمی گیرد .


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



بخش Comment : در این بخش ، توضیحات مربوط به همان Step را می توان نوشت و با بخش Block Comment  که مربوط به توضیحات توالی ( Sequencer ) است ، متفاوت می باشد .

توجــه : می خواهیم برنامه کنترل روشنایی راه پله را که قبلاً به زبان FBD نوشته بودیم را به زبان گراف ، طراحی نماییم ، به‌طوریکه سه عدد لامپ برای روشنایی که از نقطه مختلف کنترل شود ، برای کنترل از سه محل می توان از سه عدد شستی استارت یا سه عدد سنسور بدون تماس ( BERO ) خازنی ، استفاده کرد ، بعد از آنکه یکی از شستی‌های استارت فشرده شود یا یکی از سنسورها ، حضور فردی را حس کند و اکتیو شود ، لامپ‌ها روشن شوند و به مدت 15 ثانیه روشن بمانند، درصورتیکه یکی از شستی استارت  ، از یکی از محل‌های کنترل ،  مجدد فشرده شود و یا یکی از سنسورها ، دوباره  فعال گردد ، دراینصورت مجدد زمان 15 ثانیه شروع شود و لامپ ها روشن شوند .


فیلم آموزشی ایجاد فانکشن بلاک ( FB1 ) و برنامه نویسی به زبان گراف در S7 - Graph  ،  فراخوانی فانکشن بلاک FB1  در بلاک OB1  ، دانلود برنامه و تست برنامه در شبیه ساز(Simulation ) :

مقاله آشنایی با صنعت برق

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

یک مقاله بسیار ساده داشتم که شاید برای بعضی علاقه مندان مورد استفاده قرار گیرد ؛ لذا آنرا دروبلاگ قرار دادم.











پروژه کنترل دمای آب استخر ( اتوماسیون صنعتی ) توسط PLC Siemens STEP7-300 همراه با کلیپ تصویری

کلیپ تصویری آموزشی طراحی پروژه کنترل دمای آب استخر توسط PLC   ,   STEP7-300 و نرم افزار Simatic Manager :

توجــه : می خواهیم برنامه یک پروژه واقعی را طراحی  کرده و در محیط نرم افزار Simatic Manager آن را ،  اجرا کنیم .

پروژه کنترل دمای آب یک استخر می باشد ، که قسمت های مختلف  پروسه را در شکل زیر مشاهده می کنید :


توجــه : همانطور که در شکل فوق ، مشاهده می کنید ، سنسور S1  تعیین سطح آب استخر را اعلام می کند و بعد از آنکه این سنسور ، فعال شد و اعلام کرد که آب در استخر وجود دارد ، سیستم روشن می شود و Pump1 ، آب را از استخر می کشد و از مبدل حرارتی ( Heat_Exchange ) و صافی ( Filter ) عبور داده و مجدد ، آب را به استخر بر می گرداند .

بویلر به طور مستقل کار می کند و دمای آب بویلر روی 90oC تنظیم می باشد.

 سنسور RTD دمای آب استخر را که به طور پیش فرض روی 28 درجه سانتی گراد ( Set_Point=28oC ) تنظیم شده  است ، اندازه گیری می کند ، درصورتیکه دما از 28oC کمتر شود ، آنگاه Pump2 روشن شده و آب خروجی بویلر را وارد سیستم می کند و از مبدل حرارتی  ( Heat_Exchange ) , عبور میدهد تا دمای آب مجدد از 28oC بیشتر شود ، در این حالت ، اگر سنسور ، RTD  ، دمای آب استخر را  بیشتر از 28 درجه سانتیگراد را اندازه‌گیری کند ، آنگاه  Pump2  خاموش می شود و این روند به همین صورت ادامه پیدا می کند .

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

نکتــه : در این پروسه ، پاسخ سیستم کند است ، یعنی اگر دمای آب استخر 26oC باشد ، یعنی فقط 2oC کمتر از مقدار تعیین شده ( Set_Point = 28oC باشد ، باید مقدار زیادی از آب استخر از تبادلگر حرارتی عبور کند تا دمای آب استخر ، افزایش یابد ، لذا پاسخ سیستم کند است و نیازی به سیستم های دیگر کنترل مانند PID _ Controller نداریم .


توجه : در  زیر ، تعریف متغیرها ، ورودی ها و خروجی ها را داریم و آنها را تحلیل می کنیم :


*** پیکربندی سخت افزار در Simatic Manager : 


*** آدرس  کارت DI / DO :


*** مشخصات و آدرس کارت AI :



*** جدول Symbol  Table و تعیین آدرس های سمبلیک برای متغیرها ، ورودی ها و خروجی های برنامه : 


***ایجاد  دیتا بلاک Data Block ( DB1 ) برای  تعریف Set_Point :



*** برای اینکه PLC هردفعه به DB1 مراجعه نکند ، اطلاعات آن را به OB100 که جزو OBهای راه‌اندازی است ، منتقل می کنیم ، تا در ابتدای اجرای پروژه PLC  اطلاعات آن را بخواند و اجرا کند:




توجــه مهم : علاوه بر فانکشن های سیستمی ( SFC  ) ، خانواده ای از فانکشن ها با عنوان IEC   Function  Blocks وجود دارند که بسیاری از عملیات های پیچیده را ساپورت می کنند ، این فانکشن ها به چهاردسته تقسیم می شوند :

1- Convert که تبدیلی را روی نوع دیتا انجام می دهند .

2- DT که برای عملیات مقایسه تاریخ و زمان بکار می رود .

3- String که برای عملیات روی String کاربرد دارد .

4- Floating  Point  Math برای عملیات روی متغیرهای اعشاری و 32 بیتی ، بکار می رود .

در برنامه پروژه کنترل دمای آب استخر در Network1 در بلاک OB1  از این دسته از فانکشن ها که از نوع Convert می باشد ، برای مقیاس اندازه گیری سنسور RTD ، استفاده می گردد ، به طوریکه در قسمت Program Element ، قسمت منوی درختی Libraries  و سپس قسمت Standard  Library و بعد قسمت TI-S7  Converting  Blocks را انتخاب کرده و درنهایت فانکشن FC105 را انتخاب می کنیم ، مانند شکل های زیر :




*** OB1  را ایجاد می کنیم و برنامه اصلی پروژه را در آن طراحی می کنیم :



*** حالت های مختلف Simulation را در شکل های زیر مشاهده می کنید ( آدرس ورودی ها و خروجی ها را از جدول Symbol Table پیدا کنید )  : 

در شکل زیر ، سنسور S1 فعال و شستی استارت فشرده شده در نتیجه Pump1  ,  Boiler  و Pump2 روشن شده اند :


درشکل زیر ، دما توسط RTD_Scale  مقدار 29oC اندازه گیری شده درنتیجه Pump2 خاموش شده است :


در شکل زیر ، دما توسط RTD_Scale  مقدار 27oC اندازه گیری شده درنتیجه Pump2 روشن شده است :


در شکل زیر ، شستی استپ فشرده شده و Pump1  ,   Boiler  و Pump1 خاموش شده‌اند :


*** برنامه را Monitoring می کنیم ، تا حالت های ورودی و خروجی را بهتر مشاهده کنیم :




نحوه محاسبه و تبدیل KVA به KW برای دیزل ژنراتور

دیزل ژنراتور ؛

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

مولدهای برق دیزل ژنراتور در ظرفیت های مختلف تولید و عرضه می شوند، برای تهیه دیزل ژنراتور متناسب با توانی که دیزل ژنراتور بهره برداری خواهد شد اطلاعاتی نظیر توان حقیقی و ظاهری ضروری خواهد بود. 
KW ( کیلو وات ) یکای اندازه گیری توان حقیقی سیستم الکتریکی است ، این توان به شما نشان می‌دهد که چه مقدار نیرو به بازده مفید تبدیل می‌شود.
KVA ( کیلو ولت آمپر ) یکای اندازه گیری توان ظاهری دستگاه برقی است ، اگر KW میزان توان کار دستگاه در نظر بگیریم، KVA مشخص کننده توانی است که در سیستم مورد استفاده قرار گرفته است.
در صورتی که سیستم ما در راندمان ۱۰۰ درصد بهره برداری شود مقدار KW و KVA با هم برابر خواهد بود، اما در واقعیت هیچ سیستمی با راندمان کامل کار نمی‌کند. جریان ورودی موتور‌ها و ترانسفورماتور‌ها به هنگام راه اندازی مقداری بسیار بزرگی و مقداری در حدود ۶ برابر جریان کامل است (به خاطر خاصیت سلفی موتور‌ها و ترانسفورماتور‌ها) و در نتیجه این مقدار جریان نیاز به KVA مشخص می‌شود.

در صورتی که دیزل ژنراتور برای تامین بار اضطراری تعبیه شود ، فقط توان تجهیزاتی که با دیزل ژنراتور تامین خواهند شد مد نظر قرار می‌گیرد ، اما در صورتی که از دیزل ژنراتور برای حالت کار دائم و تامین برق مصارفی که دسترسی به شبکه برق ندارند ، مورد بهره برداری قرار گیرد ، لوازم برقی مورد نظر را لیست می کنیم و باید میزان برق مصرفی آن‌ها را باهم جمع کنیم ، که همه‌ی آن‌ها یا بر اساس آمپر می باشد یا بر اساس کیلووات (KW)، یا براساس کاوا (KVA) و یا همگی براساس وات (watt) می‌باشد.هدف از محاسبه‌ی بار الکتریکی رسیدن به مقدار حدودی از نیاز به انرژی الکتریکی برای تهیه ژنراتور مناسب است چراکه اگر ژنراتور ظرفیتی کمتر از مقدار محاسبه شده داشته باشد نمی‌تواند پاسخگویی برای نیاز مصرفی باشد و در صورت انتخاب ظرفیت بزرگتر از تقاضا هزینه اضافی به سرمایه گذار تحمیل خواهد کرد ، ابتدا باید بررسی کنیم که چه میزان لوازم برقی داریم برای (خانه، کارخانه، یا محیط‌های تولیدی و غیره) که بخواهیم توسط دیزل ژنراتور کار کند.
 
تبدیل KVA به KW ؛
برای تبدیل KVA به KW به ضریبی به نام ضریب قدرت(  ) یا PF احتیاج داریم ، در بار‌های القایی مانند موتور‌های الکتریکی یا ترانسفورماتور‌ها شکل موج جریان عقب‌تر از ولتاژ است ، این ضریب مقداری کمتر از یک دارد، برای دیزل ژنراتور‌ها این ضریب مقداری در حدود ۰.۸ است و فرمول تبدیل مقدار KVA به KW به شکل زیر است:
برای مثال برای دیزل ژنراتور KVA = 100 داریم :
این دیزل ژنراتور توان حقیقی معادل ۸۰ کیلووات دارد.