自定義通信編程案例解析201203_第1頁
自定義通信編程案例解析201203_第2頁
自定義通信編程案例解析201203_第3頁
自定義通信編程案例解析201203_第4頁
自定義通信編程案例解析201203_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

自定義通信編程案例解析

工程技術(shù)部目錄自定義通信實現(xiàn)總體介紹248通信卡自定義通信實例一248通信卡自定義通信實例二OS-MLNK12通信卡自定義通信實例三自定義通信實現(xiàn)總體介紹自定義通信實現(xiàn)的條件:和其它異構(gòu)通信一樣應滿足通過232/485方式接入;和其它異構(gòu)通信一樣對方應明確基本的通信參數(shù),通常是數(shù)據(jù)位、停止位、校驗、速率;絕大部分的自定義通信是我方發(fā)一幀特定的數(shù)據(jù)命令(主),對方接收到我方的命令后相應的返回一幀數(shù)據(jù)(從),也有些設備要求我方只發(fā)送或者只接收,這種情況很少見;對方應提供明確的發(fā)送數(shù)據(jù)幀格式和接收數(shù)據(jù)幀格式,并應直接寫明具體的十六進制數(shù)據(jù),以及相應的含義;自定義通信實現(xiàn)總體介紹248通信卡自定義通信編程中使用的基本模塊或函數(shù):GW_SETCOM(模塊,用于設定基本的串口通信參數(shù));GW_SNDRCV(模塊,用于處理發(fā)送和接收);GW_DEFSNDBUF(函數(shù),用于定義發(fā)送緩沖區(qū)字節(jié)量,大于等于實際要發(fā)送的字節(jié)量,通常我們可以定義為128);GW_WRITEBUF(函數(shù),用于把一個字節(jié)寫入發(fā)送緩沖區(qū)內(nèi));GW_DEFRCVBUF(函數(shù),用于定義接收緩沖區(qū)字節(jié)量,大于等于實際要接收的字節(jié)量,通常我們可以定義為128);GW_GETRCVLEN(函數(shù),用于得到接收數(shù)據(jù)的字節(jié)數(shù)量);GW_GETRCVMSG(函數(shù),用于將接收的數(shù)據(jù)放入接收緩沖區(qū)內(nèi));GW_READBUF(函數(shù),用于讀出接收緩沖區(qū)內(nèi)的某個字節(jié));自定義通信實現(xiàn)總體介紹OS-MLNK12通信卡自定義通信編程中使用的基本模塊或函數(shù):CDMW(模塊,用于發(fā)送通信命令);CDMR(模塊,用于接收通信數(shù)據(jù));OS-MLNK12通信卡自定義通信編程中使用的系統(tǒng)變量:CdmWrData0[X]表示第一條發(fā)送命令的通信字節(jié)數(shù)組(用于總體參數(shù)設置),CdmWrData0[0]表示這個數(shù)組的第一個字節(jié)以案例中的兩條數(shù)據(jù)發(fā)送和接收通信命令來說,就使用到下面的系統(tǒng)變量:CdmWrData1[X]表示第二條通信命令發(fā)送的字節(jié)數(shù)組,CdmWrData1[0]表示第二條通信命令發(fā)送的第一個字節(jié),CdmRdData1[X]表示第二條通信命令接收的字節(jié)數(shù)組,CdmRdData1[0]表示第二條通信命令接收的第一個字節(jié);CdmWrData2[X]表示第三條通信命令發(fā)送的字節(jié)數(shù)組,CdmWrData2[0]表示第三條通信命令發(fā)送的第一個字節(jié),CdmRdData2[X]表示第三條通信命令接收的字節(jié)數(shù)組,CdmRdData2[0]表示第三條通信命令接收的第一個字節(jié);248通信卡自定義通信實例一對方提供的信息:1、速率9600bps數(shù)據(jù)位8位停止位1位校驗位偶檢驗2、發(fā)送幀和接收幀的舉例:發(fā)送的十六進制數(shù)據(jù)幀為:03030012000265EC地址功能碼數(shù)據(jù)起始地址數(shù)據(jù)個數(shù)校驗值接收的十六進制數(shù)據(jù)幀格式為:03030449AB48F0880B地址功能碼返回數(shù)據(jù)字節(jié)個數(shù)數(shù)據(jù)1數(shù)據(jù)2校驗值248通信卡自定義通信實例一在GW_SETCOM模塊上設定:速率9600bps數(shù)據(jù)位8位停止位1位校驗位偶檢驗發(fā)送的十六進制數(shù)據(jù)幀為(共8個字節(jié)):03030012000265EC地址功能碼數(shù)據(jù)起始地址數(shù)據(jù)個數(shù)校驗值在自定義發(fā)送功能塊ST_SET中將此數(shù)據(jù)幀轉(zhuǎn)化為十進制數(shù)值按照順序逐一寫入發(fā)送緩沖區(qū),對應十進制為:3301802101236,例如第一個字節(jié)寫入為GW_WRITEBUF(SNDBUF,0,3);,具體祥見組態(tài)接收的十六進制數(shù)據(jù)幀格式為(共9個字節(jié)):03030449AB48F0880B地址功能碼返回數(shù)據(jù)字節(jié)個數(shù)數(shù)據(jù)1數(shù)據(jù)2校驗值在自定會議接收功能塊ST_GET中定義9個接收字節(jié),逐一將字節(jié)按照順序從接收緩沖區(qū)中取出,例如取第一個字節(jié)B1=GW_READBUF(RCVBUF,0);,具體祥見組態(tài)

