آیا میخواهید توسط یک S7-1500 اطلاعات را در یک شبکه Modbus RTU ردوبدل کنید؟ برای این کار تنها نیاز به یک ماژول آداپتور سریال با امکان Modbus RTU دارید. در این مقاله با ما همراه باشید تا راهاندازی Modbus RTU Slave در تیا را یاد بگیرید
آداپتور ارتباطی
ازآنجاییکه PLC های S7-1500 بهطورمعمول توانایی ارتباط سریال ندارند، نیاز است تا از یک ماژول آداپتور که از پروتکل Modbus RTU Slave پشتیبانی میکند، استفاده کنید. برای این کار دو گزینه زیر وجود دارد:
- ماژول CM PtP RS232 HF
- ماژول CM PtP RS422/485 HF
تنظیمات پورت
اولین گام در راهاندازی Modbus RTU Slave در تیا ، تنظیمات پورت ارتباطی است. در نظر داشته باشید که در ادامه این مقاله از ماژول CM PtP RS232 HF استفاده خواهیم کرد.
در پنجره تنظیمات ماژول ارتباطی در نرمافزار TIA Portal ، به بخش رابط پورت (در این مثال ، رابط RS-232) بروید ، سپس پیکربندی پورت (Configuration Port) را انتخاب کنید. پروتکل پورت را روی Freeport / Modbus تنظیم کنید. با این تنظیم پورت برای استفاده از پروتکل Modbus و پارامترهای دستور Modbus_Comm_Lload پیکربندی میشود (در ادامه در مورد این دستور صحبت خواهیم کرد)
برنامهنویسی سرور
سرورهای زیمنس برای Modbus RTU در دو بلوک ، Modbus_Comm_Load و Modbus_Slave قرار دارند. میتوانید هر دو مورد را در پوشه “(Communication-->MODBUS (RTU” پیدا کنید.
بد نیست بدانید که از بلوک (Function Block) Modbus_Master برای Modbus Master یا Client در کنترلر PLC استفاده میشود. همچنین بلوک Modbus_Comm_Load ماژول را برای برقراری ارتباط با شبکه Modbus RTU پیکربندی میکند. بلوک Modbus_Slave اطلاعات را در سرور پیکربندی میکند. بلوک Modbus_Slave سادهترین راهکار است و ما با آن شروع خواهیم کرد.
پارامترها در Modbus_Slave
دو بلوک مهم برای راهاندازی Modbus RTU Slave در تیا نیاز داریم. اولین آنها بلوک Modbus_Slave است که در ادامه پارامترهای آن را تنظیم میکنیم.
در این آموزش ، بلوک Modbus_Slave را در OB1 نامگذاری کردیم و یک نمونه داده بلوک (DB5) برای آن ایجاد کردیم. میتوانید با این بلوک در هر نقطه از برنامه خود ارتباط بگیرید و دادههای آن را در یک بلوک داده یک یا چند نمونه ذخیره کنید (این عمل روی سرور شما تأثیر نمیگذارد)
در اینجا فقط دو ورودی وجود دارد، MB_ADDR و MB_HOLD_REG ، که عملکرد هر یک به شرح زیر است:
MB_ADDR: در واقع همان Modbus Slave ID است ، که Master برای ارتباط به PLC از آن استفاده خواهد کرد.
MB_HOLD_REG: برای تعریف مکان (نقطه شروع و اندازه دیتا) برای رجیسترهای موجود و در دسترس استفاده میگردد (حداکثر تعداد رجیسترهای در دسترس ۴۰۰۰۱ است). میتواند هر نوع دیتا بلاک عمومی یا حافظه داخلی (M) باشد که برای توابع مودباس شامل ۳ برای Read Word، ۶ برای Write Word و ۱۶ برای write multiple Words است. ذر این مقاله تمرکز ما روی رشتهای از اطلاعات (“DataArray”) با دیتا بلاک (“Modbus_server_data”) است.
در زیر رشته دیتا ارسالی (“Modbus_sever_data”.DataArray)شامل ۱۰ کلمه (Words) بهعنوان دیتای ارسالی از سوی سرور در نظر گرفتهشده است.
با توجه به توضیحات بالا، این رشته باعث میشود که از رجیستر ۴۰۰۰۱ تا رجیستر ۴۰۰۱۰ توسط این اطلاعات اشغال شود.
زمانی که پارامترهای این دو ورودی تنظیم شود، بلاک Modbus_Slave آماده است.
پارامترهای Modbus_Comm_Load
در گام آخر راهاندازی Modbus RTU Slave در تیا ، لازمست تا پارامترهای Modbus_Comm_Load را نیز تنظیم کنیم.
مشابه بلاک Modbus_Slave، در این آموزش، Modbus_Comm_Load را در OB1 فراخوانی کرده و یک instance DB برای آن ایجاد میکنیم. این دیتا بلاک را میتوانید از نوع تکی (Single) یا چندگانه (multi-instance) تعریف کنید.
نکته: دقت کنید که Modbus_Comm_Load باید یک مرحله بالاتر از Modbus_Slave فراخوانی گردد. شما ابتدا باید ماژول ارتباطی را تنظیم کنید (Config) کنید تا بتوانید به اطلاعات آن دسترسی داشته باشد.
در ادامه به معرفی ورودیهای Modbus_Comm_Load میپردازیم:
REQ: بلاک comm_load با لبه بالارونده در این ورودی فعال خواهد شد. این بیت رو بهتر است در اولین اسکن تگها قرار دهید، زیرا این بلاک قبل از فراخوانی بلاک Modbus_Slave نیاز بهیکبار فراخوانی دارد. اگر شما هم تصمیم دارید که آن را به بیت اول اسکن پیوند دهید ، لازم است تا first scan PLC tag را روی ۱۵۰۰ PLC مانند تصویر زیر فعال کنید.
دکمه Enable را بررسی کنید تا اولین بیت اسکن در PLC در هنگام شروع صحیح باشد (سایر Tagهای داخلی PLC را نیز فعال میکند).
Port: این به پورت مربوط میشود که از طریق آن سرور شما با استاد ارتباط برقرار میکند. آن را به شناسه HW ماژول ارتباطی سریالی با قابلیت Modbus RTU Slave که تصمیم دارید از آن در پیکربندی خود استفاده کنید ، پیوند دهید.
برای پیدا کردن پورت به قسمت Hardware Identifier در تنظیمات ماژول (Device Properties) بروید.
Baud: مربوط به پارامتر سرعت نرخ انتقال (Baud rate) است.معمولاً این عدد روی ۹۶۰۰ تنظیم میشود.
Parity: این پارامتر مربوط به تنظیمات پریتی در پروتکل مودباس است و باید با تنظیمات Master یکسان باشد، ۰برای None، ۱ برای حالت odd، ۲ برای even
Flow Control: اگر میخواهید حالت flow control داشته باشید لازمست تا از حالت پیشفرض “۰” تغییر کند. دقت کنید که این حالت در RS422/484 CMs پشتیبانی نمیشود.
RTS_ON_DLY: مقدار تأخیر برحسب میلیثانیه از زمان “RTS active” تا ارسال اولین کارکتر در فریم. بهصورت پیشفرض این زمان “۰”به معنی بدون تأخیر است.
RTS_OFF_DLY: مقدار تأخیر برحسب میلیثانیه از زمان ارسال آخرین کارکتر در فریم تا “RTS inactive”. بهصورت پیشفرض این زمان “۰”به معنی بدون تأخیر است.
RESP_TO: مدتزمانی که Master منتظر پاسخ از سمت Slave میماند. این زمان برحسب میلیثانیه است. این پارامتر برای هدف فعلی ما بیتأثیر است، چون ما از PLC خود بهعنوان Slave استفاده میکنیم. و این پارامتر برای زمانی که ما از PLC بهعنوان مستر استفاده کنیم اهمیت دارد.
MB_DB: این پایه به دیتاتایپ MB_DB در بلاک Modbus_slave متصل است. ما حافظه استاتیک بلوک Modbus_Slave را در بلاک Modbus_Slave_DB (DB5) پارامتر کردیم ، بنابراین متغیر MB_DB بلوک Comm ما را به “Modbus_Slave_DB” .MB_DB پیوند میدهیم.
پس از فراخوانی و تنظیم پارامترهای Modbus_Comm_Load و به دنبال آن Modbus_Slave ، PLC خود را بهعنوان یک Slave در شبکه مودباس تنظیم کردهاید.
کار تمام شد، شما موفق به راهاندازی Modbus RTU Slave در تیا پورتال شدید. امیدواریم که توانسته باشیم بصورت ساده و روان این بخش از نرمافزار تیا را آموزش داده باشیم. نظرات خود را با ما در بخش دیدگاه به اشتراک بگذارید.
سلام و خسته نباشید و تشکر بابت اموزش های خوبتون .خواستم سوال کنم اگر بخواهیم از طریق شبکه مودباس پی ال سی زیمنس 1200با یک دستگاه ئیگری نظیر اینورتر ارتباط بر قرار کنیم از چه روشی باید استفاده کنیم ؟ در ارتباط مدباس بین دو عدد پی ال سی زیمنس 1200 چه روشی
سلام. مقالات زیر را مشاهده کنید:
https://kooshanic.com/launch-siemens-drive-with-plc/
https://kooshanic.com/g120-profibus-network/
https://kooshanic.com/launch-siemens-drive-without-plc/
ازاطلاعات مفید سایت شما بسیار تشکر را دارم ودر گفتگوها هم مایل هستم شرکت داشته باشم
سلام. خوشحالیم که براتون مفید بوده. باعث افتخار ماست. در تلگرام و اینستاگرام میتونید “کوشا الکترونیک” رو جستجو کنید و در اونجا هم در خدمتتون باشیم
از سایت خوب شما بسیار خرسندم لطفا نحوه برنامه نویسی مقدماتی plc بیشترارائه بدین متشکرم
سلام. سلامت باشید. آموزش PLC برندهای مختلف در این لینک موجود است و هر هفته یک آموزش جدید اضافه میشود: https://kooshanic.com/learning/
اگر میخواهید در جریان اضافه شدن مقالات جدید باشید کافیست به شماره ۰۹۳۸۷۱۹۹۰۷۵ در تلگرام پیام ارسال نمایید.