Sub MyReadMultipleItemsFromPLC()
Dim FloatResult1 As Single
Dim FloatResult2 As Single
Dim FloatResult3 As Single
Dim ResultSet As Long
Dim PDU As Long
Dim Err As String
'Establish Connection to PLC
PortHandle = openSocket(102, "10.196.47.224")
If PortHandle > 0 Then
DeviceInterface = daveNewInterface(PortHandle, PortHandle, "IF1", 0, daveProtoISOTCP, daveSpeed187k)
Result = daveInitAdapter(DeviceInterface)
If Result = 0 Then
DeviceConnection = daveNewConnection(DeviceInterface, 0, 0, 2)
Result = daveConnectPLC(DeviceConnection)
If Result = 0 Then
MsgBox ("connectPLC successful")
Else
MsgBox ("connectPLC failed")
End
End If
Else
Call MsgBox("InitAdapter failed")
End
End If
Else
Call MsgBox("OpenSocket failed")
End
End If
'Read Data as single requests from PLC
Result = daveReadBytes(DeviceConnection, daveDB, 195, 80, 4, Empty)
FloatResult1 = daveGetFloat(DeviceConnection)
Result = daveReadBytes(DeviceConnection, daveDB, 199, 0, 4, Empty)
FloatResult2 = daveGetFloat(DeviceConnection)
Result = daveReadBytes(DeviceConnection, daveDB, 199, 4, 4, Empty)
FloatResult3 = daveGetFloat(DeviceConnection)
'Read Data as multiple item request from PLC
PDU = daveNewPDU
Call davePrepareReadRequest(DeviceConnection, PDU)
Call daveAddVarToReadRequest(PDU, daveDB, 199, 0, 4)
Call daveAddVarToReadRequest(PDU, daveDB, 199, 4, 4)
Call daveAddVarToReadRequest(PDU, daveDB, 195, 80, 4)
ResultSet = daveNewResultSet
Result = daveExecReadRequest(DeviceConnection, PDU, ResultSet)
If Result = 0 Then
Result = daveUseResult(DeviceConnection, ResultSet, 0)
FloatResult1 = daveGetFloat(DeviceConnection)
Result = daveUseResult(DeviceConnection, ResultSet, 0)
FloatResult2 = daveGetFloat(DeviceConnection)
Result = daveUseResult(DeviceConnection, ResultSet, 0)
FloatResult2 = daveGetFloat(DeviceConnection)
daveFreeResults (ResultSet)
Else
Err = daveStrError(Result)
End If
daveFree (ResultSet)
daveFree (PDU)
Call CloseConnection
End Sub