基于AI808调节器与VisualBasic软件实现的恒压变频供水控制系统设计论文

上传人:沈*** 文档编号:42833633 上传时间:2021-11-28 格式:DOC 页数:65 大小:3.05MB
收藏 版权申诉 举报 下载
基于AI808调节器与VisualBasic软件实现的恒压变频供水控制系统设计论文_第1页
第1页 / 共65页
基于AI808调节器与VisualBasic软件实现的恒压变频供水控制系统设计论文_第2页
第2页 / 共65页
基于AI808调节器与VisualBasic软件实现的恒压变频供水控制系统设计论文_第3页
第3页 / 共65页
资源描述:

《基于AI808调节器与VisualBasic软件实现的恒压变频供水控制系统设计论文》由会员分享,可在线阅读,更多相关《基于AI808调节器与VisualBasic软件实现的恒压变频供水控制系统设计论文(65页珍藏版)》请在装配图网上搜索。

1、摘 要恒压供水是一项节能技术,它能根据用水量通过变频技术来调节电机的转速进而达到节约能源,降低运行成本,提高设备使用效率的目的。通常电机是以工频工作,加入变频器后,通过压力变送器检测出供水管线中的压力(用水量与管线压力成反比)并调节水泵电机的运转频率来实现PID闭环控制。本课题采用AI-808调节器与上位机Visual Basic设计的软件构成监控系统,系统的工作状态由上位机软件进行监控,并具有运行画面,实时曲线,历史曲线及报警功能。关键词:Visual Basic;AI-808调节器;恒压变频供水AbstractAccording to the water consumption, cons

2、tant pressure water supply system, a kind of energy-saving technology, can adjust the rotational speed of electric motor by converter technique in order to save energy, reduce operational cost and improve the efficiency of equipments. The electric motor usually works by power frequency. The pressure

3、 of water supply line (water volume is inversely proportionality to pipe line pressure) can be detected by pressure transmitter with frequency converter to adjust the operational frequency of pumping motor in order to realize the closed loop control of PID. The system developed by AI-808 regulator a

4、nd Visual Basic, a software of upper computer, is applied to the monitoring system in this design. The operational status will be monitored by computer software with operational picture, real-time curve, historical curve, alarm function.Keywords: Visual Basic;AI-808 regulator;Constant pressure frequ

5、ency conversion water supply目 录1 绪 论11.1 本课题研究的内容11.2 设计的目的和意义11.3 国内外相关技术发展概况22 总体设计32.1方案论证32.2设计思想42.3可行性分析53 系统的硬件设计63.1变频器的选型设计63.1.1变频器选型63.1.2变频器介绍63.1.3三菱S500变频器的基本接线图73.2 调节器的选型设计73.2.1调节器的选型73.2.2 AI-808人工智能工业调节器73.2.3调节器配线及控制面板使用说明83.2.4 AI-808接线图及参数设置93.3 压力变送器的选型设计103.3.1 压力变送器选型103.3.2

6、 DBYG型硅扩散硅压力变送器介绍104 系统的软件设计114.1 系统通讯程序设计114.1.1 AI-808调节器的通信协议114.1.2 Visual Basic串口通讯程序设计151.数据的接收162.数据的发送174.2 监控程序设计194.1.1 Visual Basic软件介绍194.1.2上位机监控软件设计201.实时监控202.参数设置243.历史曲线254.2 数据库设计294.2.1 Microsoft Access数据库介绍294.2.2 Access2000数据库设计295 调试过程305.1 监控程序调试305.1.1 通讯调试301.研究AIBUS通讯协议302.

7、设计通讯控制系统305.1.2 曲线绘制的调试305.2 系统运行参数调试31结 论32结束语33参考文献34致 谢35附录 系统硬件接线图36附录 程序清单37附录 程序界面58IV1 绪 论1.1 本课题研究的内容本课题设计一个恒压变频供水控制系统。系统使用AI-808智能仪表作为控制系统的调节器,三菱S500变频器控制转速的电机作执行器,压力传感器做压力 信号采集构成一个闭环的PID控制系统。被控对象是管网,被控参数是管网水压。整个系统的运行状态由上位机Visual Basic软件设计的监控程序进行监控。监控程序通过与AI-808调节器通讯读取系统运行参数,并将系统当前运行状态绘制成实时

8、曲线显示在上位机的监控界面。同时监控程序还可以对AI-808调节器的参数进行设置,以对系统的运行状态进行调整。1.2 设计的目的和意义在水利用过程中,供水设备是其必不可少的工具。一般规定城市管网的水压只保证6层以下楼房的用水,其余上部各层均须提升水压才能满足用水要求。传统的方法是水塔、高位水箱或气压罐式增压设备,其设备一次投资费用高,并且必须由水泵高于实际用水高度的压力来提升水量,其结果往往增大了水泵的轴功率和能量损耗,在使用这些传统的供水方式,还容易造成水的二次污染。使用传统的供水方式,用户用水的多少是经常变动的,因此供水不足或供水过剩的情况时有发生。而用水和供水的平衡集中反映在供水的压力上

