某大厦位于温州CBD商务区,占地11000平方米,建筑面积58000平方米,是一幢集商业综合和行政办公为一体的综合性建筑。大楼内用户多,电表数目多且分散,所以做了一套能耗系统。
控制电脑位于大楼一层消控室,位于1楼出入口附近,管理电脑通过大楼内网连到各个网关,来采集各个电表的数据。
本项目采集的内容有以下四种:Ua,Ub,Uc,Epp,即A相电压、B相电压、C相电压、电能。
驱动选择的是ModbusRTUClient
串口为COM1,波特率为9600,数据位8,停止位1,校验位无,超时时间设置为1500ms。
以DB1表为例,站号为1,请求帧间隔与写值刷新间隔为50ms,二字节整数顺序为先2后1,4字节整数顺序为2143,单精度浮点数顺序为2143,模拟量组包间隔为4,模拟量组包最大长度为32,数字量组包间隔为4,数字量组包最大长度为32。
数据以Ua为例,数据类型为float型,寄存器类型为保持寄存器,寄存器地址为10。
上位机软件通过WEBSERVICE接口读取数据后,显示当前读数:
在做这个项目的过程中,一度无法读取任何数据,通讯一直失败,多次更改电表的地址、波特率、校验方式以及数据位均无效,只好通过485不断调整发码进行尝试,在一个偶然的情况下,发现该电表的校验位的高低位与正常通讯相反,故而将此情况告知詹工,寻求解决方法。经过一个工作日后,詹工将更改后的固件发送给我们,完美解决了问题。