saber 發問時間: 電腦與網際網路程式設計 · 9 年前

vb 與plc 使用usb連結的語法問題

我使用Q64PN 系列的PLC .然後寫一小段VB想和它連結通訊

但是卻聯不上 . 後來發覺因該是.給的PORT不對的問題.

(我使用GX DEVELOPER 可以連接上PC->PLC .)

Imports System.IO.Ports

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

For Each PortName As String In SerialPort.GetPortNames

cmbPort.Items.Add(PortName) '將串列埠的名稱列出來

Next

cmbPort.SelectedIndex = 0 '第一個是預設選項

End Sub

Private Sub OpenPort_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenPort.Click

I

'設定通訊參數

SerialPort1.PortName = cmbPort.SelectedItem.ToString

SerialPort1.BaudRate = 9600

SerialPort1.Parity = Parity.Even

SerialPort1.DataBits = 7

SerialPort1.StopBits = StopBits.One

'開啟通訊埠

SerialPort1.Open()

OpenPort.ImageKey = "close"

OpenPort.Text = "關閉"

End If

End Sub

這個方法.只抓到.RS2322的 COM1 PORT

然而我是用USB接的.所以好像就這樣都聯不上

請問前輩.

我程式語言上.要怎樣做才可以使用USB 和PLC 連結上呢 ?

(像是 GX DEVELOPER 中的 PLC MONITOR UTILITY 可以通訊)

2 個解答

評分
  • Chen
    Lv 6
    9 年前
    最佳解答

    1. first of all, You must understand to be different betwwen RS232 and USB .

    2. USB needs software protocol to handshake with device.

    3. USB has 3 type transfer protocol ( ISO transfer, Bulk transfer, Interrupt transfer) and Setup transfer for every device.

    4. if your device (PLC) adopts Interrupt Transfer, You must code program

    like hidUsb.sys in kernel of window and create device name UDBPDO device you open and ioctl in use mode

  • 你有確定那個 USB 有模擬成 COM Port 嗎? 如果是, 它的 Port# 也未必是1, 打開裝置管理員看一下吧.

還有問題?馬上發問,尋求解答。