| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- package com.mes.ui;
- import com.alibaba.fastjson2.JSON;
- import com.github.xingshuangs.iot.protocol.modbus.service.ModbusTcp;
- import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
- import com.mes.component.MyDialog;
- import com.mes.util.DateLocalUtils;
- import com.mes.util.JdbcUtils;
- import javax.swing.*;
- import java.awt.*;
- import java.util.ArrayList;
- import java.util.Arrays;
- public class PlcUtil {
- public static void getParamDyDl(S7PLC s7PLC){
- Boolean starta = s7PLC.readBoolean("DB1.2.2"); //A启动中
- Boolean startb = s7PLC.readBoolean("DB1.2.3"); //B启动中
- String oprno = MesClient.mes_gw+"A";
- if(startb){
- oprno = MesClient.mes_gw+"B";
- }
- if(MesClient.mes_gwflag.equals("B")){
- if(oprno.equals(MesClient.mes_gw+"A")){
- oprno = MesClient.mes_gw+"C";
- }else{
- oprno = MesClient.mes_gw+"D";
- }
- }
- if(MesClient.tjFlaga == 2 || MesClient.tjFlagb == 2){ //运行中
- Float dya = s7PLC.readFloat32("DB1010.2");
- Float dla = s7PLC.readFloat32("DB1010.8");
- Float ssa = s7PLC.readFloat32("DB1010.14");
- Short cwa = s7PLC.readInt16("DB1010.18");
- Short joba = s7PLC.readInt16("DB1010.20");
- // MesClient.param1.setText(dya+"");
- // MesClient.param2.setText(dla+"");
- // MesClient.param3.setText(ssa+"");
- // MesClient.param4.setText(cwa+"");
- // MesClient.param5.setText(joba+"");
- Float dyb = s7PLC.readFloat32("DB1010.26");
- Float dlb = s7PLC.readFloat32("DB1010.34");
- Float ssb = s7PLC.readFloat32("DB1010.42");
- Short cwb = s7PLC.readInt16("DB1010.46");
- Short jobb = s7PLC.readInt16("DB1010.48");
- // MesClient.param21.setText(dyb+"");
- // MesClient.param22.setText(dlb+"");
- // MesClient.param23.setText(ssb+"");
- // MesClient.param24.setText(cwb+"");
- // MesClient.param25.setText(jobb+"");
- String record_time = DateLocalUtils.getCurrentTime();
- MesClient.hjparams.add(dya+"|"+dla+"|"+ssa+"|"+cwa+"|"+joba+"|"+dyb+"|"+dlb+"|"+ssb+"|"+cwb+"|"+jobb+"|"+record_time);
- if(MesClient.hjparams.size() == 60){
- try{
- if(MesClient.curFlag.equals("A")){
- JdbcUtils.insertCmtData(oprno,MesClient.mes_line_sn,MesClient.product_sn.getText(), JSON.toJSONString(MesClient.hjparams));
- }else{
- JdbcUtils.insertCmtData(oprno,MesClient.mes_line_sn,MesClient.product_sn2.getText(), JSON.toJSONString(MesClient.hjparams));
- }
- System.out.println("cmt:"+MesClient.curFlag);
- MesClient.hjparams = new ArrayList<>();
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- }
- }
- public static void getStatusAOld(S7PLC s7PLC){
- String sna = "";
- if(MesClient.tjFlaga == 1){ // 待运行
- MesClient.checkA = 0;
- Boolean starta = s7PLC.readBoolean("DB1.2.2"); //A启动中
- if(starta){
- MesClient.curFlag = "A";
- MesClient.tjFlaga = 2;
- MesClient.pxstatus1.setText("A:设备运行中");
- PlcUtil.changeEnable(MesClient.s7PLC,false);
- }
- }else if(MesClient.tjFlaga == 2){ // 运行中
- MesClient.batch_scan_1.setEnabled(false);
- Boolean starta = s7PLC.readBoolean("DB1.2.5"); //A焊接完成
- Boolean startb = s7PLC.readBoolean("DB1.2.3"); //B启动中
- if(starta || startb){ // B启动中,A当做完成
- MesClient.tjFlaga = 3;
- MesClient.pxstatus1.setText("A:设备运行结束,提交结果中");
- MesClient.finish_ok_bt.setEnabled(true);
- Boolean sendret = DataUtil.sendQuality(MesClient.nettyClient,MesClient.product_sn.getText(),"OK",MesClient.user20,"A");
- if(!sendret){
- MesClient.pxstatus1.setText("A:结果上传MES失败");
- MesClient.tjStatusa = 1;
- }else{
- // MesClient.pxstatus1.setText("A:提交成功");
- // MesClient.status_menu.setText("A件提交成功");
- // MesClient.resetScanA();
- }
- }
- // Boolean sa = s7PLC.readBoolean("DB1.2.2"); //A启动中
- // if(!sa){
- // MesClient.pxstatus1.setText("A:设备运行停止");
- // MesClient.finish_ok_bt.setEnabled(true);
- // }
- }
- }
- public static void getStatusBOld(S7PLC s7PLC){
- String snb = "";
- if(MesClient.tjFlagb == 0){ // 未扫码
- snb = s7PLC.readString("DB8.100",50);
- System.out.println("snb:"+snb);
- if(!snb.isEmpty() && !MesClient.curSnb.equals(snb) && snb.length() == 33){
- MesClient.product_sn2.setText(snb);
- }else{
- snb = "";
- }
- if(!MesClient.mesQualityFlagB && !snb.isEmpty() && MesClient.curSnb.isEmpty()){ // 查询工件质量
- if(!MesClient.tcp_connect_flag) {
- MesClient.status_menu.setText("未连接MES服务器");
- }else{
- if(MesClient.checkB == 0) {
- MesClient.checkB = 1;
- MesClient.getUser();
- Boolean sendret = DataUtil.checkQuality(MesClient.nettyClient,snb,MesClient.user20,"B");
- if(!sendret){
- MesClient.pxstatus2.setText("B:查询质量失败");
- MesClient.checkB = 0;
- }
- }
- }
- }
- }else if(MesClient.tjFlagb == 1){ // 待运行
- MesClient.checkB = 0;
- Boolean startb = s7PLC.readBoolean("DB1.2.3"); //B启动中
- if(startb){
- MesClient.curFlag = "B";
- MesClient.tjFlagb = 2;
- MesClient.pxstatus2.setText("B:设备运行中");
- PlcUtil.changeEnable(MesClient.s7PLC,false);
- }
- }else if(MesClient.tjFlagb == 2){ // 运行中
- MesClient.batch_scan_2.setEnabled(false);
- Boolean starta = s7PLC.readBoolean("DB1.2.7"); //B焊接完成
- Boolean startb = s7PLC.readBoolean("DB1.2.2"); //A启动中
- if(starta || startb){
- MesClient.tjFlagb = 3;
- MesClient.pxstatus2.setText("B:设备运行结束,提交结果中");
- MesClient.finish_ng_bt.setEnabled(true);
- Boolean sendret = DataUtil.sendQuality(MesClient.nettyClient,MesClient.product_sn2.getText(),"OK",MesClient.user20,"B");
- if(!sendret){
- MesClient.pxstatus2.setText("B:结果上传MES失败");
- MesClient.tjStatusb = 1;
- }else{
- // MesClient.pxstatus2.setText("B:提交成功");
- // MesClient.status_menu.setText("B件提交成功");
- // MesClient.resetScanB();
- }
- }
- }
- }
- public static void getStatusA(S7PLC s7PLC){
- if(MesClient.tjFlaga == 1){ // 已扫码,设备未运行
- Boolean starta = getAStart(s7PLC); //A启动中
- if(starta){
- MesClient.curFlag = "A";
- MesClient.tjFlaga = 2;
- MesClient.pxstatus1.setText("A:设备运行中");
- // MesClient.formatScanType(1);
- // MesClient.batch_scan_1.setEnabled(false);
- PlcUtil.changeEnable(s7PLC,false);
- }
- }else if(MesClient.tjFlaga == 2){
- Boolean afinish = getAFinish(s7PLC); //A焊接完成
- if(afinish){ // B启动中,A当做完成
- MesClient.tjFlaga = 3;
- MesClient.pxstatus1.setText("A:设备运行结束,提交结果中");
- MesClient.finish_ok_bt.setEnabled(true);
- MesClient.finish_ng_bt.setEnabled(true);
- Boolean sendret = DataUtil.sendQuality(MesClient.nettyClient,MesClient.product_sn.getText(),"OK",MesClient.user20,"A");
- if(!sendret){
- MesClient.pxstatus1.setText("A:结果上传MES失败");
- MesClient.tjStatusa = 1;
- }
- }
- }
- }
- public static void getStatusB(S7PLC s7PLC){
- if(MesClient.tjFlagb == 1){ // 已扫码,设备未运行
- Boolean startb = getBStart(s7PLC); //B启动中
- if(startb){
- MesClient.curFlag = "B";
- MesClient.tjFlagb = 2;
- MesClient.pxstatus2.setText("B:设备运行中");
- MesClient.batch_scan_2.setEnabled(false);
- MesClient.formatScanType(1);
- PlcUtil.changeEnable(s7PLC,false);
- }
- }else if(MesClient.tjFlagb == 2){
- Boolean bfinish = getBFinish(s7PLC); //B焊接完成
- if(bfinish){
- MesClient.tjFlagb = 3;
- MesClient.pxstatus2.setText("B:设备运行结束,提交结果中");
- MesClient.finish_ng_bt2.setEnabled(true);
- MesClient.finish_ok_bt2.setEnabled(true);
- Boolean sendret = DataUtil.sendQuality(MesClient.nettyClient,MesClient.product_sn2.getText(),"OK",MesClient.user20,"B");
- if(!sendret){
- MesClient.pxstatus2.setText("B:结果上传MES失败");
- MesClient.tjStatusb = 1;
- }
- }
- }
- }
- // 获取A启动状态
- public static Boolean getAStart(S7PLC s7PLC){
- try{
- return s7PLC.readBoolean("DB1.2.2");
- }catch (Exception e){
- e.printStackTrace();
- return false;
- }
- }
- // 获取A的结束状态
- public static Boolean getAFinish(S7PLC s7PLC){
- try{
- boolean a = s7PLC.readBoolean("DB1.2.5");
- boolean b = s7PLC.readBoolean("DB1.2.6");
- return a || b;
- }catch (Exception e){
- e.printStackTrace();
- return false;
- }
- }
- // 获取B启动状态
- public static Boolean getBStart(S7PLC s7PLC){
- try{
- return s7PLC.readBoolean("DB1.2.6");
- }catch (Exception e){
- e.printStackTrace();
- return false;
- }
- }
- // 获取B的结束状态
- public static Boolean getBFinish(S7PLC s7PLC){
- try{
- boolean a = s7PLC.readBoolean("DB1.2.7");
- boolean b = s7PLC.readBoolean("DB1.2.4");
- return a || b;
- }catch (Exception e){
- e.printStackTrace();
- return false;
- }
- }
- // 修改设备的禁用开关
- // DB9.26.4 MES允许启动信号
- public static Boolean changeEnable(S7PLC s7PLC,Boolean result){
- try{
- //DB9.21.7 A//DB9.26.4 B
- s7PLC.writeBoolean("DB9.30.4",result);
- // s7PLC.writeBoolean("DB9.21.7",result);
- return true;
- }catch (Exception e){
- e.printStackTrace();
- return false;
- }
- }
- // 获取当前是A面还是B面
- public static String getCurAside(S7PLC s7PLC){
- String str = "A";
- try{
- Boolean ret = s7PLC.readBoolean("DB1.2.0"); // 当前A面
- if(!ret){
- str = "B";
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- return str;
- }
- }
|