From 6b8cb1b9d271260b0d7d19334aa9e9ac24d4ae3c Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期一, 07 四月 2025 17:57:53 +0800
Subject: [PATCH] 通讯方式更改

---
 nglib/src/ng/devices/ModbusService.java |  104 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 94 insertions(+), 10 deletions(-)

diff --git a/nglib/src/ng/devices/ModbusService.java b/nglib/src/ng/devices/ModbusService.java
index 897a45a..a183c95 100644
--- a/nglib/src/ng/devices/ModbusService.java
+++ b/nglib/src/ng/devices/ModbusService.java
@@ -1,6 +1,9 @@
 package ng.devices;
 
+import java.sql.CallableStatement;
+import java.sql.Connection;
 import java.sql.SQLException;
+import java.util.List;
 
 import builder.S7control;
 import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
@@ -10,6 +13,7 @@
 
 
 public abstract class ModbusService implements Runnable  {
+
 
 	//modbus瀹㈡埛绔�
 	protected ModbusClient client;
@@ -28,6 +32,7 @@
 	protected  String ip;
 	//璁惧绔彛
 	protected int port;
+	protected String remarks;
 	//绾跨▼
 	java.lang.Thread thread;
 	//缂撳啿鍖猴紙鏈嶅姟鍏佽鍙戦�佽秴杩囧崗璁姹傜殑鏁版嵁锛屾墍浠ョ紦鍐插尯鏇村ぇ锛�
@@ -43,7 +48,7 @@
     }
 
     //杩愯
-    public void Run(int MachineID,String ip,int port,byte state,int ReadOffset,int ReadSize,int timeout,byte FunctionType){
+    public void Run(int MachineID,String ip,int port,byte state,int ReadOffset,int ReadSize,int timeout,byte FunctionType,String remarks){
     	//璁剧疆鍙傛暟
     	this.machineID=MachineID;
     	this.ip=ip;
@@ -51,6 +56,7 @@
     	this.readOffset=ReadOffset;
     	this.readSize=ReadSize;
 		this.functionType= FunctionType;
+		this.remarks= remarks;
 
     	//鍚姩绾跨▼
 		if(this.port==102){
@@ -98,6 +104,92 @@
     	}
     	return msg;
     }
+	//涓�娆7璇诲彇琛屼负
+	String onceS7(){
+		try {
+			DBSession sn=null;
+			String result=null;
+			String flag=null;
+			String messsage="000000000000000000";
+			EPlcType ePlcType=null;
+			if(this.machineID==78){
+				ePlcType=EPlcType.S1500;
+			}else{
+				ePlcType=EPlcType.S1200;
+			}
+			S7control s7=new S7control(ePlcType, ip, port, 0, 0);
+			//List<Integer> word=s7.readWord("DB34.122",  1);
+			List<Integer> listWord=s7.readWord(this.remarks,(this.readSize/2));
+			if(listWord==null){
+				System.out.println("notread");
+				return "";
+			}
+            for(int i=0;i<listWord.size();i++){
+				//System.out.println("i  "+listWord.size()+"   "+messsage);
+				messsage+=HexUtil.intTo2ByteHex(listWord.get(i));
+			}
+
+			//System.out.println(messsage);
+			//System.out.println(ip+"  "+s7.readWord("DB34.122",  1));
+			//鏁版嵁搴�
+			DBHelper db=DBHelper.getDBHelper("mes");
+			try{
+				//鍒涘缓杩炴帴
+				sn=db.createSession(false);
+				Connection con= sn.getConnection();
+				//璋冪敤閭d釜瀛樺偍杩囩▼
+				CallableStatement sql=con.prepareCall("{call Total_method(?,?,?,?)}");
+				sql.registerOutParameter(3, java.sql.Types.VARCHAR);
+				sql.registerOutParameter(4, java.sql.Types.VARCHAR);
+				sql.setString(1, messsage);
+				sql.setLong(2, machineID);
+				sql.execute();
+				//璇诲彇杩斿洖鍙傛暟
+				result= sql.getString(3);
+				flag= sql.getString(4);
+				if (result!=null&&result.length()>0){
+					String []results=result.split(",");
+					//寰楀埌瀛樺偍杩囩▼杩斿洖鐨勫�硷紝鏁扮粍绗竴涓负鍦板潃锛岀浜屼釜涓哄��
+					int resultsLength=results.length;
+					int resultsSize=resultsLength/2;
+
+					for(int i=1;i<resultsSize+1;i++){
+						int addressIndex=(i-1)*2;
+						int valueIndex=i*2-1;
+						s7.writeWord(results[addressIndex],Integer.valueOf(results[valueIndex]));//鍙傛暟缁勫啓鍏�
+					}
+//					if(results.length==2){
+//						s7.writeWord(results[0],Integer.valueOf(results[1]) );
+//					}
+//					if(results.length==4){
+//						s7.writeWord(results[0],Integer.valueOf(results[1]));//閰嶆柟
+//						s7.writeWord(results[2],Integer.valueOf(results[3]));//閫熷害
+//					}
+					List<Integer> listWord2=s7.readWord(this.remarks,(this.readSize/2));
+					System.out.println(listWord2.size());
+
+				}
+
+
+			}
+			catch(Exception e){
+				e.printStackTrace();
+			}
+			finally{
+				sn.close();
+
+			}
+
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		finally{
+
+		}
+
+		return "";
+	}
 
 	public void SendPLC(int Address, int count, byte[] buffer, int offset) {
 		this.client.write(Address, count, buffer, offset);
@@ -123,15 +215,7 @@
 				try {
 					java.lang.Thread.sleep(UpadateInterval);
 					if(this.port==102){
-						if(this.machineID==78){
-							S7control s7=new S7control(EPlcType.S1500, ip, port, 0, 0);
-							System.out.println("S7-S1500:"+s7.readWord("DB34.122",  1));
-							s7.writeWord("DB34.122",26);
-							System.out.println("S7-S1500:"+s7.readWord("DB34.122",  1));
-						}else{
-							S7control s7=new S7control(EPlcType.S1200, ip, port, 0, 0);
-							System.out.println("S7-S1200:"+s7.readWord("DB20.0",  1));
-						}
+						String back=onceS7();
 					}else{
 						String back=once();
 					}

--
Gitblit v1.8.0