<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開(kāi)發(fā)網(wǎng)

      電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
      搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 電子開(kāi)發(fā) >> 組態(tài)王KingView入門教程實(shí)例 >> 正文

      KingView組態(tài)王通過(guò)Modbus TCP與ESP32通訊_esp32 modbus tcp

      作者:佚名    文章來(lái)源:網(wǎng)絡(luò)    點(diǎn)擊數(shù):    更新時(shí)間:2024/8/16

      組態(tài)王通過(guò)Modbus TCP與ESP32通訊

      組態(tài)王

      組態(tài)王在工控領(lǐng)域被廣泛應(yīng)用。作為人機(jī)界面可以開(kāi)發(fā)多種應(yīng)用。與ESP8266通過(guò)無(wú)線網(wǎng)通訊沒(méi)有太多的文章介紹,這里介紹通過(guò)使用modbus TCP協(xié)議實(shí)現(xiàn)數(shù)據(jù)上傳和命令下發(fā)。

      組態(tài)王的通訊設(shè)置

      組態(tài)王可以通過(guò)板卡或串口來(lái)建立一個(gè)通訊路徑。
       
      這個(gè)畫面中,選擇設(shè)備-新建出現(xiàn)新建設(shè)備畫面。
       
      選擇莫迪康(Modicon)作為生產(chǎn)廠家,就是我們要通訊設(shè)備的生產(chǎn)廠家(大名鼎鼎的Modicon,以前也叫過(guò)歌德,中國(guó)的煉鋼廠當(dāng)時(shí)用得都是這個(gè)廠家得PLC)。通訊協(xié)議選擇是ModbusTCP。這個(gè)協(xié)議是在Modbus串口通訊協(xié)議發(fā)展而來(lái)得。
       
      給這個(gè)設(shè)備起一個(gè)名稱。這個(gè)是可以隨意取。
       
      這里要選擇一個(gè)串口,因?yàn)樵诔绦蛑幸獎(jiǎng)?chuàng)建Socket,不知道為啥非要選串口。選一個(gè)不能用到得串口,我選擇了COM21。

       
      在這里需要注意,上面設(shè)置是按如下得格式設(shè)置得:

      192.168.4.81 是要通訊的主機(jī)(Server)的IP地址。
      :6600 是通訊服務(wù)器的端口號(hào)
      5 是ModbusTCP的地址
      /50 是超時(shí)時(shí)間
      后面就是一路確定到:

      組態(tài)王變量設(shè)置

      Modbus的通訊可以是離散量輸入,離散量輸出,模擬量輸入和模擬量輸出。離散量是一個(gè)位,用modbus就是10001或者00001,10001表示輸入,即數(shù)字輸入點(diǎn),00001表示輸出,即數(shù)字量輸出點(diǎn)。模擬量輸入采用30001,十六位的輸入,模擬量輸出是40001,16位數(shù)字表示一個(gè)輸出值。在這里我們?cè)O(shè)置一個(gè)16位寄存器值,40101.
       


      這里選擇的連接設(shè)備時(shí)WTGSimuPLC。寄存器是40101. 數(shù)據(jù)類型是無(wú)符號(hào)整數(shù)。通訊頻率為1000ms。有了這個(gè)變量可以在圖形中做可視化就可以讀取這個(gè)變量值了。

      變量顯示

      在畫面中展示做一個(gè)數(shù)字,然后和變量進(jìn)行連接就可以實(shí)現(xiàn)這個(gè)變量的顯示了。
      動(dòng)畫連接,選擇模擬量輸出:
       
      在畫面上可以展示這個(gè)輸出了。

      ESP8266編程

      需要在ESP8266中編程,我還是選擇了Arduino IDE進(jìn)行編程。方法是當(dāng)接受到信息時(shí),接受這些信息,檢查信息是否是發(fā)送給自己的,如果是的話,接受信息,然后按規(guī)約的要求發(fā)送信息到發(fā)送方。在編制程序時(shí)不需要添加一些頭文件。

      #include <ESP8266WiFi.h>
      #include <WiFiClient.h>
      WiFiClient client;
      IPAddress loIP(192, 168, 4, 61);
      IPAddress snIP(255, 255, 255, 0);
      IPAddress gwIP(192, 168, 4, 1);
      IPAddress mbTCP(192, 168, 4, 51);
      WiFiServer server(6600);            // 服務(wù)器,server
      void wifiSetup()
      {
         if (!WiFi.config(loIP, gwIP, snIP))
         {
           Serial.println("Satation配置不成功");
           delay(3000);
         }
         WiFi.mode(WIFI_STA);
         WiFi.begin(ssid, password);
      }
      void sMBTCP(uint8_t* buff, int16_t iLength)
      {
        int iTemp;
        int rAdd;
        if ( bDebug )
        {
          Serial.println("The length = " + String(iLength));
          for(int i = 0; i < iLength; i++)
            Serial.printf("The buff[%d] = 0x%02X\n", i, (uint8_t)buff[i]);
        }
        if (buff[6] != 0x05)        // modbus TCP address
          return;
        switch ( buff[7] )
        {
          case 3:                   // read hold register
            rAdd = (buff[8] << 8) + buff[9];    // register address
            if ( bDebug4 )
            {
              Serial.println("The rAdd = " + String(rAdd));
            }
            buff[5] = ((buff[10] << 8) + buff[11]) * 2 + 3;  // reply bytes
            buff[8] = ((buff[10] << 8) + buff[11]) * 2;        
            iTemp = 9 + buff[8];        // total bytes send
            if ( rAdd == 0)
            {
              for (int i = 0; i < buff[8]/2; i++)
              {
                buff[9 + (i * 2)] = hreg40001[i] >> 8;
                buff[10 + (i * 2)] = hreg40001[i];
              }
            }
            if ( bDebug )
            {
              for ( int i = 0; i < iTemp; i++)
              {
                Serial.printf("buff[%d] = 0x%02X\n", i, (uint8_t)buff[i]); 
              }
            }
            client.write(buff, iTemp);
            break;
          case 6:
        break;
          case 16:
            break;
          default:
            break;    
        }
        if ( bDebug )
        {
          for (int i = 0; i < iTemp; i++)
            Serial.printf("The buff[%d] = 0x%02X\n", i, (uint8_t)buff[i]);
        }
      }
      void setup()
      {
       Serial.begin(115200);     // 調(diào)試助手
        delay(1000);                           // pasue 1 second
         wifiSetup();                        // setup wifi hot AP
         server.begin();       // 服務(wù)器運(yùn)行
      }
      void loop() 
      {
        if (server.hasClient())         // 這個(gè)是當(dāng)有新的client與Server連接時(shí)
        {
          client = server.available();
          Serial.println("client connected");
        } 
        if ( client && client.connected())
        {
          int i = 0;
          while (client.available())
          {
            char c = client.read();
            if (client.available() == 0)
              mbLength = i + 1;
            mdTCPbuff[i] = c;
            i++;
          }
          if ( i > 0 )
          {
            sMBTCP(mdTCPbuff, i);
          }
        }
      }
      

      上面的程序可以完成modbusTCP通訊了。場(chǎng)景是固定的IP地址,發(fā)送讀取命令,然后應(yīng)答讀取。

      總結(jié)

      用組態(tài)王做一個(gè)人機(jī)界面在工控領(lǐng)域比較流行。ESP8266可以通過(guò)Wifi作為一個(gè)服務(wù)器為HMI提供服務(wù)。

      Tags:組態(tài)王,Modbus協(xié)議,KingView  
      責(zé)任編輯:admin
      相關(guān)文章列表
      組態(tài)王編程軟件如何設(shè)置按鈕圖元
      組態(tài)王用按鍵如何實(shí)現(xiàn)畫面切換
      組態(tài)王編程軟件如何配置報(bào)警信息
      組態(tài)王和三菱PLC設(shè)備數(shù)據(jù)采集監(jiān)控之入門實(shí)戰(zhàn)篇—組態(tài)王采集三菱F
      組態(tài)王編程軟件如何設(shè)置網(wǎng)絡(luò)配置信息
      組態(tài)王軟件如何新建網(wǎng)絡(luò)站點(diǎn)的方法
      組態(tài)王之反應(yīng)監(jiān)控中心的實(shí)時(shí)數(shù)據(jù)報(bào)表方法
      通過(guò)數(shù)據(jù)庫(kù)記錄,實(shí)現(xiàn)組態(tài)王監(jiān)控設(shè)備運(yùn)行時(shí)長(zhǎng)
      組態(tài)王連接SQL數(shù)據(jù)庫(kù)的操作步驟,組態(tài)王與SQL數(shù)據(jù)庫(kù)交互
      組態(tài)王與SqlServer數(shù)據(jù)庫(kù)交互總結(jié)_組態(tài)王讀取sql數(shù)據(jù)庫(kù)
      KingView組態(tài)王之車間的報(bào)警系統(tǒng)設(shè)置方法
      KingView組態(tài)王使用數(shù)據(jù)庫(kù)控件實(shí)現(xiàn)查詢-新增記錄功能
      KingView組態(tài)王中結(jié)構(gòu)變量的定義和使用方法
      KingView組態(tài)王組態(tài)軟件如何插入按鈕圖元,組態(tài)王實(shí)例
      三菱FX系列PLC以太網(wǎng)連接組態(tài)王,三菱PLC和組態(tài)王的以太網(wǎng)連接
      S7-200和組態(tài)王的連接,cpu226 PLC 與組態(tài)王如何連接
      KingView組態(tài)王編程軟件如何建立溫度控件
      KingView 組態(tài)王如何建立TCP通訊
      KingView組態(tài)王怎么建立變量
      KingView 在組態(tài)王里面添加列表框
      請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個(gè)字
      [ 查看全部 ] 網(wǎng)友評(píng)論
      最新推薦
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁(yè)面
      下到頁(yè)底
      晶體管查詢
      主站蜘蛛池模板: 亚洲国产综合专区在线电影| 亚洲国产成+人+综合| 亚洲国产综合精品中文第一| 狼狼综合久久久久综合网| 久久亚洲精品高潮综合色a片| 色综合合久久天天综合绕视看| 色青青草原桃花久久综合| 人人婷婷色综合五月第四人色阁| 久久综合久久鬼色| 一本大道久久a久久精品综合| 久久狠狠色狠狠色综合| 日韩无码系列综合区| 国产亚洲综合成人91精品| 婷婷综合久久中文字幕蜜桃三| 狠狠色丁香久久婷婷综合五月| 玖玖爱zh综合伊人久久| 少妇人妻综合久久中文字幕| 亚洲av综合日韩| 亚洲av永久综合在线观看尤物| 伊人性伊人情综合网| 色99久久久久高潮综合影院| 国产成+人+综合+亚洲专| 综合网日日天干夜夜久久| 天天综合天天做天天综合| 国产在线一区二区综合免费视频| 成人伊人青草久久综合网破解版| 亚洲色欲啪啪久久WWW综合网| 久久久久久综合一区中文字幕| 亚洲第一页综合图片自拍| 婷婷久久久五月综合色| 六月婷婷缴清综合在线| 狠狠色综合一区二区| 色综合合久久天天综合绕视看| 亚洲综合色区中文字幕| 99久久亚洲综合精品成人网 | 日韩亚洲人成在线综合| 国产精品无码久久综合网| 综合五月激情二区视频| 综合偷自拍亚洲乱中文字幕| 成人综合国产乱在线| 久久综合日本熟妇|