在最近一个软硬件集成的企业生产管理应用软件项目中,用到了不同类型一定数量的硬件设备,包括电子看板、企业客户生产设备的参数采集和读卡设备。采用这些设备的目的主要为软件系统提供生产现场的设备运行和管理数据,并在现场显示生产情况。按照系统规划,这些不同种类的设备是通过485总线与软件系统进行通讯的,实现全天24小时设备和软件系统稳定运行和信息采集。为此系统要实现以下目标:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1)  电子看板数据的上传和下发;

2)  设备采集器的数据上传;

3)  读卡器的数据上传。

4)  通过数据库的方式,保存系统数据并自动实现下发处理。
 

 

本人在网上收集和搜索串口通讯实现的相关资料过程中,发现这方面资料较少,且程序的设计和实现比较简单,由于普遍缺乏较好的设计理念,导致程序的复用性较差。于是我在程序的设计和实现过程中,引入了面向对象分析和设计的理念,通过 UML 方式提高程序的设计效率,并增加程序的复用性。这样做的好处是可以增加了程序的可维护性,有效降低了开发难度和开发成本。下面简单介绍一下该系统的开发思路,为从事串口通讯开发的同仁提供一点有价值的参考意见。

首先,我们根据系统目标进行了架构的规划。从分层设计的角度出发将程序分成了以下五层: 1- 系统表示层:通过程序界面进行一些参数设置和组态监控,如硬件设备通讯地址的设置,各种设备上传下发的浏览等。 2- 系统业务层:各种设备支持的相关业务逻辑的实现,如从生产管理系统软件中提取正在执行的加工计划信息下发到对应工位的电子看板上显示,以指示该工位的加工要求;并和上传的生产数据组合成有效的实时生产数据,反映生产状态。 3- 系统传输层:主要根据各种不同硬件设备的通讯协议,通过解码和译码操作,实现硬件指令和逻辑数据间的转换和传输执行; 4- 系统收发层:由于要对应不同类型的硬件设备,所以通过抽取数据收发基本操作,形成共同的基类,就是说该类开发稳定后,可很方便的扩展应用到其它种类的设备上,这样就增加了系统的可维护性和数据传输的稳定性。
 
 
这样程序的架构就设计完成了,接下来要做的工作就是进行不同层中各个业务类的设计了。在这里不同的设计员可能有自己的设计方法,我的方法是以出口通讯中要实现的主要业务为线索,利用 UML 时序图,反映各个逻辑层不同类的对象之间交互和调用关系,最后抽象出各个类应完成的操作,形成各个类的方法,最终完成类的设计,这样系统的设计就基本完成了。
 

 

接下来,就可根据程序的要求采用需要的编程语言进行程序的设计了。由于采用了面向对象方法进行程序设计,我们得到了合理而清晰的程序实现方式,程序实现起来目标明确而简单,调试起来比较容易定位问题,更简单了。更好的是,程序的复用性提高我们程序的适用性,可以很容易地扩展不同的设备上。该系统由于有了比较好的架构设计,经过一段时间的运行检验,证明系统很稳定,达到了预期的设计目标。

 

 

以上是我们在运用面向对象分析设计方法进行串口通讯程序开发的一点心得体会,希望抛砖引玉,对你的工作会有所帮助。如需合作或需要本系统源码 (C#) ,欢迎感兴趣的朋友来电来函交流,不过源码提供是有偿的。
MSN:whzh06242@hotmail.com
phone:0532-86029688