在工业控制现场需要采集电表数据,但是控制系统一般都是采用的Modbus通讯协议,而不支持电表的DL/T645-1997协议,为了让控制系统能够读取电表的数据,而采用这个模块可以自动读取电表数据,并以Modbus协议转发,再由控制系统进行接收。
电路采用STC15F4K61S4芯片设计(本程序长度12K以内,所以也可以采用其他存储器大于12K即可),总共可以使用6个不同的通讯口,其中COM1可以切换3个不同的接口,其他COM2~COM4与COM1口一共可以同时使用4个;如果采用STC15F2K60S2就只能使用COM1~COM2,程序可以通用。
电路除了通讯口其他功能暂未使用,如果有兴趣自己开发;所有通讯口全部采用电气隔离设计,保证设备安全;由于光耦速度限制,波特率不能设置太高,4800及以下可以可靠使用,不过用于电表数据采集完全足够。
电路板采用100*75标准尺寸,可以采用标准导轨安装板,不用专用外壳,这种安装板也容易购买;电路如果只使用COM1~COM2口,不用其他功能,电路非常简单,也容易制作。
电路焊接安装好后,需用USB转串口电路进行程序烧写,烧写完成后即可利用串口进行设置,设置只能使用COM1口(Modbus通讯使用同一端口),但需要注意的是电路为了使用方便已经将COM1口默认使用P36/P37引脚,而不是程序烧写用的P30/P31引脚,如需使用传统的P30/P31引脚,必须先用默认使用的P36/P37引脚进行设置,设置后Modbus通讯口同时改变,详细设置请参考使用说明。
电度表通讯默认使用1200Bts偶校验(大多电表采用),如果采用其他波特率也可以进行设置,通讯默认采用COM2口,一般不要改变,如果通讯设置已经完成即可以进行读电度表地址并设置电度表位号,最后设置完成必须保存然后重新开机即可。
Modbus口默认为COM1口,设备地址默认为4,当然也可设置为32以下其他数字,模块在读取电度表数据后按照之前设置的序号依次保存,模块设置有16位寄存器共40个,每两个寄存器存储一组数据,所以一共可以存储10块表的20组数据,数据结构为16进制高位在前;通讯协议采用Modbus标准协议进行数据交换,用03功能码读取寄存器数据,Modbus通讯协议请参考相应的资料。