From a4d9d3f23e44099972ea6de8af35152ed96ae8ae Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期一, 23 十二月 2024 12:31:39 +0800 Subject: [PATCH] # --- /dev/null | 275 ----------- src/main/java/com/zy/core/thread/BarcodeThread.java | 95 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 549 --------------------- src/main/java/com/zy/core/MainProcess.java | 51 -- src/main/resources/application.yml | 487 ------------------- src/main/java/com/zy/core/ServerBootstrap.java | 11 6 files changed, 3 insertions(+), 1,465 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/AgvController.java b/src/main/java/com/zy/asrs/controller/AgvController.java deleted file mode 100644 index 7e5bf48..0000000 --- a/src/main/java/com/zy/asrs/controller/AgvController.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.zy.asrs.controller; - -import com.alibaba.fastjson.JSONObject; -import com.core.common.R; -import com.zy.core.thread.SiemensDevpThread3; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; - -/** - * 瀵规帴AGV銆佽緭閫佺嚎鏀捐揣鎺ュ彛 - */ -@Slf4j -@RestController -@RequestMapping("/agv") -public class AgvController { - - @PostMapping("/container/release") - public R containerRelease(@RequestBody JSONObject jsonObject){ - - HashMap<String, Boolean> currentStationInfoMap = SiemensDevpThread3.currentStationInfoMap; - String slotCode = jsonObject.get("slotCode").toString(); - - Map<String,String> map = new HashMap<>(); - if(!currentStationInfoMap.get(slotCode)){ - map.put("allow","true"); - }else { - map.put("allow","false"); - } - - R r = new R(0, ""); - - return r.add(map); - - } - - @PostMapping("/container/completed") - public R containerCompleted(@RequestBody JSONObject jsonObject){ - - return R.ok(); - } - -} diff --git a/src/main/java/com/zy/asrs/controller/RobotController.java b/src/main/java/com/zy/asrs/controller/RobotController.java deleted file mode 100644 index 4977a54..0000000 --- a/src/main/java/com/zy/asrs/controller/RobotController.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.zy.asrs.controller; - -import com.zy.asrs.domain.param.RobotReportActionStatusParam; -import com.zy.asrs.domain.param.ReportExceptionParam; -import com.zy.asrs.entity.WrkMast; -import com.zy.asrs.mapper.WrkMastMapper; -import com.zy.common.utils.RobotUtils; -import com.zy.core.DevpThread; -import com.zy.core.cache.MessageQueue; -import com.zy.core.cache.SlaveConnection; -import com.zy.core.enums.SlaveType; -import com.zy.core.model.DevpSlave; -import com.zy.core.model.Task; -import com.zy.core.model.protocol.StaProtocol; -import com.zy.core.properties.SlaveProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import java.util.HashMap; - -@RestController -public class RobotController { - - @Autowired - private WrkMastMapper wrkMastMapper; - @Autowired - private SlaveProperties slaveProperties; - - //鏈烘鎵嬪悜WCS鍥炴姤浠诲姟缁撴灉瀹屾垚 - @PostMapping("/request/wcs/report_task_status") - public HashMap<String,Object> reportActionStatus(@RequestBody RobotReportActionStatusParam param) { - HashMap<String, Object> map = new HashMap<>(); - String taskId = param.getTask_id(); - Integer taskStatus = param.getTask_status(); - Integer pickNum = param.getPick_num(); - Integer targetNum = param.getTarget_num(); - String message = param.getMessage(); - Integer staNo = param.getFrom_ws();//鐩爣绔� - - //缁欑洰鏍囩珯鍐欏叆鍑哄簱绔�344 - for (DevpSlave devp : slaveProperties.getDevp()) { - // 鑾峰彇鍏ュ簱绔欎俊鎭� - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(staNo);//鏈烘鎵嬭噦鎷f枡绔� - staProtocol = staProtocol.clone(); - staProtocol.setStaNo((short) 344);//绌烘墭鐩樺嚭搴撶珯 - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - - //鏇存柊宸ヤ綔妗� => 29.鍑哄簱瀹屾垚 - WrkMast wrkMast = wrkMastMapper.selectByWorkNo(Integer.valueOf(taskId)); - if (wrkMast != null && wrkMast.getWrkSts() == 25) { - wrkMast.setWrkSts(29L); - wrkMastMapper.updateById(wrkMast); - } - } - - System.out.println(param); - map.put("error", 0); - map.put("error_message", "success"); - return map; - } - - //鏈烘鎵嬪悜WCS鍥炴姤寮傚父 - @PostMapping("/request/wcs/report_exception") - public HashMap<String,Object> reportException(@RequestBody ReportExceptionParam param) { - HashMap<String, Object> map = new HashMap<>(); - String taskId = param.getTask_id(); - String errorCode = param.getError_code(); - String msg = param.getMsg(); - String tip = param.getTip(); - - System.out.println(param); - map.put("error", 0); - map.put("error_message", "success"); - return map; - } - - @GetMapping("/test") - public void test() { - boolean systemStatus = RobotUtils.getSystemStatus(); - } - - @GetMapping("/test2") - public void test2() { - RobotUtils.sendTask("9994", 4, "317"); - } - -} diff --git a/src/main/java/com/zy/asrs/entity/AgvBasDevp.java b/src/main/java/com/zy/asrs/entity/AgvBasDevp.java deleted file mode 100644 index 99eb207..0000000 --- a/src/main/java/com/zy/asrs/entity/AgvBasDevp.java +++ /dev/null @@ -1,309 +0,0 @@ -package com.zy.asrs.entity; - -import com.baomidou.mybatisplus.annotations.TableField; -import com.baomidou.mybatisplus.annotations.TableId; -import com.baomidou.mybatisplus.annotations.TableName; -import com.baomidou.mybatisplus.enums.IdType; -import com.core.common.Cools; -import com.core.common.SpringUtils; -import com.zy.system.entity.User; -import com.zy.system.service.UserService; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.io.Serializable; -import java.text.SimpleDateFormat; -import java.util.Date; - -@Data -@TableName("agv_bas_devp") -public class AgvBasDevp implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 缂栧彿 - */ - @ApiModelProperty(value= "缂栧彿") - @TableId(value = "dev_no", type = IdType.INPUT) - @TableField("dev_no") - private String devNo; - - /** - * 宸ヤ綔绔欑紪鐮� - */ - @ApiModelProperty(value= "缂栧彿") - @TableId(value = "station_code", type = IdType.INPUT) - @TableField("station_code") - private String stationCode; - - /** - * 璁惧鎻忚堪 - */ - @ApiModelProperty(value= "璁惧鎻忚堪") - @TableField("dec_desc") - private String decDesc; - - /** - * 澶囨敞 - */ - @ApiModelProperty(value= "澶囨敞") - @TableField("dev_mk") - private String devMk; - - /** - * 鍙叆 - */ - @ApiModelProperty(value= "鍙叆") - @TableField("in_enable") - private String inEnable; - - /** - * 鍙嚭 - */ - @ApiModelProperty(value= "鍙嚭") - @TableField("out_enable") - private String outEnable; - - /** - * 鑷姩 - */ - @ApiModelProperty(value= "鑷姩") - private String autoing; - - /** - * 鏈夌墿 - */ - @ApiModelProperty(value= "鏈夌墿") - private String loading; - - /** - * 鑳藉叆 - */ - @ApiModelProperty(value= "鑳藉叆") - private String canining; - - /** - * 鑳藉嚭 - */ - @ApiModelProperty(value= "鑳藉嚭") - private String canouting; - - @ApiModelProperty(value= "") - private String fronting; - - @ApiModelProperty(value= "") - private String rearing; - - @ApiModelProperty(value= "") - private String uping; - - @ApiModelProperty(value= "") - private String downing; - - /** - * 闇�姹�1 - */ - @ApiModelProperty(value= "璐т綅鐘舵��") - private String locSts; - - /** - * 鏄惁涓虹紦瀛樿揣鏋� - */ - @ApiModelProperty(value= "鏄惁涓虹紦瀛樿揣鏋�") - private String cacheShelves; - - /** - * 宸ヤ綔鍙� - */ - @ApiModelProperty(value= "宸ヤ綔鍙�") - @TableField("wrk_no") - private Integer wrkNo; - - /** - * 妤� - */ - @ApiModelProperty(value= "妤�") - @TableField("floor") - private Integer floor; - - /** - * 瀹瑰櫒绫诲瀷 - */ - @ApiModelProperty(value= "瀹瑰櫒绫诲瀷") - @TableField("ctn_type") - private Integer ctnType; - - /** - * 鏉″舰鐮� - */ - @ApiModelProperty(value= "鏉″舰鐮�") - private String barcode; - - @ApiModelProperty(value= "") - @TableField("in_qty") - private Integer inQty; - - @ApiModelProperty(value= "") - private Integer row1; - - @ApiModelProperty(value= "") - @TableField("io_time") - private Date ioTime; - - @ApiModelProperty(value= "") - private String area; - - @ApiModelProperty(value= "") - @TableField("in_ok") - private String inOk; - - @ApiModelProperty(value= "") - @TableField("out_ok") - private String outOk; - - @ApiModelProperty(value= "楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿") - @TableField("loc_type1") - private Short locType1; - - @ApiModelProperty(value= "瀹界獎绫诲瀷{0:鏈煡,1:绐勫簱浣�,2:瀹藉簱浣峿") - @TableField("loc_type2") - private Short locType2; - - @ApiModelProperty(value= "杞婚噸绫诲瀷{0:鏈煡,1:杞诲簱浣�,2:閲嶅簱浣峿") - @TableField("loc_type3") - private Short locType3; - - /** - * 淇敼浜哄憳 - */ - @ApiModelProperty(value= "淇敼浜哄憳") - @TableField("modi_user") - private Long modiUser; - - /** - * 淇敼鏃堕棿 - */ - @ApiModelProperty(value= "淇敼鏃堕棿") - @TableField("modi_time") - private Date modiTime; - - /** - * 鍒涘缓鑰� - */ - @ApiModelProperty(value= "鍒涘缓鑰�") - @TableField("appe_user") - private Long appeUser; - - /** - * 娣诲姞鏃堕棿 - */ - @ApiModelProperty(value= "娣诲姞鏃堕棿") - @TableField("appe_time") - private Date appeTime; - - @ApiModelProperty(value= "") - @TableField("std_qty") - private Double stdQty; - - @ApiModelProperty(value= "") - @TableField("min_wt") - private Double minWt; - - @ApiModelProperty(value= "") - @TableField("max_wt") - private Double maxWt; - - /** - * 閲嶉噺 - */ - @ApiModelProperty(value= "閲嶉噺") - @TableField("gross_wt") - private Double grossWt; - - @ApiModelProperty(value= "") - @TableField("cart_pos") - private Integer cartPos; - - public String getIoTime$(){ - if (Cools.isEmpty(this.ioTime)){ - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime); - } - - public String getLocType1$() { - if (null == this.locType1){ return null; } - switch (this.locType1){ - case 0: - return "鏈煡"; - case 1: - return "浣庡簱浣�"; - case 2: - return "楂樺簱浣�"; - default: - return String.valueOf(this.locType1); - } - } - - public String getLocType2$() { - if (null == this.locType2){ return null; } - switch (this.locType2){ - case 0: - return "鏈煡"; - case 1: - return "绐勫簱浣�"; - case 2: - return "瀹藉簱浣�"; - default: - return String.valueOf(this.locType2); - } - } - - public String getLocType3$() { - if (null == this.locType3){ return null; } - switch (this.locType3){ - case 0: - return "鏈煡"; - case 1: - return "杞诲簱浣�"; - case 2: - return "閲嶅簱浣�"; - default: - return String.valueOf(this.locType3); - } - } - - public String getModiUser$(){ - UserService service = SpringUtils.getBean(UserService.class); - User user = service.selectById(this.modiUser); - if (!Cools.isEmpty(user)){ - return String.valueOf(user.getUsername()); - } - return null; - } - - public String getModiTime$(){ - if (Cools.isEmpty(this.modiTime)){ - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime); - } - - public String getAppeUser$(){ - UserService service = SpringUtils.getBean(UserService.class); - User user = service.selectById(this.appeUser); - if (!Cools.isEmpty(user)){ - return String.valueOf(user.getUsername()); - } - return null; - } - - public String getAppeTime$(){ - if (Cools.isEmpty(this.appeTime)){ - return ""; - } - return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime); - } - -} diff --git a/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java b/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java deleted file mode 100644 index 932b977..0000000 --- a/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.zy.asrs.mapper; - -import com.baomidou.mybatisplus.mapper.BaseMapper; -import com.zy.asrs.entity.AgvBasDevp; -import org.apache.ibatis.annotations.*; -import org.springframework.stereotype.Repository; - -import java.util.List; -import java.util.Map; - -@Mapper -@Repository -public interface AgvBasDevpMapper extends BaseMapper<AgvBasDevp> { - - @Update("update agv_bas_devp set barcode = #{barcode} where dev_no = #{devNo}") - int updateBarcode(@Param("devNo") String devNo, @Param("barcode") String barcode); -} diff --git a/src/main/java/com/zy/asrs/service/AgvBasDevpService.java b/src/main/java/com/zy/asrs/service/AgvBasDevpService.java deleted file mode 100644 index 4e6b582..0000000 --- a/src/main/java/com/zy/asrs/service/AgvBasDevpService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.zy.asrs.service; - -import com.baomidou.mybatisplus.service.IService; -import com.zy.asrs.entity.AgvBasDevp; - -import java.util.List; -import java.util.Map; - -public interface AgvBasDevpService extends IService<AgvBasDevp> { - - int updateBarcode(String devNo, String barcode); - -} diff --git a/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java deleted file mode 100644 index 1cefa6e..0000000 --- a/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.zy.asrs.service.impl; - -import com.baomidou.mybatisplus.service.impl.ServiceImpl; -import com.zy.asrs.entity.AgvBasDevp; -import com.zy.asrs.mapper.AgvBasDevpMapper; -import com.zy.asrs.service.AgvBasDevpService; -import org.springframework.stereotype.Service; - -@Service -public class AgvBasDevpServiceImpl extends ServiceImpl<AgvBasDevpMapper, AgvBasDevp> implements AgvBasDevpService { - - @Override - public int updateBarcode(String devNo, String barcode) { - return this.baseMapper.updateBarcode(devNo,barcode); - } -} diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index 0e18857..0fd45f1 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -311,105 +311,6 @@ } /** - * wms鍏ュ簱 - * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 1 ==>> 2 - */ - @Deprecated - public void generateStoreWrkFile0() { - // 鏍规嵁杈撻�佺嚎plc閬嶅巻 - for (DevpSlave devp : slaveProperties.getDevp()) { - // 閬嶅巻鍏ュ簱鍙� - for (DevpSlave.Sta inSta : devp.getInSta()) { - // 鑾峰彇鍏ュ簱绔欎俊鎭� - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - Short workNo = staProtocol.getWorkNo(); - // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() && staProtocol.isLoading() - && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) - && staProtocol.isPakMk()) { - - // 灏哄妫�娴嬪紓甯� - boolean back = false; - String errMsg = ""; - if (staProtocol.isFrontErr()) { - errMsg = "鍓嶈秴闄�"; - back = true; - } - if (!back && staProtocol.isBackErr()) { - errMsg = "鍚庤秴闄�"; - back = true; - } - if (!back && staProtocol.isHighErr()) { - errMsg = "楂樿秴闄�"; - back = true; - } - if (!back && staProtocol.isLeftErr()) { - errMsg = "宸﹁秴闄�"; - back = true; - } - if (!back && staProtocol.isRightErr()) { - errMsg = "鍙宠秴闄�"; - back = true; - } - if (!back && staProtocol.isWeightErr()) { - errMsg = "瓒呴噸"; - back = true; - } - if (!back && staProtocol.isBarcodeErr()) { - errMsg = "鎵爜澶辫触"; - back = true; - } - - // 閫�鍥� - if (back) { - News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); - staProtocol.setWorkNo((short) 32002); - staProtocol.setStaNo(inSta.getBackSta().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - - // led 寮傚父鏄剧ず - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - if (ledThread != null) { - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); - } - continue; - } - - // 鍒ゆ柇閲嶅宸ヤ綔妗� - WrkMast wrkMast = wrkMastMapper.selectPakInStep11(inSta.getStaNo()); - if (wrkMast == null) { continue; } - - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - - // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 - staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); - staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - if (result) { - // 鏇存柊宸ヤ綔涓绘。 - wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋 - wrkMast.setModiTime(new Date()); - if (wrkMastMapper.updateById(wrkMast) == 0) { - News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo()); - } - } else { - News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); - } - } - } - } - } - - /** * 鎷f枡銆佸苟鏉垮啀鍏ュ簱 */ @Transactional @@ -529,49 +430,6 @@ } catch (Exception e) { e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - } - } - - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * 鎷f枡銆佸苟鏉垮啀鍏ュ簱(325銆�331銆�333銆�339) - */ - @Transactional - public synchronized void stnToCrnStnPick2(){ - try { - for (DevpSlave devp : slaveProperties.getDevp()) { - // 閬嶅巻鎷f枡鍏ュ簱鍙� - for (DevpSlave.Sta pickSta : devp.getPickInSta2()) { - // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭� - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isAutoing() - && staProtocol.isLoading() - && staProtocol.isInEnable() - && (staProtocol.getWorkNo() > 0) - && staProtocol.isPakMk()) { - - WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol.getWorkNo().intValue()); - if (wrkMast == null) { - continue; - } - if (wrkMast.getSteNo() == null) { - wrkMast.setSteNo(1); - wrkMastMapper.updateById(wrkMast); - staProtocol.setStaNo((short) 341);//鍐欏叆鐩爣绔� - staProtocol.setPakMk(false); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } } } @@ -2506,413 +2364,6 @@ } - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * AGV琛ヨ揣 => 鐢熸垚鍏ュ簱閫氱煡妗� - */ - public synchronized void robotGenerateAgvTask() { - try { - //妫�娴�300绔欐槸鍚﹁嚜鍔ㄣ�佹湁鐗┿�佸伐浣滃彿 - for (DevpSlave devp : slaveProperties.getDevp()) { - // 鑾峰彇鍏ュ簱绔欎俊鎭� - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(300); - if (staProtocol == null) { - continue; - } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() != 0) { - //鏌ヨ鏄惁鏈夊伐浣滄。 - WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol.getWorkNo().intValue()); - if (wrkMast == null) { - continue; - } - - if (wrkMast.getWrkSts() != 25) {//25.鎻愬崌鏈烘惉杩愬畬鎴� - continue; - } - - if (wrkMast.getMk() != null && wrkMast.getMk().equals("Y")) {//鏍囪涓篩琛ㄧず闇�瑕佺敤鍒版満姊拌噦鎷f枡 - Short targetSta = null;//鐩爣绔� - //鍒ゆ柇鏈烘鑷傛嫞鏂欑珯鏄惁绌洪棽 - StaProtocol staProtocol303 = devpThread.getStation().get(303); - StaProtocol staProtocol317 = devpThread.getStation().get(317); - - List<WrkMast> wrkMasts303 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 25).eq("sta_no", 303)); - List<WrkMast> wrkMasts317 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 25).eq("sta_no", 317)); - if (staProtocol303.isAutoing() && !staProtocol303.isLoading() && wrkMasts303.isEmpty()) { - //鑷姩銆佹棤鐗� - targetSta = (short) 303; - } else if (staProtocol317.isAutoing() && !staProtocol317.isLoading() && wrkMasts317.isEmpty()) { - //鑷姩銆佹棤鐗� - targetSta = (short) 317; - } else { - continue;//娌℃湁绌洪棽绔欑偣 - } - - if (wrkMast.getStaNo() != 303 && wrkMast.getStaNo() != 317) { - //鍚慉GV鍙戣捣缁勬墭璇锋眰 - try { - HashMap<String, Object> param = new HashMap<>(); - param.put("wrkNo", wrkMast.getWrkNo()); - String response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath("/rpc/replenishment") - .setJson(JSON.toJSONString(param)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - Integer code = jsonObject.getInteger("code"); - if (code.equals(200)) {//AGV缁勬墭鎴愬姛 - //瑕嗙洊宸ヤ綔妗g洰鏍囩珯 - wrkMast.setStaNo(targetSta.intValue()); - wrkMast.setShuttleNo(null);//閲婃斁灏忚溅 - wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈� - if (wrkMastMapper.updateById(wrkMast) > 0) { - //鍚�300绔欏啓鍏ョ洰鏍囩珯 - staProtocol = staProtocol.clone(); - staProtocol.setStaNo(targetSta);//绉诲姩鍒扮洰鏍囩珯 - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - try { - Thread.sleep(500); - } catch (Exception e) { - e.printStackTrace(); - } - continue; - } - } - } catch (Exception e) { -// e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - -// //瑕嗙洊宸ヤ綔妗g洰鏍囩珯 -// wrkMast.setStaNo(targetSta.intValue()); -// wrkMast.setShuttleNo(null);//閲婃斁灏忚溅 -// wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈� -// if (wrkMastMapper.updateById(wrkMast) > 0) { -// //鍚�300绔欏啓鍏ョ洰鏍囩珯 -// staProtocol = staProtocol.clone(); -// staProtocol.setStaNo(targetSta);//绉诲姩鍒扮洰鏍囩珯 -// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); -// try { -// Thread.sleep(500); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// continue; -// } - } - } - } - } - } catch (Exception e) { -// e.printStackTrace(); - } - } - - /** - * AGV琛ヨ揣 => 鏈烘鑷傛嫞鏂� - */ - public synchronized void agvRestockByRobot() { - try { - //妫�娴�300绔欐槸鍚﹁嚜鍔ㄣ�佹湁鐗┿�佸伐浣滃彿 - for (DevpSlave devp : slaveProperties.getDevp()) { - // 鑾峰彇鍏ュ簱绔欎俊鎭� - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol303 = devpThread.getStation().get(303); - StaProtocol staProtocol317 = devpThread.getStation().get(317); - if (staProtocol303 == null || staProtocol317 == null) { - continue; - } - - if (staProtocol303.isAutoing() && staProtocol303.isLoading() && staProtocol303.getWorkNo() != 0) { - //璋冨害鏈烘鑷� - //鏌ヨ鏄惁鏈夊伐浣滄。 - WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol303.getWorkNo().intValue()); - if (wrkMast == null) { - continue; - } - List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); - if (wrkDetls.isEmpty()) { - continue; - } - - if (wrkMast.getInvWh() == null) { - boolean result = RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetls.size(), "303"); - if (result) { - wrkMast.setInvWh("Y");//鏍囪宸茬粡涓嬪彂鏈烘鑷備换鍔� - wrkMastMapper.updateById(wrkMast); - } - } - } - - if (staProtocol317.isAutoing() && staProtocol317.isLoading() && staProtocol317.getWorkNo() != 0) { - //璋冨害鏈烘鑷� - //鏌ヨ鏄惁鏈夊伐浣滄。 - WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol317.getWorkNo().intValue()); - if (wrkMast == null) { - continue; - } - List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); - if (wrkDetls.isEmpty()) { - continue; - } - if (wrkMast.getInvWh() == null) { - boolean result = RobotUtils.sendTask(staProtocol317.getWorkNo().toString(), wrkDetls.size(), "317"); - if (result) { - wrkMast.setInvWh("Y");//鏍囪宸茬粡涓嬪彂鏈烘鑷備换鍔� - wrkMastMapper.updateById(wrkMast); - } - } - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * AGV琛ヨ揣(閫氱煡AGV鍙栬揣) - */ - public synchronized void agvRestockInto() { - try { - //妫�娴�309鍜�312绔欐槸鍚﹁嚜鍔ㄣ�佹湁鐗� - for (DevpSlave devp : slaveProperties.getDevp()) { - // 鑾峰彇鍏ュ簱绔欎俊鎭� - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol309 = devpThread.getStation().get(309); - StaProtocol staProtocol312 = devpThread.getStation().get(312); - if (staProtocol309 == null || staProtocol312 == null) { - continue; - } - - if (staProtocol309.isAutoing() && staProtocol309.isLoading() && staProtocol309.isInEnable()) { - // 鑾峰彇鏉$爜鎵弿浠俊鎭� - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 9);//308绔欐潯鐮佸櫒 - if (barcodeThread == null) { - continue; - } - String barcode = barcodeThread.getBarcode(); - if (!Cools.isEmpty(barcode)) { - //閫氱煡AGV鍙栬揣 - boolean result = agvRestockCall("301-1", barcode); - log.info("鏈烘鑷傞�氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode); - if (result) { - barcodeThread.setBarcode(""); - } - } - } - - if (staProtocol312.isAutoing() && staProtocol312.isLoading() && staProtocol312.isInEnable()) { - // 鑾峰彇鏉$爜鎵弿浠俊鎭� - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 10);//311绔欐潯鐮佸櫒 - if (barcodeThread == null) { - continue; - } - String barcode = barcodeThread.getBarcode(); - if (!Cools.isEmpty(barcode)) { - //閫氱煡AGV鍙栬揣 - boolean result = agvRestockCall("302-1", barcode); - log.info("鏈烘鑷傞�氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode); - if (result) { - barcodeThread.setBarcode(""); - } - } - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - //閫氱煡AGV鍙栬揣 - private boolean agvRestockCall(String staNo, String barcode) { - try { - HashMap<String, Object> param = new HashMap<>(); - param.put("devNo", staNo); - param.put("containerCode", barcode); - String response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath("/rpc/start") - .setJson(JSON.toJSONString(param)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - News.info("鎮寕绾匡紝WMS杩斿洖缁撴灉锛�" + jsonObject); - Integer code = jsonObject.getInteger("code"); - if (code.equals(200)) {//鍛煎彨AGV - return true; - } - } catch (Exception e) { - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - return false; - } - - //閫氱煡WMS褰撳墠鎷f枡绔欑偣淇℃伅 - private boolean agvCureentCall(String staNo, String barcode) { - try { - HashMap<String, Object> param = new HashMap<>(); - param.put("devNo", staNo); - param.put("containerCode", barcode); - String response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath("/rpc/current/containerCode") - .setJson(JSON.toJSONString(param)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - News.info("鎮寕绾匡紝WMS杩斿洖缁撴灉锛�" + jsonObject); - Integer code = jsonObject.getInteger("code"); - if (code.equals(200)) {//鍛煎彨AGV - return true; - } - } catch (Exception e) { - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - return false; - } - - /** - * AGV琛ヨ揣(鎮寕绾块�氱煡AGV鍙栬揣) - */ - public synchronized void agvRestockIntoByHangingWire() { - try { - //妫�娴�350鍜�351鎵爜鍣� - int[] barcodeStaNo = {11, 12,14,16,18,20};//11 => 350绔欐壂鐮佸櫒,12 => 351绔欐壂鐮佸櫒 - for (int staNo : barcodeStaNo) { - // 鑾峰彇鏉$爜鎵弿浠俊鎭� - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, staNo); - if (barcodeThread == null) { - continue; - } - String barcode = barcodeThread.getBarcode(); - if (!Cools.isEmpty(barcode)) { - if (barcode.contains("NoRead")) { - continue; - } - - String agvStaNo = null; - if (staNo == 11) { - agvStaNo = "303-1"; - } else if(staNo == 12){ - agvStaNo = "304-1"; - } else if(staNo == 14){ - agvStaNo = "311-1"; - } else if(staNo == 16){ - agvStaNo = "313-1"; - } else if(staNo == 18){ - agvStaNo = "315-1"; - } else if(staNo == 20){ - agvStaNo = "317-1"; - } - //閫氱煡AGV鍙栬揣 - boolean result = agvRestockCall(agvStaNo, barcode); - if (result) { - barcodeThread.setBarcode(""); - } - log.info(barcodeThread.getSlave().getId() + "鍙锋壂鐮佸櫒锛岄�氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * AGV鎷f枡绔欑偣淇℃伅 - */ - public synchronized void agvCurrentContainerCodeInfoWire() { - try { - //妫�娴�350鍜�351鎵爜鍣� - int[] barcodeStaNo = {13, 15,17,19};//11 => 350绔欐壂鐮佸櫒,12 => 351绔欐壂鐮佸櫒 - for (int staNo : barcodeStaNo) { - // 鑾峰彇鏉$爜鎵弿浠俊鎭� - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, staNo); - if (barcodeThread == null) { - continue; - } - String barcode = barcodeThread.getBarcode(); - if (!Cools.isEmpty(barcode)) { - if (barcode.contains("NoRead")) { - continue; - } - - String agvStaNo = null; - if (staNo == 13) { - agvStaNo = "CS-310"; - } else if(staNo == 15){ - agvStaNo = "CS-311"; - } else if(staNo == 17){ - agvStaNo = "CS-312"; - } else if(staNo == 19){ - agvStaNo = "CS-313"; - } - //閫氱煡WMS褰撳墠瀹瑰櫒鐮� - boolean result = agvCureentCall(agvStaNo, barcode); - if (result) { - barcodeThread.setBarcode(""); - } - log.info(barcodeThread.getSlave().getId() + "鍙锋壂鐮佸櫒锛岄�氱煡AGV鍙栬揣锛屾潯鐮佸彿锛�" + barcode); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - // 300绔欐嫞鏂� - public void pick300() { - try { - //妫�娴�300绔欐槸鍚﹁嚜鍔ㄣ�佹湁鐗┿�佸伐浣滃彿 - for (DevpSlave devp : slaveProperties.getDevp()) { - // 鑾峰彇鍏ュ簱绔欎俊鎭� - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(300); - if (staProtocol == null) { - continue; - }else { - staProtocol = staProtocol.clone(); - } - - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() != 0) { - //鏌ヨ鏄惁鏈夊伐浣滄。 - WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol.getWorkNo().intValue()); - if (wrkMast == null) { - continue; - } - - if (wrkMast.getWrkSts() != 29) {//29.鍑哄簱瀹屾垚 - continue; - } - - if (wrkMast.getMk() == null) { - Integer sourceStaNo = wrkMast.getSourceStaNo();//婧愮珯 - Integer staNo = wrkMast.getStaNo();//鐩爣绔� - //瑕嗙洊宸ヤ綔妗g洰鏍囩珯 - wrkMast.setStaNo(sourceStaNo); - wrkMast.setSourceStaNo(staNo); - wrkMast.setMk("N"); - if (wrkMastMapper.updateById(wrkMast) > 0) { - //鍚�300绔欏啓鍏ョ洰鏍囩珯 - staProtocol = staProtocol.clone(); - staProtocol.setStaNo(wrkMast.getStaNo().shortValue());//绉诲姩鍒扮洰鏍囩珯 - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - try { - Thread.sleep(500); - } catch (Exception e) { - e.printStackTrace(); - } - } - } } } } catch (Exception e) { diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 13537db..568d8a8 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -22,8 +22,6 @@ private MainServiceImpl mainService; // 鎵�灞炵嚎绋� private Thread thread; - // 鎵�灞炵嚎绋� - private Thread agvThread; // 棰戠巼 private int i = 0; @@ -45,17 +43,11 @@ // 鍏ュ簱 ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。 mainService.generateStoreWrkFile(); // 缁勬墭 -// mainService.generateStoreWrkFile0(); // WMS鍏ュ簱 - - // 闂撮殧 - Thread.sleep(500); //鍒濆鍖栧疄鏃跺湴鍥� mainService.initRealtimeBasMap(); // 鎷f枡銆佸苟鏉垮啀鍏ュ簱 mainService.stnToCrnStnPick(); -// // 鎷f枡銆佸苟鏉垮啀鍏ュ簱(325銆�331銆�333銆�339) -// mainService.stnToCrnStnPick2(); // 鐩樼偣鍐嶅叆搴� mainService.stnToCrnStnPlate(); // 鍏ュ簱 ===>> 鍥涘悜绌挎杞﹀叆搴撲綔涓氫笅鍙� @@ -76,18 +68,6 @@ mainService.recErr(); // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐� mainService.storeEmptyPlt(); -// // AGV琛ヨ揣 => 鐢熸垚鍏ュ簱閫氱煡妗� -// mainService.robotGenerateAgvTask(); -// // AGV琛ヨ揣(鏈烘鑷傛嫞鏂�) -// mainService.agvRestockByRobot(); -// // AGV琛ヨ揣(閫氱煡AGV鍙栬揣) -// mainService.agvRestockInto(); -// // AGV琛ヨ揣(鎮寕绾块�氱煡AGV鍙栬揣) -// mainService.agvRestockIntoByHangingWire(); -// // AGV淇℃伅鏇存柊 -// mainService.agvCurrentContainerCodeInfoWire(); - // 300绔欐嫞鏂� - mainService.pick300(); // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� mainService.ledExecute(); // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 @@ -109,40 +89,9 @@ thread.start(); } - public void agvStart(){ - agvThread = new Thread(() -> { - while (!Thread.currentThread().isInterrupted()) { - try { - - // 闂撮殧 - Thread.sleep(300); - - // AGV琛ヨ揣 => 鐢熸垚鍏ュ簱閫氱煡妗� - mainService.robotGenerateAgvTask(); - // AGV琛ヨ揣(鏈烘鑷傛嫞鏂�) - mainService.agvRestockByRobot(); - // AGV琛ヨ揣(閫氱煡AGV鍙栬揣) - mainService.agvRestockInto(); - // AGV琛ヨ揣(鎮寕绾块�氱煡AGV鍙栬揣) - mainService.agvRestockIntoByHangingWire(); - // AGV淇℃伅鏇存柊 - mainService.agvCurrentContainerCodeInfoWire(); - - - // 闂撮殧 - Thread.sleep(200); - } catch (Exception e) { - e.printStackTrace(); - } - } - }); - agvThread.start(); - } - @PreDestroy public void shutDown(){ if (thread != null) thread.interrupt(); - if (agvThread != null) agvThread.interrupt(); } } diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java index f19854c..47266bb 100644 --- a/src/main/java/com/zy/core/ServerBootstrap.java +++ b/src/main/java/com/zy/core/ServerBootstrap.java @@ -41,7 +41,6 @@ initThread(); // 寮�濮嬩富娴佺▼杩涚▼ mainProcess.start(); - mainProcess.agvStart(); News.info("鏍稿績鎺у埗灞傚凡鍚姩..............................................."); } @@ -89,16 +88,6 @@ DevpThread devpThread = new SiemensDevpThread(devp); new Thread((Runnable) devpThread).start(); SlaveConnection.put(SlaveType.Devp, devp.getId(), devpThread); - } - for (Devp2Slave devp2 : slaveProperties.getDevp2()) { - SiemensDevpThread2 siemensDevpThread2 = new SiemensDevpThread2(devp2); - new Thread(siemensDevpThread2).start(); - SlaveConnection.put(SlaveType.Devp2, devp2.getId(), siemensDevpThread2); - } - for (Devp2Slave devp3 : slaveProperties.getDevp3()) { - SiemensDevpThread3 siemensDevpThread3 = new SiemensDevpThread3(devp3); - new Thread(siemensDevpThread3).start(); - SlaveConnection.put(SlaveType.Devp3, devp3.getId(), siemensDevpThread3); } // 鍒濆鍖栨彁鍗囨満 News.info("鍒濆鍖栨彁鍗囨満........................................................"); diff --git a/src/main/java/com/zy/core/thread/BarcodeThread.java b/src/main/java/com/zy/core/thread/BarcodeThread.java index 25887dc..2850e0f 100644 --- a/src/main/java/com/zy/core/thread/BarcodeThread.java +++ b/src/main/java/com/zy/core/thread/BarcodeThread.java @@ -3,24 +3,12 @@ import com.alibaba.fastjson.JSONObject; import com.core.common.Cools; import com.core.common.DateUtils; -import com.core.common.SpringUtils; -import com.zy.asrs.service.AgvBasDevpService; -import com.zy.asrs.service.BasDevpService; import com.zy.core.News; import com.zy.core.Slave; import com.zy.core.ThreadHandler; import com.zy.core.cache.OutputQueue; import lombok.Data; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.net.InetSocketAddress; -import java.net.Socket; -import java.net.SocketAddress; -import java.net.SocketTimeoutException; import java.util.Date; /** @@ -33,10 +21,6 @@ private Slave slave; private StringBuffer barcode = new StringBuffer(); - private Socket socket; - private DataOutputStream dataOutputStream; - private DataInputStream dataInputStream; - public Integer connCount = 0; public BarcodeThread(Slave slave) { this.slave = slave; @@ -50,18 +34,8 @@ this.barcode.delete(0, this.barcode.length()); this.barcode.append(barcode); if(!Cools.isEmpty(barcode)) { - AgvBasDevpService agvBasDevpService = SpringUtils.getBean(AgvBasDevpService.class); News.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode); - String devNo = slave.getId() == 13 ? "310-1" : slave.getId() == 15 ? "312-2" : slave.getId() == 17 ? "314-1" : slave.getId() == 19 ? "316-1" : null; - if(!Cools.isEmpty(devNo)){ - barcode = barcode.substring(3,barcode.length()); - int updateBarcode = agvBasDevpService.updateBarcode(devNo, barcode); - if (updateBarcode <= 0) { - News.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}锛屾洿鏂扮珯鐐规潯鐮佸け璐�", slave.getId(), this.barcode); - } - } - News.info("{}鍙锋潯鐮佸櫒锛屾洿鏂版垚鍔�", slave.getId()); JSONObject jsonObject = new JSONObject(); jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F)); jsonObject.put("barcode", barcode); @@ -70,90 +44,21 @@ OutputQueue.BARCODE.poll(); } OutputQueue.BARCODE.offer(jsonObject); - } } @Override public boolean connect() { - try { - close(); //1.涓诲姩閲婃斁杩炴帴 //2.鏌愪簺鏈嶅姟鍣ㄥ鎸囧畾ip鏈夐摼璺暟闄愬埗 - socket = new Socket(); - SocketAddress socketAddress = new InetSocketAddress(slave.getIp(), slave.getPort()); - socket.connect(socketAddress, 10000); //鏌愪簺鏈嶅姟鍣╬ing寤惰繜楂樻椂瑕佸鍔�,鍚﹀垯浼氭姤閿檆onnect timeout - dataOutputStream = new DataOutputStream(socket.getOutputStream()); - dataInputStream = new DataInputStream(socket.getInputStream()); -// log.info("鏉$爜鎵弿浠繛鎺ユ垚鍔� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - } catch (Exception e) { - socket = null; - log.error("鏉$爜鎵弿浠繛鎺ュけ璐ワ紒锛侊紒 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - return false; - } return true; } @Override public void close() { - try { - if (null != dataOutputStream) { - dataOutputStream.close(); - } - if (null != dataInputStream) { - dataInputStream.close(); - } - if (null != socket){ - socket.close(); - } - socket = null; - } catch (IOException e) { - log.error("SocketClient close Exception:" + e.getMessage()); - } } @Override @SuppressWarnings("InfiniteLoopStatement") public void run() { - connect(); - while (true) { - try { - byte[] read = read(14, 3 * 60 * 1000); - if (null != read) { - String s = new String(read); - log.warn("ip:{},id:{},璇诲彇鍒版潯鐮侊細{}",slave.getIp(),slave.getId(),s); - if (!Cools.isEmpty(s)) { - setBarcode(new String(read)); - } - } - Thread.sleep(50); - }catch (Exception e) { - log.warn("ip:{},id:{},璇诲彇鏉$爜寮傚父锛歿}",slave.getIp(),slave.getId(),e); - setBarcode(""); - log.error("run" + e); -// e.printStackTrace(); - connect(); - } - - } } - - public byte[] read(int bufferSize, int timeOut) throws IOException { - if (socket == null || !socket.isConnected() || socket.isClosed() || connCount > 120) { - connect(); - connCount = 0; - return null; - } - socket.setSoTimeout(timeOut); - byte[] bytes = new byte[bufferSize]; - int len = dataInputStream.read(bytes); - byte[] tempBytes = null; - if (len > 0) { - tempBytes = new byte[len]; - System.arraycopy(bytes, 0, tempBytes, 0, len); - } else { - connect(); - } - return tempBytes; - } - } diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread2.java b/src/main/java/com/zy/core/thread/SiemensDevpThread2.java deleted file mode 100644 index ba0a616..0000000 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread2.java +++ /dev/null @@ -1,319 +0,0 @@ -package com.zy.core.thread; - -import HslCommunication.Core.Types.OperateResult; -import HslCommunication.Core.Types.OperateResultExOne; -import HslCommunication.Profinet.Siemens.SiemensPLCS; -import HslCommunication.Profinet.Siemens.SiemensS7Net; -import com.alibaba.fastjson.JSON; -import com.core.common.Cools; -import com.core.common.DateUtils; -import com.core.common.SpringUtils; -import com.zy.asrs.entity.BasDevp; -import com.zy.asrs.service.BasDevpService; -import com.zy.core.DevpThread; -import com.zy.core.News; -import com.zy.core.cache.MessageQueue; -import com.zy.core.cache.OutputQueue; -import com.zy.core.cache.SlaveConnection; -import com.zy.core.enums.SlaveType; -import com.zy.core.model.Devp2Slave; -import com.zy.core.model.DevpSlave; -import com.zy.core.model.Task; -import com.zy.core.model.protocol.StaProtocol; -import lombok.Data; -import lombok.extern.slf4j.Slf4j; - -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * 杈撻�佺嚎绾跨▼ - * Created by vincent on 2020/8/4 - */ -@Data -@Slf4j -public class SiemensDevpThread2 implements Runnable, DevpThread { - - private Devp2Slave slave; - private SiemensS7Net siemensS7Net; - private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>(); - private short heartBeatVal = 1; - private int barcodeSize = 1; - public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{ - add(106);add(107); - add(108);add(209); - add(210);add(347); - add(348);add(349); - }}; - - public SiemensDevpThread2(Devp2Slave slave) { - this.slave = slave; - } - - @Override - @SuppressWarnings("InfiniteLoopStatement") - public void run() { - connect(); - while (true) { - try { - int step = 1; - Task task = MessageQueue.poll(SlaveType.Devp2, slave.getId()); - if (task != null) { - step = task.getStep(); - } - switch (step) { - // 璇绘暟鎹� - case 1: - read(); - break; -// // 鍐欐暟鎹� ID+鐩爣绔� -// case 2: -// write((StaProtocol) task.getData()); -// read(); -// break; - default: - break; - } - // 蹇冭烦 -// heartbeat(); - Thread.sleep(400); - } catch (Exception e) { - e.printStackTrace(); - } - - } - } - - @Override - public boolean connect() { - boolean result = false; - siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp()); - siemensS7Net.setRack(slave.getRack().byteValue()); - siemensS7Net.setSlot(slave.getSlot().byteValue()); - OperateResult connect = siemensS7Net.ConnectServer(); - if(connect.IsSuccess){ - result = true; - OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); - News.info("杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - } else { - OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); - News.error("杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - } - siemensS7Net.ConnectClose(); - return result; - } - - /** - * 璇诲彇鐘舵�� ====> 鏁村潡plc - */ - private void read() throws InterruptedException { - OperateResultExOne<byte[]> result = siemensS7Net.Read("DB1000.0", (short) (staNos.size()*4)); - if (result.IsSuccess) { - for (int i = 0; i < staNos.size(); i++) { - Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 - StaProtocol staProtocol = station.get(siteId); - if (null == staProtocol) { - staProtocol = new StaProtocol(); - staProtocol.setSiteId(siteId); - station.put(siteId, staProtocol); - } - staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4)); // 宸ヤ綔鍙� - staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4+2)); // 鐩爣绔� - } - } - Thread.sleep(200); - OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB1001.0", (short) (staNos.size()*2)); - if (result1.IsSuccess) { - for (int i = 0; i < staNos.size(); i++) { - Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 - boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 1); - StaProtocol staProtocol = station.get(siteId); - staProtocol.setAutoing(status[0]); // 鑷姩 - staProtocol.setLoading(status[1]); // 鏈夌墿 - staProtocol.setInEnable(status[2]); // 鍙叆 - staProtocol.setOutEnable(status[3]);// 鍙嚭 - staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿 - staProtocol.setFullPlt(status[5]); // 婊℃墭鐩� - staProtocol.setLiftArrival(status[6]); // 鎻愬崌鏈哄埌浣嶄俊鍙� - staProtocol.setShuttleTakeEnable(status[7]); // 鎻愬崌鏈哄彲鍙栦俊鍙� - - if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { - staProtocol.setPakMk(true); - } - } - } - - if (result.IsSuccess && result1.IsSuccess) { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); - - // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� - try { - List<BasDevp> basDevps = new ArrayList<>(); - for (Integer siteId : staNos) { - StaProtocol staProtocol = station.get(siteId); - basDevps.add(staProtocol.toSqlModel()); - } - BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class); - if (!basDevpService.updateBatchById(basDevps)) { - throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�"); - } - } catch (Exception e) { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戞洿鏂版暟鎹簱鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); - News.error("鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); - } - - } else { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣鍙栬緭閫佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); -// News.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); - } - } - - /** - * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏� - */ - private void write(StaProtocol staProtocol) throws InterruptedException { - if (null == staProtocol) { - return; - } - int index = staNos.indexOf(staProtocol.getSiteId()); - short[] array = new short[2]; - array[0] = staProtocol.getWorkNo(); - array[1] = staProtocol.getStaNo(); -// OperateResult write = siemensS7Net.Write("DB100." + index*4, staProtocol.getWorkNo()); // 宸ヤ綔鍙� -// Thread.sleep(500); -// OperateResult write1 = siemensS7Net.Write("DB100." + (index*4+2), staProtocol.getStaNo()); // 鐩爣绔� - - OperateResult writeResult; - //浠诲姟涓嬪彂娆℃暟 - int writeCount = 0; - //浠诲姟涓嬪彂鎴愬姛鏍囪瘑 - boolean writeFlag = false; - while(writeCount < 5){ - writeResult = siemensS7Net.Write("DB1000." + index*4, array); // 宸ヤ綔鍙枫�佺洰鏍囩珯 - if(writeResult.IsSuccess){ - Thread.sleep(200); - OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB1000." + index*4, (short)4); - if(readResult.IsSuccess){ - short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0); - short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2); - if(staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)){ - //浠诲姟鍛戒护鍐欏叆鎴愬姛 - writeFlag = true; - log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); - break; - } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 - writeCount++; - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", - slave.getId(), JSON.toJSON(staProtocol),writeCount)); - log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); - } - } else { - writeCount++; - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", - slave.getId(), JSON.toJSON(staProtocol), writeCount)); - log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); - } - } else { - writeCount++; - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", - slave.getId(), JSON.toJSON(staProtocol),writeCount)); - log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); - } - Thread.sleep(200); - } - - //鍐欏懡浠ゅ皾璇曚簡5娆¤繕鏄け璐ヤ簡 - if(!writeFlag){ - staProtocol = station.get(staProtocol.getSiteId()); - if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) { - staProtocol.setPakMk(true); - } - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护灏濊瘯5娆″け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol))); - log.error("鍐欏叆杈撻�佺嚎鍛戒护灏濊瘯5娆″け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol)); - - //閲嶆柊娣诲姞鏁版嵁鍒颁换鍔¢槦鍒� - boolean result = MessageQueue.offer(SlaveType.Devp, slave.getId(), new Task(2, staProtocol)); - read();//璇诲彇1娆¤澶囩姸鎬� - return; - } else { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂鎴愬姛 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); - log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂鎴愬姛锛� {}", slave.getId(), JSON.toJSON(staProtocol)); - - Integer siteId = staProtocol.getSiteId(); - staProtocol = station.get(siteId); - if ((siteId == 101 || siteId == 201)&&(staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0)) { - staProtocol.setPakMk(true); - } - } - } - - /** - * 蹇冭烦 - */ - private void heartbeat(){ - if (heartBeatVal == 1) { - heartBeatVal = 2; - } else { - heartBeatVal = 1; - } - OperateResult write = siemensS7Net.Write("DB100.50", heartBeatVal); - if (!write.IsSuccess) { - News.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId()); - } - } - - /** - * 璁剧疆鍏ュ簱鏍囪 - */ - @Override - public void setPakMk(Integer siteId, boolean pakMk) { - StaProtocol staProtocol = station.get(siteId); - if (null != staProtocol) { - staProtocol.setPakMk(pakMk); - } - } - - @Override - public void close() { - siemensS7Net.ConnectClose(); - } - - public static void main(String[] args) { -// System.out.println(staNos.indexOf(129)); - System.out.println(staNos.size()); - for (int i = 0; i<staNos.size(); i++) { -// System.out.println(i*2); -// System.out.println(i*2 + 200); -// System.out.println(i); - } -// int index = staNos.indexOf(128); -// System.out.println(index*2); -// System.out.println(index*2 + 200); - } - -// public static void main(String[] args) throws Exception { -// DevpSlave slave = new DevpSlave(); -// slave.setIp("192.168.2.125"); -// SiemensDevpThread devpThread = new SiemensDevpThread(slave); -// devpThread.connect(); -// devpThread.read(); -// // 鍐� -// StaProtocol staProtocol = devpThread.getStation().get(1); -// staProtocol.setWorkNo((short) 232); -// staProtocol.setStaNo((short) 6); -// staProtocol.setAutoing(true); -// staProtocol.setEmptyMk(true); -// staProtocol.setInEnable(true); -// devpThread.write(staProtocol); -// System.out.println("----------------------------------------"); -// // 璇� -// devpThread.read(); -// System.out.println(JSON.toJSONString(devpThread.station)); -// -// } - -} diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread3.java b/src/main/java/com/zy/core/thread/SiemensDevpThread3.java deleted file mode 100644 index 75f1a17..0000000 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread3.java +++ /dev/null @@ -1,275 +0,0 @@ -package com.zy.core.thread; - -import HslCommunication.Core.Types.OperateResult; -import HslCommunication.Core.Types.OperateResultExOne; -import HslCommunication.Profinet.Siemens.SiemensPLCS; -import HslCommunication.Profinet.Siemens.SiemensS7Net; -import com.alibaba.fastjson.JSON; -import com.core.common.Cools; -import com.core.common.DateUtils; -import com.core.common.SpringUtils; -import com.zy.asrs.entity.BasDevp; -import com.zy.asrs.service.BasDevpService; -import com.zy.core.DevpThread; -import com.zy.core.News; -import com.zy.core.cache.MessageQueue; -import com.zy.core.cache.OutputQueue; -import com.zy.core.enums.SlaveType; -import com.zy.core.model.Devp2Slave; -import com.zy.core.model.Task; -import com.zy.core.model.protocol.StaProtocol; -import lombok.Data; -import lombok.extern.slf4j.Slf4j; - -import java.text.MessageFormat; -import java.util.*; -import java.util.concurrent.ConcurrentHashMap; - -/** - * 杈撻�佺嚎绾跨▼ - * Created by vincent on 2020/8/4 - */ -@Data -@Slf4j -public class SiemensDevpThread3 implements Runnable, DevpThread { - - public static HashMap<String,Boolean> currentStationInfoMap; - - private Devp2Slave slave; - private SiemensS7Net siemensS7Net; - private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>(); - private short heartBeatVal = 1; - private int barcodeSize = 1; - public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{ - add(316);add(314); - add(312);add(310); - }}; - - public SiemensDevpThread3(Devp2Slave slave) { - this.slave = slave; - } - - @Override - @SuppressWarnings("InfiniteLoopStatement") - public void run() { - connect(); - while (true) { - try { - int step = 1; - Task task = MessageQueue.poll(SlaveType.Devp2, slave.getId()); - if (task != null) { - step = task.getStep(); - } - switch (step) { - // 璇绘暟鎹� - case 1: - read(); - break; -// // 鍐欐暟鎹� ID+鐩爣绔� -// case 2: -// write((StaProtocol) task.getData()); -// read(); -// break; - default: - break; - } - // 蹇冭烦 -// heartbeat(); - Thread.sleep(400); - } catch (Exception e) { - e.printStackTrace(); - } - - } - } - - @Override - public boolean connect() { - boolean result = false; - siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp()); - siemensS7Net.setRack(slave.getRack().byteValue()); - siemensS7Net.setSlot(slave.getSlot().byteValue()); - OperateResult connect = siemensS7Net.ConnectServer(); - if(connect.IsSuccess){ - result = true; - OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); - News.info("杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - } else { - OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); - News.error("杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - } - siemensS7Net.ConnectClose(); - return result; - } - - /** - * 璇诲彇鐘舵�� ====> 鏁村潡plc - */ - private void read() throws InterruptedException { - if(Cools.isEmpty(currentStationInfoMap)){ - currentStationInfoMap = new HashMap<>(); - } - OperateResultExOne<byte[]> result = siemensS7Net.Read("DB69.0.0", (short) (staNos.size())); - boolean[] booleans = siemensS7Net.getByteTransform().TransBool(result.Content, 0, 1); - for (int i=0; i<staNos.size();i++){ - - String station = staNos.get(i) + "-1"; - currentStationInfoMap.put(station,booleans[i]); - - -// StaProtocol staProtocol = station.get(staNos.get(i)); -// if(Cools.isEmpty(staProtocol)){ -// staProtocol = new StaProtocol(); -// staProtocol.setSiteId(staNos.get(i)); -// staProtocol.setLoading(booleans[i]); -// station.put(staNos.get(i),staProtocol); -// } - } - - } - - /** - * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏� - */ - private void write(StaProtocol staProtocol) throws InterruptedException { - if (null == staProtocol) { - return; - } - int index = staNos.indexOf(staProtocol.getSiteId()); - short[] array = new short[2]; - array[0] = staProtocol.getWorkNo(); - array[1] = staProtocol.getStaNo(); -// OperateResult write = siemensS7Net.Write("DB100." + index*4, staProtocol.getWorkNo()); // 宸ヤ綔鍙� -// Thread.sleep(500); -// OperateResult write1 = siemensS7Net.Write("DB100." + (index*4+2), staProtocol.getStaNo()); // 鐩爣绔� - - OperateResult writeResult; - //浠诲姟涓嬪彂娆℃暟 - int writeCount = 0; - //浠诲姟涓嬪彂鎴愬姛鏍囪瘑 - boolean writeFlag = false; - while(writeCount < 5){ - writeResult = siemensS7Net.Write("DB1000." + index*4, array); // 宸ヤ綔鍙枫�佺洰鏍囩珯 - if(writeResult.IsSuccess){ - Thread.sleep(200); - OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB1000." + index*4, (short)4); - if(readResult.IsSuccess){ - short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0); - short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2); - if(staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)){ - //浠诲姟鍛戒护鍐欏叆鎴愬姛 - writeFlag = true; - log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); - break; - } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 - writeCount++; - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", - slave.getId(), JSON.toJSON(staProtocol),writeCount)); - log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); - } - } else { - writeCount++; - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", - slave.getId(), JSON.toJSON(staProtocol), writeCount)); - log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); - } - } else { - writeCount++; - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", - slave.getId(), JSON.toJSON(staProtocol),writeCount)); - log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); - } - Thread.sleep(200); - } - - //鍐欏懡浠ゅ皾璇曚簡5娆¤繕鏄け璐ヤ簡 - if(!writeFlag){ - staProtocol = station.get(staProtocol.getSiteId()); - if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) { - staProtocol.setPakMk(true); - } - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护灏濊瘯5娆″け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol))); - log.error("鍐欏叆杈撻�佺嚎鍛戒护灏濊瘯5娆″け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol)); - - //閲嶆柊娣诲姞鏁版嵁鍒颁换鍔¢槦鍒� - boolean result = MessageQueue.offer(SlaveType.Devp, slave.getId(), new Task(2, staProtocol)); - read();//璇诲彇1娆¤澶囩姸鎬� - return; - } else { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂鎴愬姛 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); - log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂鎴愬姛锛� {}", slave.getId(), JSON.toJSON(staProtocol)); - - Integer siteId = staProtocol.getSiteId(); - staProtocol = station.get(siteId); - if ((siteId == 101 || siteId == 201)&&(staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0)) { - staProtocol.setPakMk(true); - } - } - } - - /** - * 蹇冭烦 - */ - private void heartbeat(){ - if (heartBeatVal == 1) { - heartBeatVal = 2; - } else { - heartBeatVal = 1; - } - OperateResult write = siemensS7Net.Write("DB100.50", heartBeatVal); - if (!write.IsSuccess) { - News.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId()); - } - } - - /** - * 璁剧疆鍏ュ簱鏍囪 - */ - @Override - public void setPakMk(Integer siteId, boolean pakMk) { - StaProtocol staProtocol = station.get(siteId); - if (null != staProtocol) { - staProtocol.setPakMk(pakMk); - } - } - - @Override - public void close() { - siemensS7Net.ConnectClose(); - } - - public static void main(String[] args) { -// System.out.println(staNos.indexOf(129)); - System.out.println(staNos.size()); - for (int i = 0; i<staNos.size(); i++) { -// System.out.println(i*2); -// System.out.println(i*2 + 200); -// System.out.println(i); - } -// int index = staNos.indexOf(128); -// System.out.println(index*2); -// System.out.println(index*2 + 200); - } - -// public static void main(String[] args) throws Exception { -// DevpSlave slave = new DevpSlave(); -// slave.setIp("192.168.2.125"); -// SiemensDevpThread devpThread = new SiemensDevpThread(slave); -// devpThread.connect(); -// devpThread.read(); -// // 鍐� -// StaProtocol staProtocol = devpThread.getStation().get(1); -// staProtocol.setWorkNo((short) 232); -// staProtocol.setStaNo((short) 6); -// staProtocol.setAutoing(true); -// staProtocol.setEmptyMk(true); -// staProtocol.setInEnable(true); -// devpThread.write(staProtocol); -// System.out.println("----------------------------------------"); -// // 璇� -// devpThread.read(); -// System.out.println(JSON.toJSONString(devpThread.station)); -// -// } - -} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 44f9bb4..0db44b9 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -8,7 +8,7 @@ name: @pom.build.finalName@ datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - url: jdbc:sqlserver://10.10.10.40:1433;databasename=tzskasrs + url: jdbc:sqlserver://192.168.4.125:1433;databasename=tzskasrs username: sa # password: Zoneyung@zy56$ password: sa@123 @@ -29,7 +29,7 @@ logging: - path: /stock/out/@pom.build.finalName@/logs + path: ./stock/out/@pom.build.finalName@/logs super: pwd: xltys1995 @@ -40,22 +40,8 @@ wms: url: 10.10.10.40:8080/tzskwms -robot: - url: http://10.10.10.41:7002 - -erp: - db: - driver_class_name: com.microsoft.sqlserver.jdbc.SQLServerDriver - ur: jdbc:sqlserver://10.10.10.209:1433;databasename=POY_ASRS - username: poy-asrs - password: Poy@2022 - # 涓嬩綅鏈洪厤缃� wcs-slave: - # 鍙屾繁 - doubleDeep: true - # 鍙屾繁搴撲綅鎺掑彿 - doubleLocs: 32 # 杈撻�佺嚎 devp[0]: @@ -77,49 +63,7 @@ backSta: 102 barcode: ${wcs-slave.barcode[1].id} led: ${wcs-slave.led[2].id} - liftNo: ${wcs-slave.lift[1].id} - # 鍏ュ簱鍙�3 - inSta[2]: - staNo: 105 - backSta: 104 - barcode: ${wcs-slave.barcode[2].id} - led: ${wcs-slave.led[3].id} - liftNo: ${wcs-slave.lift[2].id} - # 鍏ュ簱鍙�4 - inSta[3]: - staNo: 200 - backSta: 201 - barcode: ${wcs-slave.barcode[3].id} - led: ${wcs-slave.led[4].id} liftNo: ${wcs-slave.lift[0].id} - # 鍏ュ簱鍙�5 - inSta[4]: - staNo: 203 - backSta: 202 - barcode: ${wcs-slave.barcode[4].id} - led: ${wcs-slave.led[5].id} - liftNo: ${wcs-slave.lift[1].id} - # 鍏ュ簱鍙�6 - inSta[5]: - staNo: 205 - backSta: 204 - barcode: ${wcs-slave.barcode[5].id} - led: ${wcs-slave.led[6].id} - liftNo: ${wcs-slave.lift[2].id} - # 鍏ュ簱鍙�7 - inSta[6]: - staNo: 341 - backSta: 340 - barcode: ${wcs-slave.barcode[7].id} - led: ${wcs-slave.led[0].id} - liftNo: ${wcs-slave.lift[1].id} - # 鍏ュ簱鍙�8 - inSta[7]: - staNo: 346 - backSta: 345 - barcode: ${wcs-slave.barcode[6].id} - led: ${wcs-slave.led[11].id} - liftNo: ${wcs-slave.lift[2].id} # 绌烘澘鍏ュ簱鍙�1 emptyInSta[0]: staNo: 100 @@ -133,42 +77,7 @@ backSta: 102 barcode: ${wcs-slave.barcode[1].id} led: ${wcs-slave.led[2].id} - liftNo: ${wcs-slave.lift[1].id} - # 绌烘澘鍏ュ簱鍙�3 - emptyInSta[2]: - staNo: 105 - backSta: 104 - barcode: ${wcs-slave.barcode[2].id} - led: ${wcs-slave.led[3].id} - liftNo: ${wcs-slave.lift[2].id} - # 绌烘澘鍏ュ簱鍙�4 - emptyInSta[3]: - staNo: 200 - backSta: 201 - barcode: ${wcs-slave.barcode[3].id} - led: ${wcs-slave.led[4].id} liftNo: ${wcs-slave.lift[0].id} - # 绌烘澘鍏ュ簱鍙�5 - emptyInSta[4]: - staNo: 203 - backSta: 202 - barcode: ${wcs-slave.barcode[4].id} - led: ${wcs-slave.led[5].id} - liftNo: ${wcs-slave.lift[1].id} - # 绌烘澘鍏ュ簱鍙�6 - emptyInSta[5]: - staNo: 205 - backSta: 204 - barcode: ${wcs-slave.barcode[5].id} - led: ${wcs-slave.led[6].id} - liftNo: ${wcs-slave.lift[2].id} - # 绌烘澘鍏ュ簱鍙�7 - emptyInSta[6]: - staNo: 346 - backSta: 345 - barcode: ${wcs-slave.barcode[6].id} - led: ${wcs-slave.led[11].id} - liftNo: ${wcs-slave.lift[2].id} # 鍑哄簱鍙�1 outSta[0]: staNo: 100 @@ -176,26 +85,6 @@ # 鍑哄簱鍙�2 outSta[1]: staNo: 103 - led: ${wcs-slave.led[0].id} - # 鍑哄簱鍙�3 - outSta[2]: - staNo: 105 - led: ${wcs-slave.led[0].id} - # 鍑哄簱鍙�4 - outSta[3]: - staNo: 200 - led: ${wcs-slave.led[0].id} - # 鍑哄簱鍙�5 - outSta[4]: - staNo: 203 - led: ${wcs-slave.led[0].id} - # 鍑哄簱鍙�6 - outSta[5]: - staNo: 205 - led: ${wcs-slave.led[0].id} - # 鍑哄簱鍙�7 - outSta[6]: - staNo: 346 led: ${wcs-slave.led[0].id} # 鎷f枡鍏ュ簱鍙� pickInSta[0]: @@ -209,137 +98,7 @@ backSta: 103 barcode: ${wcs-slave.barcode[1].id} led: ${wcs-slave.led[2].id} - liftNo: ${wcs-slave.lift[1].id} - pickInSta[2]: - staNo: 105 - backSta: 105 - barcode: ${wcs-slave.barcode[2].id} - led: ${wcs-slave.led[3].id} - liftNo: ${wcs-slave.lift[2].id} - pickInSta[3]: - staNo: 200 - backSta: 200 - barcode: ${wcs-slave.barcode[3].id} - led: ${wcs-slave.led[4].id} liftNo: ${wcs-slave.lift[0].id} - pickInSta[4]: - staNo: 203 - backSta: 203 - barcode: ${wcs-slave.barcode[4].id} - led: ${wcs-slave.led[5].id} - liftNo: ${wcs-slave.lift[1].id} - pickInSta[5]: - staNo: 205 - backSta: 205 - barcode: ${wcs-slave.barcode[5].id} - led: ${wcs-slave.led[6].id} - liftNo: ${wcs-slave.lift[2].id} - pickInSta[6]: - staNo: 346 - backSta: 346 - barcode: ${wcs-slave.barcode[6].id} - led: ${wcs-slave.led[11].id} - liftNo: ${wcs-slave.lift[2].id} - pickInSta[7]: - staNo: 341 - backSta: 341 - barcode: ${wcs-slave.barcode[7].id} - led: ${wcs-slave.led[7].id} - liftNo: ${wcs-slave.lift[1].id} - pickInSta2[0]: - staNo: 325 - backSta: 341 - barcode: ${wcs-slave.barcode[7].id} - led: ${wcs-slave.led[8].id} - liftNo: ${wcs-slave.lift[1].id} - pickInSta2[1]: - staNo: 331 - backSta: 341 - barcode: ${wcs-slave.barcode[7].id} - led: ${wcs-slave.led[8].id} - liftNo: ${wcs-slave.lift[1].id} - pickInSta2[2]: - staNo: 333 - backSta: 341 - barcode: ${wcs-slave.barcode[7].id} - led: ${wcs-slave.led[9].id} - liftNo: ${wcs-slave.lift[1].id} - pickInSta2[3]: - staNo: 339 - backSta: 341 - barcode: ${wcs-slave.barcode[7].id} - led: ${wcs-slave.led[10].id} - liftNo: ${wcs-slave.lift[1].id} -# # 璐ф灦鍏ュ簱绔欑偣 -# rackInStn[0]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 105 -# row: 4 -# bay: 6 -# lev: 1 -# # 璐ф灦鍏ュ簱绔欑偣 -# rackInStn[1]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 106 -# row: 4 -# bay: 6 -# lev: 3 -# # 璐ф灦鍏ュ簱绔欑偣 -# rackInStn[2]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 107 -# row: 4 -# bay: 6 -# lev: 6 -# # 璐ф灦鍏ュ簱绔欑偣 -# rackInStn[3]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 108 -# row: 4 -# bay: 6 -# lev: 6 -# # 璐ф灦鍑哄簱绔欑偣 -# rackOutStn[0]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 100 -# row: 15 -# bay: 2 -# lev: 1 -# # 璐ф灦鍑哄簱绔欑偣 -# rackOutStn[1]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 104 -# row: 4 -# bay: 6 -# lev: 1 -# # 璐ф灦鍑哄簱绔欑偣 -# rackOutStn[2]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 105 -# row: 4 -# bay: 6 -# lev: 3 -# # 璐ф灦鍑哄簱绔欑偣 -# rackOutStn[3]: -# devpPlcId: ${wcs-slave.devp[0].id} -# staNo: 108 -# row: 4 -# bay: 6 -# lev: 6 - # 杈撻�佺嚎2 - devp2[0]: - id: 1 - ip: 10.10.10.58 - port: 102 - rack: 0 - slot: 0 - # 杈撻�佺嚎2 - devp3[0]: - id: 1 - ip: 10.10.10.239 - port: 102 - rack: 0 - slot: 0 # 鏉$爜鎵弿浠� barcode[0]: @@ -351,96 +110,6 @@ id: 2 ip: 10.10.10.102 port: 51236 - # 鏉$爜鎵弿浠� - barcode[2]: - id: 3 - ip: 10.10.10.102 - port: 51236 - # 鏉$爜鎵弿浠� - barcode[3]: - id: 4 - ip: 10.10.10.102 - port: 51236 - # 鏉$爜鎵弿浠� - barcode[4]: - id: 5 - ip: 10.10.10.102 - port: 51236 - # 鏉$爜鎵弿浠� - barcode[5]: - id: 6 - ip: 10.10.10.102 - port: 51236 - # 鏉$爜鎵弿浠� - barcode[6]: - id: 7 - ip: 10.10.10.102 - port: 51236 - # 鏉$爜鎵弿浠� - barcode[7]: - id: 8 - ip: 10.10.10.102 - port: 51236 - # 鏉$爜鎵弿浠� - barcode[8]: - id: 9 - ip: 10.10.10.102 - port: 51236 - # 鏉$爜鎵弿浠� - barcode[9]: - id: 10 - ip: 10.10.10.102 - port: 2002 - # 鏉$爜鎵弿浠� - barcode[10]: - id: 11 - ip: 10.10.10.225 - port: 2002 - # 鏉$爜鎵弿浠�310 - barcode[11]: - id: 12 - ip: 10.10.10.224 - port: 2002 - # 鏉$爜鎵弿浠� - barcode[12]: - id: 13 - ip: 10.10.10.233 - port: 2002 - # 鏉$爜鎵弿浠� - barcode[13]: - id: 14 - ip: 10.10.10.232 - port: 2002 - # 鏉$爜鎵弿浠� - barcode[14]: - id: 15 - ip: 10.10.10.231 - port: 2002 - # 鏉$爜鎵弿浠� - barcode[15]: - id: 16 - ip: 10.10.10.230 - port: 2002 - # 鏉$爜鎵弿浠� - barcode[16]: - id: 17 - ip: 10.10.10.229 - port: 2002 - # 鏉$爜鎵弿浠� - barcode[17]: - id: 18 - ip: 10.10.10.228 - port: 2002 - # 鏉$爜鎵弿浠� - barcode[18]: - id: 19 - ip: 10.10.10.235 - port: 2002 - # 鏉$爜鎵弿浠� - barcode[19]: - id: 20 - ip: 10.10.10.234 - port: 2002 # LED1 led[0]: @@ -541,62 +210,6 @@ port: 8888 rack: 0 slot: 0 - # 鍥涘悜绌挎杞�3 - shuttle[2]: - id: 3 - ip: 10.10.10.103 - port: 8888 - rack: 0 - slot: 0 - # 鍥涘悜绌挎杞�4 - shuttle[3]: - id: 4 - ip: 10.10.10.104 - port: 8888 - rack: 0 - slot: 0 - # 鍥涘悜绌挎杞�5 - shuttle[4]: - id: 5 - ip: 10.10.10.105 - port: 8888 - rack: 0 - slot: 0 - # 鍥涘悜绌挎杞�6 - shuttle[5]: - id: 6 - ip: 10.10.10.106 - port: 8888 - rack: 0 - slot: 0 - # 鍥涘悜绌挎杞�7 - shuttle[6]: - id: 7 - ip: 10.10.10.107 - port: 8888 - rack: 0 - slot: 0 - # 鍥涘悜绌挎杞�8 - shuttle[7]: - id: 8 - ip: 10.10.10.108 - port: 8888 - rack: 0 - slot: 0 - # 鍥涘悜绌挎杞�9 - shuttle[8]: - id: 9 - ip: 10.10.10.109 - port: 8888 - rack: 0 - slot: 0 - # 鍥涘悜绌挎杞�10 - shuttle[9]: - id: 10 - ip: 10.10.10.110 - port: 8888 - rack: 0 - slot: 0 # 鎻愬崌鏈�1 lift[0]: id: 1 @@ -643,98 +256,4 @@ sta[9]: staNo: 110 lev: 10 - liftNo: ${wcs-slave.lift[0].id} - # 鎻愬崌鏈�2 - lift[1]: - id: 2 - ip: 10.10.10.132 - port: 102 - staRow: 13 - staBay: 38 - sta[0]: - staNo: 201 - lev: 1 - liftNo: ${wcs-slave.lift[1].id} - sta[1]: - staNo: 202 - lev: 2 - liftNo: ${wcs-slave.lift[1].id} - sta[2]: - staNo: 203 - lev: 3 - liftNo: ${wcs-slave.lift[1].id} - sta[3]: - staNo: 204 - lev: 4 - liftNo: ${wcs-slave.lift[1].id} - sta[4]: - staNo: 205 - lev: 5 - liftNo: ${wcs-slave.lift[1].id} - sta[5]: - staNo: 206 - lev: 6 - liftNo: ${wcs-slave.lift[1].id} - sta[6]: - staNo: 207 - lev: 7 - liftNo: ${wcs-slave.lift[1].id} - sta[7]: - staNo: 208 - lev: 8 - liftNo: ${wcs-slave.lift[1].id} - sta[8]: - staNo: 209 - lev: 9 - liftNo: ${wcs-slave.lift[1].id} - sta[9]: - staNo: 210 - lev: 10 - liftNo: ${wcs-slave.lift[1].id} - # 鎻愬崌鏈�3 - lift[2]: - id: 3 - ip: 10.10.10.133 - port: 102 - staRow: 13 - staBay: 57 - sta[0]: - staNo: 301 - lev: 1 - liftNo: ${wcs-slave.lift[2].id} - sta[1]: - staNo: 302 - lev: 2 - liftNo: ${wcs-slave.lift[2].id} - sta[2]: - staNo: 303 - lev: 3 - liftNo: ${wcs-slave.lift[2].id} - sta[3]: - staNo: 304 - lev: 4 - liftNo: ${wcs-slave.lift[2].id} - sta[4]: - staNo: 305 - lev: 5 - liftNo: ${wcs-slave.lift[2].id} - sta[5]: - staNo: 306 - lev: 6 - liftNo: ${wcs-slave.lift[2].id} - sta[6]: - staNo: 307 - lev: 7 - liftNo: ${wcs-slave.lift[2].id} - sta[7]: - staNo: 308 - lev: 8 - liftNo: ${wcs-slave.lift[2].id} - sta[8]: - staNo: 309 - lev: 9 - liftNo: ${wcs-slave.lift[2].id} - sta[9]: - staNo: 310 - lev: 10 - liftNo: ${wcs-slave.lift[2].id} \ No newline at end of file + liftNo: ${wcs-slave.lift[0].id} \ No newline at end of file -- Gitblit v1.9.1