支持ModBus RTU协议的智能电表接入控制屏

描述

本文通过实例演示将正泰DDSU666电表(这里使用单相型号电表,三相电表同理)接入MCGS控制屏(TPC7062TX),介绍如何将支持Modbus RTU协议的智能电表接入控制屏。

 

添加设备驱动

控制屏使用第一步就是建立工程文件随后根据将要使用的设备配置设备驱动,打开设备窗口,添加父级设备(实际上就是关联设备的硬件接口),在添加驱动协议,DDSU666同时支持DLT645与Modbus RTU协议通讯,由于TPC7062默认驱动仅支持Modbus RTU协议,如果需要使用DLT645协议需要定制设备驱动,这里就使用莫迪康Modbus RTU协议连接电表。

RTU

配置接口参数,TPC7062TX具有两个串口,一个RS232接口(COM1),一个RS485接口(COM2),而DDSU666采用RS485接口,配置波特率为9600,数据位8个字节,停止位1个字节,采用无校验通讯。

RTU

添加9个数值型变量,分别用于记录电网频率、A相电压、A相电流、瞬时总有功功率、瞬时总无功功率、瞬时总视在功率、总功功率因数、电能清零及有功总电能。

RTU

查询DDSU666手册将上述变量的寄存地址与读写属性记录:

RTU

左侧的设备属性还需要配置电表的Modbus地址,笔者手上电表地址为1,其他参数保持默认即可,如下图,

RTU

DDSU666手册所给的寄存表从0地址开始排列,而TPC7062TX采用从1开始排列的规则,因此在配置地址时需要十进制加一绑定。

 

比如“A相电压”地址为保持寄存器的0x2000,转换为十进制为8192,由于该设备驱动的规则需要加1处理,该寄存器类型为保持寄存器,通道类型就需要配置为[4区],存储数据的格式为IEE754单精度浮点值,TPC就需要配置为32位浮点,上述地址基本为相同类型的连续寄存器,笔者就一次性全部添加,通道个数就配置为9,配置如下图:

RTU

手中的DDSU666如果需要写入寄存器就需要配置为0x10功能码,尝试过使用0x06功能码无法正常控制电能清空寄存器,如果不需要写入可以忽略这一步的配置;

RTU

使用不同的设备驱动配置规则可能存在不同,一般我们可以在“设备编辑窗口”右边的选项按键的“打开设备帮助查询规则”,比如笔者所使用的“莫迪康Modbus RTU”在内部属性就详细介绍了该驱动寄存器与地址排列规则;

RTU

除此之外“设备帮助”还介绍了该驱动的特殊功能,比如设备命令,可通过该接口直接发送Modbus RTU指令查询设备寄存器(Read、Write、ReadP等命令),无需将变量与寄存器一一对应,还可以通过该接口实时修改控制屏的串口通讯参数(SetCommPara命令)。

 

添加界面

在用户界面添加新的功能界面“Function_08”,名字可以自定义。笔者这里整合了其他功能,为相互区别就在注释中说明,右键单击刚才添加的界面,配置为启动窗口。

RTU

使用“标签”“按键”控件添加下图功能;

RTU

为电压、电流、电网频率等标签输出控件绑定变量:

RTU

选择浮点类型,自然小数位,也可以限制小时个数,同时可以添加单位VAC;

RTU

按照上述方法绑定其余的电表参数,配置“清零按键”和数据清除中提示(擦写Flash存在时间差,不建议频繁操作,所以这里利用“填充颜色”、“可见度”以及清除的时间差生成提示信息):

RTURTU

 

模拟器演示

将DDSU666电表通讯参数修改为上述配置值,本身配置时笔者采用了该电表默认出厂值,无需变动参数。

启动模拟控制台如下图(使用两脚插头演示,导致进线接反产生负值):

RTU

清零功能演示:

RTU

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分