آموزش و راه اندازی پروتکل مدباس ( ModBus RTU/ASCII ) در بستر RS485

بازگشت به آموزشگاه

مدباس ( ModBus ) یکی از پروتکل های معروف در زمینه شبکه های صنعتی ( Industrial Network ) می باشد. به علت این که این پروتکل در لایه اپلیکیشن ( Application Layer ) قرار دارد، میتوان آن را بر روی انواع بستر های فیزیکی RS232 ، RS422 ، RS485 ، Ethernet و … پیاده سازی نمود. در این مقاله به معرفی این پروتکل و پیاده سازی آن بر روی بستر RS485 می پردازیم.


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

شبکه ModBus یک پروتکل ارتباطی است و ابتدا در سال 1979 توسط Modicon که امروزه Schneider Electric آن را در بر گرفته عرضه شد. کاربرد اولیه آن برای استفاده در PLC ها بود ولی بتدریج بعنوان یک استاندارد ارتباطی پذیرفته شد و بسیاری از سازندگان تجهیزات اتوماسیون آن را پشتیبانی کردند بدین ترتیب Modbus بصورت یک استاندارد باز در آمد بگونه ای که محصولات سازندگان مختلف به سهولت توسط این پروتکل با یکدیگر ارتباط برقرار کردند. سازندگان وسایل کوچک نیز ترجیح دادند این شبکه ModBus را با ارتباط RS232 و یا RS485 روی وسایل خود بکار ببرند تا استفاده از آنها در پروژه های بزرگ میسر گردد.

دلایلی که پروتکل Modbus در محیط های صنعتی کاربرد فراوانی دارد عبارتند از:

  1. جهت کاربردهای صنعتی توسعه و گسترش یافته است
  2. به صورت رایگان منتشر شده است
  3. گسترش پذیری و نگهداری ساده ای دارد
  4. اجازه انتقال بیت ها و بایت ها را بدون محدودیت خاصی به تولید کننده دستگاه می دهد

Modbus جهت برقراری ارتباط بین تعداد زیادی (تا 247) دستگاه متصل به یک شبکه استفاده می شود، به عنوان مثال دما و رطوبت اندازه گیری شده توسط سنسورها از طریق این پروتکل توسط کنترل کننده Master قرائت می شود. شکل زیر کاربرد این پروتکل در شبکه های صنعتی مبتنی بر PLC را نشان می دهد.


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

  • Modbus RTU که متداول ترین نگارش Modbus است. انتقال داده در این روش به صورت باینری صورت می گیرد.
  • Modbus ASCII که در آن از کاراکترهای ASCII به جای دیتای باینری جهت انتقال داده ها استفاده می شود.
  • Modbus/TCP که از استاندارد TCP/IP و بستر Ethernet برای انتقال داده ها با سرعت بالاتر مورد استفاده قرار می گیرد.
  • ModBus Plus که بصورت Token Pass و با سرعت بالا طراحی شده است و یک باس انحصاری است.

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


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

این پروتکل بصورت Master/Slave کار می کند. یعنی همواره یک وسیله بعنوانMaster (فرمانده) و بقیه وسیله ها به عنوان Slave (فرمانبر) لحاظ می شوند. بدین صورت که هرگاه Master به یک دستگاه Slave با آدرس مخصوص خودش فرمانی ارسال می کند آن دستگاه جواب را به Master برمیگرداند. این پروتکل داده ها را از سطح فیلد دریافت و ضمن پردازش، آنها را به سطح نظارت ارسال می کند تا دستورالعمل کنترلی مناسب بر اساس داده هاي دریافتی، آلارم ها و رویدادها اتخاذ گردد MODBUS سریال از سرعت بالایی برخوردار بوده و بدون هر گونه Internal به تبادل اطلاعات می پردازد.

