91黄动漫 I 欧美 日韩 国产 成人 在线 I a级成人毛片 I 农村黄色片 I 男生捅女生的肌肌 I 精品99一区二区三区 I 妃光莉av I 日日夜夜操操 I 性中国古装videossex I 久久不卡av I 美女高潮动态图 I 极品美女开粉嫩精品 I 牛牛精品一区二区 I 91精品福利视频 I 成人刺激视频 I 91国内精品视频 I 中国一级特黄毛片大片 I 校长狠狠挺进校花体内小说 I 欧美激情黄色片 I 欧美久久久一区 I 爱豆国产剧免费观看大全剧苏畅 I 麻豆国产人妻欲求不满谁演的 I 亚洲一区二区在线免费观看视频 I 国产超碰av人人做人人爽 I 精品国产第一国产综合精品 I 久久免费看av I 欧美一区二区三区白人 I 国产精品夫妻激情 I 校花被肉干高h潮不断 I 欧美最猛黑人xxxx黑人表情 I 国产欧美日韩一区二区搜索 I 极品女神露脸呻吟啪啪 I 人人天天久久 I 亚洲动漫在线 I 日本91福利区 I 五月天 桃色 开心 I av在线免费观看国产 I 男人添女人的免费视频 I 夜夜穞天天穞狠狠穞

華南貓
PLC無線通訊遠程控制巨控黃工:18922726899
級別: 探索解密
精華主題: 0
發(fā)帖數量: 68 個
工控威望: 178 點
下載積分: 860 分
在線時間: 43(小時)
注冊時間: 2017-02-21
最后登錄: 2025-12-06
查看華南貓的 主題 / 回貼
樓主  發(fā)表于: 2019-01-17 14:20
1. 基本的通訊方式
基本的通訊方式有并行通訊和串行通訊兩種。

并行通信:是指數據的各位同時進行傳送的通信方式。

串行通信:是指數據一位一位順序傳送的通信方式。

2. 串行通訊的兩種方式
串行通信的兩種基本形式:同步通信和異步通信。

異步通信所傳輸的數據幀格式是由1個起始位、1~9個數據位、1~2個停止位組成,依靠起始位和停止位保持同步;

同步通信所傳輸數據幀格式是由多個字節(jié)組成的一個幀,每個幀都有兩個(或一個)同步字符作為起始位以觸發(fā)同步時鐘開始發(fā)送或接收數據。


3. 根據傳送方向分類
  根據信息的傳送方向,串行通訊可以進一步分為單工、半雙工和全雙工三種。
  如果在通信過程的任意時刻,信息只能由一方A傳到另一方B,則稱為單工。          
  如果在任意時刻,信息既可由A傳到B,又能由B傳A,但只能由一個方向上的傳輸存在,稱為半雙工傳輸。  
  如果在任意時刻,線路上存在A到B和B到A的雙向信號傳輸,則稱為全雙工。



4. 串行通訊接口
串行通訊物理接口按電氣標準及協議來分包括RS-232、RS-422、RS485等,這里主要講一些最常用的RS485接口。

5. RS485接口電路


作為一個經常被應用到的SP485R芯片的示范電路,可以被直接嵌入實際的RS-485

應用電路中。微處理器的標準串行口通過RXD 直接連接SP485R 芯片的RO 引腳,通過TXD直接連接SP485R 芯片的DI 引腳。

由微處理器輸出的R/D 信號直接控制SP485R 芯片的發(fā)送器/接收器使能:R/D 信號為“1”,則SP485R 芯片的發(fā)送器有效,接收器禁止,此時微處理器可以向RS-485 總線發(fā)送數據字節(jié);R/D 信號為“0”,則SP485R 芯片的發(fā)送器禁止,接收器有效,此時微處理器可以接收來自RS-485 總線的數據字節(jié)。此電路中,任一時刻SP485R 芯片中的“接收器”和“發(fā)送器”只能夠有1 個處于工作狀態(tài)。

