اطلاعیه

Collapse
No announcement yet.

ارتباط کامپیوتر با inverter از طریق modbus

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ارتباط کامپیوتر با inverter از طریق modbus

    با عرض سلام خدمت دوستان
    من میخواستم یک اینورتر e310 teco رو با کامپیوتر با کد c# راه بندازم. متوجه شدم بایدبا modbus کار کنم چند تا سوال دارم لطفا در صورت امکان جواب بدید من بار اول که با این مفاهیم و حتی inverter کار میکنم گیج شدم.به علت کمبد وقت نیاز شدید به راهنماییتون دارم. بازهم میگم از HMI نباید استفاده کنم فقط یه کد #C.
    ببینید برای مثلا من میخوام فرمان RUN رو برای اینوترم ارسال کنم. خوب چیزی که پیدا کردم یک رجیستر هست با شماره A001 تویه این inverter اگر بیت صفرش 1 بشه این اتفاق باید بیفته! این درسته؟ اینجوری نوشته برای این رجیستر که operation command بعد اگر بیت صفرش 1 باشه نوشته RUN و با 0 گفته STO. این تا اینجا لطفا بگید درست متوجه شدم. دوم برای ارسال دستورات در modbus و تغییر این رجیستر باید این فرمت رعایت بشه:
    1- id که یک بایت
    2-func code که یک بایت
    3-آدرس رجیستر که میخواهیم توش بنویسیم
    4-تعداد رجیسترهایی که میخوایم تغییر بدیم
    5-byte count
    6-reg value
    7-CRC
    این قالب درسته؟
    لطفا راهنمایی کنید یا یک قطعه کد #C در صورت امکان لطفا بذارید.

    ممنون از راهنماییتون

    #2
    پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

    سلام مجدد

    لطفا راهنمایی بفرمایید.

    دیدگاه


      #3
      پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

      نوشته اصلی توسط mabdypour
      با عرض سلام خدمت دوستان
      من میخواستم یک اینورتر e310 teco رو با کامپیوتر با کد c# راه بندازم. متوجه شدم بایدبا modbus کار کنم چند تا سوال دارم لطفا در صورت امکان جواب بدید من بار اول که با این مفاهیم و حتی inverter کار میکنم گیج شدم.به علت کمبد وقت نیاز شدید به راهنماییتون دارم. بازهم میگم از HMI نباید استفاده کنم فقط یه کد #C.
      ببینید برای مثلا من میخوام فرمان RUN رو برای اینوترم ارسال کنم. خوب چیزی که پیدا کردم یک رجیستر هست با شماره A001 تویه این inverter اگر بیت صفرش 1 بشه این اتفاق باید بیفته! این درسته؟ اینجوری نوشته برای این رجیستر که operation command بعد اگر بیت صفرش 1 باشه نوشته RUN و با 0 گفته STO. این تا اینجا لطفا بگید درست متوجه شدم. دوم برای ارسال دستورات در modbus و تغییر این رجیستر باید این فرمت رعایت بشه:
      1- id که یک بایت
      2-func code که یک بایت
      3-آدرس رجیستر که میخواهیم توش بنویسیم
      4-تعداد رجیسترهایی که میخوایم تغییر بدیم
      5-byte count
      6-reg value
      7-CRC
      این قالب درسته؟
      لطفا راهنمایی کنید یا یک قطعه کد #C در صورت امکان لطفا بذارید.

      ممنون از راهنماییتون
      سلام
      خب دوست عزیز شما اول باید ارتباط فیزیکی رو مشخص کنی و بعد ببینی ASCII هست یا RTU
      بعد دیگه کاری نداره
      مثلا اگر با RS485 و RTU باشه باید همین اطلاعات رو روی پورت COM کامپیوتر ارسال کنی و با یه مبدل به RS485 تبدیلش کنی
      حالا اگر TCP/IP باشه و ASCII باز باید روی Ethernet بفرستی و با کدهای خودش
      الان دقیقا مشکل شما توی کدوم قسمت داستانه؟!!
      درایور شبکه و nRF24L01
      کاتالوگ محصولات
      کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
      شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
      فروش اسيلوسکوپ GWinstek GOS-630FC

      دیدگاه


        #4
        پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

        ممنون آقای بیرامی که لطف کردید و جواب دادید.
        ببینید من ارتباط فیزیکی رو ایجاد کردم و از پورت سریال به همون مبدل RS485 تبدیل کردم و به Inverter متصل شده. خب حالا میام یه کدی ارسال میکنم هیچ اتفاقی نمیفته و چیزی که از اون ارسال دریافت میکنم بعضی هاش نامفهومه. من الان این چیزا رو ارسال میکنم:
        0X02 که شماره id من هست
        0X06 که درخواست خواندن هس
        0XA001 رجیستری که برای اجرا هس که باید مقدار 1 باشه
        و 2 بایت CRC.
        من این رو ارسال میکنم روی پورت اما اتفاقی نمیفته لطفا راهنماییم کنید.

        دیدگاه


          #5
          پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

          با سلام
          نوشته اصلی توسط mabdypour
          0X02 که شماره id من هست
          0X06 که درخواست خواندن هس
          0XA001 رجیستری که برای اجرا هس که باید مقدار 1 باشه
          و 2 بایت CRC.
          من این رو ارسال میکنم روی پورت اما اتفاقی نمیفته لطفا راهنماییم کنید.
          اینا که مدباس نیستن، مثلا برای همین دستور نوشتن در رجیستر(0x06) باید اینطور فرستاد
          کد:
          11 06 0001 0003 9A9B
          11 ادرس اسلیو
          06 فانکشن کد
          0001 ادرس رجیستر مقصد
          0003 مقدار مورد نظر برای نوشته شدن
          9a9b همون crc
          مطلب در مورد مدباس زیاده، یک pdf هست که کامل توضیح داده برای هر فانکشن هم مثال زده، پیداش کنید خیلی خوبه
          این سایت هم بد نیست
          http://www.simplymodbus.ca/FC01.htm

          The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

          دیدگاه


            #6
            پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

            آقا حسام ببینید من این ها رو ارسال کردم:
            02
            10
            A001
            0001
            02
            0001
            01F5
            و واقعا همه چیز رو بررسی کردم.
            ایرادش کجاست؟

            دیدگاه


              #7
              پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

              خب این الان دستور درستی هست، در جواب چی میاد؟
              The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

              دیدگاه


                #8
                پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

                ببینید جوابش بیخود و دستگاه هیچ حرکتی نمیکنه. ببینید من کدم رو میفرسم به ایمیلتون وقت دارید ببینید؟
                ممنون

                دیدگاه


                  #9
                  پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

                  منظورتون از بیخود چیه؟(شاید داره exception بر میگردونه)
                  همون بیخود رو بذارین شاید سرنخی باشه،
                  کد رو میتونید لینک بدین همین جا ببینیم، اما گفته بودین که ارتباط درست و برقرار هست، اگه اینطوره اصلا کاری به کد ندارم، ببینید با کامپیوتر و نرم افزاری مثل هایپر میتونید یه کامند بدین و جواب برگشتی رو ببینید، اگه بله حالا بریم سراغ کد، اما اگه نه و هنوز تو ارتباط مشکل هست، اول اون رو رفع کنید
                  The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

                  دیدگاه


                    #10
                    پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

                    ممنون از وقتی که میذارید. ببینید جوابش اینه:
                    2
                    144
                    83
                    252
                    61
                    اولیش خوب همن آی دی من هس اما بقیش رو نمیدونم اینم کدم ممنون:

                    public partial class Form1 : Form
                    {

                    byte[] data = new byte[11];
                    ushort crc;
                    ushort polynum;

                    int i, j;
                    public Form1()
                    {
                    InitializeComponent();
                    crc = 0XFFFF;

                    data[0]=0X02;

                    data[1]=0X10;

                    data[2]=0XA0;
                    data[3]=0X01;

                    data[4]=0X00;
                    data[5]=0X01;

                    data[6]=0X02;

                    data[7]=0X00;
                    data[8]=0X01;

                    polynum = 0XFFFF;
                    }

                    private void button1_Click(object sender, EventArgs e)
                    {
                    serialPort1.Open();
                    for (i = 0; i <= 6; i++)
                    {
                    crc ^= data[i];
                    for (j = 0; j <= 7; j++)
                    {

                    if ((crc & 0X0001) != 0)
                    {
                    crc >>= 1;
                    crc ^= polynum;
                    }
                    else
                    {
                    crc >>= 1;
                    }
                    }
                    }

                    data[9] = (byte)(crc & 0x00FF);
                    data[10] = (byte)((crc & 0xFF00) >> 8);

                    serialPort1.Write(data, 0,11);

                    }

                    خیلی لطف میکنید

                    دیدگاه


                      #11
                      پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

                      دیدین گفتم
                      همه چی خوبه به نظر من، مدباس رو بخونید میبینید که جواب هایی به اسم exception هست، تو اون سایته یه بخش براش داره، بخونید
                      اول ادرس 02
                      بعدش 144 یا 0x90 که میشه اررور فانکشن شما یعنی 0x10( بیت پر ارزش یک شده)
                      83 یا 0x53 که میشه کد اررور( توضیح میدم)
                      دو بایت اخر crc
                      اما اگه تو مدباس نگاه کنین، ما کد خطای 0x53 نداریم،احتمالا یه قرار داد داخلی برای دستگاه هست تو اون منوال دستگاتون ببینید توضیح داده این خطا چرا صورت میگیره
                      نتیجه اینکه، ارتباط بر قراره، و دستگاه هم داره درست به شما جواب پس میده، فقط باید بفهمین که کارکرد دستگاه چطور هست، یعنی چه دستوراتی رو با مدباس بدین، با چه ترتیبی تا اررور نده و کار کنه، ببینید چیزی در مورد 0X53 پیدا میکنید یا نه، الان داره این اررور رو میده، یه بار هم می خواین با دستور 0x06 تو همین رجیستر رایت کنید ببینید فرقی می کنه؟
                      The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

                      دیدگاه


                        #12
                        پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

                        سلام حسام جان
                        خدا رو شکر تونستم برطرفش کنم. میدونید اشتباه از کجا بود قطعه کد رو اگه دیده باشید من مقدار polynum رو نفهمیدم کی 0XFFFF دادم در صورتی که باید 0XA001 میدادم که منجر به اشتباه شدن CRC میشد آقای بیرامی گفته بودن. اما خوب این لینکی که معرفی کردید باعث شد بفهمم، رفتم نرم افزار رو دانلود کردم دیدم یه CRC دیگه داره میده. واقعا لطف کردید کمک کردید.
                        ممنون از همه دوستان
                        خوشحال میشم بتونم من هم بقیه دوستان رو راهنمایی کنم که این ارتباط سریع انجام بدن.

                        دیدگاه


                          #13
                          پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

                          خوشحالم نتیجه داد. :applause: :applause:
                          The healthy human mind doesn't wake up in the morning thinking this is his last day on earth.

                          دیدگاه


                            #14
                            پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

                            ممنون

                            دیدگاه


                              #15
                              پاسخ : ارتباط کامپیوتر با inverter از طریق modbus

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

                              دیدگاه

                              لطفا صبر کنید...
                              X