package com.mes.job;
|
|
import cn.hutool.json.JSONObject;
|
import com.mes.common.S7object;
|
import com.mes.device.PlcParameterObject;
|
import com.mes.md.entity.Machine;
|
import com.mes.md.entity.Tasking;
|
import com.mes.md.mapper.MachineMapper;
|
import com.mes.md.service.TaskingService;
|
import com.mes.tools.WebSocketServer;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* @author SNG-010
|
*/
|
@Component
|
@Slf4j
|
public class PLCEdging {
|
|
PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
|
@Autowired
|
TaskingService taskingService;
|
@Autowired
|
MachineMapper machineMapper;
|
//@Scheduled(fixedDelay = 500)
|
public void PLCEdging() {
|
//磨边进片请求信号
|
String edgingSign = plcParameterObject.getPlcParameter("edgingSign").getValue();
|
if (!Objects.equals(edgingSign, "")){
|
Tasking glass = new Tasking();
|
glass.setWorkState("工作");
|
//glass.setCurrentCraft("磨边");
|
glass.setState("线上");
|
Tasking tasking =new Tasking();
|
//Tasking tasking =taskingService.selectTasking(glass);
|
//发送长宽厚尺寸
|
S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("length").getAddress(), Integer.parseInt(tasking.getLength().toString()));
|
S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("width").getAddress(), Integer.parseInt(tasking.getWidth().toString()));
|
S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("thickness").getAddress(), Integer.parseInt(tasking.getThickness().toString()));
|
|
}
|
//持续获取速度同步给下一个机器
|
String edgingSpeed = plcParameterObject.getPlcParameter("edgingSpeed").getValue();
|
if(!Objects.equals(edgingSpeed, "")){
|
S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("cleaningSpeed").getAddress(), Integer.parseInt(edgingSpeed));
|
}
|
|
}
|
@Scheduled(fixedDelay = 1000)
|
public void edgingWeb() {
|
//获取当前任务表最新的一块任务状态
|
//获取报警状态
|
JSONObject jsonObject = new JSONObject();
|
// String warning = plcParameterObject.getPlcParameter("warning").getValue();
|
// if (!Objects.equals(warning, "0")) {
|
// //log.info("报警信息:"+warning);
|
// jsonObject.append("warning", warning);
|
// }
|
Machine machine=machineMapper.selectById(5L);
|
List<Tasking> taskingList=taskingService.findMachineTask(machine);
|
jsonObject.append("taskingList", taskingList);
|
jsonObject.append("machine", machine);
|
Machine machineQr=machineMapper.selectById(3L);
|
List<Tasking> taskingListQr=taskingService.findMachineTask(machineQr);
|
jsonObject.append("taskingListQr",taskingListQr );
|
jsonObject.append("machineQR",machineQr );
|
ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("edging");
|
if (sendwServer != null) {
|
for (WebSocketServer webserver : sendwServer) {
|
if (webserver != null) {
|
webserver.sendMessage(jsonObject.toString());
|
List<String> messages = webserver.getMessages();
|
if (!messages.isEmpty()) {
|
// // 将最后一个消息转换为整数类型的列表
|
webserver.clearMessages();
|
}
|
} else {
|
log.info("Home is closed");
|
}
|
}
|
|
}
|
}
|
|
}
|