diff --git a/app/build.gradle b/app/build.gradle index 158675c9..67a77efc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,12 +19,12 @@ android { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - resValue("bool","superAdminTest","false") + resValue("bool", "superAdminTest", "false") } debug { resValue("string", "PORT_NUMBER", "8081") - resValue("bool","superAdminTest","true") + resValue("bool", "superAdminTest", "true") } } @@ -34,6 +34,9 @@ android { } compileOptions { + //启用对新语言API的支持的标志 + coreLibraryDesugaringEnabled true + sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } @@ -122,7 +125,6 @@ dependencies { // implementation files('libs/commons-codec-1.6.jar') - //Modbus implementation 'com.github.licheedev:Modbus4Android:2.0.2' @@ -151,7 +153,7 @@ dependencies { implementation 'com.github.zcweng:switch-button:0.0.3@aar' //阿里云IOT - implementation ('com.aliyun.alink.linksdk:lp-iot-linkkit:1.7.3.2') + implementation('com.aliyun.alink.linksdk:lp-iot-linkkit:1.7.3.2') implementation 'com.github.SheHuan:NiceImageView:1.0.5' @@ -159,9 +161,9 @@ dependencies { // implementation files('libs\\org.eclipse.paho.android.service-1.1.1.jar') // implementation files('libs\\org.eclipse.paho.client.mqttv3-1.2.5.jar') - - - - //S7系列 PLC读取 - implementation 'com.github.s7connector:s7connector:2.0' + //新的plc + implementation 'com.github.xingshuangs:iot-communication:1.5.0' + implementation "org.projectlombok:lombok:1.16.18" + implementation 'org.glassfish:javax.annotation:10.0-b28' + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' } diff --git a/app/src/main/java/com/bonait/bnframework/business/ConfigData.java b/app/src/main/java/com/bonait/bnframework/business/ConfigData.java index 6e9dd8c7..5232a456 100644 --- a/app/src/main/java/com/bonait/bnframework/business/ConfigData.java +++ b/app/src/main/java/com/bonait/bnframework/business/ConfigData.java @@ -6,11 +6,8 @@ import android.graphics.BitmapFactory; import android.os.Handler; import android.os.Message; -import androidx.annotation.NonNull; - import com.bonait.bnframework.R; import com.bonait.bnframework.common.constant.ConfigName; -import com.bonait.bnframework.common.constant.DataBus; import com.bonait.bnframework.common.constant.MessageName; import com.bonait.bnframework.common.db.QueryDB; import com.bonait.bnframework.common.db.mode.BPA_CLOUDDATA; @@ -23,14 +20,12 @@ import com.bonait.bnframework.common.db.mode.BPA_PROCESSModel; import com.bonait.bnframework.common.db.mode.BPA_SYSTEMSET; import com.bonait.bnframework.common.db.mode.Res_PLCADDRESS; import com.bonait.bnframework.common.helper.ConfigUtil; -import com.bonait.bnframework.common.helper.I.IRun; import com.bonait.bnframework.common.helper.I.IRunT; import com.bonait.bnframework.common.helper.Json; import com.bonait.bnframework.common.http.callback.json.JsonDialogCallback; import com.bonait.bnframework.common.image.utils.LocalCacheUtils; import com.bonait.bnframework.common.message.MessageManager; -import com.bonait.bnframework.common.modbus.ModbusTcpHelper; -import com.bonait.bnframework.common.modbus.ModbusTcpServer; +import com.bonait.bnframework.common.modbus.s7.SiemensHelper1; import com.bonait.bnframework.common.model.ResAPI; import com.bonait.bnframework.common.model.mode.ActionJsonMode; import com.bonait.bnframework.common.model.mode.BPA_GoodsAttributeValue; @@ -64,14 +59,11 @@ import com.lzy.okgo.model.Response; import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.HashMap; -import java.util.IdentityHashMap; import java.util.List; -import java.util.Map; import okhttp3.MediaType; import okhttp3.RequestBody; @@ -1136,7 +1128,7 @@ public class ConfigData { * 关闭PLC */ public void ColsePLC() { - ModbusTcpHelper.get().release();//释放modbus + SiemensHelper1.get().Close();//释放modbus ConfigName.getInstance().PlcIsConnect = false; } diff --git a/app/src/main/java/com/bonait/bnframework/business/ExecuteTheRecipe.java b/app/src/main/java/com/bonait/bnframework/business/ExecuteTheRecipe.java index 101a815b..fe25671a 100644 --- a/app/src/main/java/com/bonait/bnframework/business/ExecuteTheRecipe.java +++ b/app/src/main/java/com/bonait/bnframework/business/ExecuteTheRecipe.java @@ -6,44 +6,28 @@ import android.content.ContextWrapper; import android.os.Handler; import android.os.Looper; import android.util.Log; -import android.view.View; import androidx.annotation.NonNull; import com.bonait.bnframework.common.constant.ConfigName; -import com.bonait.bnframework.common.constant.DataBus; -import com.bonait.bnframework.common.constant.MessageName; import com.bonait.bnframework.common.db.QueryDB; -import com.bonait.bnframework.common.db.mode.BPA_GOODS; import com.bonait.bnframework.common.db.mode.BPA_GOODSRECIPE; -import com.bonait.bnframework.common.db.mode.BPA_MATERIAL; import com.bonait.bnframework.common.db.mode.BPA_PLCADDRESS; import com.bonait.bnframework.common.db.mode.BPA_SILOS; -import com.bonait.bnframework.common.helper.ByteHelper; import com.bonait.bnframework.common.helper.I.IRun; import com.bonait.bnframework.common.helper.I.IRunT; import com.bonait.bnframework.common.helper.I.IThread; import com.bonait.bnframework.common.helper.I.IWriteCallBack; import com.bonait.bnframework.common.helper.ThreadManager; -import com.bonait.bnframework.common.message.MessageManager; -import com.bonait.bnframework.common.modbus.ModbusTcpServer; -import com.bonait.bnframework.common.utils.AlertDialogUtils; +import com.bonait.bnframework.common.modbus.s7.SiemensHelper1; import com.bonait.bnframework.common.utils.ToastUtils; -import com.bonait.bnframework.modules.home.fragment.mode.LocationStatus; -import com.bonait.bnframework.modules.home.fragment.mode.MyStatus; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Date; import java.util.HashMap; -import java.util.IdentityHashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import kotlin.UShort; /** * 执行配方 @@ -100,7 +84,7 @@ public class ExecuteTheRecipe { /** * plc 当前版本号 */ - public static String PlcVersion="0001"; + public static String PlcVersion = "0001"; /** * 通知版本号更新显示 */ @@ -108,6 +92,7 @@ public class ExecuteTheRecipe { //endregion //region 强制结束 + /** * 设置强制结束 */ @@ -125,6 +110,7 @@ public class ExecuteTheRecipe { //endregion //region 执行配方 + /** * 执行配方 * @@ -575,10 +561,9 @@ public class ExecuteTheRecipe { val = Integer.parseInt(value); } else { ToastUtils.info("工序:" + key + "," + value); - if(value.contains("自动打火")) - { + if (value.contains("自动打火")) { //WritePLC(value,true,null); - }else //手动打火 + } else //手动打火 { } @@ -718,6 +703,7 @@ public class ExecuteTheRecipe { //endregion //region 主页按钮 + /** * 火力点击 * @@ -798,12 +784,6 @@ public class ExecuteTheRecipe { } } - if (ConfigName.getInstance().PlcIsConnect) { - TempControl(); - ReadPLCStatus(); - - } - } catch (Exception ex) { ToastUtils.error("异常信息:" + ex.getMessage()); } @@ -842,183 +822,6 @@ public class ExecuteTheRecipe { } //endregion - //region PLC基础控制类 - - /** - * 写PLC数据 - * - * @param name - * @param value - */ - public static void WritePLC(String name, Object value, IWriteCallBack callback) { - try { - if (ConfigName.getInstance().PLC_Address.containsKey(name)) { - BPA_PLCADDRESS plcaddress = ConfigName.getInstance().PLC_Address.get(name); - if (!plcaddress.address.isEmpty() && ConfigName.getInstance().PlcIsConnect) { - if (plcaddress.address.toUpperCase().startsWith("VD"))//int - { - ModbusTcpServer.get().WriteInt(plcaddress.address, (int) value, callback); - } else if (plcaddress.address.toUpperCase().startsWith("M"))//bool - { - ModbusTcpServer.get().WriteBool(plcaddress.address, (boolean) value, callback); - } else if (plcaddress.address.toUpperCase().startsWith("VW"))//short - { - ModbusTcpServer.get().WriteShort(plcaddress.address, Short.parseShort(value.toString()), callback); - } - } - } - } catch (Exception ex) { - ToastUtils.error("异常信息:" + ex.getMessage()); - } finally { - - } - } - - /** - * 读PLC数据 - * - * @param name - * @return - */ - public static Object ReadPLC(String name) { - final Object[] ReturnsVariable = {null}; - try { - if (ConfigName.getInstance().PLC_Address.containsKey(name)) { - BPA_PLCADDRESS plcaddress = ConfigName.getInstance().PLC_Address.get(name); - if (!plcaddress.address.isEmpty() && ConfigName.getInstance().PlcIsConnect) { - if (plcaddress.address.toUpperCase().startsWith("VD"))//int - { - ModbusTcpServer.get().ReadInt(plcaddress.address, 1, ints -> { - ReturnsVariable[0] = ints[0]; - }); - } else if (plcaddress.address.toUpperCase().startsWith("M"))//bool - { - ModbusTcpServer.get().ReadBool(plcaddress.address, 1, val -> { - ReturnsVariable[0] = val[0]; - }); - } else if (plcaddress.address.toUpperCase().startsWith("VW"))//short - { - ModbusTcpServer.get().ReadShort(plcaddress.address, 1, val -> { - ReturnsVariable[0] = val[0]; - }); - } - } - } - } catch (Exception ex) { - ToastUtils.error("异常信息:" + ex.getMessage()); - } finally { - return ReturnsVariable[0]; - } - } - - /** - * 实时状态 - */ - public static ConcurrentHashMap IoStatus = new ConcurrentHashMap(); - - /** - * 获取实时状态 - * - * @param ch - * @return - */ - public static boolean getConcurrentHash(int ch) { - if (!IoStatus.containsKey(ch)) { - return false; - } - return IoStatus.get(ch); - } - - /** - * 获取搅拌电机 - * - * @param - * @return - */ - public static int getConcurrentHash_dj(String name) { - if (!ListeningValue.containsKey(name)) { - return 0; - } - Object obj = ListeningValue.get(name); - if (obj == null) { - return 0; - } else { - return (int) obj; - } - } - - /** - * 获取监听变量 - * - * @param - * @return - */ - public static Object getListingValue(String name) { - if (!ListeningValue.containsKey(name)) { - return null; - } - return ListeningValue.get(name); - } - - /** - * 读取状态 - */ - public static void ReadPLCStatus() { - try { - if (ConfigName.getInstance().PlcIsConnect) { - ModbusTcpServer.get().ReadStatus("VW354", 1, data -> { - for (int i = 0; i < data.length; i++) { - byte status = data[i];//0x92 - IoStatus.put(i * 8 + 0, ByteHelper.getBit(status, 0) == 1); - IoStatus.put(i * 8 + 1, ByteHelper.getBit(status, 1) == 1); - IoStatus.put(i * 8 + 2, ByteHelper.getBit(status, 2) == 1); - IoStatus.put(i * 8 + 3, ByteHelper.getBit(status, 3) == 1); - IoStatus.put(i * 8 + 4, ByteHelper.getBit(status, 4) == 1); - IoStatus.put(i * 8 + 5, ByteHelper.getBit(status, 5) == 1); - IoStatus.put(i * 8 + 6, ByteHelper.getBit(status, 6) == 1); - IoStatus.put(i * 8 + 7, ByteHelper.getBit(status, 7) == 1); - } - }); - } - } catch (Exception ex) { - ToastUtils.error("异常信息:" + ex.getMessage()); - } finally { - } - } - - /** - * 温控 - */ - public static void TempControl() { - boolean TempBool = false; - Object val_wd = ExecuteTheRecipe.getListingValue("当前锅底温度"); - int dq_wd = val_wd == null ? 0 : (int) val_wd;//当前锅底温度 - if (dq_wd >= (ConfigName.getInstance().MaxTemp - 5)) //如果当前温度大于最大温度限制 断开 - { - TempBool = true;//设置断开 - } else if (dq_wd <= (ConfigName.getInstance().MaxTemp - 20))//需要闭合 - { - TempBool = false;//闭合 - } - - Object tempkg = ExecuteTheRecipe.ReadPLC("温控开关"); - if (tempkg != null) { - boolean kg = (boolean) tempkg; - if (TempBool) //设置断开 - { - if (kg == false) { - ExecuteTheRecipe.WritePLC("温控开关", true, null);//断开 - } - } else //设置闭合 - { - if (kg) { - ExecuteTheRecipe.WritePLC("温控开关", false, null);//闭合 - } - } - } - } - //endregion - //region 获取基础挡位变量 /** @@ -1073,6 +876,7 @@ public class ExecuteTheRecipe { //endregion //region 延迟函数 + /** * 线程延迟函数(避免线程阻塞等待) * @@ -1094,8 +898,8 @@ public class ExecuteTheRecipe { int time = (int) ((endTime - startTime) / 1000); ExecuteTheRecipe.showlog("工序线程等待结束-------总耗时:" + time); } - - /** + + /** * 线程等待 * * @param name @@ -1159,61 +963,64 @@ public class ExecuteTheRecipe { //endregion //region 获取默认工艺 + /** * 获取搅拌 - * @param sd 0-50 + * + * @param sd 0-50 * @return */ - public static BPA_GOODSRECIPE Get搅拌(int sd) - { + public static BPA_GOODSRECIPE Get搅拌(int sd) { BPA_GOODSRECIPE pf = new BPA_GOODSRECIPE(); - pf.materialType=1; - pf.processname="搅拌"; - pf.processms="搅拌("+sd+",0)"; - pf.processvalue="搅拌速度,"+sd+"|等待(秒),0"; + pf.materialType = 1; + pf.processname = "搅拌"; + pf.processms = "搅拌(" + sd + ",0)"; + pf.processvalue = "搅拌速度," + sd + "|等待(秒),0"; return pf; } /** * 获取搅拌 - * @param data 自动打火、手动打火 + * + * @param data 自动打火、手动打火 * @return */ - public static BPA_GOODSRECIPE Get打火(String data) - { + public static BPA_GOODSRECIPE Get打火(String data) { BPA_GOODSRECIPE pf = new BPA_GOODSRECIPE(); - pf.materialType=1; - pf.processname="打火"; - pf.processms="打火("+data+",0)"; - pf.processvalue="打火动作,"+data+"|等待(秒),0"; + pf.materialType = 1; + pf.processname = "打火"; + pf.processms = "打火(" + data + ",0)"; + pf.processvalue = "打火动作," + data + "|等待(秒),0"; return pf; } + /** * 获取位置 + * * @param * @return */ - public static BPA_GOODSRECIPE Get位置(String name) - { + public static BPA_GOODSRECIPE Get位置(String name) { BPA_GOODSRECIPE pf = new BPA_GOODSRECIPE(); - pf.materialType=1; - pf.processname="位置"; - pf.processms="位置("+name+",0)"; - pf.processvalue="位置动作,"+name+"|等待(秒),0"; + pf.materialType = 1; + pf.processname = "位置"; + pf.processms = "位置(" + name + ",0)"; + pf.processvalue = "位置动作," + name + "|等待(秒),0"; return pf; } + /** * 获取手动主料 * * @param * @return */ - public static BPA_GOODSRECIPE Get主料(int k1,int k2,int k3,int k4,int temp,int zl) { + public static BPA_GOODSRECIPE Get主料(int k1, int k2, int k3, int k4, int temp, int zl) { BPA_GOODSRECIPE pf = new BPA_GOODSRECIPE(); pf.materialType = 1; pf.processname = "主料"; - pf.processms = String.format("主料(未知,%d,%d,%d,%d,%d,%d,%d",k1,k2,k3,k4,temp,zl,0); - pf.processvalue = String.format("主料名称,未知|一环功率,%d|二环功率,%d|三环功率,%d|四环功率,%d|温度设定,%d|锅内重量,%d|烹饪(秒),%d",k1,k2,k3,k4,temp,zl,0); + pf.processms = String.format("主料(未知,%d,%d,%d,%d,%d,%d,%d", k1, k2, k3, k4, temp, zl, 0); + pf.processvalue = String.format("主料名称,未知|一环功率,%d|二环功率,%d|三环功率,%d|四环功率,%d|温度设定,%d|锅内重量,%d|烹饪(秒),%d", k1, k2, k3, k4, temp, zl, 0); return pf; } @@ -1223,12 +1030,12 @@ public class ExecuteTheRecipe { * @param * @return */ - public static BPA_GOODSRECIPE Get约束条件(int k1,int k2,int k3,int k4,int temp,int zl) { + public static BPA_GOODSRECIPE Get约束条件(int k1, int k2, int k3, int k4, int temp, int zl) { BPA_GOODSRECIPE pf = new BPA_GOODSRECIPE(); pf.materialType = 1; pf.processname = "约束条件"; - pf.processms = String.format("约束条件(%d,%d,%d,%d,%d,%d,%d",k1,k2,k3,k4,temp,zl,0); - pf.processvalue = String.format("一环功率,%d|二环功率,%d|三环功率,%d|四环功率,%d|温度设定,%d|锅内重量,%d|烹饪(秒),%d",k1,k2,k3,k4,temp,zl,0); + pf.processms = String.format("约束条件(%d,%d,%d,%d,%d,%d,%d", k1, k2, k3, k4, temp, zl, 0); + pf.processvalue = String.format("一环功率,%d|二环功率,%d|三环功率,%d|四环功率,%d|温度设定,%d|锅内重量,%d|烹饪(秒),%d", k1, k2, k3, k4, temp, zl, 0); return pf; } @@ -1256,32 +1063,33 @@ public class ExecuteTheRecipe { return null; } } + /** * 获取延迟 + * * @param time * @return */ - public static BPA_GOODSRECIPE Get延迟(int time) - { + public static BPA_GOODSRECIPE Get延迟(int time) { BPA_GOODSRECIPE pf = new BPA_GOODSRECIPE(); - pf.materialType=1; - pf.processname="延迟"; - pf.processms="延迟("+time+")"; - pf.processvalue="等待(秒),"+time; + pf.materialType = 1; + pf.processname = "延迟"; + pf.processms = "延迟(" + time + ")"; + pf.processvalue = "等待(秒)," + time; return pf; } /** * 获取出菜 + * * @return */ - public static BPA_GOODSRECIPE Get出菜(int k) - { + public static BPA_GOODSRECIPE Get出菜(int k) { BPA_GOODSRECIPE pf = new BPA_GOODSRECIPE(); - pf.materialType=1; - pf.processname="出菜"; - pf.processms="出菜("+k+")"; - pf.processvalue="等待(秒),"+k; + pf.materialType = 1; + pf.processname = "出菜"; + pf.processms = "出菜(" + k + ")"; + pf.processvalue = "等待(秒)," + k; return pf; } @@ -1299,8 +1107,8 @@ public class ExecuteTheRecipe { return pf; } //endregion - - //region 显示日志 + + //region 显示日志 /** * 显示日志 @@ -1310,4 +1118,82 @@ public class ExecuteTheRecipe { ToastUtils.info(msg); } //endregion + + //region PLC控制类 + + /** + * 写PLC数据 + * + * @param name + * @param value + */ + public static void WritePLC(String name, Object value, IWriteCallBack callback) { + try { + if (ConfigName.getInstance().PLC_Address.containsKey(name)) { + BPA_PLCADDRESS plcaddress = ConfigName.getInstance().PLC_Address.get(name); + if (!plcaddress.address.isEmpty() && ConfigName.getInstance().PlcIsConnect) { + SiemensHelper1.get().writePLC(plcaddress.address, value); + } + } + } catch (Exception ex) { + ToastUtils.error("异常信息:" + ex.getMessage()); + } finally { + } + } + + /** + * 读PLC数据 + * + * @param name + * @return + */ + public static Object ReadPLC(String name) { + final Object[] ReturnsVariable = {null}; + try { + if (ConfigName.getInstance().PLC_Address.containsKey(name)) { + BPA_PLCADDRESS plcaddress = ConfigName.getInstance().PLC_Address.get(name); + if (!plcaddress.address.isEmpty() && ConfigName.getInstance().PlcIsConnect) { + + ReturnsVariable[0] = SiemensHelper1.get().readPLC(plcaddress.address); + } + } + } catch (Exception ex) { + ToastUtils.error("异常信息:" + ex.getMessage()); + } finally { + return ReturnsVariable[0]; + } + } + + + /** + * 获取搅拌电机 + * + * @param + * @return + */ + public static int getConcurrentHash_dj(String name) { + if (!ListeningValue.containsKey(name)) { + return 0; + } + Object obj = ListeningValue.get(name); + if (obj == null) { + return 0; + } else { + return (int) obj; + } + } + + /** + * 获取监听变量 + * + * @param + * @return + */ + public static Object getListingValue(String name) { + if (!ListeningValue.containsKey(name)) { + return null; + } + return ListeningValue.get(name); + } + //endregion } diff --git a/app/src/main/java/com/bonait/bnframework/business/MainInit.java b/app/src/main/java/com/bonait/bnframework/business/MainInit.java index 9eecd363..835b5c89 100644 --- a/app/src/main/java/com/bonait/bnframework/business/MainInit.java +++ b/app/src/main/java/com/bonait/bnframework/business/MainInit.java @@ -26,7 +26,6 @@ import com.bonait.bnframework.common.helper.I.IMessageLogNotify; import com.bonait.bnframework.common.helper.LogcatHelper; import com.bonait.bnframework.common.helper.MessageLog; import com.bonait.bnframework.common.helper.SdCart; -import com.bonait.bnframework.common.modbus.ModbusTcpHelper; import com.bonait.bnframework.common.notification.MainNotification; import com.bonait.bnframework.common.utils.AppUtils; import com.bonait.bnframework.common.utils.NetworkUtils; @@ -260,29 +259,29 @@ public class MainInit { public void ErrorMsg(String msg) { if(msg.contains("msg:com.serotonin.modbus4j.exception")) { - if(msg.contains("主设备")) - { -// ModbusTcpMainHelper.get().release();//释放modbus -// ConfigName.getInstance().PlcMainIsConnect=false; +// if(msg.contains("主设备")) +// { +//// ModbusTcpMainHelper.get().release();//释放modbus +//// ConfigName.getInstance().PlcMainIsConnect=false; +//// BPA_ALERTLOG log = new BPA_ALERTLOG(); +//// log.userID = ConfigName.getInstance().user.userID; +//// log.type=4; +//// log.text = msg+"主程序断开PLC,准备重连机制..."; +//// QueryDB.AddAlertlog(log); +//// Log.e("主控PLC", "主控PLC: 连接断开"); +// +// }else if(msg.contains("PLC设备")) +// { +// ModbusTcpHelper.get().release();//释放modbus +// ConfigName.getInstance().PlcIsConnect=false; // BPA_ALERTLOG log = new BPA_ALERTLOG(); // log.userID = ConfigName.getInstance().user.userID; // log.type=4; -// log.text = msg+"主程序断开PLC,准备重连机制..."; +// log.text = msg+"PLC程序断开PLC,准备重连机制..."; // QueryDB.AddAlertlog(log); -// Log.e("主控PLC", "主控PLC: 连接断开"); - - }else if(msg.contains("PLC设备")) - { - ModbusTcpHelper.get().release();//释放modbus - ConfigName.getInstance().PlcIsConnect=false; - BPA_ALERTLOG log = new BPA_ALERTLOG(); - log.userID = ConfigName.getInstance().user.userID; - log.type=4; - log.text = msg+"PLC程序断开PLC,准备重连机制..."; - QueryDB.AddAlertlog(log); - Log.e("设备PLC", "设备PLC: 连接断开"); - - } +// Log.e("设备PLC", "设备PLC: 连接断开"); +// +// } } } diff --git a/app/src/main/java/com/bonait/bnframework/common/constant/ConfigName.java b/app/src/main/java/com/bonait/bnframework/common/constant/ConfigName.java index b0f17725..e77a21cc 100644 --- a/app/src/main/java/com/bonait/bnframework/common/constant/ConfigName.java +++ b/app/src/main/java/com/bonait/bnframework/common/constant/ConfigName.java @@ -234,159 +234,108 @@ public class ConfigName { */ public List PlcAddress_燃气大炒 = new ArrayList() {{ - //硬件设备 初始化 - add(new Res_PLCADDRESS("硬件设备", "-------------", 0, 0)); - add(new Res_PLCADDRESS("初始化", "M10.0", 1, 1)); - add(new Res_PLCADDRESS("停止", "M10.1", 1, 1)); - add(new Res_PLCADDRESS("复位", "M10.2", 0, 1)); - - //搅拌模型 - add(new Res_PLCADDRESS("模型控制", "-------------", 0, 0)); - add(new Res_PLCADDRESS("搅拌", "M10.3", 0, 1)); - add(new Res_PLCADDRESS("搅拌速度", "VW102", 1, 1)); - - //翻转正转模型 - add(new Res_PLCADDRESS("翻转正转", "M10.4", 0, 1)); - add(new Res_PLCADDRESS("翻转反转", "M10.5", 0, 1)); - add(new Res_PLCADDRESS("转动速度", "VW104", 1, 1)); - - - //加热模型 - add(new Res_PLCADDRESS("加热", "M10.6", 0, 1)); - add(new Res_PLCADDRESS("加热功率", "VW100", 1, 1)); - add(new Res_PLCADDRESS("温控开关", "M17.6", 1, 1)); - add(new Res_PLCADDRESS("暂停开关", "M17.7", 1, 1)); - - //主料 - add(new Res_PLCADDRESS("主料", "M17.4", 0, 1)); - - //抽水放水 - add(new Res_PLCADDRESS("炒锅抽水", "M10.7", 0, 1)); - add(new Res_PLCADDRESS("炒锅放水", "M11.0", 0, 1)); - - - //出菜模型 - add(new Res_PLCADDRESS("出菜", "M11.5", 0, 1)); - - - //位置动作 - add(new Res_PLCADDRESS("原点位", "M11.4", 0, 1)); - add(new Res_PLCADDRESS("倒菜位", "M12.7", 0, 1)); - add(new Res_PLCADDRESS("抽料位", "M11.7", 0, 1)); - add(new Res_PLCADDRESS("清洗位", "M13.0", 0, 1)); - add(new Res_PLCADDRESS("炒菜位1", "M12.0", 0, 1)); - add(new Res_PLCADDRESS("炒菜位2", "M12.1", 0, 1)); - add(new Res_PLCADDRESS("炒菜位3", "M12.2", 0, 1)); - - add(new Res_PLCADDRESS("出餐启动", "M11.5", 0, 1)); - add(new Res_PLCADDRESS("炒锅清洗", "M11.6", 0, 1)); - - //液体料模型 - add(new Res_PLCADDRESS("料仓校准", "-------------", 0, 0)); - add(new Res_PLCADDRESS("校准时间", "VW112", 1, 1)); - add(new Res_PLCADDRESS("料仓1校准开关", "M12.3", 0, 1)); - add(new Res_PLCADDRESS("料仓1校准值", "VW114", 1, 1)); - add(new Res_PLCADDRESS("料仓2校准开关", "M12.4", 0, 1)); - add(new Res_PLCADDRESS("料仓2校准值", "VW116", 1, 1)); - add(new Res_PLCADDRESS("料仓3校准开关", "M12.5", 0, 1)); - add(new Res_PLCADDRESS("料仓3校准值", "VW118", 1, 1)); - add(new Res_PLCADDRESS("料仓4校准开关", "M13.5", 0, 1)); - add(new Res_PLCADDRESS("料仓4校准值", "VW120", 1, 1)); - add(new Res_PLCADDRESS("开始校正", "M12.6", 0, 1)); - - add(new Res_PLCADDRESS("料仓自动", "-------------", 0, 0)); - add(new Res_PLCADDRESS("料仓1需求值", "VW106", 1, 1)); - add(new Res_PLCADDRESS("料仓1下料", "M11.1", 0, 1)); - add(new Res_PLCADDRESS("料仓2需求值", "VW108", 1, 1)); - add(new Res_PLCADDRESS("料仓2下料", "M11.2", 0, 1)); - add(new Res_PLCADDRESS("料仓3需求值", "VW110", 1, 1)); - add(new Res_PLCADDRESS("料仓3下料", "M11.3", 0, 1)); - add(new Res_PLCADDRESS("料仓4需求值", "VW122", 1, 1)); - add(new Res_PLCADDRESS("料仓4下料", "M13.4", 0, 1)); - - add(new Res_PLCADDRESS("料仓手动", "-------------", 0, 0)); - add(new Res_PLCADDRESS("料仓1手动开关", "M13.1", 1, 1)); - add(new Res_PLCADDRESS("料仓2手动开关", "M13.2", 1, 1)); - add(new Res_PLCADDRESS("料仓3手动开关", "M13.3", 1, 1)); - add(new Res_PLCADDRESS("料仓4手动开关", "M10.7", 1, 1)); - //上下限 - add(new Res_PLCADDRESS("位置上下限", "-------------", 0, 0)); - add(new Res_PLCADDRESS("原点位置下限", "VD150", 1, 1)); - add(new Res_PLCADDRESS("原点位置上限", "VD154", 1, 1)); - add(new Res_PLCADDRESS("洗锅位置下限", "VD158", 1, 1)); - add(new Res_PLCADDRESS("洗锅位置上限", "VD162", 1, 1)); - add(new Res_PLCADDRESS("倒菜位置下限", "VD166", 1, 1)); - add(new Res_PLCADDRESS("倒菜位置上限", "VD170", 1, 1)); - add(new Res_PLCADDRESS("抽调料位置下限", "VD174", 1, 1)); - add(new Res_PLCADDRESS("抽调料位置上限", "VD178", 1, 1)); - add(new Res_PLCADDRESS("1#炒制位置下限", "VD182", 1, 1)); - add(new Res_PLCADDRESS("1#炒制位置上限", "VD186", 1, 1)); - add(new Res_PLCADDRESS("2#炒制位置下限", "VD190", 1, 1)); - add(new Res_PLCADDRESS("2#炒制位置上限", "VD194", 1, 1)); - add(new Res_PLCADDRESS("3#炒制位置下限", "VD198", 1, 1)); - add(new Res_PLCADDRESS("3#炒制位置上限", "VD202", 1, 1)); - add(new Res_PLCADDRESS("炒锅工作范围下限", "VD206", 1, 1)); - add(new Res_PLCADDRESS("炒锅工作范围上限", "VD210", 1, 1)); - - //反馈信号 - add(new Res_PLCADDRESS("反馈信号", "-------------", 0, 0)); - add(new Res_PLCADDRESS("初始化完成", "M40.0", 1, 0)); - add(new Res_PLCADDRESS("设备急停", "M40.1", 1, 0)); - add(new Res_PLCADDRESS("原点位反馈", "M40.2", 1, 0)); - add(new Res_PLCADDRESS("抽料位反馈", "M40.3", 1, 0)); - add(new Res_PLCADDRESS("炒菜位1反馈", "M40.4", 1, 0)); - add(new Res_PLCADDRESS("炒菜位2反馈", "M40.5", 1, 0)); - add(new Res_PLCADDRESS("炒菜位3反馈", "M40.6", 1, 0)); - add(new Res_PLCADDRESS("倒菜位反馈", "M40.7", 1, 0)); - add(new Res_PLCADDRESS("投料位反馈", "M41.0", 1, 0)); - add(new Res_PLCADDRESS("清洗位反馈", "M41.1", 1, 0)); - add(new Res_PLCADDRESS("料仓1下料完成", "M41.2", 1, 0)); - add(new Res_PLCADDRESS("料仓2下料完成", "M41.3", 1, 0)); - add(new Res_PLCADDRESS("料仓3下料完成", "M41.4", 1, 0)); - add(new Res_PLCADDRESS("料仓4下料完成", "M42.0", 1, 0)); - add(new Res_PLCADDRESS("炒锅清洗反馈", "M41.5", 1, 0)); - add(new Res_PLCADDRESS("出餐启动反馈", "M41.6", 1, 0)); - add(new Res_PLCADDRESS("炒锅倒菜减速位", "M41.7", 1, 0)); - add(new Res_PLCADDRESS("心跳位", "VW1000", 0, 1)); - - - //检测信号 - add(new Res_PLCADDRESS("监测信号", "-------------", 0, 0)); - add(new Res_PLCADDRESS("当前锅底温度", "VD300", 1, 0)); - add(new Res_PLCADDRESS("炒锅搅拌转速", "VD304", 1, 0)); - add(new Res_PLCADDRESS("当前加热档位", "VD308", 1, 0)); - add(new Res_PLCADDRESS("炒锅当前电压", "VD312", 1, 0)); - add(new Res_PLCADDRESS("炒锅当前电流", "VD316", 1, 0)); - add(new Res_PLCADDRESS("炒锅当前功率", "VD320", 1, 0)); - add(new Res_PLCADDRESS("搅拌频率", "VW324", 1, 0)); - add(new Res_PLCADDRESS("搅拌电机电流", "VW326", 1, 0)); - add(new Res_PLCADDRESS("搅拌电机电压", "VW328", 1, 0)); - add(new Res_PLCADDRESS("搅拌变频器温度", "VW330", 1, 0)); - add(new Res_PLCADDRESS("翻转频率", "VW332", 1, 0)); - add(new Res_PLCADDRESS("翻转电机电流", "VW334", 1, 0)); - add(new Res_PLCADDRESS("翻转电机电压", "VW336", 1, 0)); - add(new Res_PLCADDRESS("翻转变频器温度", "VW338", 1, 0)); - add(new Res_PLCADDRESS("编码器当前位值", "VD340", 1, 0)); - - //状态上报 - add(new Res_PLCADDRESS("状态上报", "-------------", 0, 0)); - add(new Res_PLCADDRESS("搅拌电机", "VW350", 1, 0)); - add(new Res_PLCADDRESS("翻转电机", "VW352", 1, 0)); - add(new Res_PLCADDRESS("炒锅", "VW354", 1, 0)); + //PLC输入 + add(new Res_PLCADDRESS("监控信号一", "-------------", 0, 0)); + add(new Res_PLCADDRESS("监控_急停按钮", "V20.0", 1, 0)); + add(new Res_PLCADDRESS("监控_搅拌上限", "V20.1", 1, 0)); + add(new Res_PLCADDRESS("监控_搅拌下限", "V20.2", 1, 0)); + add(new Res_PLCADDRESS("监控_锅后限位", "V20.3", 1, 0)); + add(new Res_PLCADDRESS("监控_搅拌原点", "V20.4", 1, 0)); + add(new Res_PLCADDRESS("监控_油泵故障", "V20.5", 1, 0)); + add(new Res_PLCADDRESS("监控_变频器故障", "V20.6", 1, 0)); + add(new Res_PLCADDRESS("监控_点火正常", "V20.7", 1, 0)); + add(new Res_PLCADDRESS("监控_点火异常", "V21.0", 1, 0)); + add(new Res_PLCADDRESS("监控_备用输入1", "V21.1", 1, 0)); + add(new Res_PLCADDRESS("监控_备用输入2", "V21.2", 1, 0)); + add(new Res_PLCADDRESS("监控_备用输入3", "V21.3", 1, 0)); + add(new Res_PLCADDRESS("监控_备用输入4", "V21.4", 1, 0)); + add(new Res_PLCADDRESS("监控_备用输入5", "V21.5", 1, 0)); + add(new Res_PLCADDRESS("监控_备用输入6", "V21.6", 1, 0)); + add(new Res_PLCADDRESS("监控_备用输入7", "V21.7", 1, 0)); + + //监控信号二 + add(new Res_PLCADDRESS("监控信号二", "-------------", 0, 0)); + add(new Res_PLCADDRESS("监控-油泵", "V50.0", 1, 0)); + add(new Res_PLCADDRESS("监控-搅拌", "V50.1", 1, 0)); + add(new Res_PLCADDRESS("监控-强火", "V50.2", 1, 0)); + add(new Res_PLCADDRESS("监控-小火", "V50.3", 1, 0)); + add(new Res_PLCADDRESS("监控-中火", "V50.4", 1, 0)); + add(new Res_PLCADDRESS("监控-大火", "V50.5", 1, 0)); + add(new Res_PLCADDRESS("监控-点火复位", "V50.6", 1, 0)); + add(new Res_PLCADDRESS("监控-点火自动", "V50.7", 1, 0)); + add(new Res_PLCADDRESS("监控-点火手动", "V51.0", 1, 0)); + add(new Res_PLCADDRESS("监控-报警", "V51.1", 1, 0)); + add(new Res_PLCADDRESS("监控-搅拌上升", "V51.2", 1, 0)); + add(new Res_PLCADDRESS("监控-搅拌下降", "V51.3", 1, 0)); + add(new Res_PLCADDRESS("监控-锅前", "V51.4", 1, 0)); + add(new Res_PLCADDRESS("监控-锅后", "V51.5", 1, 0)); + add(new Res_PLCADDRESS("监控-备用泵", "V51.6", 1, 0)); + add(new Res_PLCADDRESS("监控-备用气缸", "V51.7", 1, 0)); + + //故障类 + add(new Res_PLCADDRESS("故障信号", "-------------", 0, 0)); + add(new Res_PLCADDRESS("急停按下!", "V101.0", 1, 0)); + add(new Res_PLCADDRESS("油泵故障!", "V101.1", 1, 0)); + add(new Res_PLCADDRESS("搅拌故障!", "V101.2", 1, 0)); + add(new Res_PLCADDRESS("点火异常!", "V101.3", 1, 0)); + add(new Res_PLCADDRESS("高温报警!", "V101.4", 1, 0)); + add(new Res_PLCADDRESS("备用故障1", "V101.5", 1, 0)); + add(new Res_PLCADDRESS("备用故障2", "V101.5", 1, 0)); + add(new Res_PLCADDRESS("备用故障3", "V101.5", 1, 0)); + + //控制模型 + add(new Res_PLCADDRESS("主运行画面", "-------------", 0, 0)); + add(new Res_PLCADDRESS("系统启停开关", "V220.0", 0, 1)); + add(new Res_PLCADDRESS("超温停气开关", "V220.1", 0, 1)); + add(new Res_PLCADDRESS("点火启动开关", "V220.2", 0, 1)); + add(new Res_PLCADDRESS("点火复位开关", "V220.3", 0, 1)); + add(new Res_PLCADDRESS("点火手自动切换开关", "V220.4", 0, 1)); + add(new Res_PLCADDRESS("小火开关(一圈)", "V220.5", 0, 1)); + add(new Res_PLCADDRESS("中火开关(二圈)", "V220.6", 0, 1)); + add(new Res_PLCADDRESS("大火开关(三圈)", "V220.7", 0, 1)); + add(new Res_PLCADDRESS("强火开关(四圈)", "V221.0", 0, 1)); + add(new Res_PLCADDRESS("小火比例阀开度", "VD1500", 0, 1)); + add(new Res_PLCADDRESS("中火比例阀开度", "VD1504", 0, 1)); + add(new Res_PLCADDRESS("大火比例阀开度", "VD1508", 0, 1)); + add(new Res_PLCADDRESS("强火比例阀开度", "VD1512", 0, 1)); + add(new Res_PLCADDRESS("搅拌点动开关", "V221.1", 0, 1)); + add(new Res_PLCADDRESS("搅拌启动开关", "V221.2", 0, 1)); + add(new Res_PLCADDRESS("搅拌停止开关", "V221.3", 0, 1)); + add(new Res_PLCADDRESS("搅拌速度", "VD1200", 0, 1)); + add(new Res_PLCADDRESS("炒锅当前温度", "VD2250", 0, 1)); + add(new Res_PLCADDRESS("炒锅温度修正", "VD1204", 0, 1)); + add(new Res_PLCADDRESS("炒锅温度上限设置", "VD1828", 0, 1)); + + + //升降画面 + add(new Res_PLCADDRESS("升降画面", "-------------", 0, 0)); + add(new Res_PLCADDRESS("搅拌上升", "V221.4", 1, 1)); + add(new Res_PLCADDRESS("搅拌下降", "V221.5", 1, 1)); + add(new Res_PLCADDRESS("锅口向前", "V221.6", 1, 1)); + add(new Res_PLCADDRESS("锅口向后", "V221.7", 1, 1)); + + //称重画面 + add(new Res_PLCADDRESS("称重画面", "-------------", 0, 0)); + add(new Res_PLCADDRESS("抽油开关", "V222.0", 1, 1)); + add(new Res_PLCADDRESS("备用气缸开关", "V222.1", 1, 1)); + add(new Res_PLCADDRESS("炒锅当前重量", "VD500", 1, 0)); + add(new Res_PLCADDRESS("设定重量", "VD510", 0, 1)); + add(new Res_PLCADDRESS("设定提前量", "VD514", 0, 1)); + + //称重画面 + add(new Res_PLCADDRESS("心跳", "-------------", 0, 0)); + add(new Res_PLCADDRESS("上位机-PLC", "V280.0", 1, 1)); + add(new Res_PLCADDRESS("PLC-上位机", "V280.1", 1, 1)); }}; /** * 大炒工序模型 */ public List Process_燃气大炒 = new ArrayList() {{ - add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "等待(秒)"))); - add(new ProcessT("打火", Arrays.asList("打火动作", "等待(秒)"))); - add(new ProcessT("位置", Arrays.asList("位置动作", "等待(秒)"))); - add(new ProcessT("约束条件", Arrays.asList("一环功率", "二环功率", "三环功率", "四环功率", "温度设定", "锅内重量", "等待(秒)"))); - add(new ProcessT("主料", Arrays.asList("主料名称", "一环功率", "二环功率", "三环功率", "四环功率", "温度设定", "锅内重量", "烹饪(秒)"))); add(new ProcessT("物料", Arrays.asList())); - add(new ProcessT("延迟", Arrays.asList("等待(秒)"))); - add(new ProcessT("出菜", Arrays.asList("等待(秒)"))); - add(new ProcessT("清洗", Arrays.asList("等待(秒)"))); + add(new ProcessT("主料", Arrays.asList("主料名称"))); + add(new ProcessT("搅拌", Arrays.asList("搅拌速度","搅拌状态"))); + add(new ProcessT("火力设置", Arrays.asList("一环功率", "二环功率", "三环功率", "四环功率"))); + add(new ProcessT("约束条件", Arrays.asList("温度设定", "锅内重量", "等待(秒)"))); }}; /** @@ -397,8 +346,8 @@ public class ConfigName { */ public String GetProcessTypeVal(String item) { String data = ""; - if (item.equals("打火动作")) { - data = "自动打火、手动打火"; + if (item.equals("搅拌状态")) { + data = "启动、停止"; } else if (item.equals("位置动作")) { data = "炒菜位、倒菜位、清洗位"; } @@ -468,40 +417,7 @@ public class ConfigName { add(new StatusMode("搅拌电机变频器通讯异常", false, R.mipmap.bpq, R.mipmap.bpq, 6)); add(new StatusMode("翻转电机变频器通讯异常", false, R.mipmap.bpq, R.mipmap.bpq, 7)); }}; - /** - * 电机状态上报信息 - */ - public ConcurrentHashMap statusModes_电机 = new ConcurrentHashMap() {{ - put(0, "无故障"); - put(1, "过电流"); - put(2, "过电压"); - put(3, "IGBT过热"); - put(4, ""); - put(5, "变频器过负载"); - put(6, "电机过负载"); - put(7, "过转矩"); - put(8, "外部异常"); - put(9, "加速中过电流"); - put(10, "减速中过电流"); - put(11, "恒速中过电流"); - put(12, ""); - put(13, "电压不足"); - put(14, "输入电压缺相"); - put(15, ""); - put(16, "不适用自动加减速设定"); - put(17, "软件参数密码保护"); - put(18, "CPU写入异常"); - put(19, "CPU读取异常"); - put(20, "端子保护线路异常"); - put(21, "0V保护线路异常"); - put(22, ""); - put(23, ""); - put(24, "U相硬件异常"); - put(25, "V相硬件异常"); - put(26, "W相硬件异常"); - put(27, "DC,bus 硬件异常"); - }}; /** * Bottom 按钮 diff --git a/app/src/main/java/com/bonait/bnframework/common/modbus/ModbusTcpHelper.java b/app/src/main/java/com/bonait/bnframework/common/modbus/ModbusTcpHelper.java deleted file mode 100644 index 47e0bea5..00000000 --- a/app/src/main/java/com/bonait/bnframework/common/modbus/ModbusTcpHelper.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.bonait.bnframework.common.modbus; - -import com.licheedev.modbus4android.ModbusWorker; -import com.serotonin.modbus4j.ModbusMaster; - - -public class ModbusTcpHelper extends ModbusWorker { - private static volatile ModbusTcpHelper instance = null; - - public static ModbusTcpHelper get() { - ModbusTcpHelper manager = instance; - if (manager == null) { - synchronized (ModbusTcpHelper.class) { - manager = instance; - if (manager == null) { - manager = new ModbusTcpHelper(); - instance = manager; - } - } - } - return manager; - } - - private ModbusTcpHelper() { - } - - /** - * 释放整个ModbusManager,单例会被置null - */ - public synchronized void release() { - super.release(); - instance = null; - } - - /** - * 获取 - * @return - */ - public synchronized ModbusMaster getModbusMaster() - { - return super.getModbusMaster(); - } - -} diff --git a/app/src/main/java/com/bonait/bnframework/common/modbus/ModbusTcpServer.java b/app/src/main/java/com/bonait/bnframework/common/modbus/ModbusTcpServer.java deleted file mode 100644 index e776f9fa..00000000 --- a/app/src/main/java/com/bonait/bnframework/common/modbus/ModbusTcpServer.java +++ /dev/null @@ -1,718 +0,0 @@ -package com.bonait.bnframework.common.modbus; - - -import android.os.Looper; -import android.util.Log; - -import com.bonait.bnframework.MainApplication; -import com.bonait.bnframework.business.ConfigData; -import com.bonait.bnframework.common.constant.ConfigName; -import com.bonait.bnframework.common.constant.DataBus; -import com.bonait.bnframework.common.helper.DataFormat; -import com.bonait.bnframework.common.helper.I.IReadCallBack; -import com.bonait.bnframework.common.helper.I.IWriteCallBack; -import com.bonait.bnframework.common.helper.MessageLog; -import com.bonait.bnframework.common.utils.ToastUtils; -import com.licheedev.modbus4android.ModbusCallback; -import com.licheedev.modbus4android.ModbusParam; -import com.licheedev.modbus4android.ModbusRespException; -import com.licheedev.modbus4android.param.TcpParam; -import com.serotonin.modbus4j.ModbusMaster; -import com.serotonin.modbus4j.exception.ModbusInitException; -import com.serotonin.modbus4j.exception.ModbusTransportException; -import com.serotonin.modbus4j.msg.ReadCoilsResponse; -import com.serotonin.modbus4j.msg.ReadHoldingRegistersResponse; - -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.LineNumberReader; -import java.io.UnsupportedEncodingException; -import java.nio.ByteBuffer; -import java.util.Arrays; -import java.util.concurrent.ExecutionException; - - -public class ModbusTcpServer { - private static volatile ModbusTcpServer instance = null; - - public static ModbusTcpServer get() { - ModbusTcpServer manager = instance; - if (manager == null) { - synchronized (ModbusTcpServer.class) { - manager = instance; - if (manager == null) { - manager = new ModbusTcpServer(); - instance = manager; - } - } - } - return manager; - } - - private ModbusTcpServer() { - } - - static ModbusParam param; - - private int GetAddress(String address) { - if (address == null) return -1; - if (address.length() > 0) { - address = address.trim(); - if (address.toUpperCase().contains("M") && address.length() >= 4) { - String[] res = address.substring(1).split("[.]"); - if (res != null && res.length == 2) { - try { - int firstAdd = Integer.parseInt(res[0]); - int endAdd = Integer.parseInt(res[1]); - if (endAdd >= 0 && endAdd <= 7) { - return (firstAdd * 8) + 320 + endAdd; - } - } catch (NumberFormatException e) { - return -1; - } - } - } else if (address.toUpperCase().contains("I") && address.length() >= 4) { - String[] res = address.substring(1).split("[.]"); - if (res != null && res.length == 2) { - try { - int firstAdd = Integer.parseInt(res[0]); - int endAdd = Integer.parseInt(res[1]); - if (endAdd >= 0 && endAdd <= 7) { - return (firstAdd * 8) + endAdd; - } - } catch (NumberFormatException e) { - return -1; - } - } - } else if ((address.toUpperCase().contains("VW") || address.toUpperCase().contains("VD")) && address.length() >= 3) { - String res = address.substring(2); - if (res != null) { - try { - int tempAdd = Integer.parseInt(res); - return (tempAdd / 2) + 100; - } catch (NumberFormatException e) { - return -1; - } - } - } else { - try { - return Integer.parseInt(address); - } catch (NumberFormatException e) { - return -1; - } - } - } - return -1; - } - - /** - * 获取布尔位地址信息 - * 列:M2.5 = getBitSingleAdd("M",2,5); - * - * @param Prefix 地址标头 - * @param startAdd 起始地址编号 - * @param num 要获取的第几位数量 - * @return - */ - public String getBitSingleAdd(String Prefix, int startAdd, int num) { - if (num > 0) { - int FirstAdd = num / 8; - int EndAdd = num % 8; - if (EndAdd == 0) { - FirstAdd--; - EndAdd = 7; - } else { - EndAdd--; - } - return Prefix + FirstAdd + startAdd + "." + EndAdd; - } - return ""; - } - - /** - * Ping PLC地址是否通畅 - * @param address - * @param pingTimes ping的次数 - * @param timeOut 超时时间 10 - * @return - */ - public static boolean ping2(String address, int pingTimes, int timeOut) { - Process process = null; - try { - process = Runtime.getRuntime().exec( "ping " + "-c " + pingTimes + " -w " + timeOut+ " "+address); - InputStreamReader r = new InputStreamReader(process.getInputStream()); - - LineNumberReader returnData = new LineNumberReader(r); - - String returnMsg=""; - - String line = ""; - - while ((line = returnData.readLine()) != null) { - - System.out.println(line); - - returnMsg += line; - - } - - if(returnMsg.indexOf("100% packet loss")!=-1){ - System.out.println("与 " +address +" 连接不畅通."); - //ToastUtils.info("与 " +address +" 连接不畅通."); - return false; - } else{ - System.out.println("与 " +address +" 连接畅通."); - //ToastUtils.info("与 " +address +" 连接不畅通."); - return true; - } - } catch (IOException e) { - // e.printStackTrace(); - } - return false; - - } - - /** - * 连接PLC - */ - public static void ConnectPLC() - { - String host=ConfigName.getInstance().Address; - int port=ConfigName.getInstance().Post; - param = TcpParam.create(host, port) - .setTimeout(1000) - .setRetries(0) - .setEncapsulated(false) - .setKeepAlive(true); - ModbusTcpHelper.get().init(param, new ModbusCallback() { - @Override - public void onSuccess(ModbusMaster modbusMaster) { - ToastUtils.info("设备 " + ConfigName.getInstance().Address + " 连接成功"); - MessageLog.ShowInfo("设备 " + ConfigName.getInstance().Address + " 连接成功"); - ConfigName.getInstance().PlcIsConnect = true; - ConfigData.getInstance().PLC_Init(); - Log.e("设备PLC", "设备PLC: 连接成功"); - } - - @Override - public void onFailure(Throwable tr) { - ConfigName.getInstance().PlcIsConnect = false; - ToastUtils.info("设备 " + ConfigName.getInstance().Address + " 连接失败:" + tr.getMessage()); - MessageLog.ShowError("PLC设备 " + ConfigName.getInstance().Address + " 连接失败:" + tr.getMessage()); - Log.e("设备PLC", "设备PLC: 连接断开"); - } - - @Override - public void onFinally() { - - } - }); - } - - - private Float BytesToFloat(byte[] buffers, DataFormat df) { - if (buffers.length == 4) { - byte[] bytes = new byte[4]; - if (df == DataFormat.ABCD) { - bytes[0] = buffers[3]; - bytes[1] = buffers[2]; - bytes[2] = buffers[1]; - bytes[3] = buffers[0]; - } else if (df == DataFormat.CDAB) { - bytes[0] = buffers[1]; - bytes[1] = buffers[0]; - bytes[2] = buffers[3]; - bytes[3] = buffers[2]; - } else if (df == DataFormat.BADC) { - bytes[0] = buffers[2]; - bytes[1] = buffers[3]; - bytes[2] = buffers[0]; - bytes[3] = buffers[1]; - } else if (df == DataFormat.DCBA) { - bytes[0] = buffers[0]; - bytes[1] = buffers[1]; - bytes[2] = buffers[2]; - bytes[3] = buffers[3]; - } - return ByteBuffer.wrap(bytes).getFloat(); - } - return 0.0f; - } - - private Integer BytesToInt(byte[] buffers, DataFormat df) { - if (buffers.length == 4) { - byte[] bytes = new byte[4]; - if (df == DataFormat.ABCD) { - bytes[0] = buffers[3]; - bytes[1] = buffers[2]; - bytes[2] = buffers[1]; - bytes[3] = buffers[0]; - } else if (df == DataFormat.CDAB) { - bytes[0] = buffers[1]; - bytes[1] = buffers[0]; - bytes[2] = buffers[3]; - bytes[3] = buffers[2]; - } else if (df == DataFormat.BADC) { - bytes[0] = buffers[2]; - bytes[1] = buffers[3]; - bytes[2] = buffers[0]; - bytes[3] = buffers[1]; - } else if (df == DataFormat.DCBA) { - bytes[0] = buffers[0]; - bytes[1] = buffers[1]; - bytes[2] = buffers[2]; - bytes[3] = buffers[3]; - } - return ByteBuffer.wrap(bytes).getInt(); - } - return 0; - } - - private byte[] IntToByte(int number) { - int temp = number; - byte[] b = new byte[4]; - for (int i = 0; i < b.length; i++) { - b[i] = new Integer(temp & 0xff).byteValue();// 将最低位保存在最低位 - temp = temp >> 8; // 向右移8位 - } - return b; - } - - private short[] IntToShorts(int value) { - short[] res = new short[2]; - int temp = value; - byte[] b = new byte[4]; - for (int i = 0; i < b.length; i++) { - b[i] = new Integer(temp & 0xff).byteValue();// 将最低位保存在最低位 - temp = temp >> 8; // 向右移8位 - } - for (int i = 0; i < res.length; i++) { - short s0 = (short) (b[i * 2] & 0xff);// 最低位 - short s1 = (short) (b[i * 2 + 1] & 0xff); - s1 <<= 8; - res[i] = (short) (s0 | s1); - } - return res; - } - - public static String GetString(short[] src, int start, int len) throws UnsupportedEncodingException { - short[] temp = new short[len]; - for (int i = 0; i < len; i++) { - temp[i] = src[i + start]; - } - byte[] bytesTemp = shorts2Bytes(temp); - for (int i = 0; i < bytesTemp.length; i++) { - byte b = bytesTemp[i]; - } - String str = new String(bytesTemp, "UTF-8"); - return str; - } - - public static byte[] shorts2Bytes(short[] data) { - byte[] byteValue = new byte[data.length * 2]; - for (int i = 0; i < data.length; i++) { - byteValue[i * 2] = (byte) (data[i] & 0xff); - byteValue[i * 2 + 1] = (byte) ((data[i] & 0xff00) >> 8); - } - return byteValue; - } - - /*** - *读取实时状态 - * @param Address the address - * @param length 读取的长度 3 - * @param callback 读取成功的回调 - */ - public void ReadStatus(String Address, int length, IReadCallBack callback) { - int add = GetAddress(Address); - if (add < 0) return; - try { - ReadHoldingRegistersResponse res = ModbusTcpHelper.get().syncReadHoldingRegisters(1, add, length); - byte[] data = res.getData(); - byte[] tempData = new byte[6]; - tempData[0] = data[1]; - tempData[1] = data[0]; - if (callback != null) callback.onSuccess(tempData); - } catch (InterruptedException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } - } - - /*** - *读取扫码数据 - * @param Address the address - * @param length 读取的长度 - * @param callback 读取成功的回调 - */ - public void ReadString(String Address, int length, IReadCallBack callback) { - int add = GetAddress(Address); - if (add < 0) return; - try { - ReadHoldingRegistersResponse res = ModbusTcpHelper.get().syncReadHoldingRegisters(1, add, length); - byte[] data = res.getData(); - byte[] data1 = Arrays.copyOfRange(data, 0, 18); - //36 GUID 18 Number - String id = ""; - try { - byte[] tempdata = new byte[18]; - for (int i = 0; i < data1.length; i++) { - if (i % 2 == 0) { - - tempdata[i + 1] = data1[i]; - } else { - tempdata[i - 1] = data1[i]; - } - } - id = new String(tempdata, "UTF-8").trim(); - } catch (UnsupportedEncodingException ex) { - } - if (callback != null) callback.onSuccess(id); - } catch (InterruptedException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } - } - - public void WriteString(String Address, int length, IWriteCallBack callback) { - int add = GetAddress(Address); - if (add < 0) return; - short[] send = new short[length]; - for (short item : send) { - item = 0; - } - try { - ModbusTcpHelper.get().syncWriteRegisters(1, add, send); - if (callback != null) - callback.onSuccess(); - } catch (InterruptedException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } - } - - public void ReadShort(String Address, int length, IReadCallBack callback) { - int add = GetAddress(Address); - if (add < 0) return; - try { - ReadHoldingRegistersResponse res = ModbusTcpHelper.get().syncReadHoldingRegisters(1, add, length); - short[] data = res.getShortData(); - if (data.length == length) { - if (callback != null) callback.onSuccess(data); - } - } catch (InterruptedException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("ReadShort onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } - } - - public void ReadBool(String Address, int length, IReadCallBack callback) { - int add = GetAddress(Address); - if (add < 0) return; - try { - ReadCoilsResponse res = ModbusTcpHelper.get().syncReadCoil(1, add, length); - boolean[] data = res.getBooleanData(); - boolean[] result = Arrays.copyOfRange(data, 0, length); - if (result.length == length) { - if (callback != null) callback.onSuccess(result); - } - } catch (InterruptedException e) { - MessageLog.ShowError("ReadBool onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("ReadBool onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("ReadBool onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("ReadBool onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("ReadBool onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } - } - - public void ReadFloat(String Address, int length, IReadCallBack callback) { - int add = GetAddress(Address); - if (add < 0) return; - try { - ReadHoldingRegistersResponse res = ModbusTcpHelper.get().syncReadHoldingRegisters(1, add, length*2); - byte[] data = res.getData(); - float[] tempValues = new float[length]; - for (int i = 0; i < length; i++) { - byte[] tempData = new byte[4]; - for (int m = 0; m < 4; m++) { - tempData[m] = data[i * 4 + m]; - } - tempValues[i] = BytesToFloat(tempData, DataFormat.BADC); - } - if (tempValues.length == length) { - if (callback != null) callback.onSuccess(tempValues); - } - } catch (InterruptedException e) { - MessageLog.ShowError("ReadFloat onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("ReadFloat onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("ReadFloat onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("ReadFloat onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("ReadFloat onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } - } - - public void ReadInt(String Address, int length, IReadCallBack callback) { - int add = GetAddress(Address); - if (add < 0) return; - try { - ReadHoldingRegistersResponse res = ModbusTcpHelper.get().syncReadHoldingRegisters(1, add, length * 2); - byte[] data = res.getData(); - int[] tempValues = new int[length]; - if(data.length>=4) - { - for (int i = 0; i < length; i++) { - byte[] tempData = new byte[4]; - for (int m = 0; m < 4; m++) { - tempData[m] = data[i * 4 + m]; - } -// Integer a1 = tempValues[i] = BytesToInt(tempData, DataFormat.ABCD); -// Integer a2 = tempValues[i] = BytesToInt(tempData, DataFormat.BADC); -// Integer a3 = tempValues[i] = BytesToInt(tempData, DataFormat.CDAB); -// Integer a4 = tempValues[i] = BytesToInt(tempData, DataFormat.DCBA); - tempValues[i] = BytesToInt(tempData, DataFormat.BADC); - } - }else - { - MessageLog.ShowError("ReadInt onFailure,Address=" ); - - } - if (callback != null) callback.onSuccess(tempValues); - } catch (InterruptedException e) { - MessageLog.ShowError("ReadInt onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("ReadInt onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("ReadInt onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("ReadInt onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("ReadInt onFailure,Address=" + Address + ",length=" + length + ",msg:" + e.toString()); - } - } - - public void WriteShort(String Address, short Value, IWriteCallBack callback) { - int add = GetAddress(Address); - if (add < 0) return; - short[] send = new short[1]; - send[0] = Value; - try { - ModbusTcpHelper.get().syncWriteRegisters(1, add, send); - if (callback != null) - callback.onSuccess(); - } catch (InterruptedException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } - } - - public void WriteBool(String Address, boolean Value, IWriteCallBack callback) { - int add = GetAddress(Address); - if (add < 0) return; - try { - ModbusTcpHelper.get().syncWriteCoil(1, add, Value); - if (callback != null) - callback.onSuccess(); - } catch (InterruptedException e) { - MessageLog.ShowError("WriteBool onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("WriteBool onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("WriteBool onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("WriteBool onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("WriteBool onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } - } - - public void WriteFloat(String Address, float Value, IWriteCallBack callback) { - int add = GetAddress(Address); - if (add < 0) return; - int intBits = Float.floatToRawIntBits(Value); - - short[] send = IntToShorts(intBits); - // short[] send = new short[]{(short) ((intBits >> 16) & 0xffff), (short) (intBits & 0xffff)}; - try { - ModbusTcpHelper.get().syncWriteRegisters(1, add, send); - - if (callback != null) callback.onSuccess(); - } catch (InterruptedException e) { - MessageLog.ShowError("WriteFloat onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("WriteFloat onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("WriteFloat onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("WriteFloat onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("WriteFloat onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } - } - - public void WriteInt(String Address, int Value, IWriteCallBack callback) { - int add = GetAddress(Address); - if (add < 0) return; - short[] send = IntToShorts(Value); - try { - ModbusTcpHelper.get().syncWriteRegisters(1, add, send); - if (callback != null) callback.onSuccess(); - } catch (InterruptedException e) { - MessageLog.ShowError("WriteInt onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("WriteInt onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("WriteInt onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("WriteInt onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("WriteInt onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - if (callback != null) callback.onFailure(e.toString()); - } - } - - public void WriteShort(String Address, short Value) { - int add = GetAddress(Address); - if (add < 0) return; - short[] send = new short[1]; - send[0] = Value; - try { - ModbusTcpHelper.get().syncWriteRegisters(1, add, send); - } catch (InterruptedException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("WriteShort onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } - } - - public void WriteBool(String Address, boolean Value) { - int add = GetAddress(Address); - if (add < 0) return; - - try { - ModbusTcpHelper.get().syncWriteCoil(1, add, Value); - } catch (InterruptedException e) { - MessageLog.ShowError("WriteBool onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("WriteBool onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("WriteBool onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("WriteBool onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("WriteBool onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } - } - - public void WriteFloat(String Address, float Value) { - int add = GetAddress(Address); - if (add < 0) return; - int intBits = Float.floatToRawIntBits(Value); - short[] send = new short[]{(short) ((intBits >> 16) & 0xffff), (short) (intBits & 0xffff)}; - try { - ModbusTcpHelper.get().syncWriteRegisters(1, add, send); - } catch (InterruptedException e) { - MessageLog.ShowError("WriteFloat onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("WriteFloat onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("WriteFloat onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("WriteFloat onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("WriteFloat onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } - } - - public void WriteInt(String Address, int Value) { - int add = GetAddress(Address); - if (add < 0) return; - short[] send = IntToShorts(Value); - try { - ModbusTcpHelper.get().syncWriteRegisters(1, add, send); - } catch (InterruptedException e) { - MessageLog.ShowError("WriteInt onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ExecutionException e) { - MessageLog.ShowError("WriteInt onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ModbusTransportException e) { - MessageLog.ShowError("WriteInt onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ModbusInitException e) { - MessageLog.ShowError("WriteInt onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } catch (ModbusRespException e) { - MessageLog.ShowError("WriteInt onFailure,Address=" + Address + ",length=" + Value + ",msg:" + e.toString()); - } - } - -} diff --git a/app/src/main/java/com/bonait/bnframework/common/modbus/S7/IS7ConnHelper.java b/app/src/main/java/com/bonait/bnframework/common/modbus/S7/IS7ConnHelper.java deleted file mode 100644 index d0a5e9a6..00000000 --- a/app/src/main/java/com/bonait/bnframework/common/modbus/S7/IS7ConnHelper.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.bonait.bnframework.common.modbus.S7; - -import com.bonait.bnframework.common.modbus.S7.mode.MyGunData; - -import java.io.IOException; - -public interface IS7ConnHelper { - void initConnect() throws IOException; - Object readPlcData(Integer dbNum, Class clazz, int offSet); - MyGunData readTheDbData(Integer dbNum, MyGunData clazz, int offSet); - void writePlcData(Integer dbNum, MyGunData clazz, int offSet); - - //DB,DB号,偏移量,Byte数组 - void writePlcByte(byte[] bytes); -} diff --git a/app/src/main/java/com/bonait/bnframework/common/modbus/S7/S7ConnHelper.java b/app/src/main/java/com/bonait/bnframework/common/modbus/S7/S7ConnHelper.java deleted file mode 100644 index b7f13e42..00000000 --- a/app/src/main/java/com/bonait/bnframework/common/modbus/S7/S7ConnHelper.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.bonait.bnframework.common.modbus.S7; - -import android.util.Log; - -import com.bonait.bnframework.common.modbus.S7.mode.MyGunData; -import com.bonait.bnframework.common.modbus.S7.mode.MyS7Entity; -import com.github.s7connector.api.DaveArea; -import com.github.s7connector.api.S7Connector; -import com.github.s7connector.api.S7Serializer; -import com.github.s7connector.api.factory.S7ConnectorFactory; -import com.github.s7connector.api.factory.S7SerializerFactory; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * S7系列读取 - */ -public class S7ConnHelper implements IS7ConnHelper { - - /** - * ip - */ - public String Ip = "192.168.0.12"; - /** - * 端口 - */ - public Integer Port = 102; - public S7Connector s7Connector; - public S7Serializer s7Serializer; - public MyS7Entity myDbData; //S7数据返回 - private List myDbDatas = new ArrayList(); - public Boolean isConnected = false; - private Boolean heart = false; - public Map myMap = new HashMap<>(); - - @Override - public void initConnect() throws IOException { - if (this.s7Connector == null) { - this.s7Connector = S7ConnectorFactory.buildTCPConnector() - .withHost(Ip) - .withPort(Port) - .withRack(0)//机架号 - .withSlot(1)//插槽号 - .build(); - this.s7Serializer = S7SerializerFactory.buildSerializer(s7Connector); - this.isConnected = true; - } - } - - /** - * @param dbNum DB号 - * @param clazz 变量 - * @param offSet 偏移量 - */ - @Override - public Object readPlcData(Integer dbNum, Class clazz, int offSet) { - //第一个参数:DaveArea.DB 表示读取PLC的地址区域为DB - //第二个参数:DB块地址,若plc中是DB1000,则填1000 - //第三个参数:数据长度 - //第四个参数:偏移量 - if (this.isConnected = true) { - this.myDbData = (MyS7Entity) this.s7Serializer.dispense(clazz, dbNum, offSet); - - //心跳 - if (heart == false) { - this.myDbData.heartBeat = 10; - heart = true; - } else if (heart == true) { - this.myDbData.heartBeat = 20; - heart = false; - } - - try { - this.s7Serializer.store(this.myDbData, dbNum, offSet); - } - //断线重连 - catch (Exception ex) { - Show("断线重连" + ex.getMessage()); - this.isConnected = false; - try { - this.s7Connector.close(); - } catch (IOException e) { - e.printStackTrace(); - } - this.s7Connector = null; - this.s7Serializer = null; - try { - this.initConnect(); - } catch (IOException e) { - e.printStackTrace(); - } - } - this.myDbData = (MyS7Entity) this.s7Serializer.dispense(clazz, dbNum, offSet); - -// if (myDbDatas.size() < 30) { -// myDbDatas.add(myDbData); -// } else { -// myDbDatas.remove(0); -// } - - } - - return myDbData; - } - - @Override - public MyGunData readTheDbData(Integer dbNum, MyGunData clazz, int offSet) { - MyGunData myData = this.s7Serializer.dispense(clazz.getClass(), dbNum, offSet); - return myData; - } - - @Override - public void writePlcData(Integer dbNum, MyGunData clazz, int offSet) { - this.s7Serializer.store(clazz, dbNum, 0); - } - - /** - * DB,DB号,偏移量,Byte数组 - * @param bytes - */ - @Override - public void writePlcByte(byte[] bytes) { - this.s7Connector.write(DaveArea.DB, 31, 0, bytes); - } - - /** - * 显示日志 - */ - public void Show(String message) { - Log.e("S7帮助类", message); - } -} diff --git a/app/src/main/java/com/bonait/bnframework/common/modbus/S7/S7Listenner.java b/app/src/main/java/com/bonait/bnframework/common/modbus/S7/S7Listenner.java deleted file mode 100644 index 61b12c5a..00000000 --- a/app/src/main/java/com/bonait/bnframework/common/modbus/S7/S7Listenner.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.bonait.bnframework.common.modbus.S7; - -import android.util.Log; - -import com.bonait.bnframework.common.modbus.S7.mode.MyS7Entity; - -import java.io.IOException; -import java.lang.reflect.Field; -import java.sql.Timestamp; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -public class S7Listenner { - public S7ConnHelper s7ConnHelper; - - Boolean last = false; - Boolean trigIn = false; - Boolean trigQ = false; - - - public void Conn() throws IOException { - s7ConnHelper.initConnect(); - Show("初始化成功!!"); - } - - //S7 - public void Listen(){ - - try { - s7ConnHelper.readPlcData(1, MyS7Entity.class, 0); - Map myMap = new HashMap<>(); - Field[] fields = s7ConnHelper.myDbData.getClass().getFields(); - for (Field f :fields - ) { - //log.info(f.getType().toString()); - - if (f.get(s7ConnHelper.myDbData) instanceof Double){ - String format = String.format("%.3f", f.get(s7ConnHelper.myDbData)); - myMap.put(f.getName(),format); - } - else { - myMap.put(f.getName(),f.get(s7ConnHelper.myDbData)); - } - - } - s7ConnHelper.myMap=myMap; - - - java.util.Date date = new Date();//获得当前时间 - Timestamp t = new Timestamp(date.getTime());//将时间转换成Timestamp类型,这样便可以存入到Mysql数据库中 - - for (String key: s7ConnHelper.myMap.keySet() - ) { - System.out.println(key); - } -// System.out.println("==============="); -// for (Object v: s7ConnHelper.getMyMap().values() -// ) { -// System.out.println(v); -// } - } - catch (Exception ex){ - Show(ex.getMessage()+"====="); - s7ConnHelper.s7Connector=null; - s7ConnHelper.s7Serializer=null; - try { - s7ConnHelper.initConnect(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - -// java.util.Date date = new Date();//获得当前时间 -// Timestamp t = new Timestamp(date.getTime());//将时间转换成Timestamp类型,这样便可以存入到Mysql数据库中 -// for (int i = 0 ; i ReadBoolean(String... address) { + try { + return this.readBoolean(Arrays.asList(address)); + } + catch(SocketRuntimeException ex){ + this.close(); + } + return new ArrayList(); + } + + public short ReadInt16(String address) { + try { + DataItem dataItem = this.readS7Data(AddressUtil.parseByte(address, 2)); + return ShortUtil.toInt16(dataItem.getData()); + } + catch(SocketRuntimeException ex){ + this.close(); + } + return 0; + + } + + public List ReadInt16(String... address) { + try { + return this.readInt16(Arrays.asList(address)); + } + catch(SocketRuntimeException ex){ + this.close(); + } + return new ArrayList(); + } + + public int ReadUInt16(String address) { + try { + DataItem dataItem = this.readS7Data(AddressUtil.parseByte(address, 2)); + return ShortUtil.toUInt16(dataItem.getData()); + } + catch(SocketRuntimeException ex){ + this.close(); + } + return 0; + } + + public List ReadUInt16(String... address) { + try { + return this.readUInt16(Arrays.asList(address)); + } + catch(SocketRuntimeException ex){ + this.close(); + } + return new ArrayList(); + } + + public int ReadInt32(String address) { + try { + DataItem dataItem = this.readS7Data(AddressUtil.parseByte(address, 4)); + return IntegerUtil.toInt32(dataItem.getData()); + } + catch(SocketRuntimeException ex){ + this.close(); + } + return 0; + } + + public List ReadInt32(String... address) { + try { + return this.readInt32(Arrays.asList(address)); + } + catch(SocketRuntimeException ex){ + this.close(); + } + return new ArrayList(); + } + + public float ReadFloat32(String address) { + try { + DataItem dataItem = this.readS7Data(AddressUtil.parseByte(address, 4)); + return FloatUtil.toFloat32(dataItem.getData()); + } + catch(SocketRuntimeException ex){ + this.close(); + } + return 0; + } + + public List ReadFloat32(String... address) { + try { + return this.readFloat32(Arrays.asList(address)); + } + catch(SocketRuntimeException ex){ + this.close(); + } + return new ArrayList(); + } + + public void WriteBoolean(String address, boolean data) { + while (true) { + try { + this.writeS7Data(AddressUtil.parseBit(address), DataItem.createReqByBoolean(data)); + break; + } + catch(SocketRuntimeException ex){ + this.close(); + Delay(100); + } + } + } + + public void WriteUInt16(String address, int data) { + while (true) { + try { + this.writeByte(address, ShortUtil.toByteArray(data)); + break; + } + catch(SocketRuntimeException ex){ + this.close(); + Delay(100); + } + } + } + + public void WriteInt16(String address, short data) { + while (true) { + try { + Log.e("info","准备写入数据:"+data); + this.writeByte(address, ShortUtil.toByteArray(data)); + break; + } + catch(SocketRuntimeException ex){ + Log.e("socketException","写入:"+data+"失败"); + this.close(); + Delay(100); + } + } + } + + public void WriteUInt32(String address, long data) { + while (true) { + try { + this.writeByte(address, IntegerUtil.toByteArray(data)); + break; + } + catch(SocketRuntimeException ex){ + this.close(); + Delay(100); + } + } + } + + public void WriteInt32(String address, int data) { + while (true) { + try { + this.writeByte(address, IntegerUtil.toByteArray(data)); + break; + } + catch(SocketRuntimeException ex){ + this.close(); + Delay(100); + } + } + } + + public void WriteFloat32(String address, float data) { + while (true) { + try { + this.writeByte(address, FloatUtil.toByteArray(data)); + break; + } + catch(SocketRuntimeException ex){ + this.close(); + Delay(100); + } + } + } + + public SiemensHelper(EPlcType PlcType, String ip){ + super(PlcType, ip); + } + +} diff --git a/app/src/main/java/com/bonait/bnframework/common/modbus/s7/SiemensHelper1.java b/app/src/main/java/com/bonait/bnframework/common/modbus/s7/SiemensHelper1.java new file mode 100644 index 00000000..c6c5dfd0 --- /dev/null +++ b/app/src/main/java/com/bonait/bnframework/common/modbus/s7/SiemensHelper1.java @@ -0,0 +1,169 @@ +package com.bonait.bnframework.common.modbus.s7; + +import android.util.Log; + +import com.bonait.bnframework.common.constant.ConfigName; +import com.github.xingshuangs.iot.exceptions.SocketRuntimeException; +import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType; +import com.github.xingshuangs.iot.protocol.s7.service.S7PLC; + +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.LineNumberReader; + +/** + * S7 + */ +public class SiemensHelper1 extends S7PLC { + + //region 单例 + private static volatile SiemensHelper1 instance = null; + + public static SiemensHelper1 get() { + SiemensHelper1 manager = instance; + if (manager == null) { + synchronized (SiemensHelper1.class) { + manager = instance; + if (manager == null) { + manager = new SiemensHelper1(); + instance = manager; + } + } + } + return manager; + } + + private SiemensHelper1() { + + } + //endregion + + //region 变量 + /** + * 默认PLC类型 + */ + public static EPlcType type = EPlcType.S1500; + public static S7PLC s7PLC = null; + //endregion + + //region 公共方法 + /** + * Ping PLC地址是否通畅 + * @param address + * @param pingTimes ping的次数 + * @param timeOut 超时时间 10 + * @return + */ + public static boolean ping2(String address, int pingTimes, int timeOut) { + Process process = null; + try { + process = Runtime.getRuntime().exec( "ping " + "-c " + pingTimes + " -w " + timeOut+ " "+address); + InputStreamReader r = new InputStreamReader(process.getInputStream()); + + LineNumberReader returnData = new LineNumberReader(r); + + String returnMsg=""; + + String line = ""; + + while ((line = returnData.readLine()) != null) { + + System.out.println(line); + + returnMsg += line; + + } + + if(returnMsg.indexOf("100% packet loss")!=-1){ + System.out.println("与 " +address +" 连接不畅通."); + //ToastUtils.info("与 " +address +" 连接不畅通."); + return false; + } else{ + System.out.println("与 " +address +" 连接畅通."); + //ToastUtils.info("与 " +address +" 连接不畅通."); + return true; + } + } catch (IOException e) { + // e.printStackTrace(); + } + return false; + + } + /** + * 连接plc + */ + public static void Connect() { + try { + s7PLC = new S7PLC(type, ConfigName.getInstance().Address); + s7PLC.connect(); + ConfigName.getInstance().PlcIsConnect = true; + } catch (SocketRuntimeException ex) { + Log.e("SocketRuntimeException", ex.getMessage()); + Close(); + } catch (Exception ex) { + Log.e("Exception", ex.getMessage()); + Close(); + } + + } + + /** + * 关闭 + */ + public static void Close() { + try { + if (s7PLC != null) { + s7PLC.close(); + } + } catch (SocketRuntimeException ex) { + Log.e("SocketRuntimeException", ex.getMessage()); + } catch (Exception ex) { + Log.e("Exception", ex.getMessage()); + } + ConfigName.getInstance().PlcIsConnect = false; + } + + /** + * 读取数据 + * @param address + * @return + */ + public Object readPLC(String address) { + Object res=null; + try { + if (address.contains("V")) { + res = s7PLC.readBoolean(address); + } else if (address.contains("D")) { + res = s7PLC.readUInt32(address); + } + } catch (SocketRuntimeException ex) { + Close(); + } catch (Exception ex) { + + } + return res; + } + + /** + * 写数据 + * @param address + * @return + */ + public boolean writePLC(String address,Object data) { + boolean res=false; + try { + if (address.contains("V")) { + s7PLC.writeBoolean(address,(boolean)data); + } else if (address.contains("D")) { + s7PLC.writeInt32(address,(int)data); + } + res=true; + } catch (SocketRuntimeException ex) { + Close(); + } catch (Exception ex) { + + } + return res; + } + //endregion +} diff --git a/app/src/main/java/com/bonait/bnframework/modules/home/activity/BottomNavigation2Activity.java b/app/src/main/java/com/bonait/bnframework/modules/home/activity/BottomNavigation2Activity.java index a90ed20f..ee4d7db2 100644 --- a/app/src/main/java/com/bonait/bnframework/modules/home/activity/BottomNavigation2Activity.java +++ b/app/src/main/java/com/bonait/bnframework/modules/home/activity/BottomNavigation2Activity.java @@ -6,11 +6,10 @@ import androidx.annotation.NonNull; import com.bonait.bnframework.business.ConfigData; import com.bonait.bnframework.common.constant.ConfigName; -import com.bonait.bnframework.common.constant.DataBus; import com.bonait.bnframework.common.helper.I.IThread; import com.bonait.bnframework.common.helper.MessageLog; import com.bonait.bnframework.common.helper.ThreadManager; -import com.bonait.bnframework.common.modbus.ModbusTcpServer; +import com.bonait.bnframework.common.modbus.s7.SiemensHelper1; import com.bonait.bnframework.common.utils.NetworkUtils; import com.google.android.material.bottomnavigation.BottomNavigationView; @@ -188,17 +187,17 @@ public class BottomNavigation2Activity extends BaseActivity { try { if (ConfigName.getInstance().PlcIsConnect) { //ping 不通 - boolean status = ModbusTcpServer.ping2(ConfigName.getInstance().Address, 1, 1); + boolean status = SiemensHelper1.get().ping2(ConfigName.getInstance().Address, 1, 1); if (!status) //ping 不通 连接 { MessageLog.ShowInfo("PLC状态断开,尝试连接..."); ConfigName.getInstance().PlcIsConnect = false; } } else { - boolean status = ModbusTcpServer.ping2(ConfigName.getInstance().Address, 1, 1); + boolean status = SiemensHelper1.get().ping2(ConfigName.getInstance().Address, 1, 1); if (status) { MessageLog.ShowInfo("设备 " + ConfigName.getInstance().Address + " PLC通讯正常,准备连接!"); - ModbusTcpServer.ConnectPLC(); + SiemensHelper1.get().Connect(); } else { MessageLog.ShowInfo("PLC状态断开,尝试连接..."); ConfigName.getInstance().PlcIsConnect = false; diff --git a/app/src/main/java/com/bonait/bnframework/modules/home/activity/BottomNavigationNewActivity.java b/app/src/main/java/com/bonait/bnframework/modules/home/activity/BottomNavigationNewActivity.java index cc633a41..6efa9afa 100644 --- a/app/src/main/java/com/bonait/bnframework/modules/home/activity/BottomNavigationNewActivity.java +++ b/app/src/main/java/com/bonait/bnframework/modules/home/activity/BottomNavigationNewActivity.java @@ -1,13 +1,11 @@ package com.bonait.bnframework.modules.home.activity; -import androidx.appcompat.app.AppCompatActivity; import androidx.viewpager.widget.ViewPager; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; -import android.view.MenuItem; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; @@ -28,20 +26,16 @@ import com.bonait.bnframework.common.helper.MessageLog; import com.bonait.bnframework.common.helper.ThreadManager; import com.bonait.bnframework.common.message.MessageLooper; import com.bonait.bnframework.common.message.MessageManager; -import com.bonait.bnframework.common.modbus.ModbusTcpServer; +import com.bonait.bnframework.common.modbus.s7.SiemensHelper1; import com.bonait.bnframework.common.utils.NetworkUtils; import com.bonait.bnframework.common.utils.ToastUtils; import com.bonait.bnframework.common.view.BottomNavigationBar; import com.bonait.bnframework.manager.ActivityLifecycleManager; import com.bonait.bnframework.modules.home.adapter.FragmentAdapter; -import com.bonait.bnframework.modules.home.fragment.Home1Fragment; -import com.bonait.bnframework.modules.home.fragment.Home2Fragment; import com.bonait.bnframework.modules.home.fragment.Home4Fragment; import com.bonait.bnframework.modules.home.fragment.HomeFragmentPR; import com.bonait.bnframework.modules.home.fragment.HomeFragmentSBKZ; import com.bonait.bnframework.modules.home.fragment.from.CookingActivity; -import com.bonait.bnframework.modules.mine.fragment.MyFragment; -import com.google.android.material.bottomnavigation.BottomNavigationView; import com.lzy.okgo.OkGo; import com.qmuiteam.qmui.widget.QMUIViewPager; @@ -286,17 +280,17 @@ public class BottomNavigationNewActivity extends BaseActivity { try { if (ConfigName.getInstance().PlcIsConnect) { //ping 不通 - boolean status = ModbusTcpServer.ping2(ConfigName.getInstance().Address, 1, 1); + boolean status = SiemensHelper1.get().ping2(ConfigName.getInstance().Address, 1, 1); if (!status) //ping 不通 连接 { MessageLog.ShowInfo("PLC状态断开,尝试连接..."); ConfigName.getInstance().PlcIsConnect = false; } } else { - boolean status = ModbusTcpServer.ping2(ConfigName.getInstance().Address, 1, 1); + boolean status = SiemensHelper1.get().ping2(ConfigName.getInstance().Address, 1, 1); if (status) { MessageLog.ShowInfo("设备 " + ConfigName.getInstance().Address + " PLC通讯正常,准备连接!"); - ModbusTcpServer.ConnectPLC(); + SiemensHelper1.get().Connect(); } else { MessageLog.ShowInfo("PLC状态断开,尝试连接..."); ConfigName.getInstance().PlcIsConnect = false; diff --git a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/Home1Fragment.java b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/Home1Fragment.java index d6fb947f..d07cac84 100644 --- a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/Home1Fragment.java +++ b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/Home1Fragment.java @@ -49,7 +49,6 @@ import com.bonait.bnframework.common.helper.MessageLog; import com.bonait.bnframework.common.helper.ThreadManager; import com.bonait.bnframework.common.message.MessageLooper; import com.bonait.bnframework.common.message.MessageManager; -import com.bonait.bnframework.common.modbus.ModbusTcpServer; import com.bonait.bnframework.common.utils.AlertDialogUtils; import com.bonait.bnframework.common.utils.ToastUtils; import com.bonait.bnframework.common.view.MyLayoutManager; diff --git a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/AutoTestMoreFragment.java b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/AutoTestMoreFragment.java index 2333e0a5..6c47a4d1 100644 --- a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/AutoTestMoreFragment.java +++ b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/AutoTestMoreFragment.java @@ -209,39 +209,6 @@ public class AutoTestMoreFragment extends BaseFragment { } } }).start(); - - new Thread(new Runnable() { - @Override - public void run() { - while (true) { - try { - //故障信息 - for (StatusMode item: ConfigName.getInstance().statusModes) - { - if(ExecuteTheRecipe.getConcurrentHash(item.sort)) - { - SetMiaosShu1(item.Name); - } - } - - String x1= ConfigName.getInstance().statusModes_电机.get(ExecuteTheRecipe.getConcurrentHash_dj("搅拌电机")); - String x2= ConfigName.getInstance().statusModes_电机.get(ExecuteTheRecipe.getConcurrentHash_dj("翻转电机")); - if(!x1.equals("无故障")) - { - SetMiaosShu1("搅拌电机故障代码:"+x1); - } - - if(!x2.equals("无故障")) - { - SetMiaosShu1("翻转电机故障代码:"+x2); - } - Thread.sleep(2000); - } catch (Exception ex) { - - } - } - } - }).start(); } diff --git a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/AutoTestOneFragment.java b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/AutoTestOneFragment.java index 67fe3112..c91b0ffe 100644 --- a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/AutoTestOneFragment.java +++ b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/AutoTestOneFragment.java @@ -336,28 +336,6 @@ public class AutoTestOneFragment extends BaseFragment { break; } } - - //故障信息 - for (StatusMode item:ConfigName.getInstance().statusModes) - { - if(ExecuteTheRecipe.getConcurrentHash(item.sort)) - { - SetMiaosShu1(item.Name); - } - } - - String x1= ConfigName.getInstance().statusModes_电机.get(ExecuteTheRecipe.getConcurrentHash_dj("搅拌电机")); - String x2= ConfigName.getInstance().statusModes_电机.get(ExecuteTheRecipe.getConcurrentHash_dj("翻转电机")); - if(!x1.equals("无故障")) - { - SetMiaosShu1("搅拌电机故障代码:"+x1); - } - - if(!x2.equals("无故障")) - { - SetMiaosShu1("翻转电机故障代码:"+x2); - } - Thread.sleep(2000); } catch (Exception ex) { diff --git a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/SystemCsMonitorFragment.java b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/SystemCsMonitorFragment.java index 72ad1d97..e478da33 100644 --- a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/SystemCsMonitorFragment.java +++ b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/SystemCsMonitorFragment.java @@ -81,40 +81,40 @@ public class SystemCsMonitorFragment extends BaseFragment { * 实时显示线程 */ public void Run() { - new Thread(new Runnable() { - @Override - public void run() { - while (true) { - try { - Activity activity=getActivity(); - if(activity!=null) - { - activity.runOnUiThread(new Runnable() { - @Override - public void run() { - try { - for (StatusMode item:ConfigName.getInstance().statusModes) - { - item.Status= ExecuteTheRecipe.getConcurrentHash(item.sort); - } - - jiaobandianji.setText( ConfigName.getInstance().statusModes_电机.get(ExecuteTheRecipe.getConcurrentHash_dj("搅拌电机"))); - fanzhuandianji.setText( ConfigName.getInstance().statusModes_电机.get(ExecuteTheRecipe.getConcurrentHash_dj("翻转电机"))); - - adapter.refresh(); - } catch (Exception e) { - - } - } - }); - } - Thread.sleep(1000); - } catch (InterruptedException e) { - ToastUtils.info("异常信息:" + e.getMessage()); - } - } - } - }).start(); +// new Thread(new Runnable() { +// @Override +// public void run() { +// while (true) { +// try { +// Activity activity=getActivity(); +// if(activity!=null) +// { +// activity.runOnUiThread(new Runnable() { +// @Override +// public void run() { +// try { +// for (StatusMode item:ConfigName.getInstance().statusModes) +// { +// item.Status= ExecuteTheRecipe.getConcurrentHash(item.sort); +// } +// +// jiaobandianji.setText( ConfigName.getInstance().statusModes_电机.get(ExecuteTheRecipe.getConcurrentHash_dj("搅拌电机"))); +// fanzhuandianji.setText( ConfigName.getInstance().statusModes_电机.get(ExecuteTheRecipe.getConcurrentHash_dj("翻转电机"))); +// +// adapter.refresh(); +// } catch (Exception e) { +// +// } +// } +// }); +// } +// Thread.sleep(1000); +// } catch (InterruptedException e) { +// ToastUtils.info("异常信息:" + e.getMessage()); +// } +// } +// } +// }).start(); } @Override public void onDestroy() { diff --git a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/SystemCsPLCFragment.java b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/SystemCsPLCFragment.java index 1b8f8c0f..a7409208 100644 --- a/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/SystemCsPLCFragment.java +++ b/app/src/main/java/com/bonait/bnframework/modules/home/fragment/from/fragment/SystemCsPLCFragment.java @@ -22,7 +22,6 @@ import com.bonait.bnframework.common.constant.ConfigName; import com.bonait.bnframework.common.db.QueryDB; import com.bonait.bnframework.common.db.mode.BPA_MATERIAL; import com.bonait.bnframework.common.db.mode.BPA_PLCADDRESS; -import com.bonait.bnframework.common.modbus.ModbusTcpServer; import com.bonait.bnframework.common.utils.AlertDialogUtils; import com.bonait.bnframework.common.utils.NetworkUtils; import com.bonait.bnframework.common.utils.ToastUtils; diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 65d8ee1d..2cdf009f 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -14,10 +14,10 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + + + +