c builder 上位机软件开发-上海印钞厂易地迁建印钞工房!其集散型空调控制系统
系统简介上海印钞厂易地迁建印钞工房!其集散型空调控制系统包括空调DDC分散控制和上层计算机集中监控管理两部分"空调设备现场配置18CPMA通用PLC及冷冻机房一套CZ00HG组成分散控制系统#所有现场PLC控制器完成对系统的底层控制!并通过4ZZ总线接受上层监控计算机的命令$上位机可对PLC传送程序%监控PLC的数据区%以及向通过链接的PLC发送命令!控制其工作情况!完成顶层监控与信息管理#从而有效地解决了PLC信息统计管理能力较弱!特别是不能给用户提供一个友好的交互界面的问题#系统上位机与PLC的接口可以通过HostLink模块!于系统中PLC过多!如一个串口上链接多个PLC!会造成读写周期过长!影响监控系统性能#故本系统通过PCI桥转接串口在硬件上实现了多通道同时读写#又因为PLC与上位机之间的传输距离过长!上位机与下位机之间的数据需经RS232RS22电平转换后传输#上位机监控软件设计要求能够通过下层DDC调系统的相关设备受控!并执行数据存储%参数设置%打印报警等监控管理功能#实际设计中!计算机操作系统采Windows2000!人机界面采用BorlandBuilder6。0可视化开发工具开发#图形显示功能监控软件操作界面采用菜单式操作#主要视图有"!空调控制图"每一舒适性空调或恒温恒湿空调有一详细的控制运行图!用于模拟显示空调的工作!可实时显示空调设置参数和工作参数以及相关设备的工作状况!同时实时显示数据及历史曲线$"数据库视图"提供车间%冷冻机房温湿度报表和故障表#且提供数据库多种查询功所有界面皆以便于操作工人和工程技术人员观测分析工作状况%进行参数设置的原则设计#同时!采用定时采集数据%定时刷新技术!用户在操作界面中看到的是最近一个时间段内设备各参数状况#控制及参数查询设置功能可在操作界面上实时查询设置系统参数!如各车间温度%湿度%变频器频率等#采集数据及数据库管理功能以一定的时间间隔自动将各个空调及其它设备运行参数保留存盘!数据随时可以查阅分析!为企业的质量管理提供详细资当系统发生异常时能提供报警信号!并记录时间和故障设备!便于工程师进行分析#通讯模块上位机链接通讯采用的是OMRONHostLink协议!PLC与上位机按帧的格式实现数据交换!一帧最多包含131个字节!传递协议按照发送权轮换进行#即上位机发送一帧包含控制正文和识别码的数据包给PLC!PLC回应一帧数据!如此往复#在上位机与下行模块间的通讯过程中!通讯周期需要严格控制#由于PLCRS232协议传输数据!速度非常有限!因而在监控软件设计中采用了多线程技术以缩短读写周期#本程序中需完成多个com口的同步读写!在读写的同时还需要完成图形的显示和数据库更新!因而通过线程的嵌套来实现#程序流程图如图MainForm窗体上放置一个TTimer控件!此定时器每隔一定时间触发主线程#由于当前定时器事件触发时可能上一次基于C+Builder的集散型空调监控软件设计上海交通大学微纳米技术研究院薄膜与微细技术重点实验室!200030"AbstractpaperintroducesDCScentralair-conditionsupervisorycontrolsystemmainfunctionsitsmonitorsoftwareItalsoprovidessomekeycodingexampleswrittenKeywords:DCS,CBuilderc builder 上位机软件开发,supervisorycontrolsoftware,mutithreadingBuilder编写的关键部分软件实现方法实例$关键词%集散型控制系统#CBuilder#监控软件#多线程基于CBuilder的集散型空调监控软件设计的读写线程或者上一次定时器事件还没有完成并悬挂起来9这时可以通过状态变量函数检测主线程或上一次定时器事件是否完成9进而决定当前的定时器事件是否需要执行0子程序从启动到挂起这一个周期只能实现读或者写操作一次9要实现读和写操作9可以在读写线程中通过判断当前修改内容决定读写操作是否执行03。
2图形显示本系统界面图形显示文件采用位图bMP格式9所有位图文件放在graphics文件夹内0在程序中定义了一个cdisplay类9所有关于界面图形显示的方法都放在此类中0MainForm窗体上放置一个TMainMenu控件9在此控件tems属性中创建各界面菜单选项0此外9通过定时器每隔一定时间触发主线程9线程中将刷新当前窗口9以实时监测空调系统运行状况0界面窗口切换通过响应各级界面菜单控件的Onlick事件完成0此事件调用cdisplay类的SwitchToinow(N_TYPEtype9intnum=)函数判断将窗口是否切换及将切换到哪个窗用当前界面窗口中定义的refresh_all函数画出界面图形0画图时9首先画出背景图片9再画出具体设备图片0为防止设备图片加载时画面出现闪烁9首先把图片画到一个临时位图中9再复制到当前canvas以恒温恒湿车间为例0voiTworkForm::refresh_all(先画到一个临时位图中,然后拷到当前canvas中9以防出现画面闪烁Graphics::Tbitmap*tempnewGraphics::Tbitmap;temp->eight05;temp->ith设置界面高度和宽度m_shop->drawbgtemp->anvas;先画出背景图m_shop->Showdevicetemp->anvas;画出设备图片this->anvas->drawc builder 上位机软件开发,从临时位图中把图片拷到当前anvaseletetemp;为实现在界面上对设备参数的实时设置9拟实现下述功能:在界面上用鼠标点击相应设备9即可弹出对话窗口9进行参数设置或选择0为此9首先需判断鼠标点击范围9nSetreaintx9inty函数返回一个ool量9如果鼠标点击的坐标x9y在某设备图片显示范围内9则此函数返回ooltrue9否则为false9告诉程序鼠标没有在界面上选择设备0oolcdev::nSetreaintreturnm_set_ena各界面上响应鼠标OnMousep事件的是cdisplaylickinowintx9inty函数0此函数首先判断窗口类型9然后调用FindevFromrea函数9循环遍历空调上的设备后找出鼠标点击的设备0至此9即可弹出相应设备的对话窗口9进行参数设置或选择0cdevcdev*r_ev;3。
3数据库管理由于本系统管理的PL设备较多9且每隔设备数据采样一次9数据存储量较大0故采用微软SERVER建立名为ir的数据库0数据库中包含irtale,Frztale\ErrtaledO/OLEdbOject Linking Emeing对象链接和嵌入库访问数据库0 SERVER数据库的表中存放0 PL上传数据写入数据库: if!ookmark->s_moe 首先根据ookmark 中的状态判断对 数据库插入还是修改 把指针移到表末tale->nsert; 插入tale->Fiels->Fiels ookmark->s_cur_pos tale->First;tale->Movebyookmark->s_cur_pos; 移动指针到当前位置 tale->Eit; o_save_funcata,len; 写入各数据表tale->Post; 运行Post 方法9将数据写入数据库内 ookmark->s_cur_pos 语句的查询条件写入nsiString 变量con 在加入SL命令前首先需关闭数据集 ->SL->lear; fromirTale" 用Open方法送出SL 命令 结束语此系统在上海印钞厂厂房空调系统投入使用后9 运行效果 良好0 操作人员普遍反映人机界面友好9管理能力强9操作简便9 易学易用9能快速准确地反应出空调系统现场状况0 参考文献 上海印钞厂易地迁建印钞工房空调dd 和上层计算机监控系统技 术协议 !收稿日期"25。。6#