|
|
@@ -78,21 +78,18 @@ public class WorkJPanel70Xh extends JPanel {
|
|
|
|
|
|
public String plcDb2 = "DB7010";
|
|
|
|
|
|
- // 扫码信号地址(反面OP080沿用DB7010原有地址;正面OP070复用原OP060设备面板的DB7000地址)
|
|
|
- public String addrScanFeeding = plcDb2 + ".0.0"; // 请求扫码
|
|
|
- public String addrScanFinish = plcDb2 + ".0.1"; // 扫码完成/MES允许上料反馈
|
|
|
- public String addrTransferToDevice = plcDb2 + ".0.2"; // 中转车上料到设备
|
|
|
- public String addrTransferNo = plcDb2 + ".2.0"; // 中转车号
|
|
|
- public String addrTransferFloor = plcDb2 + ".4.0"; // 中转车层数
|
|
|
-
|
|
|
- // 正面换型台第二路扫码请求(封板正面FSW2=DB7004,鑫政自动线PLC点位说明_MES_20261010新增设备)
|
|
|
- public String addrScanFeeding2 = "";
|
|
|
+ // 扫码信号地址(反面OP080沿用DB7010原有地址;正面OP070使用扫码枪独立块DB7006)
|
|
|
+ public String addrScanFeeding = plcDb2 + ".0.0"; // 请求扫码(PLC→MES)
|
|
|
+ public String addrScanFinish = plcDb2 + ".0.5"; // MES扫码反馈(MES→PLC)
|
|
|
+ public String addrTransferToDevice = plcDb2 + ".0.2"; // 中转车上料到设备(中转车已取消,不再读取)
|
|
|
+ public String addrTransferNo = plcDb2 + ".2.0"; // 中转车号(不再读取)
|
|
|
+ public String addrTransferFloor = plcDb2 + ".4.0"; // 中转车层数(不再读取)
|
|
|
|
|
|
// 扫码枪通道:1/3=正面(原OP060),2/4=反面(原OP070)
|
|
|
public int scanWest = 2;
|
|
|
public int scanEast = 4;
|
|
|
|
|
|
- // 是否由本面板写扫码完成反馈位(正面OP070的反馈位即DB7000.0.4 MES允许上料,由设备面板自行管理,此处不写)
|
|
|
+ // 是否由本面板写扫码反馈位(正面DB7006.0.5、反面DB7010.0.5均由本面板写)
|
|
|
public boolean ownsScanFeedback = true;
|
|
|
|
|
|
public String preSn = ""; // 扫码内容
|
|
|
@@ -143,17 +140,15 @@ public class WorkJPanel70Xh extends JPanel {
|
|
|
this.setBackground(Color.WHITE);
|
|
|
this.pos = position;
|
|
|
|
|
|
- if("OP070".equals(oprno)){ // 正面换型台:复用原OP060设备面板的DB7000扫码信号,扫码枪用1/3通道
|
|
|
- plcDb = "DB7000";
|
|
|
- addrScanFeeding = plcDb + ".0.0"; // 原OP060:请求上料/扫码(正面FSW1)
|
|
|
- addrScanFeeding2 = "DB7004" + ".0.0"; // 封板正面FSW2:请求上料/扫码(新增设备)
|
|
|
- addrScanFinish = plcDb + ".0.4"; // 原OP060:MES允许上料
|
|
|
- addrTransferToDevice = plcDb + ".1.1"; // 原OP060:中转车上料到设备
|
|
|
+ if("OP070".equals(oprno)){ // 正面换型台:扫码枪DB7006,点位与反面DB7010一致,扫码枪用1/3通道
|
|
|
+ plcDb = "DB7006";
|
|
|
+ addrScanFeeding = plcDb + ".0.0"; // 请求扫码
|
|
|
+ addrScanFinish = plcDb + ".0.5"; // MES扫码反馈
|
|
|
+ addrTransferToDevice = plcDb + ".1.1"; // 中转车(不再读取)
|
|
|
addrTransferNo = plcDb + ".2.0";
|
|
|
addrTransferFloor = plcDb + ".4.0";
|
|
|
scanWest = 1;
|
|
|
scanEast = 3;
|
|
|
- ownsScanFeedback = false; // DB7000.0.4 由WorkJPanelOP60按质检结果写入(FSW2的DB7004.0.4同理由其面板写入)
|
|
|
}
|
|
|
|
|
|
cacheName = "cache_scan_"+oprno+pos;
|
|
|
@@ -194,8 +189,8 @@ public class WorkJPanel70Xh extends JPanel {
|
|
|
}else if(pos.equals("F")) {
|
|
|
plcDb = "DB7004";
|
|
|
}
|
|
|
- if("OP070".equals(oprno)){ // 正面换型台保持DB7000,不被position覆盖
|
|
|
- plcDb = "DB7000";
|
|
|
+ if("OP070".equals(oprno)){ // 正面换型台保持DB7006,不被position覆盖
|
|
|
+ plcDb = "DB7006";
|
|
|
}
|
|
|
|
|
|
JLabel oprnoLabel = new JLabel(oprno);
|
|
|
@@ -291,18 +286,19 @@ public class WorkJPanel70Xh extends JPanel {
|
|
|
imageGray = new ImageIcon(MesClient.class.getResource("/bg/grey_dot.png"));
|
|
|
imageGray.setImage(imageGray.getImage().getScaledInstance(20, 20, Image.SCALE_SMOOTH));
|
|
|
|
|
|
- feedinglabel = new JLabel("请求扫码");
|
|
|
+ // 信号灯布局:请求扫码 | MES扫码反馈 同一行,名称后显示PLC点位
|
|
|
+ feedinglabel = new JLabel(withAddr("请求扫码", addrScanFeeding));
|
|
|
feedinglabel.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
feedinglabel.setIcon(imageGreen);
|
|
|
feedinglabel.setForeground(Color.BLACK);
|
|
|
- feedinglabel.setBounds(0, 150, workWidth/3, 30);
|
|
|
+ feedinglabel.setBounds(0, 145, workWidth/2, 27);
|
|
|
this.add(feedinglabel);
|
|
|
|
|
|
- feedingmeslabel = new JLabel("MES扫码反馈");
|
|
|
+ feedingmeslabel = new JLabel(withAddr("MES扫码反馈", addrScanFinish));
|
|
|
feedingmeslabel.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
feedingmeslabel.setIcon(imageGreen);
|
|
|
feedingmeslabel.setForeground(Color.BLACK);
|
|
|
- feedingmeslabel.setBounds(workWidth/3, 150, workWidth/3, 30);
|
|
|
+ feedingmeslabel.setBounds(workWidth/2, 145, workWidth/2, 27);
|
|
|
feedingmeslabel.addMouseListener(new MouseAdapter() {
|
|
|
public void mouseClicked(MouseEvent e) {
|
|
|
boolean ret = readScanFinish();
|
|
|
@@ -314,13 +310,6 @@ public class WorkJPanel70Xh extends JPanel {
|
|
|
});
|
|
|
this.add(feedingmeslabel);
|
|
|
|
|
|
- transfertodevicelabel = new JLabel("中转车上料到设备");
|
|
|
- transfertodevicelabel.setHorizontalAlignment(SwingConstants.LEFT);
|
|
|
- transfertodevicelabel.setIcon(imageGreen);
|
|
|
- transfertodevicelabel.setForeground(Color.BLACK);
|
|
|
- transfertodevicelabel.setBounds(workWidth*2/3, 150, workWidth/3, 30);
|
|
|
- this.add(transfertodevicelabel);
|
|
|
-
|
|
|
// 手动输入行(占用原加工行位置,该行在换型台未使用)
|
|
|
manualLabel = new JLabel("手动");
|
|
|
manualLabel.setHorizontalAlignment(SwingConstants.CENTER);
|
|
|
@@ -350,8 +339,9 @@ public class WorkJPanel70Xh extends JPanel {
|
|
|
|
|
|
// resetScanA();
|
|
|
|
|
|
- // 信号监控按钮
|
|
|
- signalMonitor = new PlcSignalMonitor02(s7PLC, plcDb, oprno + pos, MesClient.mesClientFrame);
|
|
|
+ // 信号监控按钮:监控扫码枪块(正面OP070=DB7006,反面OP080=DB7010),不再挂设备块
|
|
|
+ String monitorDb = "OP070".equals(oprno) ? plcDb : plcDb2;
|
|
|
+ signalMonitor = new PlcSignalMonitor02(s7PLC, monitorDb, oprno + pos, MesClient.mesClientFrame);
|
|
|
signalBtn = signalMonitor.createSignalButton();
|
|
|
signalBtn.setBounds(workWidth*2/3 + 63, 230, 90, 26);
|
|
|
this.add(signalBtn);
|
|
|
@@ -430,17 +420,11 @@ public class WorkJPanel70Xh extends JPanel {
|
|
|
Boolean retFeeding = readScanFeeding();
|
|
|
feedinglabel.setIcon(retFeeding?imageGreen:imageGray);
|
|
|
|
|
|
- transferToDevice = readFeedingTransferToDevice();
|
|
|
- transfertodevicelabel.setIcon(transferToDevice?imageGreen:imageGray);
|
|
|
-
|
|
|
Boolean retFeedingAllow = readScanFinish();
|
|
|
feedingmeslabel.setIcon(retFeedingAllow?imageGreen:imageGray);
|
|
|
|
|
|
- //真扫码(正面换型台同时监听FSW1 DB7000.0.0与FSW2 DB7004.0.0两路请求,任一请求即扫码)
|
|
|
- Boolean retScanFeeding = readScanFeeding() || readScanFeeding2();
|
|
|
- if(retScanFeeding){
|
|
|
- transferSn = readTransferNo();
|
|
|
- transferFloor = readTransferFloor();
|
|
|
+ //真扫码(中转车已取消,transferToDevice恒为false,固定走扫码枪)
|
|
|
+ if(retFeeding){
|
|
|
barCode2();
|
|
|
}else{
|
|
|
zzflag = 0;
|
|
|
@@ -615,14 +599,6 @@ public class WorkJPanel70Xh extends JPanel {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 请求扫码(第二路,正面FSW2;未配置地址时恒为false)
|
|
|
- public boolean readScanFeeding2(){
|
|
|
- if(isLocal == 1 || addrScanFeeding2 == null || addrScanFeeding2.isEmpty()){
|
|
|
- return false;
|
|
|
- }else{
|
|
|
- return readBoolean(addrScanFeeding2); //扫码请求
|
|
|
- }
|
|
|
- }
|
|
|
// 扫码完成
|
|
|
public boolean readScanFinish(){
|
|
|
if(isLocal == 1){
|
|
|
@@ -668,6 +644,11 @@ public class WorkJPanel70Xh extends JPanel {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 信号灯文字:名称(点位)
|
|
|
+ private String withAddr(String name, String addr){
|
|
|
+ return name + "(" + addr + ")";
|
|
|
+ }
|
|
|
+
|
|
|
// 控制扫码枪读取二维码
|
|
|
public String readQrcode(){
|
|
|
String sn = "";
|