連接至A 引腳的上拉電阻R7、連接至B 引腳的下拉電阻R8 用于保證無連接的SP485R芯片處于空閑狀態(tài),提供網絡失效保護,以提高RS-485 節(jié)點與網絡的可靠性。

如果將SP485R 連接至微處理器80C51 芯片的UART 串口,則SP485R 芯片的RO 引腳不需要上拉;否則,需要根據實際情況考慮是否在RO 引腳增加1 個大約10K 的上拉電阻。


6. 串口MODBUS通訊
      Modbus作為工業(yè)通信回路中數據交換的規(guī)則已經被廣泛地應用在各個領域,使得具有Modbus 通信協議的設備方便通信,例如PLC、變頻器、流量計、溫濕度、上位機組態(tài)軟件、各種傳感器儀表等。

      Modbus通信協議分為兩種串行通信模式,ASCII 和RTU 通信模式。在使用時,需要先設定通信模式以及串行口RS232、RS485的通信參數(波特率,奇偶校驗,從機地址,數據位,停止位,字節(jié)順序),在Modbus 總線上的所有設備應具有相同的通信模式和串行通信參數

modbus信息幀結構組成



7. MODBUS命令報文
讀數據    


8. MODBUS關鍵概念
    

(1)上位機讀取數據每次間隔時間一般不小于100ms

(2)設備地址:MODBUS從機通訊地址,在一個網絡中不能有兩個相同的地址。(3)功能碼:MODBUS 協議規(guī)定的功能碼

(4)寄存器地址和寄存器數

主站命令中的參數是從寄存器地址開始的寄存,讀寄存器長度的N個寄存器。(5)從站響應數據

從站響應數據是:字節(jié)數和N個數字節(jié)數據。





9. MODBUS主站常用操作
    


1)讀優(yōu)化:對于不連續(xù)地址的數據讀取,是否采取打包讀,則系統使用打包讀命令,一次性完成多個地址的讀取。

2)讀優(yōu)化間隔:讀優(yōu)化時,若地址之間小于此間隔,則會打包到一起,使用多讀命令一次讀取。

3)最大包長:一次通訊允許的最大數據長度。

4)字節(jié)順序:調整32位雙字的解碼順序。

以32位整數為例,說明字節(jié)順序的含義:

1234:表示雙字元件不做處理直接解碼,。

例如:從串口讀到的數據為0000 00 01 表示 1。

2143:表示雙字元件高低字不顛倒,但字內高低字節(jié)顛倒。

例如:從串口讀到的數據為0000 00 01 表示 0x00000100 (即256)。

3412:表示雙字元件高低字顛倒,但字內高低字節(jié)不顛倒。

例如:從串口讀到的數據為0000 00 01 表示 0x00010000 (即65536)。

4321:表示雙字元件內4個字節(jié)全部顛倒。

