CanadaMes-ui/src/configuration/ManualJog.json
@@ -274,7 +274,7 @@ [ { "button": { "name": "A01行走伺服回零", "name": "A01原点记忆", "value": 0, "value2": 0, "address": "DB10.0", @@ -284,7 +284,7 @@ }, { "button": { "name": "A02行走伺服回零", "name": "A02原点记忆", "value": 0, "value2": 0, "address": "DB10.0", CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
@@ -201,18 +201,18 @@ const jsonString = JSON.stringify(jsonObject); console.log('所有Type为0的value:', jsonString); socket?.send(jsonString); setTimeout(() => { const reversedData = data.map(values => values.map(value => { return (!value || value === 1) ? 0 : 0 ; })); // setTimeout(() => { // const reversedData = data.map(values => values.map(value => { // return (!value || value === 1) ? 0 : 0 ; // })); const reversedJsonObject = { data: reversedData }; // const reversedJsonObject = { data: reversedData }; // 提交数据到后端 const reversedJsonString = JSON.stringify(reversedJsonObject); console.log('反转后:', reversedJsonString); socket?.send(reversedJsonString); }, 1000); // const reversedJsonString = JSON.stringify(reversedJsonObject); // console.log('反转后:', reversedJsonString); // socket?.send(reversedJsonString); // }, 1000); } @@ -233,18 +233,18 @@ const jsonString = JSON.stringify(jsonObject); console.log('所有Type为0的value:', jsonString); socket?.send(jsonString); setTimeout(() => { const reversedData = data.map(values => values.map(value => { return (!value || value === 1) ? 0 : 0 ; })); // setTimeout(() => { // const reversedData = data.map(values => values.map(value => { // return (!value || value === 1) ? 0 : 0 ; // })); const reversedJsonObject = { data: reversedData }; // const reversedJsonObject = { data: reversedData }; // 提交数据到后端 const reversedJsonString = JSON.stringify(reversedJsonObject); console.log('反转后:', reversedJsonString); socket?.send(reversedJsonString); }, 1000); // // 提交数据到后端 // const reversedJsonString = JSON.stringify(reversedJsonObject); // console.log('反转后:', reversedJsonString); // socket?.send(reversedJsonString); // }, 1000); } CanadaMes-ui/src/views/home/index.vue
@@ -1045,6 +1045,15 @@ } } //根据进片状态出发进片任务 if (obj.FeedState != null) { if (obj.FeedState[0] == true) { this.InsertQueueGlass(1); } } // if (obj.alarmmg[0].length > 0) { // if (this.alarm.length > 0) { // if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) { @@ -1104,6 +1113,7 @@ //是否需要手动确认上片 this.isConfirm = obj.isConfirm[0]; //扫码位玻璃信息 if (obj.form3 != null && obj.form3 != "" && obj.state[0] == 1) { this.form3 = obj.form3[0]; springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
@@ -27,17 +27,21 @@ private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath(); private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath(); private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath(); private static String PlcParameter = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcParameter.json").getPath(); private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json").getPath(); private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json").getPath(); private static String PlcParameter = PLCAutomaticParameterSettingReview2.class .getResource("/JsonFile/PlcParameter.json").getPath(); private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json") .getPath(); private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json") .getPath(); private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath(); private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath(); // 调用initword方法 public static PlcParameterObject plcParameterObject = initUtil.initword(PlcParameter); public static PlcBitObject plcPlcTest = initUtil.initbit(PlcTest); public static PlcBitObject plcBitObject= initUtil.initbit(PlcSign); public static PlcParameterObject plcStateObject = initUtil.initword(PlcState); public static PlcBitObject plcBitObject = initUtil.initbit(PlcSign); public static PlcParameterObject plcStateObject= initUtil.initword(PlcState); public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm); public static PlcParameterObject PlcMesObject = initUtil.initword(PlcMes); public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead); springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -7,7 +7,9 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import com.example.springboot.service.*; import org.springframework.beans.factory.annotation.Autowired; @@ -18,6 +20,7 @@ import com.example.springboot.entity.StorageCage; import com.example.springboot.entity.alarmmg; import com.example.springboot.entity.north_glass_buffer1; import com.example.springboot.entity.device.PlcParameterObject; import com.example.springboot.mapper.HomeMapper; import com.example.springboot.mapper.SpianMapper; @@ -60,8 +63,7 @@ JSONObject jsonObject = new JSONObject(); try { Thread.sleep(1000); // 注入mapper // 注入mapper homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class); spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); spianService = WebSocketServer.applicationContext.getBean(SpianService.class); @@ -123,163 +125,172 @@ // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16)); // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14)); // if (S7control.getinstance().CheckConnected() == true) { if (S7control.getinstance().CheckConnected() == true) { // 铝框线交互 if (S7controlLK.getinstance().CheckConnected() == true) { if (CurrentFrame != null) { S7controlLK.getinstance().writeStrings(CurrentFrame.getBarCode(), "DB17.0"); } String E01id = S7controlLK.getinstance().readStrings("DB17.0"); String J01id = S7controlLK.getinstance().readStrings("DB17.22"); List<Short> liststates = S7controlLK.getinstance().ReadWord("DB17.38", 1); List<Short> liststate = S7controlLK.getinstance().ReadWord("DB17.20", 1); Short framerequest = liststate.get(0); if (framerequest == 1) { // 铝框id String position; try { position = dbserve.SelectPositionByFrameBarcode(J01id); } catch (SQLException e) { // TODO Auto-generated catch block position = "0"; e.printStackTrace(); } Short send; if (position.equals("0")) { send = 0; } else { send = 1; } S7controlLK.getinstance().WriteWord("DB17.38", (short) send); } // 铝框线交互 if (S7controlLK.getinstance().CheckConnected() == true) { if (CurrentFrame != null) { S7controlLK.getinstance().writeStrings(CurrentFrame.getBarCode(), "DB17.0"); } String E01id = S7controlLK.getinstance().readStrings("DB17.0"); String J01id = S7controlLK.getinstance().readStrings("DB17.22"); // 获取当前扫码方式 List<Boolean> Scanningmethods = S7control.getinstance().ReadBits("DB101.11.4", 1); if (Scanningmethods != null) { for (Boolean Scanningmethod : Scanningmethods) { jsonObject.append("Scanningmethod", Scanningmethod); } } // 获取当前扫码枪玻璃id String CurrrentGlassId = spianService.queGlassid("DB103.256", 14).toString(); jsonObject.append("CurrrentGlassId", CurrrentGlassId); // 获取D01-D06,A01,A02,B01,B02状态 List<Short> DeviceList = S7control.getinstance().ReadWord("DB103.0", 10); jsonObject.append("DeviceList", DeviceList); // 获取D01-D06,A01,A02,B01,B02玻璃id List<String> GlassIdList = new ArrayList<String>(); GlassIdList.add(spianService.queGlassid("DB103.44", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.58", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.184", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.212", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.128", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.142", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.156", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.72", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.86", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.100", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.114", 14).toString()); jsonObject.append("GlassIdList", GlassIdList); // 读去Plc进片车与出片车位置W List<String> addressList = new ArrayList<String>(); addressList.add("DB106.12"); addressList.add("DB106.0"); List<Short> paramlist = S7control.getinstance().ReadWord(addressList); if (paramlist != null) { jsonObject.append("params", paramlist); } // 获取进片车状态 List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1);// 获取进片车状态 if (datas1ListState != null) { boolean exist1 = datas1ListState.contains((short) 0); jsonObject.append("zhuangtai", exist1); } // 获取进片玻璃信息 List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1); if (inglassInfo != null) { if (inglassInfo.size() > 0) { jsonObject.append("loadglassheight", inglassInfo.get(0) * 70); } } // // 获取铝框idDB106.DBW64,添加到出片队列 // String frameno="X21763329601FB"; String frameno = spianService.queGlassid("DB103.270", 14).toString(); if (!frameno.equals(Plchome.FrameNo)) { Plchome.FrameNo = frameno; List<Short> liststates = S7controlLK.getinstance().ReadWord("DB17.38", 1); List<Short> liststate = S7controlLK.getinstance().ReadWord("DB17.20", 1); Short framerequest = liststate.get(0); if (framerequest == 1) { // 铝框id String position; try { Short num = 0; List<north_glass_buffer1> north_glass_buffer1s = north_Glass_Buffer1Service .SelectAluminumFrameInfoById(Plchome.FrameNo); for (north_glass_buffer1 north_glass_buffer1 : north_glass_buffer1s) { if (north_glass_buffer1.getstorageCage() == null) { break; } num++; } if (num == north_glass_buffer1s.size()) { north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo); } else { Plchome.AluminumFrame = north_glass_buffer1s; } position = dbserve.SelectPositionByFrameBarcode(J01id); } catch (SQLException e) { // TODO Auto-generated catch block position = "0"; e.printStackTrace(); } Short send; if (position.equals("0")) { send = 0; } else { send = 1; } S7controlLK.getinstance().WriteWord("DB17.38", (short) send); } if (AluminumFrame != null) { jsonObject.append("AluminumFrame", AluminumFrame); } } // 复位倒计时 // 地址104.9.6 List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1); for (Boolean countdowns : countdown) { jsonObject.append("countdown", countdowns); // 获取当前扫码方式 List<Boolean> Scanningmethods = S7control.getinstance().ReadBits("DB101.11.4", 1); if (Scanningmethods != null) { for (Boolean Scanningmethod : Scanningmethods) { jsonObject.append("Scanningmethod", Scanningmethod); } // jsonObject.append("countdown", true); // 复位完成信号ss List<Boolean> resetss = S7control.getinstance().ReadBits("DB103.284", 1); for (Boolean reset : resetss) { jsonObject.append("reset", reset); } } // 获取当前扫码枪玻璃id String CurrrentGlassId = spianService.queGlassid("DB103.256", 14).toString(); jsonObject.append("CurrrentGlassId", CurrrentGlassId); // 是否急停 List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1); for (Boolean emergencystop : emergencystops) { jsonObject.append("emergencystop", emergencystop); } // 获取进片请求状态 List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1); boolean D01RequestState = D01Request.contains((short) 1); jsonObject.append("D01RequestState", D01RequestState); // 获取D01-D06,A01,A02,B01,B02状态 List<Short> DeviceList = S7control.getinstance().ReadWord("DB103.0", 10); jsonObject.append("DeviceList", DeviceList); // 获取D01-D06,A01,A02,B01,B02玻璃id List<String> GlassIdList = new ArrayList<String>(); GlassIdList.add(spianService.queGlassid("DB103.44", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.58", 14).toString()); // 获取进片发送状态 List<Short> D01respnse = S7control.getinstance().ReadWord("DB106.16", 1); boolean D01ResponseState = D01respnse.contains((short) 1); // jsonObject.append("D01RequestState", D01RequestState); // 自动进片 GlassIdList.add(spianService.queGlassid("DB103.184", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.212", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.128", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.142", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.156", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.72", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.86", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.100", 14).toString()); GlassIdList.add(spianService.queGlassid("DB103.114", 14).toString()); jsonObject.append("GlassIdList", GlassIdList); // 获取Plc进片车与出片车位置 List<String> addressList = new ArrayList<String>(); addressList.add("DB106.12"); addressList.add("DB106.0"); List<Short> paramlist = S7control.getinstance().ReadWord(addressList); if (paramlist != null) { jsonObject.append("params", paramlist); } // // 获取进片车状态 // List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", // 1);// 获取进片车状态 // if (datas1ListState != null) { // boolean exist1 = datas1ListState.contains((short) 0); // jsonObject.append("zhuangtai", exist1); // } // // 获取进片玻璃信息 // List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1); // if (inglassInfo != null) { // if (inglassInfo.size() > 0) { // jsonObject.append("loadglassheight", inglassInfo.get(0) * 70); // } // } // // 获取铝框idDB106.DBW64,添加到出片队列 // String frameno="X21763329601FB"; String frameno = spianService.queGlassid("DB103.270", 14).toString(); if (!frameno.equals(Plchome.FrameNo)) { Plchome.FrameNo = frameno; try { Short num = 0; List<north_glass_buffer1> north_glass_buffer1s = north_Glass_Buffer1Service .SelectAluminumFrameInfoById(Plchome.FrameNo); for (north_glass_buffer1 north_glass_buffer1 : north_glass_buffer1s) { if (north_glass_buffer1.getstorageCage() == null) { break; } num++; } if (num == north_glass_buffer1s.size()) { north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo); } else { Plchome.AluminumFrame = north_glass_buffer1s; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (AluminumFrame != null) { jsonObject.append("AluminumFrame", AluminumFrame); } // 复位倒计时 // 地址104.9.6 List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1); for (Boolean countdowns : countdown) { jsonObject.append("countdown", countdowns); } // jsonObject.append("countdown", true); // 复位完成信号 List<Boolean> resetss = S7control.getinstance().ReadBits("DB103.284", 1); for (Boolean reset : resetss) { jsonObject.append("reset", reset); } // 是否急停 List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1); for (Boolean emergencystop : emergencystops) { jsonObject.append("emergencystop", emergencystop); } // 获取进片请求状态 List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1); boolean D01RequestState = D01Request.contains((short) 1); jsonObject.append("D01RequestState", D01RequestState); // 获取进片发送状态 List<Short> D01respnse = S7control.getinstance().ReadWord("DB106.16", 1); boolean D01ResponseState = D01respnse.contains((short) 1); // jsonObject.append("D01RequestState", D01RequestState); // 自动进片 isConfirm=true; if (isConfirm == true && form3.getglassId() != null && form3.getglassId() != "") { if ((form3.getglassheight() < 380 || form3.getglasswidth() < 390 || form3.getglassheight() > 1810 || form3.getglasswidth() > 2760) || (form3.getglassheight() < 390 || form3.getglasswidth() < 380 || form3.getglassheight() > 2760 || form3.getglasswidth() > 1810)) { if (isConfirm == true && D01RequestState == true && D01ResponseState == false) { FeedState = true; jsonObject.append("FeedState", FeedState); FeedState = false; } else { if (D01RequestState == true && D01ResponseState != true) { storageCageService.InsertQueueGlassId((short) 1, form3); } } } // } } catch (InterruptedException e) { e.printStackTrace(); } springboot-vue3/src/main/java/com/example/springboot/component/PlchomeNew.java
New file @@ -0,0 +1,403 @@ package com.example.springboot.component; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import com.example.springboot.service.*; import org.springframework.beans.factory.annotation.Autowired; import com.example.springboot.entity.Glass; import com.example.springboot.entity.Out_slice; import com.example.springboot.entity.Queue; import com.example.springboot.entity.StorageCage; import com.example.springboot.entity.alarmmg; import com.example.springboot.entity.north_glass_buffer1; import com.example.springboot.entity.device.PlcBitObject; import com.example.springboot.entity.device.PlcParameterObject; import com.example.springboot.mapper.HomeMapper; import com.example.springboot.mapper.SpianMapper; public class PlchomeNew extends Thread { @Autowired private HomeMapper homeMapper; private OutSliceServive outSliceServive; private SpianMapper spianMapper; private SpianService spianService; private North_Glass_Buffer1Service north_Glass_Buffer1Service; private JdbcConnections dbserve; // 出片队列是否允许出片 public static Boolean isAllowQueue = true; public static Boolean isAllowReordering = true; // 出片队列警告 public static Boolean isQueueWarning = false; // 铝框id public static String FrameNo = ""; // 是否需要手动确认玻璃 public static Boolean isConfirm = false; // 待确认的出片队列 public static List<north_glass_buffer1> AluminumFrame; // private Configuration config; private StorageCageService storageCageService; public static Boolean FeedState = false; // public Plchome() throws IOException { // config = new Configuration("config.properties"); // } // public static Map b=new HashMap<>(); // b.put() @Override public void run() { while (this != null) { JSONObject jsonObject = new JSONObject(); try { Thread.sleep(1000); // 注入mapper homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class); spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); spianService = WebSocketServer.applicationContext.getBean(SpianService.class); outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class); north_Glass_Buffer1Service = WebSocketServer.applicationContext .getBean(North_Glass_Buffer1Service.class); storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class); dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class); // 笼子使用情况 List<StorageCage> tableData = homeMapper.selectAll(); jsonObject.append("tableData", tableData); // 格理片笼格子状态 List<StorageCage> cagelist1 = homeMapper.selectRack1(); List<StorageCage> cagelist2 = homeMapper.selectRack2(); List<StorageCage> cagelist3 = homeMapper.selectRack3(); List<StorageCage> cagelist4 = homeMapper.selectRack4(); jsonObject.append("cagelist1", cagelist1); jsonObject.append("cagelist2", cagelist2); jsonObject.append("cagelist3", cagelist3); jsonObject.append("cagelist4", cagelist4); // 进出片任务 List<StorageCage> tasklist1 = homeMapper.selectinout(3); List<StorageCage> tasklist2 = homeMapper.selectinout(2); jsonObject.append("tasklist1", tasklist1); jsonObject.append("tasklist2", tasklist2); // 查询报警信息 List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo(); jsonObject.append("alarmmg", alarmmg); // 伍 获取进是否有待确认的玻璃id String queid = spianMapper.Selectqueueid(); int state = spianMapper.Selectqueuestate(); jsonObject.append("queid", queid); jsonObject.append("state", state); // 获取扫码位与上片位玻璃信息 Queue form2 = homeMapper.GetQueueInfo(2); Queue form3 = homeMapper.GetQueueInfo(1); if (form2.getglassId() != null && form2.getglassId() != "") { jsonObject.append("form2", form2); } if (form3.getglassId() != null && form3.getglassId() != "") { jsonObject.append("form3", form3); } // 获取出片队列信息 List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue(); jsonObject.append("listoutslice", listoutslice); // 获取当前出片队列出片状态 jsonObject.append("isAllowQueue", PlchomeNew.isAllowQueue); // 获取出片队列警告状态 jsonObject.append("isQueueWarning", PlchomeNew.isQueueWarning); // 获取当前出片队列调序状态 jsonObject.append("isAllowReordering", PlchomeNew.isAllowReordering); // 是否需要人工确认上片玻璃 jsonObject.append("isConfirm", isConfirm); // 查询当前铝框信息 Out_slice CurrentFrame = outSliceServive.SelectCurrentFrame(); jsonObject.append("CurrentFrame", CurrentFrame); // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16)); // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14)); // public static PlcParameterObject plcParameterObject = initUtil.initword(PlcParameter); // public static PlcBitObject plcPlcTest = initUtil.initbit(PlcTest); // public static PlcBitObject plcBitObject = initUtil.initbit(PlcSign); // public static PlcParameterObject plcStateObject = initUtil.initword(PlcState); // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm); // public static PlcParameterObject PlcMesObject = initUtil.initword(PlcMes); // public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead); // public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe); PlcParameterObject PlcParameter = PLCAutoMes.plcParameterObject;// plc参数地址DB100 PlcBitObject PlcTest = PLCAutoMes.plcPlcTest;// plc标识地址DB101 PlcBitObject PlcSign = PLCAutoMes.plcBitObject;// plc设备状态地址DB102 PlcParameterObject PlcState = PLCAutoMes.plcStateObject;// plc状态地址DB103 PlcBitObject PlcAlarm = PLCAutoMes.plcPlcAlarm;// plc报警地址DB104 PlcParameterObject MesMission = PLCAutoMes.PlcMesObject;// mes任MES务地址DB105 PlcParameterObject PLCMission = PLCAutoMes.PlcReadObject;// plc任务地址DB106 PlcParameterObject Plcframe = PLCAutoMes.PlcframeObject;// plc铝框地址DB17 // if (S7control.getinstance().CheckConnected() == true) { // 铝框线交互 if (S7controlLK.getinstance().CheckConnected() == true) { if (CurrentFrame != null) { S7controlLK.getinstance().writeStrings(CurrentFrame.getBarCode(), Plcframe.getPlcParameter("E01id") .getAddress(Plcframe.getPlcParameter("E01id").getAddressIndex())); } String E01id = S7controlLK.getinstance().readStrings(Plcframe.getPlcParameter("E01id") .getAddress(Plcframe.getPlcParameter("E01id").getAddressIndex())); String J01id = S7controlLK.getinstance().readStrings(Plcframe.getPlcParameter("J01id") .getAddress(Plcframe.getPlcParameter("J01id").getAddressIndex())); String framerequest = Plcframe.getPlcParameter("J01Quest").getValue(); // List<Short> liststates = S7controlLK.getinstance().ReadWord("DB17.38", 1); // List<Short> liststate = S7controlLK.getinstance().ReadWord("DB17.20", 1); // Short framerequest = liststate.get(0); if (framerequest.equals("1")) { // 铝框id String position; try { position = dbserve.SelectPositionByFrameBarcode(J01id); } catch (SQLException e) { // TODO Auto-generated catch block position = "0"; e.printStackTrace(); } Short send; if (position.equals("0")) { send = 0; } else { send = 1; } S7controlLK.getinstance().WriteWord(Plcframe.getPlcParameter("J01Quest") .getAddress(Plcframe.getPlcParameter("J01Quest").getAddressIndex()), (short) send); } } // 获取当前扫码方式 // List<Boolean> Scanningmethods = // S7control.getinstance().ReadBits("DB101.11.4", 1); // if (Scanningmethods != null) { // for (Boolean Scanningmethod : Scanningmethods) { // jsonObject.append("Scanningmethod", Scanningmethod); // } // } // Boolean Scanningmethod = PlcTest.getPlcBit("Scanningmethod").getValue(); if (Scanningmethod != null) { jsonObject.append("Scanningmethod", Scanningmethod); } // 获取当前扫码枪玻璃id String CurrrentGlassId=PlcState.getPlcParameter("Scanningguns").getValue(); // String CurrrentGlassId = spianService.queGlassid("DB103.256", 14).toString(); jsonObject.append("CurrrentGlassId", CurrrentGlassId); // 获取D01-D06,A01,A02,B01,B02状态 // List<Short> DeviceList = S7control.getinstance().ReadWord("DB103.0", 10); List<String> DeviceStateList=new ArrayList<String>(); DeviceStateList.add("D01.State"); DeviceStateList.add("D02.State"); DeviceStateList.add("B01.State"); DeviceStateList.add("B02.State"); DeviceStateList.add("A01.State"); DeviceStateList.add("A02.State"); DeviceStateList.add("D03.State"); DeviceStateList.add("D04.State"); DeviceStateList.add("D05.State"); DeviceStateList.add("D06.State"); List<String> DeviceList=PlcState.getPlcParameterValues(DeviceStateList); jsonObject.append("DeviceList", DeviceList); // 获取D01-D06,A01,A02,B01,B02玻璃id List<String> GlassStateList=new ArrayList<String>(); GlassStateList.add("D01ID"); GlassStateList.add("D02ID"); GlassStateList.add("B01ID1"); GlassStateList.add("B02ID1"); GlassStateList.add("A01ID1"); GlassStateList.add("A01ID2"); GlassStateList.add("A02ID1"); GlassStateList.add("D03ID"); GlassStateList.add("D04ID"); GlassStateList.add("D05ID"); GlassStateList.add("D06ID"); List<String> GlassIdList = PlcState.getPlcParameterValues(GlassStateList); // List<String> GlassIdList = new ArrayList<String>(); // GlassIdList.add(spianService.queGlassid("DB103.44", 14).toString()); // GlassIdList.add(spianService.queGlassid("DB103.58", 14).toString()); // GlassIdList.add(spianService.queGlassid("DB103.184", 14).toString()); // GlassIdList.add(spianService.queGlassid("DB103.212", 14).toString()); // GlassIdList.add(spianService.queGlassid("DB103.128", 14).toString()); // GlassIdList.add(spianService.queGlassid("DB103.142", 14).toString()); // GlassIdList.add(spianService.queGlassid("DB103.156", 14).toString()); // GlassIdList.add(spianService.queGlassid("DB103.72", 14).toString()); // GlassIdList.add(spianService.queGlassid("DB103.86", 14).toString()); // GlassIdList.add(spianService.queGlassid("DB103.100", 14).toString()); // GlassIdList.add(spianService.queGlassid("DB103.114", 14).toString()); jsonObject.append("GlassIdList", GlassIdList); // 获取Plc进片车与出片车位置 List<String> addressList = new ArrayList<String>(); addressList.add("A02Position"); addressList.add("A01Position"); List<String> paramlist=PLCMission.getPlcParameterValues(addressList); // addressList.add("DB106.12"); // addressList.add("DB106.0"); // List<Short> paramlist = S7control.getinstance().ReadWord(addressList); if (paramlist != null) { jsonObject.append("params", paramlist); } // // 获取进片车状态 // List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", // 1);// 获取进片车状态 // if (datas1ListState != null) { // boolean exist1 = datas1ListState.contains((short) 0); // jsonObject.append("zhuangtai", exist1); // } // // 获取进片玻璃信息 // List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1); // if (inglassInfo != null) { // if (inglassInfo.size() > 0) { // jsonObject.append("loadglassheight", inglassInfo.get(0) * 70); // } // } // // 获取铝框idDB106.DBW64,添加到出片队列 // String frameno="X21763329601FB"; String frameno=PlcState.getPlcParameter("Frameid").getValue();//待电气更新地址表格 // String frameno = spianService.queGlassid("DB103.270", 14).toString(); if (!frameno.equals(PlchomeNew.FrameNo)) { PlchomeNew.FrameNo = frameno; try { Short num = 0; List<north_glass_buffer1> north_glass_buffer1s = north_Glass_Buffer1Service .SelectAluminumFrameInfoById(PlchomeNew.FrameNo); for (north_glass_buffer1 north_glass_buffer1 : north_glass_buffer1s) { if (north_glass_buffer1.getstorageCage() == null) { break; } num++; } if (num == north_glass_buffer1s.size()) { north_Glass_Buffer1Service.AddOutSliceS(PlchomeNew.FrameNo); } else { PlchomeNew.AluminumFrame = north_glass_buffer1s; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (AluminumFrame != null) { jsonObject.append("AluminumFrame", AluminumFrame); } // 复位倒计时 // 地址104.9.6 Boolean countdown=PlcAlarm.getPlcBit("resetDelay").getValue(); jsonObject.append("countdown", countdown); // List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1); // for (Boolean countdowns : countdown) { // jsonObject.append("countdown", countdowns); // } // jsonObject.append("countdown", true); // 复位完成信号 String reset=PlcState.getPlcParameter("resetDelay").getValue(); jsonObject.append("reset", reset); // List<Boolean> resetss = S7control.getinstance().ReadBits("DB103.284", 1); // for (Boolean reset : resetss) { // jsonObject.append("reset", reset); // } // 是否急停 Boolean emergencystop=PlcAlarm.getPlcBit("emergencystopalarm").getValue(); jsonObject.append("emergencystop", emergencystop); // List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1); // for (Boolean emergencystop : emergencystops) { // jsonObject.append("emergencystop", emergencystop); // } // 获取进片请求状态 String D01Request=PLCMission.getPlcParameter("FeedRequest").getValue(); // List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1); Boolean D01RequestState = D01Request.contains("1"); jsonObject.append("D01RequestState", D01RequestState); // 获取进片发送状态 String D01respnse=PLCMission.getPlcParameter("A02QuestStartPosition").getValue(); // List<Short> D01respnse = S7control.getinstance().ReadWord("DB106.16", 1); boolean D01ResponseState = D01respnse.contains("1"); // jsonObject.append("D01RequestState", D01RequestState); // 自动进片 isConfirm = true; if (isConfirm == true && form3.getglassId() != null && form3.getglassId() != "") { if ((form3.getglassheight() < 380 || form3.getglasswidth() < 390 || form3.getglassheight() > 1810 || form3.getglasswidth() > 2760) || (form3.getglassheight() < 390 || form3.getglasswidth() < 380 || form3.getglassheight() > 2760 || form3.getglasswidth() > 1810)) { FeedState = true; jsonObject.append("FeedState", FeedState); FeedState = false; } else { if (D01RequestState == true && D01ResponseState != true) { storageCageService.InsertQueueGlassId((short) 1, form3); } } } // } } catch (InterruptedException e) { e.printStackTrace(); } boolean dbconnected = false; try { dbserve.getConn(); dbconnected = true; } catch (Exception e) { // TODO: handle exception dbconnected = false; } jsonObject.append("dbconnected", dbconnected); // jsonObject.append("params", new short[] { 30, 40, }); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); if (webserver != null) { List<String> messages = webserver.getMessages(); if (!messages.isEmpty()) { // // 将最后一个消息转换为整数类型的列表 webserver.clearMessages(); } } } } } } } springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -17,7 +17,8 @@ // System.out.println("启动完成"); new PlcHold().start(); // new PlcHold().start(); // new PLCAutoMes().start(); // new Plchome().start(); // new PlcLayout().start(); springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -181,25 +181,23 @@ public Result InsertQueueGlassId(Short id, Queue queue) { Map<String, Object> map = new HashMap<>(); if (Plchome.FeedState == false) { Plchome.FeedState = true; Short zhi = 200; short result = homeMapper.SelectStorageByGlassId(queue.getglassId()); if (result > 0) { map.put("message", "300"); } else { if (id == 1) { // 调用伍存储过程 zhi = spianService.selectAll(queue.getglassId()); if (zhi == 200) { homeMapper.InsertQueueGlassId(queue, id); } } map.put("message", zhi); } Plchome.FeedState = false; Short zhi = 200; short result = homeMapper.SelectStorageByGlassId(queue.getglassId()); if (result > 0) { map.put("message", "300"); } else { map.put("message", 200); if (id == 1) { // 调用伍存储过程 zhi = spianService.selectAll(queue.getglassId()); if (zhi == 200) { homeMapper.InsertQueueGlassId(queue, id); } } map.put("message", zhi); } if (zhi != 200) { Plchome.FeedState = true; } return Result.success(map); } springboot-vue3/src/main/resources/JsonFile/PlcSign.json
@@ -451,5 +451,10 @@ "codeId": "space", "addressIndex": 111 } , { "codeId": "space", "addressIndex": 111 } ] } springboot-vue3/src/main/resources/JsonFile/PlcState.json
@@ -1,6 +1,6 @@ { "plcAddressBegin": "DB103.0", "plcAddressLenght": "256", "plcAddressLenght": "258", "dataType": "word", "parameteInfor": [ { @@ -267,6 +267,19 @@ "addressLenght": "2", "unit": "" } , { "codeId": "Scanningguns", "addressIndex": "256", "addressLenght": "2", "unit": "" } , { "codeId": "Frameid", "addressIndex": "270", "addressLenght": "2", "unit": "" } ] } springboot-vue3/src/main/resources/JsonFile/PlcTest.json
@@ -1,6 +1,6 @@ { "plcAddressBegin": "DB101.0.0", "plcAddressLenght": "92", "plcAddressLenght": "93", "dataType": "bit", "parameteInfor": [ { @@ -370,6 +370,9 @@ { "codeId": "emgHMI", "addressIndex": 91 } }, { "codeId": "Scanningmethod", "addressIndex": 92 ] }