logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

połączenie Excela z urządzeniem RS485 poprzez MODBUS

g00fy_g 23 Gru 2013 18:33 3912 1
REKLAMA
  • #1 13092322
    g00fy_g
    Poziom 11  
    Witam
    Może jestem nadpobudliwy dodając ten temat ale nigdzie nie ma klarownego i prostego w zrozumieniu programu do komunikacji z urządzeniami zewnętrzymi na RS485. Jeśli podobny temat jest na forum to przepraszam ale nie mogłem go odkopać.
    Problem jest taki: napisać program w Visual Basic'u do zczytywania danych z urządzeń podpiętych za pomocą RS232, RS485 i wpisywania ich w kolumny excela.

    to jest droga połączenia:
    Termokontroler (MODBUS) -> RS485 ->przejściówka z RS485 na RS232 oraz przejściówka z RS232 na USB -> port USB (COM1) -> excel

    Wiem że najprościej robić to za pomocą kontrolki MSCOMM32.OCX - ustanowienie połączenia mam opanowane. Teraz nie wiem jak wysłać zapytanie - przykładowo do rejestru 4 (holding registers), adres 15 do 19. Następnym krokiem będzie odczytywanie/zapisywanie danych do poszczególnych komórek excela.

    Po wielu próbach i nowych siwych włosach poddaje się i proszę Was o pomoc.
  • REKLAMA
  • #2 13392816
    g00fy_g
    Poziom 11  
    Dla rozruszania rozmowy wrzucam to co już mam zrobione.
    Ponownie proszę o pomoc szanownych kolegów.
    
    Public buffor As String
    Public received As String
    
    Private Sub CommandButton1_Click()
    Dim received As String
    received = ""
    Dim linia As Byte, kolumna As Byte, Node As Byte, Func As Byte
    Dim Addr As Byte, RegNum As Byte
    linia = 2
    kolumna = 2
    
    'parametry zewnętrznego urządzenia i adresy
    Node = 1 ' device 1
    Func = 3   ' Holding registers
    Addr = 15 ' adress 15 - 19
    RegNum = 5 ' registers 15, 16, 17, 18, 19
    
    'co należy wysłać do MSComm1 ?
    'buffor=...............???????
    
    If MSComm1.PortOpen = True Then
      '..........?
      '..........?
      '..........?
      MSComm1.Output = buffor
      '..........?
      '..........?
      '..........?
    received = MSComm1.Input
      '..........?
      '..........?
      '..........?
    'jak wpisywać sukcesywnie dane w komórki excela?
     Worksheets("arkusz1").Cells(linia, kolumna) = received
      '..........?
      '..........?
      '..........?
    Else
      'wiadomość o zamkniętym porcie
     MsgBox ("port is closed")
     End If
    
    End Sub
    '------------------------------------------------------------
    'parametry transmisji
    'otwarcie portu
    Private Sub CommandButton2_Click()
    If MSComm1.PortOpen = False Then
        MSComm1.CommPort = 1
        MSComm1.Settings = "9600,n,8,1"
        MSComm1.InputLen = 0
        MSComm1.PortOpen = True
    End If
    End Sub
    '-----------------------------------------------------------
    'zamkniecie portu
    Private Sub CommandButton3_Click()
    If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
    End Sub
    


    Czy aby na pewno ani jedna osoba na forum nie zna odpowiedzi na moje pytania? nie podzielicie sie z innymi swoją wiedzą?
REKLAMA