设为首页加入收藏
| 设为首页 | 加入收藏 | 联系我们 | English |
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 个指令。

将MODBUS RTU协议转换为MODBUS TCP

  (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 

错误信息
1: 波特率错误
2: 端口错误
3: 包类型错误
4: 波特率不支持

将任意协议转换为MODBUS TCP

输入引脚 数据类型 描述
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:  功能块数量超限

CAN通信

输入引脚 数据类型 描述
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时,

根据错误信息修改错误。

版权所有 Copyright(C)2011-2012 北京腾控科技有限公司 电话:010-59790086
Live Chat by comm100