例如:從串口讀到的數據為00 00 00 01 表示 0x0100 0000 (即1677 721





10. C語言MODBUS程序
    

(1).CRC16算法:

INT16U CRC16(INT8U *puchMsg, INT16U usDataLen)

{

   INT8U uchCRCHi = 0xFF;               /* 高CRC字節(jié)初始化 */

   INT8U uchCRCLo = 0xFF;               /* 低CRC 字節(jié)初始化 */

   INT8U uIndex;                        /* CRC循環(huán)中的索引 */

   while (usDataLen--)                  /* 傳輸消息緩沖區(qū) */

   {

      uIndex = uchCRCHi ^*puchMsg++;   /* 計算CRC */

      uchCRCHi = uchCRCLo ^auchCRCHi[uIndex];

      uchCRCLo = auchCRCLo[uIndex];

   }

   return (uchCRCHi << 8 |uchCRCLo);

}



(2)發(fā)送命令程序

本例程以Mag64為核心CPU

void Read_InPut(INT8U Addr,INT16UStart,INT16U Len)

{

   INT16U CRC;

   SendBuffer_485[0]=Addr;                  //設備地址

   SendBuffer_485[1]=0x04;                  //modbus功能碼

   SendBuffer_485[2]=Start/256;             //Start為寄存器地址

   SendBuffer_485[3]=Start%256;

   SendBuffer_485[4]=Len/256;               //Len為讀取寄存器長度

   SendBuffer_485[5]=Len%256;

   CRC=CRC16(SendBuffer_485,6);

   SendBuffer_485[6]=CRC/256;               //CRC校驗高位

   SendBuffer_485[7]=CRC%256;               //CRC校驗低位

   R485_OUT;                                //使能RS485發(fā)送

   SendLen_485=8;

   SendNum_485=0;

   CloseINT0();                            //關閉串口接受中斷

   UCSR0B |= BIT(UDRIE0);                  //打開串口發(fā)送中斷

}



(3)返回數據解析

數據接收使用串口中斷,ReceivedBuffer_485為接收數據組,ReceivedNum_485為接收到數據長度,ReceivedFlag_485接收到數據標志。函數float Datasum(INT8UBYTE1, INT8U BYTE2, INT8U BYTE3, INT8U BYTE4)把浮點數的4個字節(jié)轉換為1個浮點數。

float Datasum(INT8U FloatByte1, INT8U FloatByte2,INT8U FloatByte3, INT8U FloatByte4)

{  

float aa;

union IntTOFP

   {      

      FP32       F32;

      INT8U      T8[4];

   };

   union IntTOFPaa;

  aa.T8[0] = FloatByte1;                    

aa.T8[1] = FloatByte2;

aa.T8[2] = FloatByte3;

aa.T8[3] = FloatByte4;

return aa;

}

void Read_Lmag(INT8U Ad)

{

   INT8U  i,j;

   INT8U  Num1[10],BIT;

   INT16UCRC1,CRC2;

   FP32  Flow;                                 //aaa為瞬時流量數值

  ReceivedFlag_485=1;

  Open_Time1_Ms5(20);

  Read_InPut(Ad,0x1010,2);                   //發(fā)送設備地址、寄存器地址、寄存器長度

  while(ReceivedFlag_485);                   //等待接收結束

  if((ReceivedNum_485==9)&&(ReceivedBuffer_485[0]==Ad))    // 判斷數據是否正確

   {

      CRC1=CRC16(ReceivedBuffer_485,7);                

     CRC2=ReceivedBuffer_485[7]*256+ReceivedBuffer_485[8];

      if(CRC1==CRC2)

      {// 轉換數據為浮點數

Flow= Datasum(ReceivedBuffer_485[6], ReceivedBuffer_485[5], ReceivedBuffer_485[4] ,ReceivedBuffer_485[3]);

       }

}

}



11. MODBUS調試軟件MODBUS PULL
    

以從站地址為1,波特率9600,讀取所有實時數據為例設置方法如下:

按照表2所示:起始寄存器地址4113  寄存器個數為22

1. 設置采集命令包括設備地址(1)、MODBUS功能碼(04)、寄存器地址(4113)、寄存器長度(2)、采集間隔(1000)。  


2.設置串口數據

根據從機串口格式(1位起始位 8位數據位 1位停止位,無校驗)設置如下圖:


3.設置數據顯示格式


4.通訊成功界面

  
本帖最近評分記錄:
  • 下載積分:+1(yu1804353868) 真誠感謝!
  • 下載積分:+3(ipc小許)
  • 下載積分:+5(祝鐘劍) 真誠感謝!
  • 下載積分:+5(mk自動化) 真誠感謝!
  • 下載積分:+1(夏日雪夢) 真誠感謝!
  • 技術咨詢熱線:18922726899  巨控黃工
    mk自動化
    級別: 論壇先鋒
    精華主題: 0
    發(fā)帖數量: 203 個
    工控威望: 1390 點
    下載積分: 5355 分
    在線時間: 191(小時)
    注冊時間: 2018-03-04
    最后登錄: 2025-01-06
    查看mk自動化的 主題 / 回貼
    1樓  發(fā)表于: 2019-07-22 15:14
    感謝分享!
    多學多用!

    主站蜘蛛池模板: 成人精品在线观看 | 人妻夜夜爽天天爽三区丁香花 | 天天精品 | 在线 v亚洲 v欧美v 专区 | 最新日韩中文字幕 | 少妇大胆瓣开下部自慰 | 国产女人成人精品a区 | 国产精品久久福利网站 | 亚洲加勒比久久88色综合 | 手机av免费在线观看 | 激情五月综合 | 日韩三级一区 | 日韩特黄特色大片免费视频 | 欧美激情综合五月色丁香小说 | 亚洲高清偷拍一区二区三区 | 人人艹人人| 凹凸国产熟女精品视频app | 夜夜夜夜夜夜爽噜噜噜噜噜噜 | 亚洲中文字幕aⅴ无码天堂 成人午夜毛片 | 日本少妇无码精品12p | 午夜视频在线播放一三 | 老汉av网站 | 国产亚洲欧美日韩精品一区二区三区 | 最新国产麻豆aⅴ精品无码 性欧美videos做受 | 无码精品日韩专区 | 涩涩在线 | 色婷婷婷婷色 | 在线视频97 | 伊人网在线视频观看 | 亚洲国产一区视频 | 国产黄频免费高清视频 | 99精品国自产在线 | 久久精品一本 | 国产亚洲精品久久久久久无亚洲 | 激情六月天| 麻豆人妻少妇精品无码专区 | 婷婷四虎东京热无码群交双飞视频 | 懂色一区二区三区免费观看 | 久久精品视频免费看 | 国产精品久久久久久久久av大片 | 女人被做到高潮免费视频 | 国产黄色片一级 | 在线人成视频播放午夜福利 | 欧美日韩中出 | 看毛片的网站 | 国产3p露脸普通话对白 | 日韩亚洲精品中文字幕 | 91视频 - 8mav | 精品九九人人做人人爱 | 欧美 偷窥 清纯 综合图区 | 亚洲精品97 | 色视频欧美一区二区三区 | 99久久er这里只有精品18 | 亚洲嫩模喷白浆在线观看 | 国自产精品手机在线观看视频 | 国产真实露脸精彩对白 | 亚洲2020天天堂在线观看 | 天天躁夜夜躁狠狠是什么心态 | 91人人爽久久涩噜噜噜 | 亚洲国产v高清在线观看 | 亚洲美女屁股眼交2 | 国产精品后入内射日本在线观看 | 精品久久久久久 | 精品国产一区探花在线观看 | 国产成人免费无码av在线播放 | 成人国内精品久久久久影院vr | 天天干天天做天天操 | 国产情侣作爱视频免费观看 | 久久天天躁夜夜躁狠狠 ds005.com | 日韩视频中文字幕精品偷拍 | 国产精品久久久久久久久久妞妞 | 黄又色又污又爽又高潮动态图 | 国产精品久久久久久爽爽爽 | 午夜操操 | 久久一区二区三区日韩 | 内射人妻少妇无码一本一道 | 亚洲 一区二区 在线 | 99久久影院 | 一本色道久久综合亚洲精品婷婷 | 国产99视频精品免费视看6 | 国产成人啪精品午夜网站a片免费 | 亚洲欧美一区二区三区国产精品 | 亚洲情趣 | 欧美日韩激情在线一区二区三区 | 在线看日韩av| 波多野结衣导航 | 18禁区美女免费观看网站 | 久久综合色视频 | 亚洲激情99| 欧美激情精品久久久久久 | 亚洲精品人成网线在播放va | 爱情岛论坛首页永久入口 | 人人爽久久涩噜噜噜红粉 | 成人手机视频 | 亚洲男人天堂网 | 亚洲第一页在线观看 | 欧美乱强伦xxxxx高潮 | 亚洲码欧美码一区二区三区 | 天堂网www在线资源网 |