欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot?通過博途獲取plc點位的數(shù)據(jù)代碼實現(xiàn)

 更新時間:2023年08月18日 11:48:29   作者:小果子^_^  
這篇文章主要介紹了springboot?通過博途獲取plc點位的數(shù)據(jù)的代碼實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

springboot 通過博途獲取plc點位的數(shù)據(jù)

1.maven依賴

<dependency>
    <groupId>com.github.dathlin</groupId>
    <artifactId>HslCommunication</artifactId>
    <version>3.6.0</version>
</dependency>

這個版本盡量是新版本,不然有的返回的值對應(yīng)的類型不存在

2.代碼實現(xiàn)

public void sendHttpRequest() {
     System.out.println("==================================執(zhí)行命令==================================" + System.currentTimeMillis());
     List<SysPlcIpEntity> ipList = plcIpDao.getIpList();
     if (ipList != null && ipList.size() > 0) {
         for (SysPlcIpEntity plcIp:ipList) {
             SiemensS7Net siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, plcIp.getIpAddress());
             siemensS7Net.SetPersistentConnection( );
             // 根據(jù)ip查詢對應(yīng)的命令
             List<SysPlcMlEntity> plcMlList = plcMlDao.getListByIpId(plcIp.getId());
             if (plcMlList != null && plcMlList.size() > 0) {
                 for (int i = 0; i < plcMlList.size(); i++) {
                     if (plcMlList.get(i).getMlContent().contains("DBW")) {
                         OperateResultExOne<Short> dbwVal = siemensS7Net.ReadInt16(plcMlList.get(i).getMlContent());
                         if (dbwVal.IsSuccess){
                             plcMlList.get(i).setMlValue(String.valueOf(dbwVal.Content));
                         }
                     } else if (plcMlList.get(i).getMlContent().contains("DBD")){
                         OperateResultExOne<Float> dbdVal = siemensS7Net.ReadFloat(plcMlList.get(i).getMlContent());
                         if (dbdVal.IsSuccess) {
                             plcMlList.get(i).setMlValue(String.valueOf(dbdVal.Content));
                         }
                     } else if (plcMlList.get(i).getMlContent().contains("DBX")) {
                         OperateResultExOne<Boolean> dbxVal = siemensS7Net.ReadBool(plcMlList.get(i).getMlContent());
                         if (dbxVal.IsSuccess) {
                             plcMlList.get(i).setMlValue(String.valueOf(dbxVal.Content));
                         }
                     }
                 }
                 plcMlDao.batchUpdateMlList(plcMlList);
             }
         }
     }
     System.out.println("==================================結(jié)束命令==================================" + System.currentTimeMillis());
    }

因為需求,DBW是整型,DBD是浮點數(shù),DBX是布爾值DBW/D/X后面對應(yīng)的是偏移量,

3. 測試方法

public static void main(String[] args) {
  // DB5.DBX8.5
  SiemensS7Net siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, "192.168.1.105");
  siemensS7Net.SetPersistentConnection( );
  //DBD
  OperateResultExOne<float[]> read = siemensS7Net.ReadFloat( "DB3.DBD10", (short) 4);
  if (read.IsSuccess) {
      for (float f: read.Content) {
          System.out.println("dbd:" + f);
      }
  }
  //DBW
  Short content = siemensS7Net.ReadInt16("DB3.DBW0").Content;
  System.out.println("content" + content);
  OperateResultExOne<Short> long_array = siemensS7Net.ReadInt16("DB3.DBW0");
  if (long_array.IsSuccess){
      System.out.println("dbw:" + long_array.Content);
  }
  // DBX
 /* OperateResultExOne<boolean[]> operateResultExOne = siemensS7Net.ReadBool("DB5.0.1", (short) 4);
  if (operateResultExOne.IsSuccess) {
      for (Boolean boo:operateResultExOne.Content) {
          System.out.println("------------"+boo);
      }
  } else {
      System.out.println("錯誤信息:"+operateResultExOne.ErrorCode + "=====" + operateResultExOne.Message);
  }*/
}

(short)對應(yīng)的值是獲取幾位,因為需求,沒辦法一起獲取,所以我是單個獲取的

在這里插入圖片描述

到此這篇關(guān)于springboot 通過博途獲取plc點位的數(shù)據(jù)的文章就介紹到這了,更多相關(guān)springboot 獲取plc點位數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

  • Java中indexOf()的用法小結(jié)

    Java中indexOf()的用法小結(jié)

    這篇文章主要介紹了Java中indexOf()的用法小結(jié),indexOf()有四種方法,用來查找某個字符或字符串的位置,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • Java實現(xiàn)迷你圖書管理系統(tǒng)案例全程

    Java實現(xiàn)迷你圖書管理系統(tǒng)案例全程

    這篇文章主要為大家詳細介紹了如何利用java語言實現(xiàn)簡單的圖書管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-12-12
  • 簡單談?wù)刯ava中final,finally,finalize的區(qū)別

    簡單談?wù)刯ava中final,finally,finalize的區(qū)別

    Java中final、finally、finalize的區(qū)別與用法,困擾了不少學(xué)習(xí)者,下面我們就這個問題進行一些探討,希望對大家的學(xué)習(xí)有所幫助。
    2016-05-05
  • Java組件commons fileupload實現(xiàn)文件上傳功能

    Java組件commons fileupload實現(xiàn)文件上傳功能

    這篇文章主要為大家詳細介紹了Java組件commons fileupload實現(xiàn)文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Java布隆過濾器的應(yīng)用實例

    Java布隆過濾器的應(yīng)用實例

    這篇文章主要介紹了Java布隆過濾器的應(yīng)用實例,在程序的世界中,布隆過濾器是程序員的一把利器,利用它可以快速地解決項目中一些比較棘手的問題,如網(wǎng)頁?URL?去重、垃圾郵件識別、大集合中重復(fù)元素的判斷和緩存穿透等問題,需要的朋友可以參考下
    2023-11-11
  • springboot啟動后卡住無日志的幾種情況小結(jié)

    springboot啟動后卡住無日志的幾種情況小結(jié)

    這篇文章主要介紹了springboot啟動后卡住無日志的幾種情況小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java基礎(chǔ)之ArrayList的擴容機制

    Java基礎(chǔ)之ArrayList的擴容機制

    這篇文章主要介紹了Java基礎(chǔ)之ArrayList的擴容機制,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Java設(shè)計模式之狀態(tài)模式State Pattern詳解

    Java設(shè)計模式之狀態(tài)模式State Pattern詳解

    這篇文章主要介紹了Java設(shè)計模式之狀態(tài)模式State Pattern,狀態(tài)模式允許一個對象在其內(nèi)部狀態(tài)改變的時候改變其行為。這個對象看上去就像是改變了它的類一樣
    2022-11-11
  • 最新評論