基于VC的PLC数据采集管理系统
  • 基于VC的PLC数据采集管理系统
电话/微信号:13308461099,13807313137
基于VC的PLC数据采集管理系统

         引 言

  plc具有可靠性高,系统设计灵活,编程简单,易于安装,抗干扰能力强等优点,但单独的plc不能提供良好的人机界面和数据处理能力。在实际应用中,往往需要将一组plc的数据存储、显示和打印出来并对plc进行实时的监控,应用工业监控组态软件可以解决此类问题。当系统不是很大时,也可以采用vc等工具自己开发出上位机监控通信软件,相对于专业监控组态软件,它具有灵活、小巧、成本低等优点。正是基于现场的应用实际,使用vc开发出了一套满足现场需要的数据采集管理软件系统。

  l 现场需求描述

  车间有10台单独的试验台(由omron cjlg-hplc和触摸屏组成),负责检验4种类型制动阀产品的性能参数,并存入各自的dm,em存储区中,现要求用一台工控机将各台plc内的数据采集进去,实现产品信息的集中管理,可以灵活地查询、修改、添加、导出所有的产品信息,并能打印出各种指定格式的产品记录单和汇总单;同时需要对plc工作状态进行监视。

  2 系统的硬件构成

  该系统的硬件由1台上位机(工控机),11个rs 232/rs 485转换模块(该系统选用1个fs-485g模块(需外接电源)连接工控机,10个ut-201型连接plc),10根cjig-h自由口到rs 232的转换电缆(该系统选用fs-cn26),10台cjig-h pl及若干双绞线组成,其示意图如图1所示。

  

  3 上位机软件的实现

  3.1 通信部分的实现

  3.1.1 功能描述

  自动将现场10台试验台的紧急阀和主阀信息采集存人数据库;较实时地监视工控机与各试验台的通信状态和通信内容;并可设置com口;配置待通信的试验台;编排试验员姓名与其编号的对应序列。通信部分的运行界面如图2所示。

  

 

  3.1.2 上位机与plc之间的通信协议

  该系统采用host link通信协议,上位机与plc组成1:n的host link通信系统。host link采用总线式通信方式,通信的主动权在上位机一方,上位机启动通信;首先向plc发出fins命令,plc收到后会自动识别并加以执行,然后将执行结果返回上位机,上位机以帧的形式发送命令(命令码),plc也以帧的形式回送执行结果(响应码)。在通信时,plc与上位机的通信参数(如节点地址、通信波特率、数据格式)应设为一致。上位机的通信设置在对应的vc编写的程序中进行,plc的通信设置在其对应的系统设定区进行。fins命令具体格式可在omron cjcs通信手册中查找。

  3.1.3 上位机的通信编程

  上位机通过串口与plc相连,故使用vc的串口通信控件 mscomm,完成对串口的读写工作。在使用mscomm控件进行读写前,必须先初始化该控件的一些属性,串口初始化代码如下:

  

 

  该程序中使用事件驱动(event-driven)的方法来接收数据,当串口接收缓冲区中有字符到达时,mscomm控件的oncomm事件处理函数捕获到相关的通信事件,并被自动调用,在oncomm函数中加入自己的处理代码,即可把plc中传来的数据进行处理、存储等;通过mscomm控件的setrthreshold函数设置产生oncomm事件之前要接收的字符数,在oncomm函数中用switch语句,即可实现对不同的响应码的不同处理。

  通过定时函数和循环控制函数,周期地依次向各个plc发送读写plc的fins命令码,再在oncomm函数中加入对不同plc响应码的处理函数,就可实时地完成对plc数据的采集。同时根据响应码的内容监视plc的运行状态。plc自动将检验的产品性能数据连续存入d存储区中,当存储区满时自动从头循环覆盖存放,上位机定时将plc的d存储区的产品数据读入、处理并存人数据库。该系统中上位机1 min内可依次读完10台plc的各自1条产品性能信息,而plc检验完1个产品需15 min左右,故可满足相对的实时性。为保证上位机完整且不重复地读取plc的所有产品性能数据,在各台plc中对每种产品都定义了a,b两个存储单元,a单元存放上位机读取过的最后一条信息地址,当上位机每读完1条信息,就由上位机对此单元的内容更新;b单元存放最新的产品信息存放地址,当plc每产生1条新信息时,就由plc更改该单元内容;上位机在读取产品信息前,先对比a,b单元的内容,决定是否进行数据读取和读取哪个地址的数据。这样即使上位机与plc断开一定时间后,当重新连接上,也可将以前没读到的信息读入。程序流程图如图3所示。

  


 

  在上位机中向plc发送命令码时,必须加相应的fcs校验码。该校验码是8位的二进制数转换成的2位ascii字符。这8位数据是将1帧中校验码前所有字符的ascii码按位连续异或的结果,转换为字符时,按照2位16进制数转换成对应的数字字符。同时,当接收到plc自动发回的响应码时,为确保接收数据的正确性,也必须用响应码中的fcs进行校验。系统中的发送命令码、接收响应码、生成命令码和检验响应码的代码如下:

  (1)发送命令码

  

 

  

 

  3.1.4 设置com口、配置试验台、编排试验员的实现程序

  设置com口、配置试验台、编排试验员的实现程序还需有以下功能:设置通信的com口;配置实验台,根据plc的工作状态,选择需进行通信的plc;编排试验员,由于plc中存放的是试验人员的工号,故需在程序中建立一张表将工号对应为姓名,再将该姓名存入数据库。

  以上功能的实现,是通过在程序中写配置文件,将配置信息存入硬盘,程序启动时再从硬盘读取相应的配置信息。vc中用getprivateprofileint和writepri-vateprofilestring函数实现配置文件的读写。

  3.2 查询打印部分的实现

  用户登陆后,可对从plc中采集到数据库中的数据进行查询、打印、删除、修改、备份,并将数据导出到excel等,系统管理员可对一般用户进行相应的管理。查询部分的界面如图4所示。

  


 

  3.2.1 vc与sql server 2000的连接

  该系统中vc通过ado访问数据库,ado是最新的数据库访问技术,由2-3主要对象connection,command,recordset和几个辅助对象组成。con-nection对象提供ole/db数据源和对话对象之间的关联;command对象封装了数据源可以解释的命令;recordset用于表示从数据源中返回的表格数据;为了方便地在程序中访问数据库,需要进行适当的封装,该系统中定义了一个类adoconn封装了对数据库的基本操作,在此后的数据库访问中可以方便地用adoconn类的对象进行操作。

  利用sql servet 2000的企业管理器,在数据库中为plc上的各种产品的检验报告各建立一张表,以存储plc上传来的各项信息,此外还需建立一张用户表来管理用户的帐号和密码。然后在vc程序中对每张表定义一个类,类的成员变量对应表的列,类的成员函数是对成员变量和表的操作,以方便程序对这些表的操作。

  3.2.2 各功能在vc中的实现

  查询、修改、添加功能是在连接上数据库后通过执行相应的delete,insert,update语句来实现的;可在sql server2000的企业管理企中设置备份调度来实现备份,也可在程序中写backup database命令来实现备份;vc中实现数据库数据与excel表格数据的互导,可以充分利用exeel处理数据的强大功能,增强程序的数据处理能力和与外部数据的交互性,程序中采用这种方式来导出产品数据汇总表,以便存档、复制和打印,具体的实现代码较长,读者可参照相关vc资料来实现。

  vc中实现打印功能的方法有:将数据导入到excel,world中进行打印;安装第三方的打印控件(如水晶报表)实现;若是基于单/多文档的程序可通过其封装的打印功能实现。该系统中,通过将数据导入到excel中的方式来打印汇总表,而各个产品的报告单则通过编写基于对话框的打印程序来打印,其方法是通过cprintdialog类的getprinterdc函数得到打印机的设备环境,再通过cdc类的startdoc,drawtext,selec-tobject等函数绘制打印的图表并打印输出。系统中用cdc类的开始打印新页函数startpage和结束当前打印页函数endpage来实现连续打印多张报告单。

  4 结 语

  windows环境下的应用程序编程是目前的主要趋势,plc与上位机的通信是目前工业自动化发展方向之一。利用visual c++6.o和sql server 2000,在windows xp环境下开发了omron plc的数据采集、存储和查询软件,其投资少,可靠性高,具有强大的数据库功能,现已成功运用于某厂的产品检验车间。若需要控制各plc的设备,只需修改相应的命令码即可实现。

