作者蔡宗成 (2000-07-28)；核可徐業良 (2000-08-03)。
本文延續前一篇“(2000-07-20) 透過網路遠端遙控LED實驗”，將Server端控制LED明、暗的副程式更改成控制步進馬達的副程式，其整體程式架構並無太大的改變，仍以Visual Basic設計Client and Server程式，讓遠端的使用者透過網路操控步進馬達。本文重點著重在如何使用VB設計低階I/O語言來控制Plug in介面卡，如A/D卡、步進馬達控制卡等等。
要控制步進馬達，除了要了解輸出扭矩大小與轉速等相關規格，最主要是步進馬達每轉一圈所需要的訊號脈衝多少，也就是所謂的「步進角（step angle）」，再依照需要輸入脈波數來控制步進馬達產生正轉、反轉等運動。圖1為步進馬達控制流程圖，產生脈波的方法有很多，例如A/D卡、步進馬達控制卡等等控制器，控制介面卡上腳位電壓訊號的改變產生脈波，經過驅動器放大訊號，便能控制步進馬達。
本實驗使用研華公司產品PCL-818H A/D卡（如圖2）作為脈波產生器，利用Digital Output (D/O)的功能，使其腳位有高、低電壓狀態的改變，產生一脈波訊號，本文便是以VB語言設計程式對A/D卡下達Address位址，控制相關腳位之位址，讓腳位開啟或關閉，只要在程式裡執行迴圈指令，便會有連續動作，如此便能達到所需要脈波數。
本實驗使用擎翔公司產品EXD2015M二相步進馬達小型驅動器，輸入電源為DC24V，每輸入1600pulse便可使步進馬達旋轉一圈，將A/D卡上所要控制的腳位連接到驅動器上CW/CCW、PULSE的接腳，再連接到步進馬達的接線和外部電源，就可完成一個步進馬達控制實驗。
以VB設計網路遠端控制步進馬達實驗和控制LED實驗，兩者程式架構大致相同，差別在於Server端副程式的撰寫，如前所述，必須以VB設計能控制A/D卡腳位電壓改變，並以迴圈形成連續脈波訊號。在Client端程式裡，使用者可依照需求，設計命令字串按鈕，例如正轉、反轉或行走一定數目的步進角，再將相對應的副程式設計在Server端裡，如此便能透過網路遙控步進馬達。
Client程式外觀如圖3，有IP和Port欄提供使用者輸入數值，Connect按鈕和Disconnect按鈕作為連接和中斷，指令選擇有設計正轉、反轉、一個步進角。圖4為Client程式原始碼。
Server程式外觀如圖5，將Server端電腦的IP和Port值顯示出來，而連結狀況顯示在Status欄裡，Server程式在連結時，裡面會有指令接收判斷，再開始執行控制指令。程式原始碼如圖6。
如同前一篇透過網路遠端遙控LED實驗，VB語言必須外掛I/O程式，才能設計低階Address程式，控制Plug in介面卡，而I/O程式在Module1裡宣告。Module1程式碼如圖7。
A/D卡D/O Channel的位址為303，以VB表示為&H303（十六進位），當要控制馬達正轉時，腳位1要有ON/OFF狀態，也就是1和0兩種，所以腳位1處於ON的狀態時，表示為1×20＝1，以VB表示為&H1，處於OFF狀態時，就為0×20＝0，以VB表示為&H0；而腳位3一直處於OFF狀態，以VB表示為&H0，ON與OFF之間要有時間延遲，並以迴圈方式執行1600次。時間延遲控制步進馬達轉速，迴圈數目控制步進馬達轉動圈數，程式說明圖如圖8。
反轉程式的腳位1如同正轉模式，也是在ON與OFF狀態間改變，但腳位3便一直處於ON狀態，所以要控制步進馬達反轉時，要先腳位1與3同時ON，轉換成（腳位11×20＝1）加上（腳位31×22＝4）等於5，以VB表示為&H5；然後腳位1於OFF，腳位3於ON，轉換成（腳位10×20＝1）加上（腳位31×22＝4）等於4，以VB表示為&H4，再設計迴圈程式和延遲時間，便可控制步進馬達反轉，程式說明圖如圖9。
只要VB外掛I/O控制動態連結檔後，便能使用agOutp的程式語言，其用法如下『agOutp &H位址, &H數值』，將所設定的數值寫進Plug in介面卡所要控制的Channel裡之位址；但這並不是VB語言開發的功能，因為控制Address位址在Windows系統裡會有相當大的風險，工業上使用VB控制周邊設備通常是以程式裡提供的RS-232連接功能來作為溝通的橋樑，先決條件還是控制設備要有RS-232埠。
范逸之、陳立元、賴俊朋，1999，Visual Basic與RS-232串列通訊控制，文魁出版社。
黃嘉輝，2000，Visual Basic 6 Internet Programming 網際網路與TCP/IP程式設計，文魁出版社。