نکته: مد RTU که بعضا به آن ModBus-B بعنوان ModBus Binary گفته می شود مد اصلی است، مد ASCII که بعضا ModBus-A نیز گفته می شود برای برخی پیغام ها به کار می رود که این پیغامها طول شان دو برابر پیغام های RTU می باشد.
پروتکل مدباس از لایه های 2،1 و 7 مدل OSI استفاده می کند و در لایه فیزیکی RS232/RS485 را به کار می برد. شکل زیر این موضوع را نشان می دهد.


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

مد Unicast:

در این حالت Master ازSlave خاصي درخواست ديتا مي نمايد.Slave پس از دريافت Requestپیام Replyرا به Master ارسال می کند. بديهي است هرSlave بايد داراي آدرس خاص و منحصربفردي باشد تا Master بتواند با آن ارتباط برقرار كند.

مد broadcast :

در اين حالتMaster پيام خود را به تمامSlave ها ميفرستد ولي هيچ پاسخي به Master بر نميگردد. اين مد از جمله براي نوشتن فرامين (Writing Commands) به كار مي رود.


دیاگرام وضعیت Master :


دیاگرام وضعیت Slave :


قالب استاندارد مدباس RTU

در پروتکل مدباس RTU قالب استاندارد به صورت زیر است :

که در شکل زیر هر یک از این بخش ها را مشاهده می کنید :

آدرس ( Address ) :

هر slaveدارای یک شناسه از 1تا 247 می باشد .زمانی که master درخواست اطلاعات می کند اولین بایت پیغام به عنوان آدرس slave فرستاده می شود. بدین صورت slave متوجه می شود که پیام ارسال شده برای آن است یا نه. در واقع Master در ارتباط Unicast آدرس را در اين فيلد قرار مي دهد و Slave نيز وقتي پاسخ ميدهد آدرس خودش را در اين فيلد مي گذارد تا Master بفهمد كدام Slave پاسخ داده است.

عملکرد ( Function Code ) :

دومین بایتی که توسط سیستم master ارسال می شود کد مربوط به انتخاب عملکردی است که باید انجام شود مثلا بایستی از Slave خوانده شود و یا در Slave نوشته شود.

دیتا ( Data ) :

این فیلد حاوی اطلاعاتی بیشتر برای slave است تا عمل تعیین شده به وسیله ی function code ها را انجام دهد که بسته به نوع عملکرد انتخابی در مرحله قبل میتوند از 1 تا n بایت متغیر باشد.

بایت های چک ( CRC ) :

CRC دو بایت بوده و برای عیب یابی در انتهای پیغام آورده می شود.هر بایتی در پیغام برای محاسبه CRC استفاده می شود.دستگاه دریافت کننده نیز CRC را چک می نماید و با CRC موجود در پیغام master مقایسه می کند. اگر حتی یک بیت به درستی دریافت نشده باشد CRC ها متفاوت خواهند بود و باعث خطا می شوند.


 بررسی مدباس RTU

در اين مد هر 8 بيت از بايت پيام شامل دو كاراكتر 4 بيتي هگزا دسيمال است. اين ويژگي چگالي ديتا را افزايش داده و باعث مي شود كه نسبت به مد ASCII نرخ تبادل ديتا بهتر باشد. فرمت 11 بيت بسته ديتا در مد RTU به صورت زیر است:

فرمت کلی در مد RTU:

نکته: بين هر فريم يك فاصله زماني وجود داردكه حداقل به اندازه 3.5 کاراكتر است و به آن فاصله خاموشي (silent Interval) نيزمیگویند. در نتیجه اگر بين دو كاراكتر متوالي يك فريم تاخيري بيش از 1.5 كاراكتر پيش بيايد نشان دهنده اشكال است. شکل زیر این موضوع را نشان می دهد.


بررسی مدباس ASCII

در اين مد هر 8 بيت از بايت پيام بصورت 2 كاراكتر ASCII ارسال مي شود. از اين رو بازدهي آن نسبت به RTU کمتر است. اين مد در جايي كه لينك فيزيكي يا قابليت هاي وسيله ، اجازه استفاده از مد RTU را نمی دهد ( به ویژه از نظر مدیریت تایمر ها ) استفاده می شود. بعنوان مثال در اين مد بايت 0x5B به صورت دو بايت يعني 0x35=5 و0x42=B در می آید. در مد ASCII فرمت 10 بیت هر بسته دیتا به شکل زیر است:

