-> Hier kostenlos registrieren
Hallo,
mit folgendem Code lese ich die vorhandenen Datenbausteine aus der SPS aus:
Das funktioniert dann soweit bis DB255. Ab DB 256 fängt er aber wieder bei 0 an, also mein DB260 wird mit 4 ausgegeben. Ursache habe ich auch schon gefunden, da buf(i) als byte festgelegt wurde und byte nur bis 256 kann. Ändere ich die variable probeweise auf Integer, kann ich zwar auslesen, aber die Werte die dann rauskommen sind unsinning.
Der Fehler liegt meiner Meinung nach in der libnodave.dll, oder? Dort müsste man doch von Byte auf Integer umstellen?
Danke schon mal im Voraus.
markham
mit folgendem Code lese ich die vorhandenen Datenbausteine aus der SPS aus:
Code:
Private Sub ReadProgramBlocks_Click()
Dim buf(1000) As Byte
Dim res As Integer
Dim res1 As Integer
Dim ph As Long
Dim di As Long
Dim dc As Long
Dim i As Integer
res = initialize(ph, di, dc)
res1 = daveListBlocksOfType(dc, 65, buf(0))
For i = 0 To 280 Step 4
Range("H" & i / 4 + 6).Select
ActiveCell.FormulaR1C1 = buf(i)
Next i
Range("H4").Select
ActiveCell.FormulaR1C1 = res1
Call cleanUp(ph, di, dc)
End Sub
Das funktioniert dann soweit bis DB255. Ab DB 256 fängt er aber wieder bei 0 an, also mein DB260 wird mit 4 ausgegeben. Ursache habe ich auch schon gefunden, da buf(i) als byte festgelegt wurde und byte nur bis 256 kann. Ändere ich die variable probeweise auf Integer, kann ich zwar auslesen, aber die Werte die dann rauskommen sind unsinning.
Der Fehler liegt meiner Meinung nach in der libnodave.dll, oder? Dort müsste man doch von Byte auf Integer umstellen?
Danke schon mal im Voraus.
markham