




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、蘇州鈞信PMAC培訓(xùn)上位編程篇PROJECT(電控部分)PMAC及其控制設(shè)備的調(diào)整電控硬件搭接程序編寫現(xiàn)場(chǎng)調(diào)試PMAC底層程序上位機(jī)程序上位機(jī)編程驅(qū)動(dòng)界面功能控件工藝&算法驅(qū)動(dòng)的實(shí)現(xiàn)PCOMM32PRO(Promote)Ptalk(Obsolete)自寫驅(qū)動(dòng)PCOMM32PRO通訊模式調(diào)用方式ASCII(通用)DPRAM(硬件相關(guān))ERRUPTE(硬件相關(guān))利用PCOMM32PRO編程準(zhǔn)備系統(tǒng)準(zhǔn)備(window98/NT/2000/XP)PCOMM32PRO安裝編程環(huán)境(VC、VB、其它C/C+環(huán)境)PCOMM32PRO安裝獲取安裝文件保管序列號(hào)注意動(dòng)態(tài)庫版本產(chǎn)看動(dòng)態(tài)庫版本注:現(xiàn)行最普遍版本為
2、10.48,不同版本之間所包含的動(dòng)態(tài)函數(shù)不一定相同,可能存在版本間移植問題。庫的導(dǎo)出Pcomm32.dll屬性版本system32WINDOWS系統(tǒng)盤PCOMM32PRO手冊(cè)瀏覽(1)roduction to user manual.1.此部分講述了Pcomm32pro的概況,例如支持的系統(tǒng),支持的語言環(huán)境。所包含的API的數(shù)量。以及在系統(tǒng)中的Ring3層,等等。使用者可以大體瀏覽一下。2.Getting started.此部分開始教授如何使用Pcomm32pro。包含了:如何安裝硬件;如何安裝Pcomm32pro;如何使用Pcomm32pro;如何將代碼和驅(qū)動(dòng);PCOMM32PRO手冊(cè)瀏覽(
3、2)如何初始化通訊;關(guān)于雙端口RAM的PmacServer的介紹;如何關(guān)閉通訊;給出一個(gè)使用ASCII通訊功能的指導(dǎo);使用ASCII過程中的經(jīng)驗(yàn)性的常見問題;如何可以達(dá)到線程安全的的ASCII通訊;如何實(shí)現(xiàn)糾錯(cuò)等。這個(gè)第二章節(jié)建議大家都要去看看,在這里會(huì)給讀者關(guān)于一個(gè)如何使用Pcomm32pro的一個(gè)初步的認(rèn)識(shí)。PCOMM32PRO手冊(cè)瀏覽(3)3.Features此章主要講述了如何去使用中斷和向PMAC程序。在講述中斷的部分,講述了中斷的四種使用方法:給窗口發(fā)一個(gè)消息;調(diào)用一個(gè)函數(shù);開啟一個(gè)線程;激活一個(gè)事件;在程序部分講述了過程中所要完成的事情以及多文件合并時(shí)用到的方法。程序在實(shí)際工程中是
4、比較常用的,中斷的使用取決于卡是否支持中斷以及工程是否要求到了中斷。PCOMM32PRO手冊(cè)瀏覽(4)3.Features此章主要講述了如何去使用中斷和向PMAC程序。在講述中斷的部分,講述了中斷的四種使用方法:給窗口發(fā)一個(gè)消息;調(diào)用一個(gè)函數(shù);開啟一個(gè)線程;激活一個(gè)事件;在程序部分講述了過程中所要完成的事情以及多文件合并時(shí)用到的方法。程序在實(shí)際工程中是比較常用的,中斷的使用取決于卡是否支持中斷以及工程是否要求到了中斷。PCOMM32PRO手冊(cè)瀏覽(4)4.DPR FeaturesM32PRO的講本章節(jié)講述雙端口的功能和相應(yīng)使用方法。在初級(jí)座中不安排雙端口RAM的內(nèi)容。讀者也可以先略去這一部分。
5、5.RODUCTION TO PROGRAMMERS REFERENCE一個(gè)按照使用能分類的提綱,這個(gè)提綱也是關(guān)于手冊(cè)以下展開論述的一個(gè)目錄;關(guān)于三種通訊方式的說明;響應(yīng)返回字符串最大位數(shù)的指定。6.INITIALIZATION,SHUTDOWN AND CONFIGURATION FUNCTIONS本章節(jié)開始詳細(xì)敘述如何對(duì)控制卡進(jìn)行初始化,關(guān)閉,設(shè)定等操作。一款PMAC在進(jìn)行操作之前首先要開板卡初始化。在使用結(jié)束后要關(guān)板卡源。7.ASCII COMMUNICATION FUNCTIONS資PCOMM32PRO手冊(cè)瀏覽(5)ASCII COMMUNICATION FUNCTIONS本章詳細(xì)描述
6、如何進(jìn)行ASCII通訊操作。ASCII通訊方式是最常用也是最通用的通訊方式。本章要重點(diǎn)看看。DOWNLOADING FUNCTIONS本章講述PMAC的的功能,可以在上位機(jī)中將編輯好的運(yùn)動(dòng)程序或者PLC程序或者賦值表達(dá)式通過輸入到PMAC卡中。在其中的方式只得是要加入PLCC,或者是多個(gè)進(jìn)程要PLCC的時(shí)候提到的多程序要使用的方法。功能在實(shí)際工程中也是經(jīng)常要用到的,需要掌握。PCOMM32PRO手冊(cè)瀏覽(6)DUAL PORTED RAM CONTROL PANELDPR REAL TIME FIXED DATA BUFFERDPR REAL TIME FIXED DATA BUFFER(TU
7、RBO)DPR BACKGROUND FIXED DATA BUFFERDPR BACKGROUND FIXED DATA BUFFER(TURBO)14.DPR VARIABACKGROUND READ/WRITE DATA BUFFERDPR BINARAY ROTARY BUFFER FUNCTIONDPR NUMERIC READ AND WRITEPCOMM32PRO手冊(cè)瀏覽(7)17.DATA GATHERING FUNCTIONS功能。18.ERRUPT FUNCTIONS中斷功能SERIAL CHECKSUM COMMUNICATION FUNCTIONS串口校驗(yàn)通訊功能VAR
8、IABLE FUNCTIONS可以通過在ASCII變量功能包括變量的和變量大小的設(shè)置。變量的通訊部分的PmacGetResponseAEx來實(shí)現(xiàn)。單獨(dú)看看變量大小設(shè)定便可,使用率不大。PCOMM32PRO手冊(cè)瀏覽(8)21.UTILITY FUNCTIONS效用函數(shù)部分,功能包含了獲得了ROM數(shù)據(jù),獲取ROM版本類型,PMAC類型等,可以隨便選看一下。22.DAYPES, STRUCTURES, CALLBACKS, AND CONSTANTS本章可以看作是是個(gè)附錄,描述了在實(shí)用PCOMM32PRO的過程中可能要用到的數(shù)據(jù)類型,結(jié)構(gòu),回調(diào)函數(shù)類型和常數(shù)等等。可以在使用到響應(yīng)的或者定義時(shí)時(shí)來此查
9、閱。大體有個(gè)概念即可。23.EXTNEDED FUNCTIONS對(duì)幾個(gè)雙端口RAM的函數(shù)的Ex功能的補(bǔ)充說明,提出了帶有Ex函數(shù)替代老版本函數(shù)的好處,差別主要在于返回值??梢垣@得錯(cuò)誤狀態(tài)。PCOMM32PRO手冊(cè)瀏覽(9)MUNICATION APPLICATION NOTES通訊應(yīng)用的注意事項(xiàng):最大的陷阱是超時(shí),超時(shí)在所有的通訊中都是存在的,要注意發(fā)出和接受的時(shí)間間隔。其次是PMAC輸出寄存器憂郁癥,其實(shí)就是出入寄存器阻塞。不要忽略輸出寄存器的返回?cái)?shù)據(jù)。其三就是初始化,在這里提出了一些在初始化通訊時(shí)遇到的一些問題。以及響應(yīng)的解決辦法。在早些的固件版本時(shí),串口通訊存在通訊,以及其它比較少見等等
10、??梢栽谟龅酵ㄓ嵆跏蓟瘑栴}時(shí)來此查尋一下。最后是通用的雙端口RAM的一些使用陷阱。在此先不做涉及。PCOMM32加載VBVC隱式調(diào)用顯式PCOMM32PRO在VB中的加載以VB6.0為例:1、創(chuàng)建一個(gè)通用模塊。2、導(dǎo)入函數(shù):Declare Function OpenPmacDevice Lib “Pcomm32.dll” (ByVal pmac As Long) As Long。函數(shù)原型:BOOL OpenPmacDevice(DWORD dwDevice)。調(diào)用方式:Dim Tmp_Val As LongTmp_Val = OpenPmacDevice(0)PCOMM32PRO在VC中的隱式
11、調(diào)用1、設(shè)定庫函數(shù)的路徑:點(diǎn)擊菜單Project,而后點(diǎn)擊Setting。在彈出的窗口中找到Link分頁。在 Object/library modules的欄中填寫lib文件所在的路徑默認(rèn)是 C:windowssystem32pcomm32.lib2、在全局作用域中導(dǎo)入函數(shù):extern “C” _declspec(dllimport) BOOL _stdcall OpenPmacDevice(DWORD dwDevice);函數(shù)原型:BOOL OpenPmacDevice(DWORD dwDevice);調(diào)用方式:OpenPmacDevice(0);常用的VC顯式方式手動(dòng)WIN32API函數(shù)
12、加載頭文件包含導(dǎo)入手動(dòng)WIN32API函數(shù)加載(1)1、在工程的合適位置加載動(dòng)態(tài)庫:1.1、定義一個(gè)HMODULE類型的變量:HMODULE mydll;1.2、將動(dòng)態(tài)庫加載到內(nèi)存中:mydll = : LoadLibrary(“Pcomm32.dll”);2、根據(jù)每個(gè)函數(shù)的原型定義一個(gè)回調(diào)函數(shù)類型的別名:以 OpenPmacDevice為例。原型:BOOL OpenPmacDevice(DWORD dwDevice);手動(dòng)WIN32API函數(shù)加載(2)別名:typedef BOOL (CALLBACK* MYOPENPMAC) (DWORD);3、定義此類型的一個(gè)變量: MYOPENPMAC
13、 myOpenPmac;4、通過WIN32API GetProcAddress來獲取函數(shù)在內(nèi)存中的地址:myOpenPmac = (MYOPENPMAC) GetProcAddress (mydll,”O(jiān)penPmacDevice”);5、調(diào)用: (*myOpenPmac)(0);頭文件包含可以通過包含提供的頭文件的方法加載步驟:1、將Include文件夾copy到project路徑中; 2、在工程中#include ”Runtime.h”;3、在工程中使用函數(shù)。庫。在工程中使用函數(shù)時(shí)要按照Runtime.h中的對(duì)函數(shù)的名稱進(jìn)行調(diào)用,在Runtime.h中,F(xiàn)unction部分通過EXTERN
14、了函數(shù)的名稱。如:EXTRN GETRESPONSEEXA DeviceGetResponseEx;在使用中直接調(diào)用DeviceGetResponseEx來調(diào)用即可。兩種顯式加載方式的區(qū)別兩種顯式加載方式的實(shí)質(zhì)是一樣的。頭文件加載的方式實(shí)際上也是使用的動(dòng)庫的顯式加載的方式將大部分的API函數(shù)作出導(dǎo)出。但是頭文件中又態(tài)不是單單的這些,還有一些全局的結(jié)構(gòu)的兩種方式的優(yōu)缺點(diǎn):等。自己手動(dòng)的完成動(dòng)態(tài)庫的顯式加載的方式在思比較清晰,如何一步一步實(shí)現(xiàn)的比較明顯,而且可以用什么加載什么。頭文件中文件數(shù)量比較多,雖然看起來比較簡單但是想要分析清除各個(gè)頭文件的之間的包含關(guān)系比較麻煩,一旦某個(gè)文件被修改或者丟失對(duì)
15、于整個(gè)工程的編譯都是一個(gè)型。T YOURSELF!所以:建議是:對(duì)PMAC卡的操作(ASCII)初始化開板卡發(fā)指令查詢文件操作關(guān)板卡上載初始化(1)初始化是完成將PMAC在上位機(jī)上進(jìn)行的一個(gè)功能。使用過PEWIN32PRO的用戶可能發(fā)現(xiàn)一個(gè)現(xiàn)象:如果我這次使用的PMAC的通訊類型(如:串口,網(wǎng)口,PCI等)和上一次我使用的類型相同,同時(shí)站號(hào)也相同的話,在開啟PEWIN32PRO時(shí)可以自動(dòng)的與卡通訊成功。而如果換了通訊方式類型的話,下次開啟PEWIN32PRO就不可能自動(dòng)通訊成功。此時(shí)就需要手動(dòng)地進(jìn)行類型的選擇和通訊測(cè)試。原因是PMAC在初始化過程中,會(huì)將站號(hào),通訊方式等信息在通訊測(cè)試成功后寫入
16、window的表。所以初始化功能就是完成卡在上位機(jī)的。初始化的方法有兩種:一、就是通過PEWIN32PRO來。在絕大多數(shù)情況下都使用這種方法,因?yàn)橐话阋粋€(gè)工程項(xiàng)目中都不會(huì)存在在使用過程中換掉控制卡的要求。初始化(2)二、使用PCOMM32PRO中的函數(shù)。函數(shù)原型:Long PmacSelect (HWND hwnd);框,這就是PEWIN32PRO中大家見到過的那在調(diào)用完成時(shí)會(huì)彈出一個(gè)個(gè)初始化框,如下圖:初始化(3)框中的操作和PEWIN32PRO中的使用是一樣的。在彈出的在絕大多數(shù)情況下都是通過第法去初始化。但是對(duì)于項(xiàng)目開發(fā)而言,在開發(fā)過程或者后續(xù)的更新?lián)Q代中可能會(huì)遇到換通訊方式,不要忘記重
17、新初始化。表的信息存放在:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Servi/PMAC。表中的信息是按照站號(hào)來的,在初始化完成后,面對(duì)的就不再是某種通訊方式的某種卡,而是面對(duì)站號(hào)。站號(hào)是從0號(hào)開始的。如果一個(gè)系統(tǒng)中就帶有一個(gè)PMAC卡時(shí),一般就會(huì)設(shè)到0號(hào)站。完成初始化后,可以對(duì)卡進(jìn)行操作了。開板卡將板卡打開是對(duì)PMAC卡進(jìn)行操作的必須的一步。在PMAC卡沒有打開之前,所有的操作都是未定義的。M32PRO的API函數(shù)實(shí)現(xiàn)。打開卡的方式也是通過函數(shù)原型:BOOL OpenPmacDevice (DWORD dwDevice);函數(shù)參數(shù)是設(shè)備序號(hào),從0
18、開始。返回值是bool類型,用于查尋是否開板卡成功。注意:當(dāng)一塊PMAC卡要加入到一個(gè)VC或者VB的項(xiàng)目中,首先要做一次初始化來測(cè)試并這塊PMAC卡的信息。初始化面已經(jīng)將過了。在調(diào)用這個(gè)函數(shù)時(shí),PCOMM32PRO會(huì)自動(dòng)地去前面所講的注冊(cè)表的位置去查尋這個(gè)站號(hào)所保存的信息,用于打開板卡。發(fā)指令&查詢(1)在Pcomm32pro的動(dòng)態(tài)庫中,有許多的基于ASCII通訊的API函數(shù)。其使用的為PmacGetResponseExA函數(shù)。中最原型:long PmacGetResponseExA ( DWORD dwDevice, PCHAR response,Umaxchar, PCHARd ) ;dw
19、Device:這個(gè)參數(shù)在編程中經(jīng)常用到,就是前面所提及的站號(hào);response:出PMAC的輸出寄存器中返回的值的拷貝,是一個(gè)char*類型;maxchar:最大的拷貝的字符串?dāng)?shù)量,注意一定要大于返回字符大小; d:上位發(fā)出的一個(gè)請(qǐng)求或者命令,類型也是char*。發(fā)指令&查詢(2)返回值:返回值的類型是一個(gè)長整型,最好字節(jié)包含的是函數(shù)的調(diào)用狀態(tài)。其余字節(jié)保存從PMAC得到的字符數(shù)。如果沒有字符收回,檢查最高字節(jié) 來得到錯(cuò)誤代碼。具體代碼可以在PDF手冊(cè)的ERROR HANDLING部分去查表。比如if(PmacGetResponseExA(dwDevice,re 000000)Treat er
20、ror;mand)&0 xF0使用PmacGetResponseExA原因如下:之所以細(xì)心的用戶可能發(fā)現(xiàn)講義前面在手冊(cè)的瀏覽部分24小節(jié)講到通訊的注意事項(xiàng)的時(shí)候提到過PMAC輸出寄存器阻塞。發(fā)指令&查詢(3)所謂的寄存器阻塞是這樣一個(gè)現(xiàn)象:運(yùn)動(dòng)程序或者PLC程序執(zhí)行被堵塞住,給PMAC的輸入寄存器發(fā)ASCII指令也沒有返回。原因就是有兩個(gè)或者兩個(gè)以上的存在PMAC的輸出寄存器中的數(shù)據(jù)沒有被取走。在PMAC的ASCII函數(shù)中,有許多是不獲取返回值的,使用過程中很容易造成這種現(xiàn)象。并且Ex功能可以查詢錯(cuò)誤代碼。所以建議大家使用 PmacGetResponseExA。令字和查詢命令都是和在PEWIN
21、32PRO的Terminal終端上發(fā)出令是一樣的。如(P100(查詢),P100=1(賦值)。發(fā)指令&查詢(4)注意:幾個(gè)概念問題:在PMAC卡中,輸入寄存器和輸出寄存器的大小為255個(gè)字符。PmacGetResponseExA函數(shù)不面對(duì)底層的,所以并不是說用這個(gè)API返回的字符也必須是255以內(nèi)的。可以超過255。文件操作(1)和上載兩個(gè)方面。文件操作分為完成功能就是將在上位機(jī)編寫好的運(yùn)動(dòng)程序或者PLC程序到卡中,或者將PMAC卡中保存的運(yùn)動(dòng)程序或者PLC程序上載到上位機(jī)中。:PmacDownloadA()。的函數(shù)有許多,原型:Long PmacDownloadA ( DWORD dwDev
22、ice, DOWNLOADMSGPROCmsgp, DOWNLOADGETPROC getp, DOWNLOROGRESS pprg,PCHAR filename, BOOL macro, BOOL map, BOOL log, BOOL dnld );函數(shù)在調(diào)用的時(shí)候首先要打開文件,然后將文件上的代碼進(jìn)行編譯,然后執(zhí)行功能。文件操作(2)在文件編譯的過程中會(huì)在要以看PDF手冊(cè)。參數(shù)說明:dwDevice:站號(hào)。文件的路徑上產(chǎn)生一些殘留文件。具體可msgp:DOWNLOADMSGPROC類型回調(diào)函數(shù)。getp:DOWNLAODGETPROC類型回調(diào)函數(shù)。pprg:DOWNLOROGRESS類型
23、回調(diào)函數(shù)。以上三個(gè)回調(diào)函數(shù)是PCOMM32PRO中定義的三個(gè)用戶類型,面資料瀏覽時(shí)提到過有一部分介紹的是PCOMM32PRO的類型。后面將對(duì)以下的類型進(jìn)行一個(gè)說明。文件操作(3)文件的名稱,使用絕對(duì)路徑。filename:macro:宏編譯選擇。map:是否為宏創(chuàng)建一個(gè)文件的選項(xiàng)。log:是否建立一個(gè)log文件。log文件中的信息就是傳遞給msgp回調(diào)函數(shù)的信息。dnld:將最終好的文件發(fā)送給PMAC的一個(gè)標(biāo)志。此API函數(shù)的參數(shù)比較多,如果想做到最簡單的,只需將這些多于的參數(shù)設(shè)成NULL,不想要的flag設(shè)成false便可。但是最后參數(shù)一定為true不然不執(zhí)行,只執(zhí)行編譯。文件操作(4)DOWNLOADMSGPROC:原型:typedef void ( FAR WINAPI *DOWNLOADMSGPROC ) ( LPTSTR str, BOOL newline );這個(gè)回調(diào)函數(shù)在PEWIN32PRO參數(shù):時(shí)調(diào)用,用于返回在編譯時(shí)會(huì)提示是否有錯(cuò)誤等。過程中的信息。比如像str:消息字符串,在的過程中會(huì)用多次返回。newline:BOOL類型的參數(shù),傳遞是否有新的字符串返回。函數(shù)調(diào)用時(shí)此類型參數(shù)為NULL如果不想從此功能,在文件操作(5)DOWNLOADGETPROC:原型:typedef long ( FAR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國巖棉管數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國女裝架數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國塔式機(jī)立窯數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國合成脂肪酸改性醇酸樹脂數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國印花油性臺(tái)板膠數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國全自動(dòng)鋁塑蓋鉚合機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國不銹鋼冷拉盤絲數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國PVC易撕膠帶數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年中國雨傘用鋁材市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國門磁傳感器市場(chǎng)調(diào)查研究報(bào)告
- DB34∕T 2290-2022 水利工程質(zhì)量檢測(cè)規(guī)程
- GB/T 44399-2024移動(dòng)式金屬氫化物可逆儲(chǔ)放氫系統(tǒng)
- 薛崗小學(xué)反邪教工作計(jì)劃
- 某住宅小區(qū)物業(yè)服務(wù)投標(biāo)書范本
- 2024-2030年中國高空外墻清洗行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 2024年遼寧省中考生物試卷(含答案與解析)
- 醫(yī)院殯葬服務(wù)管理制度
- 煤礦自救互救知識(shí)考試復(fù)習(xí)題庫(含答案)
- 外科學(xué)緒論 課件
- 患者搬運(yùn)操作并發(fā)癥的預(yù)防
- 云南省紅河州市級(jí)名校2024年中考聯(lián)考數(shù)學(xué)試題含解析
評(píng)論
0/150
提交評(píng)論