9、,即用水多但同时供水少,则压力低;用水少而供水多,则压力大。保持供水压力的恒定,可使供水和用水之间保持平衡,即用水多时用水也多,用水少时用水也少,从而提高了供水的质量。恒压供水是指在供水网中用水量发生变化的时候,出口压力保持不变的供水方式。供水网系出口压力值是根据用户需求确定的,所以恒压变频供水可以达到节约资源,提高供水质量的要求。恒压供水系统对于某些工业或特殊用户也是非常重要的。例如在某些生产过程中,若自来水供水因故压力不足或短时断水,可能影响产品质量,严重时使产品报废和设备损坏。又如发生火灾时,若供水压力不足或或无水供应,不能迅速灭火,可能引起重大经济损失和人员伤亡。所以某些用水区采用恒压

10、供水系统,具有较大的经济和社会意义。1.3 国内外相关技术发展概况变频调速恒压供水技术以其节能、安全、供水高品质等优点,得到了广泛应用。恒压供水调速系统可依据用水量的变化(实际上为供水管网的压力变化)自动调节系统的运行参数,保持水恒定以满足用水要求,是当今先进、合理的节能型供水系统,在短短的几年内、调速恒压供水系统经历了一个逐步完善的发展过程,早期的单泵调速恒压系统逐渐为多泵系统所代替,投资更为节省,运行效率提高,成为主导产品。自从通用变频器问世以来,变频调速技术在各个领域得到了广泛的应用。变频调速恒压供水设备以其节能、安全、高品质的供水质量等优点,使我国供水行业的技术装备水平从90年代初开始

11、经历了一次飞跃。恒压供水调速系统实现水泵电机无级调速,依据用水量的变化自动调节系统的运行参数,在用水量发生变化时保持水压恒定以满足用水要求,是当今最先进、合理的节能型供水系统,在实际应用中得到了很大的发展。随着电力电子技术的飞速发展,变频器的功能也越来越强。充分利用变频器内置的各种功能,对合理设计变频调速恒压供水设备,降低成本,保证产品质量等方面很有潜力。2 总体设计2.1方案论证恒压变频供水是较为理想和先进的。首先恒压变频供水保证出水压力不变,根据用水量大小进行变频供水,既节约电能,又保证水泵软启动(对电网电压冲击不大),延长了水泵寿命。目前,就恒压变频给水而言,归结起来可采用以下几种方法:

12、(1)压力变送器、单片机与变频器形成控制回路。压力变送器检测管网中的压力,通过控制系统的A/D转换电路传给单片机,单片机根据管网压力来控制变频器的输出,来控制水泵的转速,以达到控制供水流量的目的。这种控制方式控制器体积小,成本底,可以用于一些特殊场合,比如说现场空间小,并且需求量大的场合。但是它的缺点也是显而易见的,单片机抗干扰能力差,系统稳定性不高,程序修改麻烦,所以现在使用单片机做控制器的恒压变频给水系统普及性很低。(2)压力变送器、PLC控制器与变频器形成控制回路。压力变送器检测管网中的压力,通过A/D模块传给PLC控制器,PLC控制器根据管网中的压力来控制变频器的输出,来控制水泵的转速

13、,达到控制供水流量的目的,同时使用组态软件对系统参数进行实时监控。目前这种方式主要应用于集中供水。对于一、二层是商业群房,群房上建有多幢住宅的建筑,目前较多采用此种供水方案。一般设计有地下生活水池一座,集中恒压变频供水,不设屋顶水箱。主水泵一般有三台,二开一备自动切换,副泵为一般为一小流量泵,夜间用水量小时主泵自动切换到副泵,以维持系统压力基本不变。这种方式是目前国内外普遍采用的方法。该系统供水采用变频泵循环方式,以“先开先关”的顺序关泵,工作泵与备用泵不固定死。这样,既保证供水系统有备用泵,又保证系统泵有相同的运行时间,有效地防止因为备用泵长期不用发生锈死现象,提高了设备的综合利用率,降低了

14、维护费用。同时它的控制参数可调,可引入PID调节方式,反应快,并且PLC控制器的抗干扰能力强,系统稳定性高。但是PLC与组态软件的成本太高,整个系统性价比不高,不适合小型用户使用。(3)压力变送器、AI-808人工智能工业调节器与变频器形成控制回路。压力变送器将检测的网管压力传给智能仪表,智能仪表根据系统当前的参数换算出相应的输出值,将输出值输入变频器,以控制水泵的转速,达到控制管网水流量的目的,同时在上位机使用Visual Basic设计的监控软件对系统进行实时监控。使用AI-808调节器做控制器有一个显著的特点,在系统设计时,由于AI-808调节器具有先进的智能调节算法,所以不需要设计PI

