TG900P-CAN通信
产品简介 | 快速开始 | 通讯设置 | 内部寄存器 |
将MODBUS RTU协议转换为MODBUS TCP | 将任意协议转换为MODBUS TCP | CAN通信 | 自由口编程范例 |
5.2 CAN通信
TG900P的2个CAN口与各种协议的设备通信时,通过腾控提供的CAN功能块编程,将设备数据采集到TG900P中,最终通过MODBUS TCP被上位机获取。
CAN口通讯包括 CAN_OPEN、CAN_WRITE 和 CAN_READ 共 3 个指令。
(1)同5.1(1)进入编辑界面
(2)同5.1(2)添加固件库
(3)插入功能块指令
在右侧编辑向导TCNETLIB组中找到CAN_OPEN、CAN_WRITE 和 CAN_READ 指令,依次拖拽到编程界面中,“确定”,建立功能块。
双击功能块的蓝色管脚,设置各变量。
输入引脚 |
数据类型 |
描述 |
EN |
BOOL |
TRUE有效,打开CAN口 |
Port |
BYTE |
TG900P的CAN口,可选值:1、2,分别对应CAN1口和CAN2口 |
Baud |
DWORD |
波特率,DWORD#100代表100kbps,其它波特率如200kps,400kbps |
Type |
BYTE |
0——标准帧,1——扩展帧 |
输出引脚 |
数据类型 |
描述 |
ENO |
BOOL |
输出使能 |
DONE |
BOOL |
0: 功能块不能被执行;1: 功能块可以被执行 |
Errmsg |
WORD |
错误信息 |
输入引脚 | 数据类型 | 描述 |
EN | BOOL | 写命令使能,上升沿有效,每来一个上升沿就向 TG900P 的 CAN 口写一次数据 |
Port | BYTE | TG900P的CAN口 |
ID | DWORD | 帧 ID,CAN_Write 指令的 ID 必须和接收方的帧 ID 一致,如果为 0 则表示向所有节点发送数据 |
Length | BYTE | 发送数据的字节长度 |
Dataptr | ANY | 存放写CAN口数据的缓冲区,一般为数组 |
输出引脚 | 数据类型 | 描述 |
ENO | BOOL | 输出使能 |
DONE | BOOL | 0: 功能块不能被执行;1: 功能块可以被执行 |
Errmsg | WORD | 错误信息 1: 端口错误 2: 端口未打开 3: 长度错误 4: 功能块数量超限 |
输入引脚 | 数据类型 | 描述 |
EN | BOOL | 读命令使能,TRUE 有效 |
Port | BYTE | 由 CAN_OPEN 打开的CAN口号 |
ID | DWORD | 帧 ID,CAN_Read 指令的 ID 必须和发送方的帧 ID 一致 |
Dataptr | ANY | 存放从CAN口读回的数据,一般为数组 |
输出引脚 | 数据类型 | 描述 |
ENO | BOOL | 输出使能 |
DONE | BOOL | 0: 功能块不能被执行;1: 功能块可以被执行 |
Errmsg | WORD | 错误信息 1: 端口错误 2: 端口未打开 4: 功能块数量超限 |
Length | WORD | 读取到数据的字节长度 |
(4) 制作,下装,运行。
(5) 打开调试开关,监视程序。
所有输出引脚Errmsg为0时,表示通信无错误,当有输出引脚Errmsg不为0时,
根据错误信息修改错误。