0 图6 信息传输格式类型(U格式)控制域 2.2 服务端连接 在服务端采用JAVA的TCP连接池和数据库连接池技术,使用EchoServer的server()方法。 public void service(){ While(!isShutdown){ … try{ Thread workThread=new (new Handler(socket)); … } … } 以上工作线程workThread执行Handler的run()方法。Handler类实现了Runnable接口,它的run()方法负责与单个客户通信,与客户通信结束后,就会断开连接,执行Handler的 run()方法的工作线程也会自然终止[3]。 使用总召唤命令(0x68,0x04,0x07,0x00,0x00,0x00);召唤变电站总站向服端发送数据,服务端解析之后按照遥测,遥信,开关事件等存入数据库。在后续开发的Android和IOS客户端,只要执行标准的104协议规约数据,即可与服务端建立通信。这样简化二次开发难度,并且在与JAVA串口通信的连接中多线程的调度执行效率更高。 2.3 数据库连接 数据库采用SQL server2005,采用C3P0连接池,它是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。与普通JDBC相比,效率更高,稳定性更强[4]。设置C3P0基本配置: ds = new ComboPooledDataSource(); ds.setDriverClass(className); ds.setJdbcUrl(url); ds.setUser(user); ds.setPassword(password); //设置连接池的最大最小初始化连接数 ds.setInitialPoolSize(30); ds.setMaxPoolSize(100); ds.setMinPoolSize(10); 创建一个一个数据库接口:private Connection newConnection()。以供数据存储使用。 2.4 网页端访问 网页端主要建立与数据库连接,主要查询变电站遥测,遥信,开关,SOE事件信息。另外通过建立TCP套接字与服务端建立连接,Socket socket = new Socket("localhost",8082);实现变电站远程控制事件。 变电站主接线图部分为采用Java Applet的多线程和绘图功能来实现,接线图的主要功能是用来监视变电站运行状态的直观反映,在本文监控设计中,需要将实时数据与接线图紧密结合,通过线程每次运行,查询数据库中的新数据,并更具新数据使用repaint(); getImage();和drawImage();等函数对图像重绘制,通过颜色和状态的区别可直观的查询到变电站的运行状态[5]。验证图如7所示。 图7 变电站运行部分状态 3.总结 随着互联网行业的发展以及云计算的到来,加快了信息的交流和信息的共享,工业监控系统由Web的跨平台和随时使用的特点替代传统的桌面软件风格是一种潮流和必然。借助于手机和电脑浏览器,用户可随时远程监控变电站的实时运行情况和控制变电站开关状态,对电力系统的安全、经济运行起到了促进作用。并且本文所设计的服务端104链路层,可和任意标准104协议通信,这样在以后开发的Android和IOS移动客户端,直接通过TCP发送标准的104协议数据,可与服务端建立连接。减少了了后续开发难度。但在网络传输过程中,时延是基于Web监控的关键问题,影响这系统的稳定性和控制的高效性,怎样减小这种影响成为了日后改进和研究的重点之一。 基金项目:物联网科普系列丛书(cstc2012gg-kplB40006) 物联网互动体验馆科普展品及教具研发(cstc2012gg-kplB40005)
1 |