TG900P-CAN通信
產(chǎn)品簡(jiǎn)介 | 快速開(kāi)始 | 通訊設置 | 內部寄存器 |
將MODBUS RTU協(xié)議轉換為MODBUS TCP | 將任意協(xié)議轉換為MODBUS TCP | CAN通信 | 自由口編程范例 |
5.2 CAN通信
TG900P的2個(gè)CAN口與各種協(xié)議的設備通信時(shí),通過(guò)騰控提供的CAN功能塊編程,將設備數據采集到TG900P中,最終通過(guò)MODBUS TCP被上位機獲取。
CAN口通訊包括 CAN_OPEN、CAN_WRITE 和 CAN_READ 共 3 個(gè)指令。
。1)同5.1(1)進(jìn)入編輯界面
。2)同5.1(2)添加固件庫
。3)插入功能塊指令
在右側編輯向導TCNETLIB組中找到CAN_OPEN、CAN_WRITE 和 CAN_READ 指令,依次拖拽到編程界面中,“確定”,建立功能塊。
雙擊功能塊的藍色管腳,設置各變量。
輸入引腳 |
數據類(lèi)型 |
描述 |
EN |
BOOL |
TRUE有效,打開(kāi)CAN口 |
Port |
BYTE |
TG900P的CAN口,可選值:1、2,分別對應CAN1口和CAN2口 |
Baud |
DWORD |
波特率,DWORD#100代表100kbps,其它波特率如200kps,400kbps |
Type |
BYTE |
0——標準幀,1——擴展幀 |
輸出引腳 |
數據類(lèi)型 |
描述 |
ENO |
BOOL |
輸出使能 |
DONE |
BOOL |
0: 功能塊不能被執行;1: 功能塊可以被執行 |
Errmsg |
WORD |
錯誤信息 |
輸入引腳 | 數據類(lèi)型 | 描述 |
EN | BOOL | 寫(xiě)命令使能,上升沿有效,每來(lái)一個(gè)上升沿就向 TG900P 的 CAN 口寫(xiě)一次數據 |
Port | BYTE | TG900P的CAN口 |
ID | DWORD | 幀 ID,CAN_Write 指令的 ID 必須和接收方的幀 ID 一致,如果為 0 則表示向所有節點(diǎn)發(fā)送數據 |
Length | BYTE | 發(fā)送數據的字節長(cháng)度 |
Dataptr | ANY | 存放寫(xiě)CAN口數據的緩沖區,一般為數組 |
輸出引腳 | 數據類(lèi)型 | 描述 |
ENO | BOOL | 輸出使能 |
DONE | BOOL | 0: 功能塊不能被執行;1: 功能塊可以被執行 |
Errmsg | WORD | 錯誤信息 1: 端口錯誤 2: 端口未打開(kāi) 3: 長(cháng)度錯誤 4: 功能塊數量超限 |
輸入引腳 | 數據類(lèi)型 | 描述 |
EN | BOOL | 讀命令使能,TRUE 有效 |
Port | BYTE | 由 CAN_OPEN 打開(kāi)的CAN口號 |
ID | DWORD | 幀 ID,CAN_Read 指令的 ID 必須和發(fā)送方的幀 ID 一致 |
Dataptr | ANY | 存放從CAN口讀回的數據,一般為數組 |
輸出引腳 | 數據類(lèi)型 | 描述 |
ENO | BOOL | 輸出使能 |
DONE | BOOL | 0: 功能塊不能被執行;1: 功能塊可以被執行 |
Errmsg | WORD | 錯誤信息 1: 端口錯誤 2: 端口未打開(kāi) 4: 功能塊數量超限 |
Length | WORD | 讀取到數據的字節長(cháng)度 |
(4) 制作,下裝,運行。
(5) 打開(kāi)調試開(kāi)關(guān),監視程序。
所有輸出引腳Errmsg為0時(shí),表示通信無(wú)錯誤,當有輸出引腳Errmsg不為0時(shí),
根據錯誤信息修改錯誤。