همچنین فريم پيام در مد ASCII به صورت شکل زیر است :

همانطور که مشاهده می کنید ، تجهيزات متصل به باس مرتباً باس را براي يافتن کاراکتر اول مانیتور می کنند. وقتي اين كاراكتر دريافت شد وسيله كاراكتر بعدي را مي گيرد كه آدرس را مشخص ميكند و اگر آدرس به او مربوط بود ساير كاراكترها را دريافت ميكند تا بسته به پايان برسد. كاراكتر پاياني Carriage Return-Line Feedیا CRLF  است. هر بايت ديتا نياز به 2 كاراكتر براي كد كردن ديتا دارد بنابراين براي اطمينان از سازگاري بين مدهاي ASCII و RTU ماكزيمم سايز اختصاص يافته  256×2 كاراكتر است يعني دو برابرسايز ديتاي RTU . بدين ترتيب سايز كل فريم مطابق شكل قبلی 513 كاراكتر خواهد بود.كنترل خطا در اين مد توسط LRC انجام می شود.

—فيلد Function Code يك بايت است كه مي تواند بين 1 تا 255 دسيمال باشد. كدهاي 1 تا 127 براي كار نرمال و كدهاي 128 تا 255 براي پاسخ هاي Exception كه براي شرايط خطا طراحي شده بكار ميرود. فيلد  Data در برخي درخواست هاي خاص ممكن است خالي باشد ( طول صفر ) اين در مواردي است كه ارسال Action به تنهايي براي Slave كفايت ميكند و اطلاعات اضافي مورد نياز نيست. —وقتي خطايي وجود نداشته باشد Slave درخواست  Master را انجام داده و در پاسخ خود به همان كد فانكشن اشاره ميكندكه اصطلاحاً گفته ميشود كد فانكشن اكو شده است. —ولي وقتي اشكالي وجود داشته باشد و Slave نتواند عمل مورد درخواست  Master را انجام دهد در اين حالت پاسخي كه در آن بجاي كدفانكشن كد Exception آمده برگشت داده ميشود تا  Master از بروز خطا مطلع شود.


انواع کدهای عملکرد ( Function Code )

1- عمومی ( Public ) :

بصورت استاندارد از قبل تعريف شده هستند و براي مقاصد مشخص بكار ميروند و توسط modbus.org تایید شده هستند.

2- خاص ( User Define ) :

توسط كاربر تعريف می شوند و نيازي به تاييد موسسه Modbus.org ندارند ولي بايد توجه داشت كه كد هاي رزرو شده را براي اين فانكشن ها نميتوان استفاده كرد. كد فانكشن هاي كاربر ميتواند در محدوده 65 تا 72 يا 100 تا 110 باشد.


تشریح برخی از کدهای عملکرد :

فانكشن كد 01 يا Read Coils

اين فانكشن براي خواندن وضعيت 1 تا 2000 خروجي از روي وسيله متصل به باس شبكه بكار ميرود. در بسته PDU علاوه بر كد 01 آدرس اولين خروجي و تعداد آنها داده مي شود. آدرس خروجي از صفر شروع مي شود يعني مثلاً خروجي هاي 1 تا 16 بصورت 0 تا 15 آدرس مي گيرند.بنابراين PDU مربوط به درخواست بصورت شكل زير خواهد بود :

در پاسخ وضعيت خروجي كه 1 براي  ON و 0 براي OFF است توسط بيت هاي ديتا مشخص مي گردد. اگر تعداد خروجي ها مضربي از 8 نباشد در اينصورت در بايت آخر ساير بيتهاي باقيمانده با صفر پر ميشوند ولي از آنجا كه تعداد خروجي ها نيز برگردانده مي شود  Master متوجه مي شود كه تا كجا مربوط به خروجي هاست.

اگرERROR پيش بيايد كد ها بصورت زير خواهند بود:

