懒羊羊
2024-02-29 c2944ac8932c64d520b103530ec6797f193eede6
提交 | 用户 | 时间
e57a89 1 package com.jcdm.main.da.opcuaconfig.cert;
2
3 import com.jcdm.framework.websocket.WebSocketServer;
4 import com.jcdm.framework.websocket.WebSocketUsers;
5 import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo;
6 import com.jcdm.main.bs.formulaChild.service.IBsFormulaChildInfoService;
7 import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf;
8 import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService;
9 import com.jcdm.main.da.opcuaconfig.client.ClientHandler;
10 import com.jcdm.main.da.opcuaconfig.domain.NodeEntity;
11 import com.jcdm.main.da.opcuaconfig.init.BeanUtils;
12 import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
13 import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
14 import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
15 import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService;
16 import lombok.extern.slf4j.Slf4j;
17 import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue;
18 import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId;
19
20 import javax.websocket.Session;
21 import java.util.Date;
22 import java.util.List;
23 import java.util.Map;
24 import java.util.stream.Collectors;
25
26 import static com.jcdm.main.da.opcuaconfig.client.ClientHandler.readValues;
27
28 @Slf4j
29 public class MethodName {
30     Map<String, Session> map = WebSocketUsers.getUsers();
31     private IDaCollectionParamConfService collectionParamConfService = BeanUtils.getBean(IDaCollectionParamConfService.class);
32     private IDaParamCollectionService daParamCollectionService = BeanUtils.getBean(IDaParamCollectionService.class);
33     private IDaPassingStationCollectionService daPassingStationCollectionService = BeanUtils.getBean(IDaPassingStationCollectionService.class);
34     private IBsFormulaChildInfoService bsFormulaChildInfoService = BeanUtils.getBean(IBsFormulaChildInfoService.class);
35     private List<DataValue> s=null;
36     public void Transit(String Node, String value) throws Exception {
37         log.info(Node+":"+value);
38         String[] parts = Node.split("[.]");
39         ClientHandler clientHandler=new ClientHandler();
40         NodeEntity SN_node= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".SNCode").value("").type("").build();
41         String SNCode=clientHandler.read(SN_node);
42         log.info("读取节点:{},结果:{}", SN_node.getIdentifier(),SNCode);
43         switch (value) {
44             case "0":   //初始
45                 NodeEntity node= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".RecordDataDone").value("0").type("short").build();
46                 Boolean out=clientHandler.write(node);
47                 log.info("节点:{},响应结果:{}", node.getIdentifier(),out);
c2944a 48                 WebSocketUsers.sendMessageToUserByText(map.get(parts[1]), "IN0");
49
e57a89 50                 break;
51             case "1":   //请求下发进站状态
52                 NodeEntity node1= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".RecordDataDone").value("11").type("short").build();
53                 Boolean out1=clientHandler.write(node1);
54                 DaPassingStationCollection PassingStationCollection=new DaPassingStationCollection();
55                 PassingStationCollection.setSfcCode(SNCode);
56                 PassingStationCollection.setLocationCode(parts[1]);
57                 PassingStationCollection.setInboundTime(new Date());
58                 daPassingStationCollectionService.insertDaPassingStationCollection(PassingStationCollection);
59                 log.info("节点:{},响应结果:{}", node1.getIdentifier(),out1);
60                 WebSocketUsers.sendMessageToUserByText(map.get(parts[1]), "IN");
61                 break;
62             case "2":   //请求记录工位数据
63                 List<DaCollectionParamConf> b;
64                 DaCollectionParamConf daCollectionParamConf=new DaCollectionParamConf();
65                 daCollectionParamConf.setGatherAddress(parts[0]+"."+parts[1]);
66                 b=collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf);
67
68                 List<NodeId> nodeId = b.stream().map(info -> {
69                     NodeId nodeid = new NodeId(2,info.getGatherAddress());
70                     return nodeid;
71                 }).collect(Collectors.toList());
72                 List<DataValue> s=readValues(nodeId);
73                 //保存PLC采集数据
c2944a 74 //                for(int i=0;i<nodeId.size();i++)
75 //                {
76 //                    DaParamCollection Config=new DaParamCollection();
77 //                    Config.setParamCode(nodeId.get(i).getIdentifier().toString().split("[.]")[2]);
78 //                    Config.setLocationCode(nodeId.get(i).getIdentifier().toString().split("[.]")[1]);
79 //                    Config.setParamValue(s.get(i).getValue().getValue().toString());
80 //                    Config.setSfcCode(SNCode);
81 //                    Config.setParamName(b.get(i).getGatherAddress());
82 //                    daParamCollectionService.insertDaParamCollection(Config);
83 //                }
e57a89 84                 //更新出站时间,计算节拍。
85                 DaPassingStationCollection PSC=new DaPassingStationCollection();
86                 PSC.setSfcCode(SNCode);
87                 List<DaPassingStationCollection> LPSC=daPassingStationCollectionService.selectDaPassingStationCollectionList(PSC);
88                 if(LPSC != null && LPSC.size() > 0){
89                     LPSC.get(0).setOutboundTime(new Date());
90                     LPSC.get(0).setCollectionTime(new Date());
91                     LPSC.get(0).setBeatTime(Long.toString(Math.abs(new Date().getTime() - LPSC.get(0).getInboundTime().getTime())));
92                     daPassingStationCollectionService.updateDaPassingStationCollection(LPSC.get(0));
93                 }
94                 //更新PLC节点状态
95                 NodeEntity node2= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".RecordDataDone").value("21").type("short").build();
96                 Boolean out2=clientHandler.write(node2);
97                 WebSocketUsers.sendMessageToUserByText(map.get(parts[1]), "OUT");
98                 log.info("节点:{},响应结果:{}", node2.getIdentifier(),out2);
99                 break;
100             default:
101                 break;
102         }
103     }
104
105     public void tighten(String Node, String value) throws Exception {
106         String[] parts = Node.split("[.]");
107         ClientHandler clientHandler=new ClientHandler();
108         System.out.println("Node:"+Node+"value:"+value);
109         switch (value){
110             case "1":
111                 //读扭矩
112                 NodeEntity SN_node= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".RecordSN").value("").type("").build();
113                 String SNCode=clientHandler.read(SN_node);
114
115                 //读角度
116                 NodeEntity SNDone= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".RecordSNDone").value("").type("").build();
117                 String RecordSNDone = clientHandler.read(SNDone);
118
119                 //读结果
120                 NodeEntity SNDone1= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".WorkID").value("").type("").build();
121                 String WorkID = clientHandler.read(SNDone1);
122
123                 //保存参数采集表
124                 DaParamCollection paramCollection = new DaParamCollection();
125                 paramCollection.setLocationCode(parts[1]);
126                 paramCollection.setParamCode("RecordSN");
127                 paramCollection.setParamValue(SNCode);
128                 paramCollection.setParamName(parts[0]+"."+parts[1]+".RecordSN");
129                 daParamCollectionService.insertDaParamCollection(paramCollection);
130
131
132                 DaParamCollection paramCollection1 = new DaParamCollection();
133                 paramCollection1.setLocationCode(parts[1]);
134                 paramCollection1.setParamCode("RecordSNDone");
135                 paramCollection1.setParamValue(RecordSNDone);
136                 paramCollection1.setParamName(parts[0]+"."+parts[1]+".RecordSNDone");
137                 daParamCollectionService.insertDaParamCollection(paramCollection1);
138
139
140
141                 DaParamCollection paramCollection2 = new DaParamCollection();
142                 paramCollection2.setLocationCode(parts[1]);
143                 paramCollection2.setParamCode("WorkID");
144                 paramCollection2.setParamValue(WorkID);
145                 paramCollection2.setParamName(parts[0]+"."+parts[1]+".WorkID");
146                 daParamCollectionService.insertDaParamCollection(paramCollection2);
147
148                 //保存状态更新前端表单
149                 BsFormulaChildInfo test = bsFormulaChildInfoService.selectBsFormulaChildInfoByTypeTopOne("1", "test", parts[1]);
150                 test.setResults(WorkID);
151                 bsFormulaChildInfoService.updateBsFormulaChildInfo(test);
152                 WebSocketUsers.sendMessageToUserByText(map.get(parts[1]), "TIGHTEN");
153
154
155
156                 System.out.println("SNCode:"+SNCode);
157                 System.out.println("Node:"+Node+"value:"+value);
158                 NodeEntity node= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".StationStatus").value("0").type("short").build();
159                 Boolean out=clientHandler.write(node);
160                 NodeEntity RecordSN= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".RecordSN").value("0").type("short").build();
161                 Boolean out1=clientHandler.write(RecordSN);
162                 NodeEntity riteRecordSNDone= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".RecordSNDone").value("0").type("short").build();
163                 Boolean out2=clientHandler.write(riteRecordSNDone);
164                 log.info("节点:{},响应结果:{}", node.getIdentifier(),out);
165             default:
166                 break;
167         }
168     }
169
c2944a 170     //工件到位
171     public void inPlace(String Node, String value) throws Exception {
172         String[] parts = Node.split("[.]");
173         ClientHandler clientHandler=new ClientHandler();
174         System.out.println("Node:"+Node+"value:"+value);
175         switch (value){
176             case "1":
177
178             default:
179                 break;
180         }
181     }
182
183     //放行
184     public void release(String Node, String value) throws Exception {
185         String[] parts = Node.split("[.]");
186         ClientHandler clientHandler=new ClientHandler();
187         System.out.println("Node:"+Node+"value:"+value);
188         switch (value){
189             case "1":
190
191             default:
192                 break;
193         }
194     }
195
e57a89 196
197 }