ZengTao
2024-04-10 73033f1d691ef89f39b175ffb96f800076975d5c
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -1,4 +1,5 @@
package com.example.springboot.component;
import cn.hutool.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
@@ -31,12 +32,8 @@
    @Autowired
    private HomeService HomeService;
    private QueueMapper QueueMapper;
    private GlassInfoMapper GlassInfoMapper;
    private MeasureSettingMapper MeasureSettingMapper;
    private OutSliceServive outSliceServive;
    private SpianMapper spianMapper;
    private SpianService spianService;
    // 出片队列是否允许出片
    public static Boolean isAllowQueue = true;
    public static Boolean isAllowReordering = true;
@@ -61,6 +58,9 @@
    // public static Map b=new HashMap<>();
    // b.put()
    public double carstart = 200;
    public double carend = 20000;
    @Override
    public void run() {
        while (this != null) {
@@ -68,22 +68,28 @@
            try {
                Thread.sleep(1000);
                // 注入mapper
                HomeService  = WebSocketServer.applicationContext.getBean(HomeService.class);
                QueueMapper  = WebSocketServer.applicationContext.getBean(QueueMapper.class);
                HomeService = WebSocketServer.applicationContext.getBean(HomeService.class);
                QueueMapper = WebSocketServer.applicationContext.getBean(QueueMapper.class);
                homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
                spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
                spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
                outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class);
                storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class);
                // 获取其车的位置
                if (S7control.getinstance().CheckConnected() == true) {
                    double carposition = 0;
                    float car = S7control.getinstance().readFloat32("DB10.1992");
                    carposition = (-40 + (car / (carend - carstart) * 595));
                    jsonObject.append("carposition", carposition);
                }
                // 笼子使用情况
                List<StorageCage> tableData = homeMapper.selectAlls();
                jsonObject.append("tableData", tableData);
                // 格理片笼格子状态
                List<StorageCage> cagelist1=storageCageService.SelectStorageCageByCage(1);
                List<StorageCage> cagelist2=storageCageService.SelectStorageCageByCage(2);
                List<StorageCage> cagelist3=storageCageService.SelectStorageCageByCage(3);
                List<StorageCage> cagelist4=storageCageService.SelectStorageCageByCage(4);
                List<StorageCage> cagelist1 = storageCageService.SelectStorageCageByCage(1);
                List<StorageCage> cagelist2 = storageCageService.SelectStorageCageByCage(2);
                List<StorageCage> cagelist3 = storageCageService.SelectStorageCageByCage(3);
                List<StorageCage> cagelist4 = storageCageService.SelectStorageCageByCage(4);
                jsonObject.append("cagelist1", cagelist1);
                jsonObject.append("cagelist2", cagelist2);
                jsonObject.append("cagelist3", cagelist3);
@@ -97,7 +103,6 @@
                List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
                jsonObject.append("alarmmg", alarmmg);
                // 获取出片队列信息
                List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue();
                jsonObject.append("listoutslice", listoutslice);
@@ -112,68 +117,74 @@
                // 查询当前铝框信息
                Out_slice CurrentFrame = outSliceServive.SelectCurrentFrame();
                jsonObject.append("CurrentFrame", CurrentFrame);
                //读取DB105区文件
                PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
                String PlcRequest=plcmes.getPlcParameter("GaToMES").getValue();//请求
                String MesSend=plcmes.getPlcParameter("MESToGaStatus").getValue();//发送
                double width=Double.valueOf(plcmes.getPlcParameter("width").getValue());//宽
                double height=Double.valueOf(plcmes.getPlcParameter("Height").getValue());//高
                // String PlcRequest=S7control.getinstance().ReadWord("DB14.26", 1).get(0)+"";
                // double width=Double.parseDouble(S7control.getinstance().ReadWord("DB14.28", 1).get(0)+"");
                // double height=Double.parseDouble(S7control.getinstance().ReadWord("DB14.30", 1).get(0)+"");
                // String MesSend=S7control.getinstance().ReadWord("DB14.170", 1).get(0)+"";
                // 读取DB105区文件
                PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
                // if(plcmes.==null){
                //获取测量的长,宽
                 boolean istest = true;
                // }
                // 获取测量的长,宽
                boolean istest = true;
                // String PlcRequest = "1";
                // String MesSend = "0";
                // double width = 402;
                // double height = 402;
                //匹配
                //System.err.println(PlcRequest+","+MesSend+","+width+","+height);
                if ("0".equals(PlcRequest)&&istest) {
                    S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 0);
                }
                if ("1".equals(PlcRequest)&&"0".equals(MesSend)) {
                    boolean is=HomeService.Normal(width, height, "1");
                    if (is&&istest) {
                        // 测量成功
                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
                // double width = 0;
                // double height = 0;
                    }else if(istest){
                        // 重新测量
                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 4);
                    }
                // 匹配
                // System.err.println(PlcRequest+","+MesSend+","+width+","+height);
                // String PlcRequest = plcmes.getPlcParameter("GaToMES").getValue();// 请求
                // String MesSend = plcmes.getPlcParameter("MESToGaStatus").getValue();// 发送
                // double width = Double.valueOf(plcmes.getPlcParameter("width").getValue());// 宽
                // double height = Double.valueOf(plcmes.getPlcParameter("Height").getValue());// 高
                // if ("0".equals(PlcRequest) && istest) {
                //     S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 0);
                // }
                // if ("1".equals(PlcRequest) && "0".equals(MesSend)) {
                //     boolean is = HomeService.Normal(width, height, "1");
                //     if (is && istest) {
                //         // 测量成功
                //         S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
                //                 (short) 1);
                }
                 //S7control.getinstance().WriteWord("DB14.170", (short)0);
                Queue LastQueue= QueueMapper.selectLastQueue();
                if(LastQueue==null){
                    Queue nullQueue=new Queue();
                //     } else if (istest) {
                //         // 重新测量
                //         S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
                //                 (short) 4);
                //     }
                // }
                // S7control.getinstance().WriteWord("DB14.170", (short)0);
                Queue LastQueue = QueueMapper.selectLastQueue();
                if (LastQueue == null) {
                    Queue nullQueue = new Queue();
                    nullQueue.setglassId("");
                    nullQueue.setglassheight(0);
                    nullQueue.setglasswidth(0);
                    nullQueue.setglassheightmm(0);
                    nullQueue.setglasswidthmm(0);
                    jsonObject.append("LastQueue", nullQueue);
                }else{
                } else {
                    if (LastQueue.getstate() < 1) {
                        LastQueue.setglasswidth(0);
                        LastQueue.setglassheight(0);
                    }
                    jsonObject.append("LastQueue", LastQueue);
                }
                // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16));
                // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14));
                //查询理片笼信息
                // 查询理片笼信息
                List<StorageCage> StorageCageInfo = storageCageService.SelectStorageCageInfo();
                jsonObject.append("StorageCageInfo", StorageCageInfo);
                //查询当前进片任务
                // 查询当前进片任务
                List<StorageTask> StoragTaskeTaskFeed = storageCageService.SelectStorageTask(0);
                jsonObject.append("StoragTaskeTaskFeed", StoragTaskeTaskFeed);
                //查询当前出片任务
                // 查询当前出片任务
                List<StorageTask> StoragTaskeTaskOut = storageCageService.SelectStorageTask(1);
                jsonObject.append("StoragTaskeTaskOut", StoragTaskeTaskOut);