15、D算法,并且AI-808调节器本身具有A/D、D/A转换模块,不需要系统再设计单独的A/D、D/A转换电路或设备。在系统运行时只需要对智能仪表的参数进行修改就可以对系统进行控制。同时AI-808调节器具有完善的通讯功能,可以与上位机进行通讯,因此可在上位机中通过软件对智能仪表的参数进行修改,还可对系统进行实时监控。使用Visual Basic设计上位机监控软件可以大大的减少系统设计成本,并且其灵活性也大于使用组态软件设计的监控软件。通过以上方案的对比分析,第三种方案除了系统成本优于其他方案,其灵活性、系统的简洁性也优于其他方案,因此本课题使用第三种方案设计系统。2.2设计思想按照课题要求,本系

16、统使用压力变送器检测供水管线中的压力,调节水泵电机的运转频率来实现PID闭环控制。水泵电机的运转频率由变频器输出,频率的高低由AI-808调节器控制。压力变送器的电流信号通过转换变成电压信号后传入AI-808调节器,AI-808调节器根据当前的输入值与给定值的关系,按照系统的参数值,输出相应的调节值给变频器,变频器再根据输入值输出相应的频率来控制水泵电机的转速。同时AI-808调节器与上位机监控软件进行通信,在上位机显示当前管网水压、给定水压、输出值曲线以及AI-808调节器的系统参数,同时还可以在上位机进行历史曲线查询,系统参数修改等操作。在系统工作过程中,压力传感器将主管网水压变换为4mA

17、20mA的电流信号,通过串联一个250电阻,将电流信号转换为1V5V的电压信号。将电压信号传入AI-808调节器,AI-808调节器根据输入信号换算出水压高低,在仪表上显示出来;同时AI-808调节器也根据输入值与当前系统给定值的关系,按照系统调节参数运算出相应的输出信号。如果输入值大于给定值,AI-808调节器将减小输出信号值;如果输入值小于给定值,AI-808调节器将增加输出信号值。AI-808调节器在调节输出信号的大小的同时,也通过RS232串口与上位机进行通信,将AI-808调节器采集的数据以及系统参数传到上位机监控软件,同时也接受上位机传来的参数修改指令,使用户可以在上位机监控系统运

18、行状态。系统总体结构如图2.1所示。图2.1 系统总体结构图2.3可行性分析本课题设计要求在短时间内完成,并且由于条件与资金有限,不能大量的采购新设备来完成系统设计。按上述系统设计要求,系统需要PC机一台、AI-808调节器一台、变频器一部、供水泵一台、压力变送器一个以及若干管道和通信线。系统AI-808调节器需要与上位机通讯,所以还得另加一块AI-808串口通信模块。而这些设备除AI-808串口通信模块以外,其它的都能使用实验室的设备解决,并且上位机的监控软件使用Visual Basic软件进行设计,这样就在很大的程度上减少了系统的设计成本。AI-808调节器不需要进行编程,而且使用Visu

19、al Basic软件设计监控程序技术成熟,降低了整个系统设计的技术要求,相应的也减少了系统设计的周期。总之,系统的设计在时间、经费、材料和技术方面满足了课题的要求,能够在规定条件下完成课题的设计。3 系统的硬件设计3.1变频器的选型设计3.1.1变频器选型课题的设计要求变频器支持420mA的电流来设定频率,对其它的参数要求不高。目前三菱S500变频器应用广泛,功能全面,价格低廉,并且支持4-20mA电流输入来设定频率,符合课题设计的要求,并且三菱S500变频器具有数字式拨盘,设定简单快捷,操作方便,因此本课题的变频器选用三菱S500变频器。3.1.2变频器介绍变频器是把工频电源(50Hz或60

20、Hz)变换成各种频率的交流电源,以实现电机的变速运行的设备。变频器实际上就是一个逆变器。它首先是将交流电变为直流电,然后用电子元件对直流电进行开关变为交流电。一般功率较大的变频器用可控硅,并设一个可调频率的装置,使频率在一定范围内可调,用来控制电机的转数,使转数在一定的范围内可调。变频器广泛用于交流电机的调速中。变频调速技术是现代电力传动技术重要发展的方向,随着电力电子技术的发展,交流变频技术从理论到实际逐渐走向成熟。变频器不仅调速平滑,范围大,效率高,启动电流小,运行平稳,而且节能效果明显。因此,交流变频调速已逐渐取代了过去的传统滑差调速、变极调速、直流调速等调速系统,越来越广泛的应用于冶金

21、、纺织、印染、烟机生产线及楼宇、供水等领域。一般分为整流电路、平波电路、控制电路、逆变电路等几大部分。其中控制电路完成对主电路的控制,整流电路将交流电变换成直流电,平波电路对整流电路的输出进行平滑滤波,逆变电路将直流电再逆变成交流电。3.1.3三菱S500变频器的基本接线图图3.2变频器基本接线图3.2 调节器的选型设计3.2.1调节器的选型现在市场上的调节器产品种类繁多,产品良莠不齐。在经过大量的实地考察和实验测试,最终选择了厦门宇电自动化科技有限公司生产的AI-808型人工智能工业调节器作为主调节器使用。AI-808型调节器的主要技术特征;0.2级精度,带手/自动控制功能,模糊控制算法,多

