wangxichen 4 dagar sedan
förälder
incheckning
cd819b4844

+ 3 - 13
src/com/mes/component/PlcSignalMonitor.java

@@ -29,8 +29,6 @@ public class PlcSignalMonitor {
     private JLabel signal_allowBlanking;
     private JLabel signal_heart;
     private JLabel signal_toDevice;
-    private JLabel signal_toTransfer;
-    private JLabel signal_transferToDevice;
     
     /**
      * 构造函数
@@ -146,9 +144,7 @@ public class PlcSignalMonitor {
             {"MES允许上料", plcDb + ".0.4", "MES→PLC"},  //
             {"MES允许下料", plcDb + ".0.5", "MES→PLC"},  //
             {"心跳信号", plcDb + ".0.6", "MES→PLC"},
-            {"上料到设备", plcDb + ".0.7", "PLC→MES"},   //
-            {"上料到中转车", plcDb + ".1.0", "PLC→MES"},  //
-            {"中转车上料到设备", plcDb + ".1.1", "PLC→MES"}  //
+            {"上料到设备", plcDb + ".0.7", "PLC→MES"}   // 中转车已取消,去掉 .1.0 / .1.1
         };
         
         JPanel panel = new JPanel(new GridLayout(signals.length + 1, 4, 5, 5));
@@ -169,13 +165,11 @@ public class PlcSignalMonitor {
         signal_allowBlanking = createStatusLabel();
         signal_heart = createStatusLabel();
         signal_toDevice = createStatusLabel();
-        signal_toTransfer = createStatusLabel();
-        signal_transferToDevice = createStatusLabel();
         
         JLabel[] statusLabels = {
             signal_feeding, signal_blanking, signal_running, signal_deviceStatus,
             signal_allowFeeding, signal_allowBlanking, signal_heart,
-            signal_toDevice, signal_toTransfer, signal_transferToDevice
+            signal_toDevice
         };
         
         // 添加信号行
@@ -229,8 +223,6 @@ public class PlcSignalMonitor {
             boolean allowBlanking = s7PLC.readBoolean(plcDb + ".0.5");
             boolean heart = s7PLC.readBoolean(plcDb + ".0.6");
             boolean toDevice = s7PLC.readBoolean(plcDb + ".0.7");
-            boolean toTransfer = s7PLC.readBoolean(plcDb + ".1.0");
-            boolean transferToDevice = s7PLC.readBoolean(plcDb + ".1.1");
             
             // 在EDT线程中更新UI
             SwingUtilities.invokeLater(() -> {
@@ -242,8 +234,6 @@ public class PlcSignalMonitor {
                 updateStatusLabel(signal_allowBlanking, allowBlanking);
                 updateStatusLabel(signal_heart, heart);
                 updateStatusLabel(signal_toDevice, toDevice);
-                updateStatusLabel(signal_toTransfer, toTransfer);
-                updateStatusLabel(signal_transferToDevice, transferToDevice);
             });
             
         } catch (Exception e) {
@@ -265,7 +255,7 @@ public class PlcSignalMonitor {
         JLabel[] labels = {
             signal_feeding, signal_blanking, signal_running, signal_deviceStatus,
             signal_allowFeeding, signal_allowBlanking, signal_heart,
-            signal_toDevice, signal_toTransfer, signal_transferToDevice
+            signal_toDevice
         };
         
         for (JLabel label : labels) {

+ 14 - 7
src/com/mes/component/PlcSignalMonitor02.java

@@ -9,7 +9,7 @@ import java.awt.*;
 
 /**
  * PLC信号监控组件02
- * 扫码枪监控面板,仅显示请求扫码(.0.0)、MES扫码反馈(.0.5)两个核心状态
+ * 扫码枪监控面板,仅显示请求扫码、MES扫码反馈两个核心状态(点位由调用方传入)
  */
 public class PlcSignalMonitor02 {
 
@@ -17,6 +17,8 @@ public class PlcSignalMonitor02 {
 
     private S7PLC s7PLC;
     private String plcDb;
+    private String addrRequestScan;   // 请求扫码点位
+    private String addrScanFeedback;  // MES扫码反馈点位
     private String stationName;
     private JFrame parentFrame;
 
@@ -28,12 +30,17 @@ public class PlcSignalMonitor02 {
      * 构造函数
      * @param s7PLC PLC连接对象
      * @param plcDb DB块名称(如 DB7000)
+     * @param addrRequestScan 请求扫码点位(如 DB7010.0.0)
+     * @param addrScanFeedback MES扫码反馈点位(如 DB7010.0.1)
      * @param stationName 工位名称(如 OP040A)
      * @param parentFrame 父窗口
      */
-    public PlcSignalMonitor02(S7PLC s7PLC, String plcDb, String stationName, JFrame parentFrame) {
+    public PlcSignalMonitor02(S7PLC s7PLC, String plcDb, String addrRequestScan, String addrScanFeedback,
+                              String stationName, JFrame parentFrame) {
         this.s7PLC = s7PLC;
         this.plcDb = plcDb;
+        this.addrRequestScan = addrRequestScan;
+        this.addrScanFeedback = addrScanFeedback;
         this.stationName = stationName;
         this.parentFrame = parentFrame;
     }
@@ -103,10 +110,10 @@ public class PlcSignalMonitor02 {
      * 创建信号详情面板
      */
     private JPanel createSignalDetailPanel() {
-        // 扫码枪点位(DB7006/DB7010一致):.0.0 请求扫码,.0.5 MES扫码反馈
+        // 扫码枪点位:正面DB7006(.0.0/.0.5),反面DB7010(.0.0/.0.1)
         String[][] signals = {
-                {"请求扫码", plcDb + ".0.0", "PLC→MES"},
-                {"MES扫码反馈", plcDb + ".0.5", "MES→PLC"}
+                {"请求扫码", addrRequestScan, "PLC→MES"},
+                {"MES扫码反馈", addrScanFeedback, "MES→PLC"}
         };
 
         JPanel panel = new JPanel(new GridLayout(signals.length + 1, 4, 5, 5));
@@ -170,8 +177,8 @@ public class PlcSignalMonitor02 {
             }
 
             // 读取核心信号 (注意地址要和 createSignalDetailPanel 中保持一致)
-            boolean requestScan = s7PLC.readBoolean(plcDb + ".0.0");
-            boolean scanComplete = s7PLC.readBoolean(plcDb + ".0.5");
+            boolean requestScan = s7PLC.readBoolean(addrRequestScan);
+            boolean scanComplete = s7PLC.readBoolean(addrScanFeedback);
 
             // 在EDT线程中更新UI
             SwingUtilities.invokeLater(() -> {

+ 6 - 5
src/com/mes/component/WorkJPanel70Xh.java

@@ -78,9 +78,9 @@ public class WorkJPanel70Xh extends JPanel {
 
     public String plcDb2 = "DB7010";
 
-    // 扫码信号地址(反面OP080沿用DB7010原有地址;正面OP070使用扫码枪独立块DB7006)
+    // 扫码信号地址(反面OP080使用DB7010,反馈位为.0.1;正面OP070使用扫码枪独立块DB7006,反馈位为.0.5)
     public String addrScanFeeding = plcDb2 + ".0.0";      // 请求扫码(PLC→MES)
-    public String addrScanFinish = plcDb2 + ".0.5";       // MES扫码反馈(MES→PLC)
+    public String addrScanFinish = plcDb2 + ".0.1";       // MES扫码反馈(MES→PLC)
     public String addrTransferToDevice = plcDb2 + ".0.2"; // 中转车上料到设备(中转车已取消,不再读取)
     public String addrTransferNo = plcDb2 + ".2.0";       // 中转车号(不再读取)
     public String addrTransferFloor = plcDb2 + ".4.0";    // 中转车层数(不再读取)
@@ -89,7 +89,7 @@ public class WorkJPanel70Xh extends JPanel {
     public int scanWest = 2;
     public int scanEast = 4;
 
-    // 是否由本面板写扫码反馈位(正面DB7006.0.5、反面DB7010.0.5均由本面板写)
+    // 是否由本面板写扫码反馈位(正面DB7006.0.5、反面DB7010.0.1均由本面板写)
     public boolean ownsScanFeedback = true;
 
     public String preSn = ""; // 扫码内容
@@ -140,7 +140,7 @@ public class WorkJPanel70Xh extends JPanel {
         this.setBackground(Color.WHITE);
         this.pos = position;
 
-        if("OP070".equals(oprno)){ // 正面换型台:扫码枪DB7006,点位与反面DB7010一致,扫码枪用1/3通道
+        if("OP070".equals(oprno)){ // 正面换型台:扫码枪DB7006(反馈位.0.5,与反面DB7010.0.1不同),扫码枪用1/3通道
             plcDb = "DB7006";
             addrScanFeeding = plcDb + ".0.0";      // 请求扫码
             addrScanFinish = plcDb + ".0.5";       // MES扫码反馈
@@ -341,7 +341,8 @@ public class WorkJPanel70Xh extends JPanel {
 
         // 信号监控按钮:监控扫码枪块(正面OP070=DB7006,反面OP080=DB7010),不再挂设备块
         String monitorDb = "OP070".equals(oprno) ? plcDb : plcDb2;
-        signalMonitor = new PlcSignalMonitor02(s7PLC, monitorDb, oprno + pos, MesClient.mesClientFrame);
+        // 点位直接取本面板的扫码地址,保证弹窗与面板信号灯一致
+        signalMonitor = new PlcSignalMonitor02(s7PLC, monitorDb, addrScanFeeding, addrScanFinish, oprno + pos, MesClient.mesClientFrame);
         signalBtn = signalMonitor.createSignalButton();
         signalBtn.setBounds(workWidth*2/3 + 63, 230, 90, 26);
         this.add(signalBtn);

+ 3 - 29
src/com/mes/component/WorkJPanelOP60.java

@@ -44,10 +44,6 @@ public class WorkJPanelOP60 extends JPanel {
 
     public JLabel feedingtodevicelabel; // 上料到设备
 
-    public JLabel feedingtotransferlabel; // 上料到中转车
-
-    public JLabel transfertodevicelabel; // 上料到中转车
-
     public JButton scanBtn;
 
     public JTextField productSn;
@@ -244,7 +240,7 @@ public class WorkJPanelOP60 extends JPanel {
         imageGray = new ImageIcon(MesClient.class.getResource("/bg/grey_dot.png"));
         imageGray.setImage(imageGray.getImage().getScaledInstance(20, 20, Image.SCALE_SMOOTH));
 
-        // 信号灯布局:2列×4行,名称后显示PLC点位
+        // 信号灯布局:2列×3行,名称后显示PLC点位
         feedinglabel = new JLabel(withAddr("请求扫码", plcDb+".0.0"));
         feedinglabel.setHorizontalAlignment(SwingConstants.LEFT);
         feedinglabel.setIcon(imageGreen);
@@ -304,20 +300,7 @@ public class WorkJPanelOP60 extends JPanel {
         feedingtodevicelabel.setForeground(Color.BLACK);
         feedingtodevicelabel.setBounds(workWidth/2, 199, workWidth/2, 27);
         this.add(feedingtodevicelabel);
-
-        feedingtotransferlabel = new JLabel(withAddr("上料到中转车", plcDb+".1.0"));
-        feedingtotransferlabel.setHorizontalAlignment(SwingConstants.LEFT);
-        feedingtotransferlabel.setIcon(imageGreen);
-        feedingtotransferlabel.setForeground(Color.BLACK);
-        feedingtotransferlabel.setBounds(0, 226, workWidth/2, 27);
-        this.add(feedingtotransferlabel);
-
-        transfertodevicelabel = new JLabel(withAddr("中转车上料到设备", plcDb+".1.1"));
-        transfertodevicelabel.setHorizontalAlignment(SwingConstants.LEFT);
-        transfertodevicelabel.setIcon(imageGreen);
-        transfertodevicelabel.setForeground(Color.BLACK);
-        transfertodevicelabel.setBounds(workWidth/2, 226, workWidth/2, 27);
-        this.add(transfertodevicelabel);
+        // 中转车已取消,不再显示 上料到中转车(.1.0) / 中转车上料到设备(.1.1)
 
 
         formatElementUI();
@@ -328,7 +311,7 @@ public class WorkJPanelOP60 extends JPanel {
         // 信号监控按钮
         signalMonitor = new PlcSignalMonitor(s7PLC, plcDb, oprno + pos, MesClient.mesClientFrame);
         signalBtn = signalMonitor.createSignalButton();
-        signalBtn.setBounds(workWidth*2/3 + 63, 255, 90, 26); // 信号灯改为4行后下移
+        signalBtn.setBounds(workWidth*2/3 + 63, 230, 90, 26); // 信号灯3行,按钮放在第3行下方
         this.add(signalBtn);
 
 
@@ -453,9 +436,6 @@ public class WorkJPanelOP60 extends JPanel {
                         Boolean retFeeding = readFeeding();    // 请求上料
                         feedinglabel.setIcon(retFeeding?imageGreen:imageGray);
 
-                        transferToDevice = readFeedingTransferToDevice();     // 来源是否为中转车
-                        transfertodevicelabel.setIcon(transferToDevice?imageGreen:imageGray);
-
                         Boolean retFeedingAllow = readAllowFeeding();   // MES 允许上料
                         feedingmeslabel.setIcon(retFeedingAllow?imageGreen:imageGray);
 
@@ -473,12 +453,6 @@ public class WorkJPanelOP60 extends JPanel {
                         toDevice = readFeedingToDevice();                // 目标是否为设备
                         feedingtodevicelabel.setIcon(toDevice?imageGreen:imageGray);
 
-                        toTransfer = readFeedingToTransfer();              // 目标是否为中转车
-                        feedingtotransferlabel.setIcon(toTransfer?imageGreen:imageGray);
-
-                        transferToDevice = readFeedingTransferToDevice();    //中转车到设备
-                        transfertodevicelabel.setIcon(transferToDevice?imageGreen:imageGray);
-
                         Boolean retRunning = readRunning();         // 设备是否运行
                         runlabel.setIcon(retRunning?imageGreen:imageGray);
 

+ 3 - 29
src/com/mes/component/WorkJPanelOP70.java

@@ -44,10 +44,6 @@ public class WorkJPanelOP70 extends JPanel {
 
     public JLabel feedingtodevicelabel; // 上料到设备
 
-    public JLabel feedingtotransferlabel; // 上料到中转车
-
-    public JLabel transfertodevicelabel; // 上料到中转车
-
     public JButton scanBtn;
 
     public JTextField productSn;
@@ -258,7 +254,7 @@ public class WorkJPanelOP70 extends JPanel {
         imageGray = new ImageIcon(MesClient.class.getResource("/bg/grey_dot.png"));
         imageGray.setImage(imageGray.getImage().getScaledInstance(20, 20, Image.SCALE_SMOOTH));
 
-        // 信号灯布局:2列×4行,名称后显示PLC点位
+        // 信号灯布局:2列×3行,名称后显示PLC点位
         feedinglabel = new JLabel(withAddr("请求扫码", plcDb+".0.0"));
         feedinglabel.setHorizontalAlignment(SwingConstants.LEFT);
         feedinglabel.setIcon(imageGreen);
@@ -318,20 +314,7 @@ public class WorkJPanelOP70 extends JPanel {
         feedingtodevicelabel.setForeground(Color.BLACK);
         feedingtodevicelabel.setBounds(workWidth/2, 199, workWidth/2, 27);
         this.add(feedingtodevicelabel);
-
-        feedingtotransferlabel = new JLabel(withAddr("上料到中转车", plcDb+".1.0"));
-        feedingtotransferlabel.setHorizontalAlignment(SwingConstants.LEFT);
-        feedingtotransferlabel.setIcon(imageGreen);
-        feedingtotransferlabel.setForeground(Color.BLACK);
-        feedingtotransferlabel.setBounds(0, 226, workWidth/2, 27);
-        this.add(feedingtotransferlabel);
-
-        transfertodevicelabel = new JLabel(withAddr("中转车上料到设备", plcDb+".1.1"));
-        transfertodevicelabel.setHorizontalAlignment(SwingConstants.LEFT);
-        transfertodevicelabel.setIcon(imageGreen);
-        transfertodevicelabel.setForeground(Color.BLACK);
-        transfertodevicelabel.setBounds(workWidth/2, 226, workWidth/2, 27);
-        this.add(transfertodevicelabel);
+        // 中转车已取消,不再显示 上料到中转车(.1.0) / 中转车上料到设备(.1.1)
 
         formatElementUI();
 
@@ -341,7 +324,7 @@ public class WorkJPanelOP70 extends JPanel {
         // 信号监控按钮
         signalMonitor = new PlcSignalMonitor(s7PLC, plcDb, oprno + pos, MesClient.mesClientFrame);
         signalBtn = signalMonitor.createSignalButton();
-        signalBtn.setBounds(workWidth*2/3 + 63, 255, 90, 26); // 信号灯改为4行后下移
+        signalBtn.setBounds(workWidth*2/3 + 63, 230, 90, 26); // 信号灯3行,按钮放在第3行下方
         this.add(signalBtn);
 
 
@@ -461,9 +444,6 @@ public class WorkJPanelOP70 extends JPanel {
                         Boolean retFeeding = readFeeding();
                         feedinglabel.setIcon(retFeeding?imageGreen:imageGray);
 
-                        transferToDevice = readFeedingTransferToDevice();
-                        transfertodevicelabel.setIcon(transferToDevice?imageGreen:imageGray);
-
                         Boolean retFeedingAllow = readAllowFeeding();
                         feedingmeslabel.setIcon(retFeedingAllow?imageGreen:imageGray);
 
@@ -480,12 +460,6 @@ public class WorkJPanelOP70 extends JPanel {
                         toDevice = readFeedingToDevice();     //目标是否为设备
                         feedingtodevicelabel.setIcon(toDevice?imageGreen:imageGray);
 
-                        toTransfer = readFeedingToTransfer();    //目标是否为中转车
-                        feedingtotransferlabel.setIcon(toTransfer?imageGreen:imageGray);
-
-                        transferToDevice = readFeedingTransferToDevice();     //中专车到设备
-                        transfertodevicelabel.setIcon(transferToDevice?imageGreen:imageGray);
-
                         Boolean retRunning = readRunning();    //设备是否运行
                         runlabel.setIcon(retRunning?imageGreen:imageGray);