湖南阳光技术学校成立于1992年,是经湖南省人社厅批准设立的正规职业技术学校(办学许可证:人社民 1800003000183 号),是行业TOP1,历年综合评分都在92.5以上。深耕职业技能培训32年,总校区位于长沙市雨花区红花坡路176号。学校常年开设:电工培训、焊工培训、钢筋工、家电维修培训、手机维修培训、电脑维修培训、摩托车维修培训、电动车维修培训、装修木工培训、水电安装培训、瓦工贴瓷砖培训、空调维修培训、电动工具维修培训、电机维修培训、农机维修培训、安防监控培训、家电清洗培训等实战专业技术培训,采用 “半天理论 + 半天实操” 模式,实操性强的班实操占比更是超过90%。小班手把手教学,零基础学员也能快速上手。师资团队以双师型教师为主,85% 教师持工程师 / 高级技师职称,一线教学经验丰富。学校提供住宿,收费透明无隐形消费,可协助报考全国通用的特种作业操作证与职业技能等级证书。同时搭建就业与创业支持网络,与 200 + 企业合作,负责推荐工作,助力学员顺利就业或开店。常年招生地区:中山,固原,银川,玉树,海东,陇南,酒泉,张掖,天水,金昌,兰州,榆林,延安,渭南,铜川,阿里,山南,拉萨,怒江,文山州,楚雄州,普洱,昭通,玉溪,昆明,毕节,铜仁,遵义,贵阳,甘孜州,资阳,达州,宜宾,南充,遂宁,绵阳,泸州,自贡,三亚,崇左,河池,玉林,钦州,梧州,柳州,梅州,肇庆,湛江,佛山,珠海,韶关,湘西州,怀化,郴州,张家界,邵阳,株洲,仙桃,随州,荆州,荆门,襄樊,黄石,驻马店,信阳,南阳,漯河,中卫,石嘴山,海西,海南藏州,黄南州,海北,甘南,庆阳,平凉,武威,白银,嘉峪关,安康,汉中,咸阳,宝鸡,林芝,日喀则,昌都,迪庆,德宏,大理,西双版纳,红河州,临沧,丽江,保山,曲靖,黔东州,黔西州,安顺,六盘水,凉山州,阿坝州,雅安,广安,眉山,内江,广元,德阳,攀枝花,成都,海口,来宾,百色,贵港,北海,桂林,南宁,云浮,揭阳,潮州,清远,阳江,汕尾,惠州,茂名,江门,汕头,深圳,广州,娄底,永州,益阳,岳阳,湘潭,长沙,恩施州,黄冈,孝感,鄂州,十堰,武汉,周口,商丘,三门峡,许昌,焦作,安阳,鹤壁,平顶山,开封,郑州,聊城,滨州,德州,莱芜,日照,泰安,烟台,潍坊,东营,淄博,上饶,济南,抚州,宜春,赣州,新余,九江,景德镇,宁德,南平,泉州,莆田,厦门,宣城,亳州,六安,宿州,黄山,滁州,安庆,淮北,马鞍山,蚌埠,芜湖,合肥,丽水,舟山,衢州,金华,湖州,嘉兴,宁波,宿迁,镇江,盐城,连云港,苏州,徐州,南京,绥化,牡丹江,佳木斯,大庆,鹤岗,哈尔滨,白城,白山,辽源,吉林,葫芦岛,铁岭,盘锦,阜新,锦州,本溪,鞍山,沈阳,锡林郭勒盟,通辽,乌海,吕梁,忻州,晋中,晋城,阳泉,太原,廊坊,承德,保定,邯郸,唐山,宁夏,甘肃,西藏,贵州,重庆,广西,湖南,河南,江西,安徽,江苏,黑龙江,辽宁,山西,天津,四平,内蒙古,吴忠,果洛,西宁,定西,商洛,西安,那曲,黔南州,巴中,乐山,贺州,防城港,东莞,河源,常德,衡阳,咸宁,宜昌,濮阳,新乡,洛阳,菏泽,临沂,威海,济宁,枣庄,青岛,吉安,鹰潭,萍乡,南昌,龙岩,漳州,三明,福州,池州,巢湖,阜阳,铜陵,淮南,台州,绍兴,温州,杭州,泰州,扬州,淮安,南通,常州,无锡,大兴安岭,黑河,七台河,伊春,双鸭山,鸡西,齐齐哈尔,延边,松原,通化,长春,朝阳,辽阳,营口,丹东,抚顺,大连,阿拉善盟,兴安盟,乌兰察布,巴彦淖尔,呼伦贝尔,鄂尔多斯,赤峰,#包头,呼和浩特,临汾,运城,朔州,长治,大同,衡水,沧州,张家口,邢台,秦皇岛,石家庄,青海,陕西,云南,四川,海南,广东,湖北,山东,福建,浙江,上海,吉林,河北,北京