22、分度输入,多种控制输出(在此选择4-20mA输出)和多种报警输出。更重要的是厦门宇电自动化科技有限公司还提供5年的免费维修,这保证了使用AI-808调节器的系统能够得到很好维修服务,解除了用户的后顾之优。3.2.2 AI-808人工智能工业调节器本系统采用的AI-808调节器支持各种热电偶、热电阻、线性电压、电流、电阻及辐射温度计等,并具备扩充输入插座安装特殊输入规格,并可自定义特殊输入的非线性校正表格。除主输入外的第二路输入用于外给定或阀门信号反馈功能,可组成串级或比值调节器等复杂调节系统。AI-808智能调节器具有先进的控制算法,并能在调节中自动学习和记忆被控对象的部分特征以使效果最优化。

23、其具有无超调、高精度、参数确定简单,对复杂对象也能获得较好控制效果等特点。其整体调节效果比一般的PID算法更明显。这一点在系统调试中得到验证,起初选用日本生产的单纯PID调节器,在用水量变化和水泵投退过程中,其超调量和稳定时间均不理想,在改用AI-808智能仪表后,其动态、静态指标均满足了要求。3.2.3调节器配线及控制面板使用说明图3.3 AI-808人工智能工业调节器配线图图3.4 AI-808人工智能工业调节器控制面板面板说明:(1) 调节输出指示灯(2) 报警1指示灯(3) 报警2指示灯(4) AUX辅助接口工作指示灯(5) 显示转换(兼参数设计进入)(6) 数据移位(兼手动/自动切换

24、及程序设置进入)(7) 数据减少键(兼程序运行/暂停操作)(8) 数据增加键(兼程序停止操作)(9)给定值显示窗(10)测量值显示窗3.2.4 AI-808接线图及参数设置图3.5 AI-808接线图为了满足系统要求,需要对AI-808的参数进行设置。参数设置及说明如表3.1表3.1 AI-808参数设置参数设置值说明Sn33用于选择输入规格,33表示15V电压输入dIP1设置小数点位数为1dIL0设置线性输入信号下限刻度值为0kPadIH100设置线性输入信号上限刻度值100kPaCtrl4设置控制方式,以获得更精细的控制3.3 压力变送器的选型设计3.3.1 压力变送器选型本课题设计的系统

25、的被控参数管网水压是由压力变送器传给AI-808调节器的。按照课题设计的要求,压力变送器必须支持420mA的电流输出,并且应该具有耐腐蚀、灵敏度高的特点。扩散硅压力变送器灵敏度高,耐腐蚀性好,加之它的低电压、低电流、低功耗、低成本和本质安全防爆的特点,可替代诸多同类型的同功能产品,具有最优良的性价比。本系统设计时采用的是DBYG型硅扩散硅压力变送器。3.3.2 DBYG型硅扩散硅压力变送器介绍DBYG 扩散硅压力变送器是一种新型的压力检测仪表。压力测量头的核心部件是扩散硅压力传感器,因此没有可动部件,抗震性能优良。仪表在工业测量和自动调节系统中作为检测环节用来测量液体、气体或蒸气的压力,并将被

26、测参量转换成420mA DC的标准电流信号输出,与其它仪表配合实现生产过程中的自动检测和控制。DBYG型硅扩散硅压力变送器技术参数如下:输出电流:420mA DC二线制传输供电电压:DC 242.4V负载电阻:0250(另加导线电阻100)精度等级:0.2FS(255时)0.5FS(255时)环境温度:-20+80相对湿度:95接液温度:100外磁场强度:400A/m4 系统的软件设计4.1 系统通讯程序设计本课题的通讯部分主要是满足AI-808调节器与上位机的通讯,使上位机Visual Basic软件设计的监控程序能监控系统的运行状态。AI-808调节器拥有完善的通讯协议(AIBUS),可以

27、快速的与上位机系统进行通讯。Visual Basic软件也拥有MSComm通讯控件,可以方便的使用PC机的串口与下位机进行通讯。4.1.1 AI-808调节器的通信协议AIBUS是厦门宇电自动化科技有限公司为AI系列显示控制仪表开发的通讯协议,能用简单的指令实现强大的功能,并提供比其它常用协议(如MODBUS)更快的速率(相同波特率下快3-10倍),适合组建较大规模系统。AIBUS采用了16位的求和校正码,通讯可靠,支持4800、9600、19200等多种波特率,在19200波特率下,上位机访问一台AI-7/8系列高性能仪表的平均时间仅20mS,访问AI-5系列仪表的平均时间为50mS。仪表允

