最近翻出一块带485通信的电能表,借此机会温习一下485通信的知识。这块电能表只有一个键显按钮,无法通过本体按键修改地址、波特率、奇偶校验等信息,而在实际应用时,往往需要修改这些参数。
通过某宝找到这款产品的卖家,要到了说明书,显示该款产品默认通讯地址为1,波特率为9600,校验为偶校验,数据传输方式为八个数据位,一个停止位。
假如现在要修改通讯地址为7,波特率为2400,校验为无校验,由于本体没有修改功能,需要借助485通讯进行修改,下面详细记录修改过程,方便以后查阅。
一、软件选择
以往都是借助串口调试软件进行,需要自己写报文,分析报文,并且软件界面相当不友好,让人看了很不舒服,一大堆功能按键,不知道如何下手,让人的学习欲望一下就没了。
不得不说现在国内有好多优秀的团队,开发了界面友好的调试软件,偶然一次接触到一款软件摩尔信使(MThings),不仅界面友好,容易理解,不需要写复杂的报文和分析报文,关键是串口调试功能是免费的(商用请联系厂家购买授权码)。
软件官网为http://www.gulink.cn/,公众号“MThings技术服务”,详细使用说明在此不再赘述,请查阅软件自带说明书,很详细很清楚,在此只记录我的使用过程。
二、硬件准备
一个是翻出的电能表(图1),另一个是USB转485转接器(图2)。
图1 电能表
图2 USB转485转接器
三、硬件接线
按照图3原理图完成硬件接线,本次目的是修改表参数,没有安装用电设备,如图4为实物图。
图3 接线原理图
图4 实物图
四、准备工作
在转接器插入电脑USB口之前,打开设备管理器,打开端口,如图5所示。此时再插入转接器,设备管理器会自动刷新,端口中新增COM5,如图6所示,此信息后续会使用。
图5 设备管理器
图6 新增COM5端口
打开MThings软件,首次安装打开后默认打开示例程序,如图7所示。
图7 软件示例程序
点击右上角“配置文件管理”图标,选择“新增”,选择保存位置并命名文件为电能表,点击确定,完成新建程序,如图8所示。
图8 新建程序界面
个人版没有系统权限,本次也只需要通过485修改电能表参数,不需要系统功能,点击标题栏数据按钮,进入数据界面,如图9所示。
图9 数据界面
如图10所示,点击左侧功能栏添加设备按钮,出现添加设备界面,如图11所示。
图10 添加设备按钮
图11 添加设备界面
通道选择COM5,设备类型模拟主机,点击添加,完成设备添加,如图12所示。点击如图13所示展开按钮》,可查看设备地址、通道等信息。
图12 完成设备添加
图13 展开设备信息
点击右上角通道管理图标,进入通道管理界面,如图14所示。
图14 通道管理界面
点击COM5通道“配置”按键,进入通道配置界面,如图15所示。
图15 通道配置界面
按照电能表默认配置设置波特率、校验方式、数据位、停止位,点击确定完成设置。
五、读取电能表数据
查看电能表说明书通信部分,寄存器类型和数据格式如图16所示。读取数据寄存器使用0X03、0x04功能码,分别对应读保持寄存器、读输入寄存器。写入参数寄存器使用0x10功能码,对应写保持寄存器,注意数据类型为浮点数,数据格式32位。
图16 电能表寄存器类型和数据格式
首先,按照说明书读取数据寄存器,如图17为说明书提供的地址、及说明。
图17 数据寄存器列表
点击数据区上侧新增数据按钮
,弹出如图18所示新增数据配置界面,使用04功能码,即读输入寄存器,对应区块选择输入寄存器,电压地址为0,点击确定,完成新增读取电压数据,如图19所示。
图18 新增数据配置界面
图19 完成新增电压信息
点击数据区展开更多信息。修改信息名称为电压,单位为V,数量为2,传输类型为浮点数,呈现类型为浮点数,如图20为改后信息。
图20 改后信息
按照电压添加方式,继续添加其他信息,如图21为全部可读数据添加完后。
图21 所有可读信息
如图22所示,选中左侧设备列表中设备,点击启动轮询,查看数据区数值变化,电压、电流等信息与实际一致,表示通讯正常。
图22 启动轮询
六、写入电能表数据
接下来进行电能表波特率、校验位、地址的修改。同样点击新增数据按钮,写入需要使用0x10功能码,即写保持寄存器,因此区块选择保持寄存器,波特率起始地址为0,点击确定添加,并修改名称,数量为2,数据类型和呈现类型均为浮点型,如图23所示为修改完成的。
图23 新增修改波特率
按照上述方式新增校验位及地址修改数据,如图24所示。
图24 新增修改检验方式、地址
例如按照文章开头需要修改波特率为2400,在10行:修改波特率,双击指令格,写入2400,双击蓝底黑字“写”,即可完成波特率的写入,如图25所示。注意,修改波特率、校验方式、地址后,均需要修改相应配置,否则无法完成通讯,如图26所示为通过通道管理修改波特率为2400。再次点击启动轮询,第7行:波特率变为2400,证明写入完成。
图25 修改波特率
图26 读取新波特率