標籤:運動控制 pmac pcomm32 下位機 通訊
前面講的知識都是在PE-WIN32中操作的,都是針對PMAC下位機編程的,現在開始講解PMAC上位機——PC端如何與PMAC通訊:給PMAC發送控制訊號及處理PMAC的中斷響應。本文先說PMAC VC編程的環境配置。
1.檔案夾結構
PMAC PC編程必須安裝PComm32,安裝完檔案夾結構如下:
Pmactest.exe用於在PAMC按完成後測試當前安裝是否成功,PmacTest是該程式的源碼
PCOMM32PRO.HLP是PComm32的編程協助手冊
VCTest和VBTest檔案夾是上位機編程的小Demo
Driver (Debug Version)檔案夾裡是PMAC的各種驅動和動態連結程式庫及其匯入庫等
Include檔案尾PMAC的介面標頭檔
2.驅動結構模型
Driver (Debug Version)檔案夾內容如下
這裡提供了Pcomm32.dll動態連結程式庫和匯入庫Pcomm32.lib,.sys都是PMAC的各種介面的驅動。
PMAC的整個驅動結構模型如:
可以看到,我們針對動態連結程式庫提供介面編程就行了
3.代碼示範
- 1.開啟VCTest目錄,會發現有myRuntime.h和myRuntime.cpp檔案,連同上面的Pcomm32.dll一同拷貝進當前項目目錄。
- 2.然後將myRuntime.h和myRuntime.cpp添加到當前項目中
- 3.就可以開始使用了
最簡單的測試程式如下:
建立MFC程式PmacConnect,PmacConnectDlg.cpp引入標頭檔
//添加PComm操作庫標頭檔#include "myRuntime.h"
添加一個按鈕響應,如下:
void CPmacConnectDlg::OnConnect() {//動態載入Pcomm32.dll函數if (NULL != OpenRuntimeLink()){AfxMessageBox(TEXT("載入Pcomm32.dll成功!"));}else{AfxMessageBox(TEXT("載入Pcomm32.dll失敗!"));return;}//開啟指定卡號PMAC,這裡開啟0號卡if (TRUE == OpenPmacDevice(0)){AfxMessageBox(TEXT("開啟PMAC成功!"));}else{AfxMessageBox(TEXT("開啟PMAC失敗!"));}//關閉到PMAC串連ClosePmacDevice(0);//動態關閉Pcomm32.dll的使用CloseRuntimeLink();}
這裡myRuntime.h和myRuntime.cpp封裝了動態載入PComm.dll的函數,其實就是LoadLibrary的調用,感興趣的可以自己看一下。這裡只封裝了常用部分的,需要的自己可以仿照它的形式從Include/Runtime.h中找到對應函數的原型來添加封裝。
這裡只是為了測試連接功能,實際編寫程式的時候,我們需要在InitInstance或InitDialog時初始化串連,在程式退出的時候關閉串連。簡單來說就是最開始開啟一次和最後關閉一次串連,不需要每次操作時都要頻繁的開啟和關閉。
代碼示範下載連結
原創,轉載請註明來自http://blog.csdn.net/wenzhou1219
8.PMAC上位機-VC編程環境配置