các bác xem giúp em đoạn code với

Liên hệ QC

tompg_hut

Thành viên mới
Tham gia
29/4/11
Bài viết
2
Được thích
0
PHP:
' A module to read data from a single channel into an Excel spreadsheet
that is automatically cleared & updated with new data.'
################################################################################
’' RTDX OLE API Status Return codes'
Const SUCCESS = &h0
Const FAIL = &h80004005
Const ENoDataAvailable = &h8003001e
Const EEndOfLogFile = &h80030002
Const members = 10                          ' Total number of integers in array'
Option Explicit
Sub read_channel()
  Dim rtdx As Object                        ' object variable'
  Dim row, col As Integer                   ' temporary worksheet indices'
  Dim status As Long                        ' variable for status of RTDX read'
  Dim data As Long                         ' variable for data from RTDX read'
  Worksheets("Data").Range("A1:IV16384").Clear  ' Clear old data'
  Set rtdx = GetObject("", "Debugger.RTDX")     ' Get Debugger class object'

' variable RTDX becomes an instantiation of the OLE interface'

  status = rtdx.Open("ochan", "R")  ' Open channel with name "ochan" for reading'
  row = 1                                       ' Start data display here'
  col = 1
Do
    status = rtdx.ReadI4(data)               ' Read value from data channel'
    Select Case status
      Case Is = SUCCESS                        'if ReadI4 was successful...'
        Worksheets("Data").Cells(row, col) =   data      ' Copy data read into spreadsheet'
        col = col + 1
        If (col > members) Then           ' if reading next column of data...'
          row = row + 1                            '’ move to next row'
          col = 1                                  '’ column 1'
        End If
      Case Is = FAIL                            '’ if ReadI4 failed...'
        MsgBox ("Error reading data")
        Exit Do
      Case Is = ENoDataAvailable                '’ if data not yet available...'
        MsgBox ("Data not Available")
      Case Is = EEndOfLogFile                   '’ if end of data reached...'
        MsgBox ("End of Log reached")
        Exit Do
      Case Else
        MsgBox ("Unknown return code")          '’ trap invalid return codes...'
        Exit Do
    End Select
  Loop Until status = EEndOfLogFile
  status = rtdx.Close()                         '’ Close channel'
End Sub
đây là 1 đoạn code làm để xử lý dữ liệu từ phần cứng rồi hiển thì lên PC
nhưng khi chạy thì nó báo lỗi ở 2 dòng mình đã bôi đen....có bác nào biết cách fix thì chỉ dùm mình với
 
Chỉnh sửa lần cuối bởi điều hành viên:
Sao bạn không đưa nội dung nó báo lỗi lên vậy?

Bạn thêm vài câu lệnh để xem lỗi đó mang số hiệu bao nhiêu?

Mà trang tính 'Data' có chưa vậy?

v.v. . . & v.v. . . .

(húc ngày Lễ tốt lành!
 
Upvote 0
Mình không Test được vì không có điều khiển ActiveX hay cổng giao tiếp tương ứng nên getobject không thành. Trong file phải đổi tên 1 sheet lấy kết quả là Data. Nếu đã chạy được đến dòng lỗi thứ 2 thì mình tin code của bạn ổn.
Code của bạn là ở đây http://www.scribd.com/doc/47562965/RTDX-Data-exchange. Bạn kiểm tra xem có gì sai sót không?
Mình gửi kèm theo đây bản Word để bạn có thể tham khảo
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
cám ơn các bạn đã góp ý. mình sẽ thử theo cách bạn "sealand" đã nêu, hiện tại đã fix được mấy lỗi mình gặp, nhưng chưa có phần cứng ở đây để test
nghỉ 30/4 rồi tiếp tục. hi vọng sẽ chạy nuột :D
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom