QQ登录

只需一步,快速开始

上位机与宇电温控器AI516串口通讯教程

[ 复制链接 ]

上位机与宇电温控器AI516串口通讯教程

上位机与宇电温控器AI516串口通讯教程


上位机通过MFC编写程序与宇电温控器实现串口通讯,读写数据可以很方便实际项目调试与监视。
当前课程以宇电AI516型号为例,讲解其通讯协议格式,及上位机如何编写代码实现与其串口通讯,读取与写入温控参数。
程序代码根据官方AIBUS协议编写,适用宇电AI全系列温控器。
课程分几部分讲解。
1.实现功能效果演示
2.温控器通讯参数确定
3.温控器与上位机通讯数据线制作
4.温控器通讯格式介绍
5.温控器通讯格式在上位机的表现形式
6.课程源代码与温控器通讯原理
7.建立自己的通讯程序
教程附件包含课件,硬件手册,通讯手册,及可直接使用的源代码,内含已编译生成的程序。
在电脑连接了仪表后,可以直接运动测试。根目录生成的串口参数文件,打开可以手动修改串口参数。

首先是串口数据线的制作

通讯线制作:
查阅AI516温控器手册,使用RS485 2W,形式即3(A),4(B)

上位机与宇电温控器AI516串口通讯教程

上位机与宇电温控器AI516串口通讯教程
购买一USB转RS485数据线

上位机与宇电温控器AI516串口通讯教程

上位机与宇电温控器AI516串口通讯教程

便可自己快速制作出数据线。
USB转RS485针脚号    温控器脚号
1( B-)-----------------------4(B-)
2( A+)-----------------------3(A+)
USB转485数据线的驱动记得安装,安装成功后可插入USB数据线,在电脑设备管理器里查看数据线生成的串口号。驱动通用,可以向商家索要或自己百度下载。关键字CH340

宇电温控器支持两条标准的通讯指令,一条为读指令,一条为写指令。每条指令采用 16进制数据格式来表示数据及各种指令代码。上位机发送指令,温控器回应指令。上位机收到指令再发送其他指令,以此循环通讯。
其中
一.读指令由以下四部分组成
[1]地址代号 + [2]52H(读指令)+ [3]要读的参数代号+0+0+[4]校验码.
1.地址代号:表示温控仪表站号,对应温控器参数ADDR,无特殊说明其有效值为0-80。其协议规定地址代号为两个相同的字节,在帧中的表示形式,代码要对其进行额外处理为(仪表地址+80H)。例如:温控器参数
Addr=10(16进制数为 0AH,0A+80H=8AH),则该仪表的地址代号为:
8AH  8AH。
2.读指令:为固定数值52H,对应十进制为82.
3.参数代码:温控器的参数代码用两位十六进制数表示,用于指定通讯指令要读或写的温控器参数的名称。具体参数代码在文后以表格形式列出。参数代码后紧跟两个常数0x00。
4.校验码:校验码使用16位LRC算法,具体为[1]地址代号 + [2]52H(读指令)+ [3]要读的参数代号*256。忽略进位取16位二进制数,即双字节,低字节在前,高字节在后。
例如从ADDR为1 的温控器的参数15H读取数据:
ADDR为1,
读指令52H,转十进制为82,
要读的参数代号为15H,*256相当左移8位后,计算结果为3576.
以上数据相加后忽略进位过程为1+82+3576 = 5459 = 1553H(十六进制格式).
高低字节对调,校验码最终为5315.
二.写指令由以下5部分组成
[1]地址代号 + [2]43H(写指令)+ [3]要写的参数代号+[4]要写入的数据+ [5]校验码.
1.地址代号,参考读指令地址代码。
2.写指令:为固定数值43H,对应十进制为67.
3.参数代码:参考读指令参数代码。
4.要写入的数据:为双字节,低字节在前,高字节在后。
5.校验码:校验码使用16位LRC算法,具体为[1]地址代号 + [2]43H(写指令)+ [3]要写的参数代号*256+[4]要写入的数据。忽略进位取16位二进制数,即双字节,低字节在前,高字节在后。
例如向addr为1的仪表参数0(SP0)写入1000:
Addr为1,
写指令 43H,十进制为67,
要写的参数代号0,参与校验计算的数据为0*256 = 0,
要写入的数据1000,
校验码计算过程为1+67+0+1000 =1068 = 042CH(十六进制形式)
规定校验码格式为双字节,低字节在前,高字节在后,
所以最终校验码为2C,04(十六进制格式)。或44,04(十进制格式);
三.温控器回应:
无论是读还是写,温控器都返回以下 10个字节形式数据
测量值PV(2字节) + 给定值SV(2字节) + 输出值MV(1字节)+报警状态(1字节)+所读/写参数值+校验码(2字节)
1. 测量值为仪表实际测量所得温度,16位二进制有符号数据,点用2个字节,低字节在前。
2. 给定值为设置仪表要加热到的目标温度值,16位二进制有符号数据,占用2个字节,低字节在前。
3. 输出值为仪表调节输出的温度值,8位二进制有符号数据,占用1个字节。
4. 报警状态为8位二进制数据,每个位含义如下(位7不用,固定为0)

上位机与宇电温控器AI516串口通讯教程

上位机与宇电温控器AI516串口通讯教程

5. 参数值为具体参数的数值,双字节,低字节在前
6. 校验码:校验码使用16位LRC算法,低字节在前。具体计算为PV+SV+MV+报警状态*256+读或写参数值 + addr;
PV,SV为双字节,低位在前高位在后。
MV为一字节。
报警状态为一字节。
读或写参数值为双字节。
Addr 为一字节。
注意:在处理数据时应优先读取参数 dPt(0CH)获得测量信号的小数点位置。例如读取PV值为234,dPt值为1,
侧PV实际为23.4.具体参阅手册参数 dPt介绍;

教程附件与视频教程下载地址:
游客,为过滤非法行为,全站隐藏资源仅对充值会员开放进入升级

回复

使用道具 举报

快速回复 返回列表 客服中心 搜索