package com.wcs.service.thread; import com.basic.wcs.plc.core.Plc; import com.basic.wcs.plc.oper.impl.PlcOperImpl; import com.basic.wcs.plc.pojo.SweepCodeEquipmentOper; import com.commin.core.utils.SpringContextHolder; import com.wcs.service.enums.NotificationTypeEnum; import com.wcs.service.system.entity.PortDB; import com.wcs.service.system.service.impl.PortDBServiceImpl; import com.wcs.service.util.WcsUtil; import java.io.IOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; public class PLCSendThread extends Thread { @Autowired private static PortDBServiceImpl portDBService = (PortDBServiceImpl)SpringContextHolder.getBean(PortDBServiceImpl.class); private static Logger log = LoggerFactory.getLogger(PLCSendThread.class); private String portCode; public PLCSendThread(String portCode) { super("库口:" + portCode + "电控发送线程"); this.portCode = portCode; } public void run() { PortDB realPort = portDBService.selectByPortCode(this.portCode); SweepCodeEquipmentOper sweepCodeEquipmentOper = (SweepCodeEquipmentOper)Plc.deviceBaseNameMap.get((realPort.getScanName() == null) ? "" : realPort.getScanName()); try { if (sweepCodeEquipmentOper != null) { PlcOperImpl plcOperImpl = PlcOperImpl.getPlcOper(sweepCodeEquipmentOper.getPlc()); try { plcOperImpl.readComplete(sweepCodeEquipmentOper.getDeviceNo(), true); plcOperImpl.dataEligible(sweepCodeEquipmentOper.getDeviceNo(), true); log.warn("接收到入库任务发送电控信息完成"); } catch (IOException e) { log.warn("{}向电控发送读取完成信号失败", realPort.getPortName(), e); } } } catch (Exception e) { WcsUtil.notification(realPort.getPortName() + "扫码现异常", NotificationTypeEnum.ERROR); log.warn(realPort.getPortName() + "扫码出现异常:{}", e); } } }
JAVA实现WCS与PLC通信
最新推荐文章于 2025-05-22 21:02:38 发布