| | |
| | | resp.TotalNumber = cast.ToInt(totalNumber) |
| | | |
| | | plcStatus := 1 //断开连接 |
| | | isConnect := apacheplc4x.IsConnect() |
| | | isConnect := service.PlcIsConnect() |
| | | if isConnect { |
| | | if resp.FinishNumber > 0 { //生产 |
| | | plcStatus = 2 |
| | |
| | | "totalNumberTimeInterval": 0, |
| | | "modbusIntType": "DINT", |
| | | "slaveId": 0, |
| | | "package": "goburrow" |
| | | "package": "goburrow", |
| | | "keepAlive": "false" |
| | | } |
| | | } |
| | | |
| | |
| | | ModbusIntType string |
| | | SlaveId int |
| | | Package string |
| | | KeepAlive bool |
| | | } |
| | | |
| | | config struct { |
| | |
| | | mu sync.Mutex |
| | | } |
| | | |
| | | var handler *modbus.TCPClientHandler |
| | | |
| | | func newPlcConnectionManager() *ConnectionManager { |
| | | return &ConnectionManager{ |
| | | connections: make(map[string]modbus.Client), |
| | |
| | | return |
| | | } |
| | | connectionManager.RemoveConnection(ipAddr) |
| | | if handler != nil { |
| | | handler.Close() |
| | | } |
| | | } |
| | | |
| | | func newGetModbusConnection(ipAddr string) modbus.Client { |
| | | handler := modbus.NewTCPClientHandler(ipAddr) |
| | | handler = modbus.NewTCPClientHandler(ipAddr) |
| | | handler.Timeout = 10 * time.Second |
| | | handler.SlaveId = byte(conf.Conf.PLC.SlaveId) |
| | | return modbus.NewClient(handler) |
| | |
| | | return modbusx.Write(ipAddr, uint16(address), cast.ToInt(value)) |
| | | } |
| | | } |
| | | |
| | | func PlcIsConnect() bool { |
| | | if conf.Conf.PLC.Package == constvar.PlcPackageApache { |
| | | return apacheplc4x.IsConnect() |
| | | } else if conf.Conf.PLC.Package == constvar.PlcPackageApacheLongConnection { |
| | | return false |
| | | } else { |
| | | return modbusx.IsConnect() |
| | | } |
| | | } |