اطلاعیه

Collapse
No announcement yet.

کتابخانه (Modbus RTU (Client

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

    کتابخانه (Modbus RTU (Client

    سلام دوستان
    کتابخونه پروتکل (Modbus RTU (Client
    این پروتکل جهت ارتباط با دستگاههای صنعتی مناسبه
    به ویژه دوستانی که میخوان با HMI کار کنند

    http://www.4shared.com/file/gHp0iiFZba/Modbus_RTU.html
    زندگي را تو بساز ،
    نه بدان ساز که سازند و پذيري بي حرف ،
    زندگي يعني جنگ ، تو بجنگ ،
    زندگي يعني عشق ، تو بدان عشق بورز.

    #2
    پاسخ : کتابخانه (Modbus RTU (Client

    نوشته اصلی توسط Microware
    سلام دوستان
    کتابخونه پروتکل (Modbus RTU (Client
    این پروتکل جهت ارتباط با دستگاههای صنعتی مناسبه
    به ویژه دوستانی که میخوان با HMI کار کنند

    http://www.4shared.com/file/gHp0iiFZba/Modbus_RTU.html
    درود دوست عزیز
    ممنون میشم روی یه سرور دیگه پلود کنید
    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
    معرفی نرم افزار Codewizard PWM
    با من بیشتر آشنا شوید

    دیدگاه


      #3
      پاسخ : کتابخانه (Modbus RTU (Client

      اگه یکی از دوستان یا مدیران فروم زحمتشو بکشند ممنون میشم
      زندگي را تو بساز ،
      نه بدان ساز که سازند و پذيري بي حرف ،
      زندگي يعني جنگ ، تو بجنگ ،
      زندگي يعني عشق ، تو بدان عشق بورز.

      دیدگاه


        #4
        پاسخ : کتابخانه (Modbus RTU (Client

        نوشته اصلی توسط Microware
        اگه یکی از دوستان یا مدیران فروم زحمتشو بکشند ممنون میشم
        نمیتونید کتابخونه را با "قرار دادن کد" همین جا بگذارید ؟؟
        [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
        معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
        معرفی نرم افزار Codewizard PWM
        با من بیشتر آشنا شوید

        دیدگاه


          #5
          پاسخ : کتابخانه (Modbus RTU (Client

          اینم حرفیه

          کد:
          /*************************************
          **** Microware Pripherals Library ****
          Author   : Microware
          Date    : 06/20/2013
          Description : Modbus RTU (Slave Functions)
          Version   : 1.7 
          Email    : m.microware@gmail.com
          *************************************/
          
          char modbus_rtu(char*);
          word crc16(byte*, word);
          void byte_to_port(byte *,byte);
          
          extern word D[300];
          
          // 3 milisecond receive timeout interrupt 
          interrupt [TCC0_OVF_vect] void tcc0_overflow_isr(void)
          {
          modbus(rx_buffer_usarte0);
          clear_buffer_usarte0();
          }
          
          char modbus_rtu(char *buf)
          {
          word adr,addr,num,crc,crc2,data[20];
          byte slv,cmd,data_num=0;
          byte i,j;
          char *str,buf2[20];
          str=buf;
          slv=*str++;
          if (slv!=slave_num) return 0;
          cmd=*str++;
          adr=((*str++)*0x100)+*str++;
          num=((*str++)*0x100)+*str++;
          if (cmd>10)
            {
            data_num=*str++;
            for (i=0;i<20;i++) data[i]=0;
            for (i=0;i<data_num;i++)
              {
              j=*str++;
              data[i/2]*=0x100;
              data[i/2]+=j;
              }
            }
          crc=crc16(buf,(word)(str-buf));  
          strcpyf(buf,"");
          crc2=((*str++)*0x100)+*str++;
          if (crc!=crc2) return 0;
          str=buf;
          switch (cmd)
            {
            case 3: //Read Holding Registers 
              num=num*2;
              *str++=slave_num; *str++=cmd; *str++=num; 
              for (i=0;i<(num/2);i++)
                {
                *str++=(byte)(D[(adr+1)+i]>>8); 
                *str++=(byte)(D[(adr+1)+i]&0xFF);
                }       
              crc=crc16(buf,(word)(str-buf));
              *str++=(byte)(crc>>8);
              *str++=(byte)(crc&0xFF);
              byte_to_port(buf,str-buf);
              return 1; 
            case 6: //Preset Single Register 
              D[adr+1]=num;   
              addr=(byte)(adr+1);
              if (addr>200 && addr<=300) 
                writeeeprom((addr-200)*2,(byte *)&num,2);          
                //eD[adr+1]=num;
              *str++=slave_num; *str++=cmd;
              *str++=(byte)adr>>8;
              *str++=(byte)adr&0xFF; 
              *str++=(byte)(D[adr+1]>>8);
              *str++=(byte)(D[adr+1]&0xFF);  
              crc=crc16(buf,(word)(str-buf));
              *str++=(byte)(crc>>8);
              *str++=(byte)(crc&0xFF);
              byte_to_port(buf,str-buf);
              return 1;
            case 16: //Preset Multiple Register
              for (i=0;i<num;i++) 
                {
                D[adr+i+1]=data[i]; 
                addr=(byte)adr+1; 
                addr+=i;
                if (addr>200 && addr<=300) 
                  writeeeprom((addr-200)*2,(byte *)&data[i],2); 
                  //eD[adr+1]=data[i];
                }
              *str++=slave_num; *str++=cmd;
              *str++=(byte)(adr>>8);
              *str++=(byte)(adr&0xFF); 
              *str++=(byte)(num>>8);
              *str++=(byte)(num&0xFF);  
              crc=crc16(buf,(word)(str-buf));
              *str++=(byte)(crc>>8);
              *str++=(byte)(crc&0xFF);
              byte_to_port(buf,str-buf);
              return 1;
            }
          return 0;
          }
          
          void byte_to_port(byte *buf,byte num)
          {
          char i;
          for (i=0;i<num;i++)
            putchar(*(buf+i)); 
          }
          
          flash byte aucCRCHi[] = {
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
            0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
            0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
            0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
            0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 
            0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
            0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
            0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
            0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
            0x00, 0xC1, 0x81, 0x40
          };
          
          flash byte aucCRCLo[] = {
            0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7,
            0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E,
            0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9,
            0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC,
            0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
            0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32,
            0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D,
            0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 
            0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF,
            0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
            0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1,
            0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4,
            0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 
            0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA,
            0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
            0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0,
            0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97,
            0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E,
            0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89,
            0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
            0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83,
            0x41, 0x81, 0x80, 0x40
          };
          
          
          
          word crc16( byte * pucFrame, word usLen )
          {
            byte      ucCRCHi = 0xFF;
            byte      ucCRCLo = 0xFF;
            int       iIndex;
          
            while( usLen-- )
            {
              iIndex = ucCRCLo ^ *( pucFrame++ );
              ucCRCLo = ( byte )( ucCRCHi ^ aucCRCHi[iIndex] );
              ucCRCHi = aucCRCLo[iIndex];
            }
            return ( word )( ucCRCHi | ucCRCLo << 8 );
          }
          زندگي را تو بساز ،
          نه بدان ساز که سازند و پذيري بي حرف ،
          زندگي يعني جنگ ، تو بجنگ ،
          زندگي يعني عشق ، تو بدان عشق بورز.

          دیدگاه


            #6
            پاسخ : کتابخانه (Modbus RTU (Client

            نوشته اصلی توسط Microware
            سلام دوستان
            کتابخونه پروتکل (Modbus RTU (Client
            دستتون درد نکنه تاپیک مفیدیه
            ببخشید برای بسکام ندارین (میدونم خودش داره ولی به سورسش نیاز دارم)
            به سایت ما هم یه سری بزنید
            http://www.amirsad.ir

            دیدگاه


              #7
              پاسخ : کتابخانه (Modbus RTU (Client

              نوشته اصلی توسط Microware
              سلام دوستان
              کتابخونه پروتکل (Modbus RTU (Client
              این پروتکل جهت ارتباط با دستگاههای صنعتی مناسبه
              به ویژه دوستانی که میخوان با HMI کار کنند

              http://www.4shared.com/file/gHp0iiFZba/Modbus_RTU.html
              سلام داداش اگه با سریال 232یا485 خواستیم ارتباط برقرار کنیم چی ؟؟؟؟؟
              o_O

              دیدگاه


                #8
                پاسخ : کتابخانه (Modbus RTU (Client

                نوشته اصلی توسط Microware
                سلام دوستان
                کتابخونه پروتکل (Modbus RTU (Client
                این پروتکل جهت ارتباط با دستگاههای صنعتی مناسبه
                به ویژه دوستانی که میخوان با HMI کار کنند

                http://www.4shared.com/file/gHp0iiFZba/Modbus_RTU.html
                سلام دوست عزیز ممنون از کتابخانه RTU ولی در سایت 4shared.com است و من نمی دانم چگونه دانلود کنم زیرا وقتی دانلودو میزنم زمان 999 ثانیه میاد و در وسط این زمان هم خطا میده اگه امکان داره هم راهنماییم کنید هم لینکشو عوض کنید ممنون

                دیدگاه


                  #9
                  پاسخ : کتابخانه (Modbus RTU (Client

                  نوشته اصلی توسط afagh_elect
                  سلام دوست عزیز ممنون از کتابخانه RTU ولی در سایت 4shared.com است و من نمی دانم چگونه دانلود کنم زیرا وقتی دانلودو میزنم زمان 999 ثانیه میاد و در وسط این زمان هم خطا میده اگه امکان داره هم راهنماییم کنید هم لینکشو عوض کنید ممنون
                  نوشته اصلی توسط سامان اسدی
                  درود دوست عزیز
                  ممنون میشم روی یه سرور دیگه پلود کنید
                  نوشته اصلی توسط Microware
                  اگه یکی از دوستان یا مدیران فروم زحمتشو بکشند ممنون میشم
                  نوشته اصلی توسط سامان اسدی
                  نمیتونید کتابخونه را با "قرار دادن کد" همین جا بگذارید ؟؟
                  نوشته اصلی توسط Microware
                  اینم حرفیه

                  کد:
                  /*************************************
                  **** Microware Pripherals Library ****
                  Author   : Microware
                  Date    : 06/20/2013
                  Description : Modbus RTU (Slave Functions)
                  Version   : 1.7 
                  Email    : m.microware@gmail.com
                  *************************************/
                  
                  char modbus_rtu(char*);
                  word crc16(byte*, word);
                  void byte_to_port(byte *,byte);
                  
                  extern word D[300];
                  
                  // 3 milisecond receive timeout interrupt 
                  interrupt [TCC0_OVF_vect] void tcc0_overflow_isr(void)
                  {
                  modbus(rx_buffer_usarte0);
                  clear_buffer_usarte0();
                  }
                  
                  char modbus_rtu(char *buf)
                  {
                  word adr,addr,num,crc,crc2,data[20];
                  byte slv,cmd,data_num=0;
                  byte i,j;
                  char *str,buf2[20];
                  str=buf;
                  slv=*str++;
                  if (slv!=slave_num) return 0;
                  cmd=*str++;
                  adr=((*str++)*0x100)+*str++;
                  num=((*str++)*0x100)+*str++;
                  if (cmd>10)
                    {
                    data_num=*str++;
                    for (i=0;i<20;i++) data[i]=0;
                    for (i=0;i<data_num;i++)
                      {
                      j=*str++;
                      data[i/2]*=0x100;
                      data[i/2]+=j;
                      }
                    }
                  crc=crc16(buf,(word)(str-buf));  
                  strcpyf(buf,"");
                  crc2=((*str++)*0x100)+*str++;
                  if (crc!=crc2) return 0;
                  str=buf;
                  switch (cmd)
                    {
                    case 3: //Read Holding Registers 
                      num=num*2;
                      *str++=slave_num; *str++=cmd; *str++=num; 
                      for (i=0;i<(num/2);i++)
                        {
                        *str++=(byte)(D[(adr+1)+i]>>8); 
                        *str++=(byte)(D[(adr+1)+i]&0xFF);
                        }       
                      crc=crc16(buf,(word)(str-buf));
                      *str++=(byte)(crc>>8);
                      *str++=(byte)(crc&0xFF);
                      byte_to_port(buf,str-buf);
                      return 1; 
                    case 6: //Preset Single Register 
                      D[adr+1]=num;   
                      addr=(byte)(adr+1);
                      if (addr>200 && addr<=300) 
                        writeeeprom((addr-200)*2,(byte *)&num,2);          
                        //eD[adr+1]=num;
                      *str++=slave_num; *str++=cmd;
                      *str++=(byte)adr>>8;
                      *str++=(byte)adr&0xFF; 
                      *str++=(byte)(D[adr+1]>>8);
                      *str++=(byte)(D[adr+1]&0xFF);  
                      crc=crc16(buf,(word)(str-buf));
                      *str++=(byte)(crc>>8);
                      *str++=(byte)(crc&0xFF);
                      byte_to_port(buf,str-buf);
                      return 1;
                    case 16: //Preset Multiple Register
                      for (i=0;i<num;i++) 
                        {
                        D[adr+i+1]=data[i]; 
                        addr=(byte)adr+1; 
                        addr+=i;
                        if (addr>200 && addr<=300) 
                          writeeeprom((addr-200)*2,(byte *)&data[i],2); 
                          //eD[adr+1]=data[i];
                        }
                      *str++=slave_num; *str++=cmd;
                      *str++=(byte)(adr>>8);
                      *str++=(byte)(adr&0xFF); 
                      *str++=(byte)(num>>8);
                      *str++=(byte)(num&0xFF);  
                      crc=crc16(buf,(word)(str-buf));
                      *str++=(byte)(crc>>8);
                      *str++=(byte)(crc&0xFF);
                      byte_to_port(buf,str-buf);
                      return 1;
                    }
                  return 0;
                  }
                  
                  void byte_to_port(byte *buf,byte num)
                  {
                  char i;
                  for (i=0;i<num;i++)
                    putchar(*(buf+i)); 
                  }
                  
                  flash byte aucCRCHi[] = {
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
                    0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
                    0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
                    0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
                    0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 
                    0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
                    0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
                    0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
                    0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
                    0x00, 0xC1, 0x81, 0x40
                  };
                  
                  flash byte aucCRCLo[] = {
                    0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7,
                    0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E,
                    0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9,
                    0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC,
                    0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
                    0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32,
                    0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D,
                    0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 
                    0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF,
                    0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
                    0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1,
                    0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4,
                    0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 
                    0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA,
                    0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
                    0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0,
                    0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97,
                    0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E,
                    0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89,
                    0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
                    0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83,
                    0x41, 0x81, 0x80, 0x40
                  };
                  
                  
                  
                  word crc16( byte * pucFrame, word usLen )
                  {
                    byte      ucCRCHi = 0xFF;
                    byte      ucCRCLo = 0xFF;
                    int       iIndex;
                  
                    while( usLen-- )
                    {
                      iIndex = ucCRCLo ^ *( pucFrame++ );
                      ucCRCLo = ( byte )( ucCRCHi ^ aucCRCHi[iIndex] );
                      ucCRCHi = aucCRCLo[iIndex];
                    }
                    return ( word )( ucCRCHi | ucCRCLo << 8 );
                  }
                  درود به دوستان
                  کدش رو که گذاشته ...
                  شما میتونید کدش رو کپی کنید ...
                  موفق باشید ...
                  [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                  معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                  معرفی نرم افزار Codewizard PWM
                  با من بیشتر آشنا شوید

                  دیدگاه


                    #10
                    پاسخ : کتابخانه (Modbus RTU (Client

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

                    دیدگاه


                      #11
                      پاسخ : کتابخانه (Modbus RTU (Client

                      نوشته اصلی توسط سامان اسدی
                      درود دوست عزیز
                      ممنون میشم روی یه سرور دیگه پلود کنید
                      سرور مشکلی نداشت
                      Reveng will surely come... Your hard time are ahead
                      // - - - - - - - - - -
                      برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                      // - - - - - - - - - -
                      اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                      // - - - - - - - - - -

                      دیدگاه

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