28、许在一个RS485通讯接口上连接多达80台仪表(为保证通讯可靠,仪表数量大于60台时需要加一个RS485中继器)。AI系列仪表可以用PC、触摸屏及PLC作为上位机,其软件资源丰富,发展速度极快。基与PC的上位机软件广泛采用WINDOWS作为操作环境,不仅操作直观方便,而且功能强大。最新的工业平板触摸屏式PC的应用,更为工业自动化带来新的界面。这使得AIDCS系统价格大大低于传统DCS系统,而性能及可靠性也具备比传统DCS系统更优越的潜力,V7.X版本AI-7/8系列仪表允许连续写参数,写给定值或输出值,可利用上位机将仪表组成复杂调节系统。AI系列仪表使用异步串行通讯接口,接口电平符合RS232

29、C或RS485标准中的规定。数据格式为1个起始位,8位数据,无校验位,1个或2个停止位。通讯传输数据的波特率可调为480019200 bit/S,通常用9600 bit/S,单一通讯口所连接仪表数量大于40台或需要更快刷新率时,推荐用19200bit/S,当通讯距离很长或通讯不可靠常中断时,可选4800bit/S。AI仪表采用多机通讯协议,采用RS485通讯接口,则可将180台的仪表同时连接在一个通讯接口上。RS485通讯接口通讯距离长达1KM以上(部分实际应用已达3-4KM),只需两根线就能使多台AI仪表与计算机进行通讯,优于RS232通讯接口。为使用普通个人计算机PC能作上位机,可使用RS

30、232/RS485或USB/RS485型通讯接口转换器,将计算机上的RS232通讯口或USB口转为RS485通讯口。宇电为此专门开发了新型RS232/RS485及USB/RS485转换器,具备体积小、无需初始化而可适应任何软件、无需外接电源、有一定抗雷击能力等优点。AI仪表的RS232及RS485通讯接口采用光电隔离技术将通讯接口与仪表的其他部分线路隔离,当通讯线路上的某台仪表损坏或故障时,并不会对其它仪表产生影响。同样当仪表的通讯部分损坏或主机发生故障时,仪表仍能正常进行测量及控制,并可通过仪表键盘对仪表进行操作,工作可靠性很高。16位校验码的正确性是简单奇偶校验的30000倍,基本能保证数

31、据可靠性。并且同一网络上有其他公司也采用主从方式通讯的产品时,如PLC、变频器等,多数情况下AI系列仪表都不会受其它公司产品通讯干扰,不会产生采集数据混乱或无法通讯的问题。但是AI仪表协议并不能保证其它公司产品能否正常工作,所以除非万不得已,不应将AI仪表与其它产品混在一个RS485通讯总线上,而应分别使用不同的总线。AI仪表采用16进制数据格式来表示各种指令代码及数据。AI仪表软件通讯指令经过优化设计,标准的通讯指令只有两条,一条为读指令,一条为写指令,两条指令使得上位机软件编写容易,不过却能100%完整地对仪表进行操作;标准读和写指令分别如下:读: 地址代号+52H(82)+要读的参数代号

32、+0+0+校验码写: 地址代号+43H(67)+要写的参数代号+写入数低字节+写入数高字节+校验码地址代号:为了在一个通讯接口上连接多台AI仪表,需要给每台AI仪表编一个互不相同的通讯地址。有效的地址为080(部分型号为0100),所以一条通讯线路上最多可连接81台AI仪表,仪表的通讯地址由参数Addr决定。仪表内部采用两个重复的128208(16进制为80HD0H)之间数值来表示地址代号,由于大于128的数较少用到(如ASC方式的协议通常只用0-127之间的数),因此可降低因数据与地址重复造成冲突的可能性。AI仪表通讯协议规定,地址代号为两个相同的字节,数值为(仪表地址+80H)。例如:仪表

33、参数Addr=10(16进制数为0AH,0A+80H=8AH),则该仪表的地址代号为:8AH 8AH。参数代号:仪表的参数用1个8位二进制数(一个字节,写为16进制数)的参数代号来表示。它在指令中表示要读/写的参数名。校验码:校验码采用16位求和校验方式,其中读指令的校验码计算方法为:要读参数的代号256+82+ADDR写指令的校验码计算方法为以下公式做16位二进制加法计算得出的余数(溢出部分不处理):要写的参数代号256+67+要写的参数值+ADDR公式中ADDR为仪表地址参数值,范围是080(注意不要加上80H)。校验码为以上公式做二进制16位整数加法后得到的余数,余数为2个字节,其低字节

