Closed liuzhou12315 closed 8 months ago
On Wed Jan 31, 2024 at 5:58 AM UTC, liuzhou wrote:
main.go:
opc.Debug() client, _ := opc.NewConnection( "Graybox.Simulator", // ProgId []string{"localhost"}, // OPC servers nodes []string{"numeric.sin.int64", "numeric.saw.float"}, // slice of OPC tags ) defer client.Close() // read single tag: value, quality, timestamp fmt.Println(client.ReadItem("numeric.sin.int64")) // read all added tags fmt.Println(client.Read())
err log:
OPC 2024/01/31 13:44:03 Could not load OPC Automation object with wrapper OPC.Automation.1 OPC 2024/01/31 13:44:03 Loaded OPC Automation object with wrapper Graybox.OPC.DAWrapper.1 OPC 2024/01/31 13:44:03 Connecting to Graybox.Simulator on node localhost OPC 2024/01/31 13:44:03 Connected. Exception 0xc0000005 0x0 0xa00d5e40 0x1f51b1d9 PC=0x1f51b1d9 runtime.cgocall(0xfc3be0, 0x17bc8c0) D:/go/src/runtime/cgocall.go:157 +0x4a fp=0xc00007f1e8 sp=0xc00007f1b0 pc=0xf5544a syscall.SyscallN(0x1f514ed4, {0xc00007f290?, 0x9, 0x8040178c180?}) D:/go/src/runtime/syscall_windows.go:557 +0x12e fp=0xc00007f270 sp=0xc00007f1e8 pc=0xfbedee syscall.Syscall9(0x0?, 0x3?, 0x1?, 0xc00007f330?, 0x10795cb?, 0xc000100500?, 0xc000100500?, 0xc00007f370?, 0xf90173?, 0xc00007f7e0, ...) D:/go/src/runtime/syscall_windows.go:507 +0x78 fp=0xc00007f2e8 sp=0xc00007f270 pc=0xfbead8 github.com/go-ole/go-ole.invoke(0x1a8a00d5720, 0x6002000b, 0x1, {0xc00007fb38, 0x2, 0x2}) ***@***.***/idispatch_windows.go:176 +0x307 fp=0xc00007f860 sp=0xc00007f2e8 pc=0x115e407 github.com/go-ole/go-ole.(*IDispatch).Invoke(0x1a8a00d5720, 0x6002000b, 0x1, {0xc00007fb38, 0x2, 0x2}) ***@***.***/idispatch.go:27 +0x99 fp=0xc00007f8e0 sp=0xc00007f860 pc=0x115cff9 github.com/go-ole/go-ole.(*IDispatch).InvokeWithOptionalArgs(0x1a8a00d5720, {0x1519116, 0x7}, 0x1, {0xc00007fb38, 0x2, 0x2}) ***@***.***/idispatch.go:71 +0x1f5 fp=0xc00007f9a0 sp=0xc00007f8e0 pc=0x115d615 github.com/go-ole/go-ole/oleutil.CallMethod(0x1a8a00d5720, {0x1519116, 0x7}, {0xc00007fb38, 0x2, 0x2}) ***@***.***/oleutil/oleutil.go:51 +0xae fp=0xc00007fa30 sp=0xc00007f9a0 pc=0x116a12e github.com/konimarti/opc.(*AutomationItems).addSingle(0xc000204070, {0x151dab2, 0x11}) ***@***.***/connection_windows.go:263 +0x18e fp=0xc00007fb68 sp=0xc00007fa30 pc=0x1470cee github.com/konimarti/opc.(*AutomationItems).Add(0xc000204070, {0xc00007fef0, 0x2, 0x2}) ***@***.***/connection_windows.go:275 +0xd8 fp=0xc00007fc38 sp=0xc00007fb68 pc=0x1470f98 github.com/konimarti/opc.NewConnection({0x151d672, 0x11}, {0xc000204000, 0x1, 0x1}, {0xc00007fef0, 0x2, 0x2}) ***@***.***/connection_windows.go:473 +0x1f8 fp=0xc00007fd48 sp=0xc00007fc38 pc=0x1473678 main.main() F:/unicom/unicom/src/hde-gateway-opcda-client/main.go:12 +0x16e fp=0xc00007ff80 sp=0xc00007fd48 pc=0x147518e runtime.main() D:/go/src/runtime/proc.go:250 +0x1be fp=0xc00007ffe0 sp=0xc00007ff80 pc=0xf93a1e runtime.goexit() D:/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc00007ffe8 sp=0xc00007ffe0 pc=0xfc2221
Please compile it for GOARCH=386 (see here)
Please compile it for GOARCH=386 (see here)
thanks for your help, but it seems still not works. I just try both of the DLL(OPCDAAuto.dll/gbda_aut.dll) and compile it for amd64/386, all below: 1、download and unzip the "graybox_opc_automation_wrapper", get x86/gbda_aut.dll and copy to C:\Windows\SysWOW64, install with cmd regsvr32 gbda_aut.dll (and try over the x64/gbda_aut.dll to C:\Windows\System32, or SysWOW64), go env set s GOARCH=386 2、register Gray Simulator with cmd "gb_opcsim -service" 3、compile main.go with build.bat:
CGO_ENABLED=0
GOOS=windows
GOARCH=386
go mod download
go mod tidy
go build -o ./main.exe .
run it still occured error above. the MatrikonOPC Server Simulation and MatrikonOPC Explorer can both works well and show the item value.
However, i just try it all over again and succeed. Thanks !
main.go:
err log:
debug into code "connection_windows.go", line of 473, "err = items.Add(tags...)", here items' addItemObject is with ole.IUnknown for "unreadable : could not resolve interface type", what's the problem?