湖南阳光技术学校成立于1992年,是经湖南省人社厅批准设立的正规职业技术学校(办学许可证:人社民 1800003000183 号),是行业TOP1,历年综合评分都在92.5以上。深耕职业技能培训32年,总校区位于长沙市雨花区红花坡路176号。学校常年开设:电工培训、焊工培训、钢筋工、家电维修培训、手机维修培训、电脑维修培训、摩托车维修培训、电动车维修培训、装修木工培训、水电安装培训、瓦工贴瓷砖培训、空调维修培训、电动工具维修培训、电机维修培训、农机维修培训、安防监控培训、家电清洗培训等实战专业技术培训,采用 “半天理论 + 半天实操” 模式,实操性强的班实操占比更是超过90%。小班手把手教学,零基础学员也能快速上手。师资团队以双师型教师为主,85% 教师持工程师 / 高级技师职称,一线教学经验丰富。学校提供住宿,收费透明无隐形消费,可协助报考全国通用的特种作业操作证与职业技能等级证书。同时搭建就业与创业支持网络,与 200 + 企业合作,负责推荐工作,助力学员顺利就业或开店。常年招生地区:中山,固原,银川,玉树,海东,陇南,酒泉,张掖,天水,金昌,兰州,榆林,延安,渭南,铜川,阿里,山南,拉萨,怒江,文山州,楚雄州,普洱,昭通,玉溪,昆明,毕节,铜仁,遵义,贵阳,甘孜州,资阳,达州,宜宾,南充,遂宁,绵阳,泸州,自贡,三亚,崇左,河池,玉林,钦州,梧州,柳州,梅州,肇庆,湛江,佛山,珠海,韶关,湘西州,怀化,郴州,张家界,邵阳,株洲,仙桃,随州,荆州,荆门,襄樊,黄石,驻马店,信阳,南阳,漯河,中卫,石嘴山,海西,海南藏州,黄南州,海北,甘南,庆阳,平凉,武威,白银,嘉峪关,安康,汉中,咸阳,宝鸡,林芝,日喀则,昌都,迪庆,德宏,大理,西双版纳,红河州,临沧,丽江,保山,曲靖,黔东州,黔西州,安顺,六盘水,凉山州,阿坝州,雅安,广安,眉山,内江,广元,德阳,攀枝花,成都,海口,来宾,百色,贵港,北海,桂林,南宁,云浮,揭阳,潮州,清远,阳江,汕尾,惠州,茂名,江门,汕头,深圳,广州,娄底,永州,益阳,岳阳,湘潭,长沙,恩施州,黄冈,孝感,鄂州,十堰,武汉,周口,商丘,三门峡,许昌,焦作,安阳,鹤壁,平顶山,开封,郑州,聊城,滨州,德州,莱芜,日照,泰安,烟台,潍坊,东营,淄博,上饶,济南,抚州,宜春,赣州,新余,九江,景德镇,宁德,南平,泉州,莆田,厦门,宣城,亳州,六安,宿州,黄山,滁州,安庆,淮北,马鞍山,蚌埠,芜湖,合肥,丽水,舟山,衢州,金华,湖州,嘉兴,宁波,宿迁,镇江,盐城,连云港,苏州,徐州,南京,绥化,牡丹江,佳木斯,大庆,鹤岗,哈尔滨,白城,白山,辽源,吉林,葫芦岛,铁岭,盘锦,阜新,锦州,本溪,鞍山,沈阳,锡林郭勒盟,通辽,乌海,吕梁,忻州,晋中,晋城,阳泉,太原,廊坊,承德,保定,邯郸,唐山,宁夏,甘肃,西藏,贵州,重庆,广西,湖南,河南,江西,安徽,江苏,黑龙江,辽宁,山西,天津,四平,内蒙古,吴忠,果洛,西宁,定西,商洛,西安,那曲,黔南州,巴中,乐山,贺州,防城港,东莞,河源,常德,衡阳,咸宁,宜昌,濮阳,新乡,洛阳,菏泽,临沂,威海,济宁,枣庄,青岛,吉安,鹰潭,萍乡,南昌,龙岩,漳州,三明,福州,池州,巢湖,阜阳,铜陵,淮南,台州,绍兴,温州,杭州,泰州,扬州,淮安,南通,常州,无锡,大兴安岭,黑河,七台河,伊春,双鸭山,鸡西,齐齐哈尔,延边,松原,通化,长春,朝阳,辽阳,营口,丹东,抚顺,大连,阿拉善盟,兴安盟,乌兰察布,巴彦淖尔,呼伦贝尔,鄂尔多斯,赤峰,#包头,呼和浩特,临汾,运城,朔州,长治,大同,衡水,沧州,张家口,邢台,秦皇岛,石家庄,青海,陕西,云南,四川,海南,广东,湖北,山东,福建,浙江,上海,吉林,河北,北京