12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package modbus
- import "server/utils"
- var (
- ReadDeviceId = []byte{0xFE, 0x04, 0x03, 0xEE, 0x00, 0x08, 0x85, 0xB2} //读设备id
- ReadDeviceIdAndDOAndDI = []byte{0xFE, 0x04, 0x03, 0xE8, 0x00, 0x14, 0x64, 0x7A} //读设备id、do、di
- )
- func DeviceLoopSwitch(loop int, state int) (data []byte) {
- data = append(data, 0xFE)
- data = append(data, 0x05)
- data = append(data, 0x00)
- data = append(data, byte(loop-1))
- if state == 1 {
- data = append(data, 0xFF)
- } else {
- data = append(data, 0x00)
- }
- data = append(data, 0x00)
- crc16 := utils.CRC16(data)
- data = append(data, byte(crc16&0xFF))
- data = append(data, byte(crc16>>8))
- return
- }
- func DeviceSwitch(number int, state int) (data []byte) {
- data = append(data, 0xFE)
- data = append(data, 0x0F)
- data = append(data, 0x00)
- data = append(data, 0x00)
- data = append(data, 0x00)
- data = append(data, byte(number))
- data = append(data, 0x01)
- if state == 1 {
- data = append(data, 0xFF)
- } else {
- data = append(data, 0x00)
- }
- crc16 := utils.CRC16(data)
- data = append(data, byte(crc16&0xFF))
- data = append(data, byte(crc16>>8))
- return
- }
- func SolarEnergyData() (data []byte) {
- data = append(data, 0x11)
- data = append(data, 0x03)
- data = append(data, 0x00)
- data = append(data, 0x04)
- data = append(data, 0x00)
- data = append(data, 0x1b)
- crc16 := utils.CRC16(data)
- data = append(data, byte(crc16&0xFF))
- data = append(data, byte(crc16>>8))
- return
- }
- // UpdateRegisterAddress 修改寄存器地址
- func UpdateRegisterAddress() (data []byte) {
- data = append(data, 0x01)
- data = append(data, 0x10)
- data = append(data, 0x00)
- data = append(data, 0x00)
- data = append(data, 0x00)
- data = append(data, 0x01)
- data = append(data, 0x02)
- data = append(data, 0x00)
- data = append(data, 0x11)
- crc16 := utils.CRC16(data)
- data = append(data, byte(crc16&0xFF))
- data = append(data, byte(crc16>>8))
- return
- }
- func ReadDeviceInfo(number int) (data []byte) {
- data = append(data, 0xFE)
- data = append(data, 0x01)
- data = append(data, 0x00)
- data = append(data, 0x00)
- data = append(data, 0x00)
- data = append(data, byte(number))
- crc16 := utils.CRC16(data)
- data = append(data, byte(crc16&0xFF))
- data = append(data, byte(crc16>>8))
- return
- }
|