[問題]java讀寫三菱plc

看板java作者 (草草)時間6月前 (), 6月前編輯推噓1(105)
留言6則, 1人參與, 6月前最新討論串1/1
我使用網路上提供的open source (來源1:https://reurl.cc/VDKgoN), (來源2:https://reurl.cc/Erkyvn) 它的名稱是HslCommunication,下載後在Eclipse匯入jar檔, 撰寫網路上提供的程式碼,第一階段已經可以成功與plc連接溝通, 但無法讀出數據(數據寄存器D200),執行時第28行報出「NullPointerException」訊息,如下圖: https://imgur.com/QFjsn57
程式碼如下: package test; import HslCommunication.Core.Types.OperateResult; import HslCommunication.Core.Types.OperateResultExOne; import HslCommunication.Profinet.Melsec.MelsecMcNet; @SuppressWarnings("unused") public class TestPLC { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Hello PLC !!"); MelsecMcNet melsec_net = new MelsecMcNet("192.168.1.195",6000); melsec_net.setNetworkNumber((byte) 0x00); melsec_net.setNetworkStationNumber((byte) 0x00); melsec_net.setConnectTimeOut(1000); melsec_net.ConnectServer(); OperateResult connectResult = melsec_net.ConnectServer(); if(connectResult.IsSuccess){ System.out.println("連接成功"); } else { System.out.println("連接失敗:"+connectResult.Message); } int int_D200 = melsec_net.ReadInt32("D200").Content; System.out.println(int_D200); 錯誤訊息如下: Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because "HslCommunication.Profinet.Melsec.MelsecMcNet.ReadInt32(String).Content" is null at test.TestPLC.main(TestPLC.java:28) 軟體版本/硬體規格: 1. Eclipse版本:2022.3,jdk版本:17.0 2. 作業系統:window 10 3. PLC型號:FX-3U 請問程式碼是否有錯誤呢?需要怎麼做才能讀取D200的值呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.161.183.10 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/java/M.1657988746.A.F68.html ※ 編輯: popo14777 (118.161.183.10 臺灣), 07/17/2022 00:26:43 ※ 編輯: popo14777 (1.163.79.169 臺灣), 07/20/2022 22:19:44

07/22 04:14, 6月前 , 1F
拆裝箱問題, ReadInt32(String)回傳物件的Content是null
07/22 04:14, 1F
請問要怎麼做呢 ※ 編輯: popo14777 (118.161.142.214 臺灣), 07/23/2022 15:05:55

07/26 08:58, 6月前 , 2F
這已經不是怎麼做的問題了 你要去查ReadInt32("D200")
07/26 08:58, 2F

07/26 08:59, 6月前 , 3F
回傳的物件裡的Content為什麼是null
07/26 08:59, 3F

07/26 08:59, 6月前 , 4F
對code不熟不建議一直.去操作回傳物件
07/26 08:59, 4F

07/26 09:01, 6月前 , 5F
建議你一行只做一件事情 把每個回傳的物件用變數接起來
07/26 09:01, 5F

07/26 09:01, 6月前 , 6F
你才好觀察每個回傳的物件及內容
07/26 09:01, 6F
文章代碼(AID): #1YqkQAze (java)
文章代碼(AID): #1YqkQAze (java)