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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

自定義通信編程案例解析

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

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

00

00

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

00

00

地址功能碼返回數據字節(jié)個數數據1數據2在程序TEXTCODE中設定如下,同時把字節(jié)轉化為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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論