34、在前,高字节在后。要写的参数值用16位二进制整数表示。返回数据:无论是读还是写,仪表都返回以下10个字节数据:测量值PV+给定值SV+输出值MV及报警状态+所读/写参数值+校验码其中PV、SV及所读参数值均各占2个字节,代表一个16位二进制有符号补码整数,低位字节在前,高位字节在后,整数无法表示小数点,要求用户在上位机处理;MV占一个字节,按8位有符号二进制数格式,数值范围-110110,状态位占一个字节,校验码占2个字节,共10个字节。表4.1 回各数据含义PV测量值PVSV当前给定值SVMV输出值MV状态字节状态字节A参数值表示要读或写的参数的值返回校验码:PV+SV+(报警状态*256+

35、MV)+参数值+ADDR按整数加法相加后得到的余数。计算校验码时,每2个8位字节组成1个16位二进制整数进行加法运算,溢出数忽略,余数作为校验码。表4.2 状态字节A数据含义(位7固定为0)位0上限报警(HIAL)位1下限报警(LoAL)位2正偏差报警(dHAL)位3负偏差报警(dLAL)位4输入超量程报警(orAL)位5AL1状态,0为动作位6AL2状态,0为动作表4.3 AI-808仪表可读/写的参数代号表参数代号AI-808调节器参数含义10进制16进制000H SV给定值/SteP程序段101HHIAL上限报警202HLoAL下限报警303H dHAL正偏差报警404HdLAL负偏差报

36、警505HdF回差606HCtrl控制方式707H M5保持参数808H P 速率参数909H t滞后时间100AHCtI控制周期110BHSn输入规格120CH dIP小数点位置130DH dIL输入下限显示值140EH dIH输入上限显示值150FHALP报警输出定义1610HSc输入平移修正1711HOP1输出方式1812H oPL输出下限1913H oPH输出上限2014HCF功能选择2115H 仪表特征码/程序控制字(运行:0 暂停:4 停止:12)2216H 仪表地址(读/写)2317HdL数字滤波2418Hrun运行参数2519HLoc参数封锁261AH C01(AI-808写入

37、时设置MV值)271BHt01 281CHC02291DHt02301EHC03311FHt033220HC043321Ht043422HC053523Ht053624HC063725Ht063826HC073927Ht074028HC084129Ht08422AH C0943-852BH-55H t09-C30程序数据8656H 当前程序段运行时间4.1.2 Visual Basic串口通讯程序设计Visual Basic软件使用MSComm控件可以便捷的设计出可用于串口通讯的程序。MSComm有两种驱动方式:事件驱动方式与查询方式。(1)事件驱动方式事件驱动通讯是处理串行端口交互作用的一种

38、非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。(2)查询方式查询方式实质上还是事

39、件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。本课题的上位机的通讯设计是采用事件驱动方式进行设计的。1.数据的接收MSComm 控件有多个属性,其中Rthreshold属性为一阀值。当接收缓冲区中字符数达到该值时,MSComm控件设置Commevent属性为ComEvReceive,并产生OnComm事件。用户可在OnComm事件处理程序中进行相应处理。若Rthreshold属性设置为0,则不产生OnComm事件。例如用户希望接收缓冲区中达到一个字符就

40、接收一个字符,可将Rthreshold设置为1。这样接收缓冲区中接收到一个字符,就产生一次OnComm事件。 在程序设计中,根据AI-808的通讯协议,将Rthreshold属性的值设置位10。由于系统在串口通讯中是按二进制形式读取的,所以将MSComm 控件的InputMode属性设置为1(0为文本形式读取,1为二进制形式读取)。当串口缓冲区接受到10个字节的数据就将产生一个OnComm事件中,在OnComm事件就可以对接收的数据进行处理。根据AIBUS协议,无论是读还是写,仪表都返回以下10个字节数据:测量值PV+给定值SV+输出值MV及报警状态+所读/写参数值+校验码因此,在OnComm

41、事件首先要做的就是先将数据从缓冲区中读出后进行拆分,再将接收的十六进制的数据转换为十进制,最后再进行效验,检验数据是否有误。以下程序中,先定义一个字节型的数组,当接受到Rthreshold个字符时,CommEvent为comEvReceive,这时将串口缓冲区的数据赋值给Cmdin数组,完成从串口中取出数据的工作。Dim Cmdin() As ByteSelect Case MSComm1.CommEvent Case comEvReceive Cmdin = MSComm1.InputEnd Select根据AIBUS协议,在Cmdin数组中, Cmdin(0)、Cmdin(1)表示测量值P

