| | |
| | | "errors" |
| | | "fmt" |
| | | "github.com/spf13/cast" |
| | | "sync" |
| | | "sync/atomic" |
| | | ) |
| | | |
| | | // 串口不支持并行读写,所以需要加个锁,防止timeout和资源不可用报错 |
| | | var lock sync.Mutex |
| | | |
| | | func PlcWrite(plcConfig *model.DevicePlc, fieldType constvar.PlcStartAddressType, channel int32, value interface{}) (err error) { |
| | | var ( |
| | |
| | | } |
| | | |
| | | func PlcWriteDirect(plcConfig *model.DevicePlc, address int, value interface{}) (err error) { |
| | | lock.Lock() |
| | | defer lock.Unlock() |
| | | var ( |
| | | ipAddr string |
| | | ) |
| | |
| | | } |
| | | |
| | | func PlcReadDirect(plcConfig *model.DevicePlc, address int, dataLength int, valueType constvar.PlcStartAddressValueType) (val interface{}, err error) { |
| | | lock.Lock() |
| | | defer lock.Unlock() |
| | | var ( |
| | | ipAddr string |
| | | ) |