zhangqian
2023-11-09 02a84fb6fb2a39bfe7fc5cf6c0137bbf231b17fe
service/plc.go
@@ -45,7 +45,9 @@
   var (
      ipAddr string
   )
   defer dealErr(err)
   defer func() {
      dealErr(err)
   }()
   if plcConfig.Method == constvar.PlcMethodModbusTCP {
      ipAddr = fmt.Sprintf("%s:%v", plcConfig.Address, plcConfig.Port)
      err = WriteByModbusTCP(ipAddr, address, value)
@@ -81,7 +83,9 @@
   var (
      ipAddr string
   )
   defer dealErr(err)
   defer func() {
      dealErr(err)
   }()
   if plcConfig.Method == constvar.PlcMethodModbusTCP || plcConfig.Method == constvar.PlcMethodModbusRTU {
      var value []byte
      if plcConfig.Method == constvar.PlcMethodModbusTCP {
@@ -100,7 +104,16 @@
      switch valueType {
      case constvar.PlcStartAddressValueTypeString:
         return string(value), nil
      case constvar.PlcStartAddressValueTypeInt:
      case constvar.PlcStartAddressValueTypeInt32:
         if len(value) == 2 {
            val = binary.BigEndian.Uint16(value)
         } else if len(value) == 4 {
            val = binary.BigEndian.Uint32(value)
         } else {
            logx.Errorf("plc read get an unknown int value: %v, address:%v", value, address)
            return nil, errors.New(fmt.Sprintf("unknown int value:%v", value))
         }
      default:
         if len(value) == 2 {
            val = binary.BigEndian.Uint16(value)
         } else if len(value) == 4 {