该系统将为每一路被控设备提供一个开关按键,开关按键的状态关联到每一路被控设备的通断,同时为每路设备设置一个测量点。测量点根据开关量的状态显示该点理论参数,这是总的画面组态思想。
(4) 数据库组态
数据库组态主要完成操作控制层与数据库的连接,分实时数据库组态和历史数据库组态。实时数据库组态的内容包括数据库各点(变量)的名称、类型、工位号、工程量转换系数上下限等。历史数据库组态的内容包括定义各个进入历史库数据点的保存周期,有的组态软件将这部分工作放在了历史组态之中,还有的组态软件将数据点和与I/O设备的连接放在数据库的组态之中。
本系统不需要从现场采集数据,被控设备的参数理论值都是在逻辑控制设计中做好的,唯一用到数据库的地方是用户的登录和密码的修改。此处定义的数据库用于存放用户登录操作控制界面的用户名和密码,可以从界面修改。
常见的组态方式还包括报表组态、报警组态、历史组态和环境组态。考虑到在本设计中没有用到这些组态方式,此处不做赘述和分析。
3.3 单片机系统设计环境
在前面的分析中我们选择了C51 单片机来开发我们的下位机系统,就应该采用C51的开发环境,在该项目的开发中选择了较为熟悉的keil+proteus的单片机开发平台。Keil可以方便快捷地编写单片机运行所需的远程程序并生成十751进制文件,proteus可以搭建单片机仿真硬件平台,用于检测软硬件的可行性。
4 系统总体设计
上一章节,我们从模块组态层面上对系统进行了分析,可以得到系统总体进一步的清晰架构,组态构成上位机系统,运行于PC的操作系统之上,通过PC的串口与以单片机为执行单元的下位机通信,如图4-1所示:
图4-1
其中PC端根据要求在组态软件界面上设置16个开关对应个16路被控开关设备,后台程序中定义16个内存开关变量用于接收来自于界面的控制信息(同时代表着16路被控设备的状态) ,16个内存开关变量构成16位二进制数,经过进制转换,将16为二进制数转换成十进制数并将结果转移到I/O模拟变量中,组态软件自动将该十进制数由PC串口发送。
图 4-2
此时前端界面显示屏将根据测量点的选择来显示,从16个检测点中选择一个(或不选择),该点参数的理论值将由对应的内存开关量(即由相应的被控设备的状态)所决定,形成了显示结果由测量点与对应内存开关量共同决定的关系。
作为下位控制系统的单片机的设计就要简单得多了,它只读取串口发送过来的数据,取出指令并执行,如图4.3,设计的关键在执行代码的编写,模块化设计的东西不多。
5 控制逻辑设计
控制逻辑设计,是指组态监控界面的前后台程序的设计,即进行实际组态的过程。在该系统中,组态监控程序主要起到对下位系统进行控制的作用,同时根据前端的控制界面的选择操作和内存中代表被控设备状态的内存开关量的值,显示测量点的理论值,指令来源是前端的操作界面。
目前的组态软件的种类有很多,本系统选用北京亚控科技发展有限公司开发的一个比较有影响力的组态软件——组态王。本系统采用组态王进行开发,是因为提供了资源管理器试的操作主界面,操作灵活方便,易学易用,有较强的通信功能,支持的硬件也非常的丰富。后台的运行程序的开发也十分的方便,使用的是简化的C语言进行开发,简单应用,开发效率高。
5.1 控制逻辑分析
组态王是一个支持多任务同时运行的测控软件开发平台,它提供了主程序和事件触发程序机制。软件支持存在一个主程序,作为主控制模块,一般起到控制各模块协同运行的作用,同时支持事件触发机制(类似于C语言的中断子程序,但是它与主控程序是可以同时运行的),执行各种分支程序,处理直接的数据运算和低层次的控制,图5.1.1和图5.1.2所示为主程序和事件触发子程序的工作原理。但是主程序和分支程序也可以没有丝毫的关系,各自执行自己的控制功能。 基于组态软件的汽车故障设置检测系统设计(6):http://www.751com.cn/tongxin/lunwen_4078.html