zhangqian
2023-08-28 339ae89408bb2e5ba4428afd9c5f5fb64c04f2ad
service/plc.go
@@ -59,23 +59,29 @@
      ipAddr       string
   )
   if plcConfig.CurrentTryTimes > plcConfig.MaxTryTimes {
      return plcConfig.CurrentErr
   }
   plcConfig.CurrentTryTimes++
   for _, pc := range plcConfig.Details {
      if pc.FieldName == fieldType {
         startAddress = pc.StartAddress
      }
   }
   ipAddr = fmt.Sprintf("%s:%v", plcConfig.Address, plcConfig.Port)
   conn, err := plc.GetModbusConnection(ipAddr)
   if err != nil {
      logx.Errorf("PlcWrite 连接plc失败: %v", err.Error())
      return
      logx.Errorf("plc write failed, 连接plc失败: %v", err.Error())
      plcConfig.CurrentErr = err
      return PlcWrite(plcConfig, fieldType, value)
   }
   result, err := plc.WriteHoldingRegister(conn, startAddress, value)
   if err != nil {
      logx.Infof("plc write failed, address: %v, value: %v, err: %v", startAddress, value, err.Error())
      return
      logx.Errorf("plc write failed, address: %v, value: %v, err: %v", startAddress, value, err.Error())
      plcConfig.CurrentErr = err
      return PlcWrite(plcConfig, fieldType, value)
   }
   logx.Infof("plc write ok, address: %v, value: %v, result: %v", startAddress, value, result)
   return