| 產(chǎn)品簡(jiǎn)介 | 快速開(kāi)始 | 通訊設(shè)置 | 內(nèi)部寄存器 | 
| 將MODBUS RTU協(xié)議轉(zhuǎn)換為MODBUS TCP | 將任意協(xié)議轉(zhuǎn)換為MODBUS TCP | CAN通信 | 自由口編程范例 | 
5.2 CAN通信
TG900P的2個(gè)CAN口與各種協(xié)議的設(shè)備通信時(shí),通過(guò)騰控提供的CAN功能塊編程,將設(shè)備數(shù)據(jù)采集到TG900P中,最終通過(guò)MODBUS TCP被上位機(jī)獲取。
CAN口通訊包括 CAN_OPEN、CAN_WRITE 和 CAN_READ 共 3 個(gè)指令。

。1)同5.1(1)進(jìn)入編輯界面
(2)同5.1(2)添加固件庫(kù)
。3)插入功能塊指令
  在右側(cè)編輯向?qū)CNETLIB組中找到CAN_OPEN、CAN_WRITE 和 CAN_READ 指令,依次拖拽到編程界面中,“確定”,建立功能塊。
  
    雙擊功能塊的藍(lán)色管腳,設(shè)置各變量。

| 輸入引腳 | 數(shù)據(jù)類(lèi)型 | 描述 | 
| EN | BOOL | TRUE有效,打開(kāi)CAN口 | 
| Port | BYTE | TG900P的CAN口,可選值:1、2,分別對(duì)應(yīng)CAN1口和CAN2口 | 
| Baud | DWORD | 波特率,DWORD#100代表100kbps,其它波特率如200kps,400kbps | 
| Type | BYTE | 0——標(biāo)準(zhǔn)幀,1——擴(kuò)展幀 | 
| 輸出引腳 | 數(shù)據(jù)類(lèi)型 | 描述 | 
| ENO | BOOL | 輸出使能 | 
| DONE | BOOL | 0: 功能塊不能被執(zhí)行;1: 功能塊可以被執(zhí)行 | 
| Errmsg | WORD | 錯(cuò)誤信息 | 

| 輸入引腳 | 數(shù)據(jù)類(lèi)型 | 描述 | 
| EN | BOOL | 寫(xiě)命令使能,上升沿有效,每來(lái)一個(gè)上升沿就向 TG900P 的 CAN 口寫(xiě)一次數(shù)據(jù) | 
| Port | BYTE | TG900P的CAN口 | 
| ID | DWORD | 幀 ID,CAN_Write 指令的 ID 必須和接收方的幀 ID 一致,如果為 0 則表示向所有節(jié)點(diǎn)發(fā)送數(shù)據(jù) | 
| Length | BYTE | 發(fā)送數(shù)據(jù)的字節(jié)長(zhǎng)度 | 
| Dataptr | ANY | 存放寫(xiě)CAN口數(shù)據(jù)的緩沖區(qū),一般為數(shù)組 | 
| 輸出引腳 | 數(shù)據(jù)類(lèi)型 | 描述 | 
| ENO | BOOL | 輸出使能 | 
| DONE | BOOL | 0: 功能塊不能被執(zhí)行;1: 功能塊可以被執(zhí)行 | 
| Errmsg | WORD | 錯(cuò)誤信息 1: 端口錯(cuò)誤 2: 端口未打開(kāi) 3: 長(zhǎng)度錯(cuò)誤 4: 功能塊數(shù)量超限 | 

| 輸入引腳 | 數(shù)據(jù)類(lèi)型 | 描述 | 
| EN | BOOL | 讀命令使能,TRUE 有效 | 
| Port | BYTE | 由 CAN_OPEN 打開(kāi)的CAN口號(hào) | 
| ID | DWORD | 幀 ID,CAN_Read 指令的 ID 必須和發(fā)送方的幀 ID 一致 | 
| Dataptr | ANY | 存放從CAN口讀回的數(shù)據(jù),一般為數(shù)組 | 
| 輸出引腳 | 數(shù)據(jù)類(lèi)型 | 描述 | 
| ENO | BOOL | 輸出使能 | 
| DONE | BOOL | 0: 功能塊不能被執(zhí)行;1: 功能塊可以被執(zhí)行 | 
| Errmsg | WORD | 錯(cuò)誤信息 1: 端口錯(cuò)誤 2: 端口未打開(kāi) 4: 功能塊數(shù)量超限 | 
| Length | WORD | 讀取到數(shù)據(jù)的字節(jié)長(zhǎng)度 | 
(4) 制作,下裝,運(yùn)行。
(5) 打開(kāi)調(diào)試開(kāi)關(guān),監(jiān)視程序。
  所有輸出引腳Errmsg為0時(shí),表示通信無(wú)錯(cuò)誤,當(dāng)有輸出引腳Errmsg不為0時(shí),
根據(jù)錯(cuò)誤信息修改錯(cuò)誤。
 
 

 
 