From 2c2f5a12f9e0b9beb0e9700afd84e284a659211c Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 06 十二月 2023 20:16:11 +0800
Subject: [PATCH] debug
---
pkg/plc/apacheplc4x/modbus.go | 28 ++++++++++++++++------------
1 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/pkg/plc/apacheplc4x/modbus.go b/pkg/plc/apacheplc4x/modbus.go
index dd3621f..e828403 100644
--- a/pkg/plc/apacheplc4x/modbus.go
+++ b/pkg/plc/apacheplc4x/modbus.go
@@ -15,31 +15,35 @@
"time"
)
+var driverManager plc4go.PlcDriverManager
+
+func init() {
+ // 鍒涘缓椹卞姩绠$悊鍣�
+ driverManager = plc4go.NewPlcDriverManager()
+ // 娉ㄥ唽TCP浼犺緭
+ transports.RegisterTcpTransport(driverManager)
+ // 娉ㄥ唽涓插彛浼犺緭
+ transports.RegisterSerialTransport(driverManager)
+ // 娉ㄥ唽椹卞姩
+ drivers.RegisterModbusTcpDriver(driverManager)
+ drivers.RegisterModbusRtuDriver(driverManager)
+}
+
func GetModbusConnection(ipAddr string) (plc4go.PlcConnection, error) {
// 鍒涘缓涓�涓笂涓嬫枃锛屽苟璁剧疆 3 绉掕秴鏃�
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
- conn, err := newModbusConnection(ctx, ipAddr)
+ conn, err := newModbusTCPConnection(ctx, ipAddr)
if err != nil {
logx.Errorf("new modbus connection err: %v", err.Error())
return nil, err
}
return conn, nil
}
-
-func newModbusConnection(ctx context.Context, ipAddr string) (plc4go.PlcConnection, error) {
- // 鍒涘缓椹卞姩绠$悊鍣�
- driverManager := plc4go.NewPlcDriverManager()
- // 娉ㄥ唽TCP浼犺緭
- transports.RegisterTcpTransport(driverManager)
- // 娉ㄥ唽椹卞姩
- //drivers.RegisterKnxDriver(driverManager)
- drivers.RegisterModbusTcpDriver(driverManager)
-
+func newModbusTCPConnection(ctx context.Context, ipAddr string) (plc4go.PlcConnection, error) {
// 閫氳繃TCP杩炴帴PLC璁惧
connectionString := fmt.Sprintf("modbus-tcp://%s", ipAddr)
connectionRequestChanel := driverManager.GetConnection(connectionString)
-
// 绛夊緟杩炴帴鍝嶅簲锛屽悓鏃惰�冭檻涓婁笅鏂囩殑瓒呮椂
select {
case connectionResult := <-connectionRequestChanel:
--
Gitblit v1.8.0