248通信卡自定義通信實例一通信調(diào)試中通常會采用串口精靈軟件對通信線路上的數(shù)據(jù)幀進行監(jiān)控,SVN技術(shù)資料常用工具軟件中有ComX1013113軟件,上例中發(fā)送接收數(shù)據(jù)幀監(jiān)控截圖如下:截圖中發(fā)送數(shù)據(jù)幀和接收數(shù)據(jù)幀之間的AA為串口精靈軟件自動加入的一個字節(jié),用于標識,無需考慮248通信卡自定義通信實例二對方提供的信息:1、速率1200bps數(shù)據(jù)位7位停止位2位校驗位奇檢驗2、舉例:(采集液位LT_011)顯示:+013.2683mINN發(fā)送和返還為十六進制代碼翻譯為對應的ASCII碼十六進制和ASCII碼對應關(guān)系見截圖《部分常用十六進制和ASCII碼對應關(guān)系表》發(fā)送:02303131425A3031032A翻譯:STX011BZ01說明:開始地址罐位號11功能碼BZ讀取液位代碼ETX效驗共10個字節(jié)的一幀發(fā)送命令,在自定義功能塊ReadMsg11L中定義,轉(zhuǎn)化為十進制數(shù)值逐一寫入發(fā)送緩沖區(qū),具體詳見組態(tài)248通信卡自定義通信實例二對方返還:02303131425A30312B3031332E3236翻譯:STX011BZ01+013.26含義:開始/地址/罐號11/功能碼BZ/讀液位/液位數(shù)值對方返還(續(xù)接):383330306D20494E4E0314翻譯:8300mSPINNETX/效驗含義:液位數(shù)值/單位/空格/狀態(tài)位/ETX/效驗一幀接收的數(shù)據(jù),在ReceiveMsg11L中定義接收字節(jié)由于接收到的為ASCII碼,定義JIEXILL自定義模塊進行對接收的字節(jié)組合處理具體詳見組態(tài)OS-MLNK12通信卡自定義通信實例三對方提供的信息:1、速率9600bps數(shù)據(jù)位8位停止位1位校驗位偶檢驗2、兩條發(fā)送和接收幀:發(fā)送的十六進制數(shù)據(jù)幀為:010300020002地址功能碼數(shù)據(jù)起始地址數(shù)據(jù)個數(shù)接收的十六進制數(shù)據(jù)幀格式為:0103040000

00

00

地址功能碼返回數(shù)據(jù)字節(jié)個數(shù)數(shù)據(jù)1數(shù)據(jù)2第二條就地址修改為2,也同樣是讀取0002地址開始的2個整數(shù)OS-MLNK12通信卡自定義通信實例三程序里對總體參數(shù)數(shù)據(jù)的設定如下(在TEXTCODE中實現(xiàn)),自定通過第一條CDMW模塊發(fā)送:CdmWrData0[0]=3;(*第一條通信命令的寫入第一個字節(jié),3表示波特率9600*)CdmWrData0[1]=0;(*第一條通信命令的寫入第二個字節(jié),0表示8位數(shù)據(jù)位*)CdmWrData0[2]=2;(*第一條通信命令的寫入第三個字節(jié),2表示偶校驗*)CdmWrData0[3]=0;(*第一條通信命令的寫入第四個字節(jié),0表示1位停止位*)CdmWrData0[4]=2;(*第一條通信命令的寫入第五個字節(jié),2表示后面總共用了2條通信命令發(fā)送接收數(shù)據(jù)*)OS-MLNK12通信卡自定義通信實例三發(fā)送的十六進制數(shù)據(jù)幀為:010300020002地址功能碼數(shù)據(jù)起始地址數(shù)據(jù)個數(shù)在程序TEXTCODE中設定如下:CdmWrData1[0]=1;(*第二條通信命令的寫入第一個字節(jié)*)CdmWrData1[1]=3;(*第二條通信命令的寫入第二個字節(jié)*)CdmWrData1[2]=0;(*第二條通信命令的寫入第三個字節(jié)*)CdmWrData1[3]=2;(*第二條通信命令的寫入第四個字節(jié)*)CdmWrData1[4]=0;(*第二條通信命令的寫入第五個字節(jié)*)CdmWrData1[5]=2;(*第二條通信命令的寫入第六個字節(jié)*)OS-MLNK12通信卡自定義通信實例三接收的十六進制數(shù)據(jù)幀格式為:0103040000

00

00

地址功能碼返回數(shù)據(jù)字節(jié)個數(shù)數(shù)據(jù)1數(shù)據(jù)2在程序TEXTCODE中設定如下,同時把字節(jié)轉(zhuǎn)化為UINT類型:BYTE_TO_UINT(CdmRdData1[0],b1);(*第二條通信命令的讀取第一個字節(jié)*)BYTE_TO_UINT(CdmRdData1[1],b2);(*第二條通信命令的讀取第二個字節(jié)*)BYTE_TO_UINT(CdmRdData1[2],b3);(*第二條通信命令的讀取第三

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論