که کدهای استثنا یا Exception Code ها به صورت زیر می باشند :


تفاوت مدباس RTU و ASCII

مدباس RTU که به مدباس باینری (Modbus-B یا Modbus Binary)معروف است، بدلیل کوتاه بودن فریم داده، سرعت تبادل بالایی نسبت به مد ASCII دارا می باشد. در مد RTU حداکثر سایز داده 256 بایت بوده ولی در مد ASCII ماکزیمم سایز داده به 513 بایت می رسد. تشخیص خطا در داده (Check Sum) در مدباس RTU بوسیله ی (CRC(Cyclic Redundancy Check که 2 بایت هست انجام می گیرد ولی در مدباس ASCII تشخیص خطا یا همان چک سام بوسیله ی (LRC(Longitudinal Redundancy Check که 1 بایت می باشد صورت می گیرد. شکل زیر تفاوت های کامل تر این دو مدباس را نشان می دهد.


محدودیت های شبکه ModBus RTU/ASCII در بستر RS485

Modbus RTU/ASCII به دليل استفاده از لينک های سريال RS232/RS485 دارای محدوديت هایی است كه به برخی از آنها اشاره می گردد:

  • كند بودن خطوط سريال كه بين ۹۶۰۰ تا ۱۱۵۰۰۰ بیت در ثانیه کار می کنند يعنی در ماكزيمم حالت ۰٫۱۱۵ mbps كه اين سرعت در مقايسه با شبكه های ارتباطی امروزی كه ۱۰۰Mbps يا حتی چند Gbps سرعت دارند پايين است.
  • از آنجا كه توسط RS232 فقط دو وسيله و توسط RS485 بین ۲۰ تا ۳۰ وسيله امكان ارتباط دارند از اينرو برای ارتباط دادن تعداد زيادی وسايل مثلاً ۵۰۰ وسيله نياز به ارتباطات پيچيده درختی شكل است.
  • ارتباط سريال مدباس بصورت MASTER/SLAVE است بدين معنی که روی باس فقط يك وسيله (MASTER) اجازه صحبت با SLAVE ها را دارد.

با وجود این محدودیت ها از شبکه Modbus RTU/ASCII معمولا در لایه های پایینی استفاده می شود شبکه مدباس بین plc و اینورتر ها راه اندازی میکنند.


معرفی شبکه مدباس TCP IP در بستر اترنت

Modbus TCP IP به دلیل استفاده از لینک Ethernet محدودیت های گفته شده در بالا را ندارد بنابراین :

  • سرعت مدباس TCP IP وابسته به بستر اترنت میتواند 10 یا 100 مگابیت در ثانیه و در حالت گیگابیت اترنت میتواند به یک گیگابیت در ثانیه برسد.
  • تعداد وسیله هایی که میتواند به شبکه متصل شود از نظر نرم افزاری بی نهایت می باشد اما از نظر سخت افزاری به تعداد وسیله های موجود و توانایی دستگاه های سوئیچ و روتر محدود می گردد.
  • مدباس TCP IP دیگر به صورت Master/Slave عمل نمی کند و به صورت Client/Server می باشد بنابراین در هر شبکه مدباس میتواند هر تعداد Server و هر تعداد Client وجود داشته باشد.
  • مزیت بزرگ مدباس TCP IP این است که به لطف وجود پروتکل CSMA/CD بسیار قوی تر از RS485 میتواند از ارتباطات چندین Client و Server به صورت همزمان نیز پشتیبانی نماید.

راه اندازی پروتکل مدباس TCP IP به خاطر تفاوت های مفهومی و ساختاری در مقاله دیگری به نام راه اندازی پروتکل مدباس ( ModBus TCP IP ) در بستر Ethernet بیان شده است.


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

نرم افزارهای بسیاری به منظور شبیه سازی پروتکل مدباس وجود دارد که از آن ها برای اتصال تجهیزات دارای پروتکل مدباس به کامپیوتر استفاده می گردد. یکی از معروف ترین و پرکاربرد ترین این نرم افزار ها Modbus Poll نام دارد. از آن جایی که برای داشتن ارتباط مدباس یک MASTER و حداقل یک SLAVE وجود دارد. از دو نرم‌افزار مدباس به نام های Modbus Poll Master و Modbus Poll Slave استفاده می شود. شکل ظاهری این دو نرم افزار را در تصویر زیر مشاهده می کنید.

لینک دانلود نرم افزار مدباس Modbus Poll Master & Slave

از این نرم افزارها می توان برای اتصال تجهیزات مدباس به کامپیوتر استفاده نمود. در صورتی که تجهیز ما Master باشد بایستی از نرم افزار Modbus Poll Slave و در صورتی که تجهیز ما Slave باشد بایستی از نرم افزار Modbus Poll Master استفاده شود. در این دو حالت از یک عدد ماژول مبدل RS485 به USB ( یا استفاده همزمان از دو ماژول مبدل RS485 به TTL و سپس مبدل TTL به USB ) استفاده می شود.

همچنین میتوان با نصب هر دو نرم افزار یاد شده در یک سیستم به صورت مجازی مدباس را شبیه سازی کرد، برای این منظور دو روش زیر وجود دارد:

  • روش اول: استفاده از سخت‌افزار‌های سریال جداگانه. اگر سیستم شما داری دو پورت سریال ( یا دو پورت USB ) باشد می‌توانید آن ها را به یکدیگر متصل کنید.
  • روش دوم: استفاده از نرم افزار ساخت پورت سریال مجازی در سیستم. در این روش با استفاده از نرم افزار Tibbo VSP Manager میتوان به راحتی دو پورت سریال مجازی ساخت و آن ها را به یکدیگر متصل نمود.

نحوه ساخت پورت سریال مجازی با نرم‌افزار Tibbo VSP Manager

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

لینک دانلود نرم افزار Tibbo VSP Manager

  1. گزینه Add را بزنید.
  2. در منوی VPS name پورت دلخواه خود را انتخاب کنید.
  3. در منوی Ruting mode می‌توانید سرور و یا کلاینت بودن پورت را مشخص کنید.
  4. OK را بزنید و تمام.

در این روش ما به دو پورت نیاز داریم؛ یکی در حالت Server و یکی در حالت Client. این کار به این دلیل است که دو پورت مجازی از طریق شبکه با هم ارتباط برقرار می‌کنند. پس از اتمام کار، دو پورت با شماره‌های مشخص‌شده به سیستم اضافه‌شده که می‌توانید در Mode RTU از آن‌ها استفاده کنید.


HMI چیست ؟

HMI (اچ ام آی) مخفف Human Machine Interface و به معنای واسطه بین انسان و ماشین می باشد که برای مانیتور کردن و مشاهده پارامترهای دستگاه های صنعتی مثل PLC، اینورتر و… استفاده می شود. HMI در واقع یک نوع مانیتور بوده که می توان آن را برنامه ریزی نمود و با تغییر و نمایش پارامترهای مختلف یک سیستم، پروسه یا ماشین را کنترل نمود.

در واقع HMI یک برنامه ی گرافیکی است که در آن کلیدها (Button)، نمایشگرها (Display)، عقربه ها (Pointer)، شاخص ها (Indicator)، نمودارها (Curve)، آلارمها (Alarm) و… توسط  اشکال گرافیکی ایجاد شده اند و در این برنامه با انتخاب هر المان گرافیکی (مثلاً کلید) و اعمال تغییرات کد متناظر با آن از طریق پورت شبکه و ارتباط با سایر تجهیزات آن شبکه به دستگاه مورد نظر ما ارسال می گردد.

تا مدتی پیش برای امور فوق از کامپیوتر استفاده می شد؛ از آنجایی که نرم افزار های کامپیوتری آسیب پذیر بوده و هراز گاهی ویروسی شده و باعث صدور فرامین اشتباه به محرکها (Actuators) می شدند، میلیون ها دلار ضرر اقتصادی برای کمپانی های مختلف به همراه داشته است. لذا برای کنترل و مانیتورینگ خطوط تولید، پروسه های صنعتی و ماشین آلات مختلف تولید، دستگاه ویژه ای به نام اچ ام آی طراحی شد. وجود برنامه ی گرافیکی علاوه بر جذاب کردن طرح نهایی خطاهای ناشی از اعمال ورودی اشتباه را کاهش داده و هزینه ی نگهداری سیستم را به دلیل عدم استفاده از قطعات مکانیکی کاهش می دهد.

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

  • SIEMENS (زیمنس)
  • ALLEN BRADELY (آلن بردلی)
  • MITSUBISHI (میتسوبیشی)
  • OMRON (امرون)
  • TOSHIBA (توشیبا)
  • DELTA (دلتا)
  • VIGOR (ویگور)
  • LS (ال اس)
  • BECKHOFF (بکوف)
  • FATEK (فتک)
  • FUJI (فوجی)
  • FANUC(فانوک)

DELTA HMI چیست؟

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

سری TP

این سری از HMI های دلتا سری text panel می باشند که در نمونه های دوخطی، چهارخطی و پنج خطی ارائه می شود. ویژگی های این سری از HMI های دلتا را می توان در عناوین زیر نام برد:

  • ارتباط کاربر از طریق صفحه کلید تابعی
  • صفحه نمایش تک رنگ
  • دارا بودن ارتباط سریال
  • صفحه نمایش های تا 3.6 اینچ
  • حافظه فلش تا 1M
  • نرم افزار مربوطه TP Editor

سری DOP-100

این سری از HMI های دلتا در ابعاد و رنگ ها، و قابلیت های مختلف ارائه شده است. ویژگی های این سری از HMI های دلتا را می توان در عناوین زیر نام برد:

  • ارتباط کاربر از طریق صفحه نمایش لمسی
  • صفحه نمایش چند رنگ (65536)
  • صفحه نمایش تا 10.1 اینچ
  • دارا بودن ارتباطات سریال، USB، Ethernet
  • حافظه فلش تا 256MB

سری DOP-B

این سری از HMI های دلتا در ابعاد و رنگ ها، و قابلیت های مختلف ارائه شده است. ویژگی های این سری از HMI های دلتا را می توان در عناوین زیر نام برد:

  • ارتباط کاربر از طریق صفحه نمایش لمسی و بعضا همراه با کلید های تابعی
  • صفحه نمایش چند رنگ (65536)
  • صفحه نمایش تا 7 اینچ
  • دارا بودن ارتباطات سریال، USB، Ethernet
  • حافظه فلش تا 256MB

دانلود سورس پروژه راه اندازی پروتکل ModBUS RTU شامل :

  • ویدئو توضیحات پروتکل مدباس و نحوه برنامه نویسی برای کلیه فانکشن کدها
  • نحوه استفاده از کلاس پروتکل مدباس برای استفاده در انواع پروژه ها
  • سورس پروژه راه اندازی ارتباط مدباس در نرم افزار keil و میکروکنترلر ARM STM32 با استفاده از نرم افزار Stm32CubeMx
  • سورس اتصال HMI شرکت Delta به کامپیوتر و برقراری ارتباط با آن توسط پروتکل مدباس و نرم افزار ModBus Poll
  • داکیومنت های رسمی برای پروتکل Modbus و برای محصولات Delta HMI
  • سورس ارتباط کامپیوتر با Slave بوسیله مدباس ( به زبان C# )
  • ابزارهای ModBus Poll و Tibbo VSP Manager

لینک تهیه این محصول از فروشگاه الکترو ولت


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

دیدگاه (4)

  • محمدرضا پاسخ

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

    1397-02-08 در 11:27
    • ادمین الکترو ولت پاسخ

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

      1400-05-10 در 10:26
  • amin_msi2 پاسخ

    سلام وعرض خسته نباشید
    قابل استفاده برای میکروهای avr و کدویژن هست؟

    1401-10-26 در 18:50
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز با تغییرات زیاد بله

      1402-09-05 در 08:11

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بازگشت به آموزشگاه