42、V,Cmdin(2)、Cmdin(3)表示给定值SV, Cmdin(4)表示输出值MV(按百分比表示),Cmdin(5)表示报警状态,Cmdin(6)、Cmdin(7)表示所读/写参数值,Cmdin(8)、Cmdin(9)表示校验码。下面的程序的表示的是一个过程程序,它能返回数据到调用它的程序中。在系统设计中使用下面的程序将十六进制的数据转换为十进制数据,并将十进制数据返回主程序中。例如,调用Join2Byte(Cmdin(1), Cmdin(0)函数就可返回测量值PV(AIBUS协议中规定返回的数组中高字节的数在右,低字节在左)。Public Function Join2Byte(highb

43、yte As Byte, lowbyte As Byte) Dim c As Integer c = highbyte If c 127 Then c = (c - 256) * 256 Else c = c * 256 End If Join2Byte = c + lowbyteEnd Function根据AIBUS协议,返回校验码=PV+SV+(报警状态*256+MV)+参数值+ADDR按整数加法相加后得到的余数,系统设计以下的程序来计算效验码,并将计算结果crc 的值与Join2Byte(Cmdin(9), Cmdin(8)的值进行比较就可以验证数据是否有误。(addr表示仪表地址)cr

44、c =Join2Byte(Cmdin(1), Cmdin(0) + Join2Byte(Cmdin(3), Cmdin(2) + (Cmdin(5) * 256 + Cmdin(4) + Join2Byte(Cmdin(7), Cmdin(6) + addr2.数据的发送监控系统的数据发送分为参数的读取与参数的修改。根据AIBUS协议的原理,每一条AI-808调节器返回的数据都包含了SV、SP、MV三个数据,即监控软件无论读取什么数据都能得到这三个数据,而这三个数据就是上位机的监控系统需要实时监控的数据,所以监控系统在实时监控中,随便读取一个参数就行(系统设计中使用的是参数代码15H(见表4.

45、3)。下面程序表示的是系统读取参数代码为15H的AI-808调节器的参数,也是在上位机监控软件在运行中不停的向下位机发送数据以监视系统运行状态的程序。发送数据的前两个字节表的是地址代号,地址代号数值为:仪表地址+80H(80H的十进制是128)。由于是读取参数代码为15H的数据,所以第三个字节是52H,第四个字节是15H。最后的两个字节表示的是发送数据的效验码。函数zhuanhuan(b As Integer, RW As Boolean, codeid As Integer)的作用是计算出发送数据的效验码,并将效验码与写数据时需写入的值转换成十六进制的两个字节的数。参数b表示的是当对AI-8

46、08调节器的的参数进行修改时写入的值,当读取数据时,b为-1;参数RW表示的是当前调用是读还是写,False为读,True为写;参数codeid表示的是读取参数的参数代码。Private Sub commout()Dim i& cmdout(0) = 128 + addr cmdout(1) = 128 + addr cmdout(2) = &H52& cmdout(3) = &H15& cmdout(4) = &H0& cmdout(5) = &H0& Call zhuanhuan(-1, False, 21) cmdout(6) = lcrc cmdout(7) = hcrc MSComm

47、1.Output = cmdoutEnd SubPublic Sub zhuanhuan(b As Integer, RW As Boolean, codeid As Integer) 十进制转十六进制以及计算校验码If b 0 Then If b 255 Then hdate = b 256 ldate = b Mod 256 Else hdate = 0 ldate = b End IfEnd IfIf RW = False Then outwtcrc = codeid * 256 + 82 + addr 读数据的校验码Else outwtcrc = codeid * 256 + 67 +

48、 b + addr 写数据的校验码End IfIf outwtcrc 255 Then hcrc = outwtcrc 256 lcrc = outwtcrc Mod 256Else hcrc = 0 lcrc = outwtcrcEnd IfEnd Sub下面的程序表示的系统修改AI-808调节器参数代码为0(SV)的值。参数a中储存的数据传入函数zhuanhuan(),在函数中将数值转换成十六进制的两个字节的数放在ldate与hdate两个变量中,并将效验码转换成十六进制的两个字节的数存储在lcrc与hcrc两个变量中。Call zhuanhuan(a, True, 0) 参数a表示需写入

49、的值Private Sub commout() cmdoutset(0) = 128 + addr cmdoutset(1) = 128 + addr cmdoutset(2) = &H43& cmdoutset(3) = codeid cmdoutset(4) = ldate cmdoutset(5) = hdate cmdoutset(6) = lcrc cmdoutset(7) = hcrc Form1.MSComm1.Output = cmdoutsetEnd Sub通过以上的程序的设计,上位机的监控程序实现了监控软件与下位机AI-808调节器的通讯。可以通过监控软件实时监控系统的运行

50、状态,并且能够在上位机修改AI-808调节器的运行参数。4.2 监控程序设计4.1.1 Visual Basic软件介绍Visual Basic(VB)是由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。 VB使用了可以简单建立应用程序的GUI系统,但是又可以开发相当复

51、杂的程序。VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组建的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的

52、文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。 4.1.2上位机监控软件设计1.实时监控图4.1 监控界面监控界面可以显示实时数据、实时曲线、运行状态指示等。实时数据可显示当前系统参数,以及监控数据(包括输入值、给定值、输出值)。实时曲线用三种颜色来直观的显示输入值、给定值、输出值。程序运行时,点击“开始监控”按钮,程序通过串口与AI-808调节器开始通信。监控程序先进行初始化,根据AI-808仪表的仪表地址以及串口设置,系统将发送读取AI-808调节器的PV、SV、MV、M5、P、T、HIAL以及LoAL参数的相应代码,并将AI-808返回的参数显示

53、在控制界面上。完成初始化后,程序将循环发送读取PV、SV、MV以及状态字的参数的代码。按照通讯控制的设计,程序不停的发送读取参数代码15H的AI-808调节器的值,程序根据返回的数据将PV、SV、MV三个参数的数值绘制曲线显示在实时曲线框内,并且根据状态字的内容决定是否报警;同时,系统将当前PV、SV、MV三个参数以及系统当前时间等数据储存在以Access2000格式建立的数据库中,以供在查看历史曲线时进行调用。实时监控流程图如图4.2所示。图4.2 实时监控流程图(1)初始化以下程序是在监控窗口启动的Load事件中对程序进行初始化。GetFromINI函数是用于读取系统的配置设置,这些设置是

54、保存在监控程序目录下,命名为set.ini。在配置设置文件中保存有AI-808调节器的仪表地址、通讯串口号以及通讯波特率。Data是数据库控件,程序同样对其进行初始化,设置数据库名和表名。初始化程序就是对串口、数据库等进行设置,完成系统的初始化。Private Sub Form_Load() addr = GetFromINI(仪表地址, ADDR, App.Path + set.ini) 读取仪表地址 MSComm1.CommPort = GetFromINI(串口号, COM, App.Path + set.ini) 读取串口号 MSComm1.InputMode = 1 设置接受数据为c

55、omInputModeBinary(二进制) MSComm1.RThreshold = 10 设置接受缓冲区阀值 MSComm1.SThreshold = 0设置波特率、校验位等 If GetFromINI(波特率, BIT, App.Path + set.ini) = 9600 Then MSComm1.Settings = 9600,n,8,2 If GetFromINI(波特率, BIT, App.Path + set.ini) = 19200 Then MSComm1.Settings = 19200,n,8,2 Data1.DatabaseName = App.Path & /历史数

56、据.mdb 设置数据库名 Data1.RecordSource = history data 设置数据库表名End Sub图4.3 初始化流程图(2) 绘制实时曲线及储存数据实时曲线的绘制与储存数据是在Timer控件的驱动下完成的,程序每1s运行一次,因此历史数据的存储也是1s采集一个数据保存。绘制实时曲线是使用两个PictureBox控件完成,一个PictureBox控件命名为 PicShow,另一个命名为PicHide。程序运行时,先在PicShow控件中绘制100s的实时曲线,100s后,由于曲线已经将PicShow控件画满,为了满足实时曲线的时间平移,需要在PicHide控件件上进行绘

57、图,再使用 Call BitBlt(PicShow.hDC, 0, 0, P1Width, P1Height, PicHide.hDC, 0, 0, &HCC0020)函数将PicHide控件上的曲线复制到PicShow控件上显示出来。而Plot(StartX&)函数的作用就是在PicHide控件上进行绘图。绘制完实时曲线后就通过Data控件完成实时数据的保存。其源代码如下:Private Sub Timer2_Timer() Dim i&, j& PvValueStr = pv 读取参数的值 SvValueStr = sv MvValueStr = mv * 10 PvValue(NowX)

58、 = PvValueStr 将值记录到数组中 SvValue(NowX) = SvValueStr MvValue(NowX) = MvValueStr If Not fIsOver Then 绘图取样数是否超过 Call x_time(False, NowX) If NowX = 0 Then PicShow.Cls 清除图形 Else Call grid(False)在PicShow中绘图 PicShow.Line (NowX - 1, PvValue(NowX - 1)-(NowX, PvValueStr), RGB(255, 0, 0) 由上一次的位置画至此点 PicShow.Line

59、 (NowX - 1, SvValue(NowX - 1)-(NowX, SvValueStr), RGB(0, 255, 0) PicShow.Line (NowX - 1, MvValue(NowX - 1)-(NowX, MvValueStr), RGB(255, 255, 0) End If Else Call x_time(True, NowX) PicShow.AutoRedraw = False Plot NowX + 1 将图绘在另一个隐藏的图片框 绘好的图形转移至显示的图片框 使用最简洁的API命令,可以清除图形变化时的闪烁现象 而达到图形平滑移动的效果 Call BitBl

60、t(PicShow.hDC, 0, 0, P1Width, P1Height, PicHide.hDC, 0, 0, &HCC0020) End If NowX = NowX + 1 位置加1 If NowX MaxPlotNo Then 绘图取样数是否超过 NowX = 0 fIsOver = True 准备激活隐藏图片框的绘制 End If Data1.Recordset.AddNew 储存实时数据到数据库 Data1.Recordset(PV) = PvValueStr Data1.Recordset(SV) = SvValueStr Data1.Recordset(MV) = MvValueStr Data1.Recordset(DAY) = Date Data1.Recordset(TIME) = Time Data1.Recordset.UpdateEnd Sub图4.4 绘制实时曲线及储存数

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!