| | |
| | | "apsClient/service" |
| | | "encoding/json" |
| | | "github.com/gin-gonic/gin" |
| | | "github.com/spf13/cast" |
| | | ) |
| | | |
| | | type PlcApi struct{} |
| | |
| | | ctx.FailWithMsg(ecode.UnknownErr, "请先配置PLC") |
| | | return |
| | | } |
| | | |
| | | conn, err := plc.NewModbusConnection(ipAddr) |
| | | defer conn.Close() |
| | | if conn != nil { |
| | | defer conn.Close() |
| | | } |
| | | |
| | | if err != nil { |
| | | ctx.FailWithMsg(ecode.UnknownErr, "连接plc失败") |
| | | logx.Errorf("GetProductProgress 连接plc失败: %v", err.Error()) |
| | | return |
| | | } |
| | | |
| | | raw, err := plc.ReadHoldingRegister(conn, startAddress, dataLength) |
| | | rawData, err := plc.ReadHoldingRegister(conn, startAddress, dataLength) |
| | | if err != nil { |
| | | ctx.FailWithMsg(ecode.UnknownErr, "获取plc数据失败") |
| | | logx.Errorf("GetProductProgress 获取plc数据失败: %v", err.Error()) |
| | | return |
| | | } |
| | | var finishNumber int |
| | | err = json.Unmarshal(raw, &finishNumber) |
| | | var finishNumber interface{} |
| | | err = json.Unmarshal(rawData, &finishNumber) |
| | | if err != nil { |
| | | ctx.FailWithMsg(ecode.UnknownErr, "获取生产进度数据解析失败") |
| | | logx.Errorf("GetProductProgress 获取生产进度数据解析失败: %v, data: %v, valueType:%v", err.Error(), raw, valueType) |
| | | logx.Errorf("GetProductProgress 获取生产进度数据解析失败: %v, data: %v, valueType:%v", err.Error(), rawData, valueType) |
| | | return |
| | | } |
| | | resp := response.ProductProgress{ |
| | | FinishNumber: finishNumber, |
| | | FinishNumber: cast.ToInt(finishNumber), |
| | | } |
| | | ctx.OkWithDetailed(resp) |
| | | } |