0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

VC下的PLC关于数据采集管理系统的设计与研究

电子设计 作者:工程师之余 2018-10-08 10:27 次阅读

引 言

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

1 现场需求描述

车间有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所示。

VC下的PLC关于数据采集管理系统的设计与研究

3 上位机软件的实现

3.1 通信部分的实现

3.1.1 功能描述

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

VC下的PLC关于数据采集管理系统的设计与研究

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控件进行读写前,必须先初始化该控件的一些属性,串口初始化代码如下:

VC下的PLC关于数据采集管理系统的设计与研究

该程序中使用事件驱动(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所示。

VC下的PLC关于数据采集管理系统的设计与研究

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

(1)发送命令码

VC下的PLC关于数据采集管理系统的设计与研究

VC下的PLC关于数据采集管理系统的设计与研究

VC下的PLC关于数据采集管理系统的设计与研究

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

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

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

3.2 查询打印部分的实现

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

VC下的PLC关于数据采集管理系统的设计与研究

3.2.1 VC与SQL Server 2000的连接

该系统中VC通过ADO访问数据库,ADO是最新的数据库访问技术,由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来实现连续打印多张报告单。

结 语

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    4972

    文章

    12219

    浏览量

    454675
  • VC
    VC
    +关注

    关注

    1

    文章

    112

    浏览量

    88804
  • 上位机软件
    +关注

    关注

    0

    文章

    8

    浏览量

    3115
收藏 人收藏

    评论

    相关推荐

    基于USB数据采集系统研究与设计--ResearchandDesignofDataAequisitio

    基于USB数据采集系统研究与设计--ResearchandDesignofDataAequisitio信息技术与电子技术的迅猛发展,使得计算机和外围设备也得到飞速发展和应用,在科学研究
    发表于 06-10 00:57

    DSP的FPGA的高速数据采集系统研究与设计

    DSP的FPGA的高速数据采集系统研究与设计,大家可以看看
    发表于 04-03 21:23

    关于模拟数据采集设计的研究

    关于模拟数据采集设计的研究
    发表于 05-10 06:33

    MES系统数据采集的特点有哪些?

    。  MES系统数据收集的概述:实现生产数据的实时采集,存储,集中管理数据分析。  MES
    发表于 02-21 10:58

    基于总线的数据采集系统的开发研究

    数据采集在信号处理系统中占有重要的地位,它是联系前端和后端的桥梁,数据采集系统采集精度、稳定性以及采集
    发表于 08-28 17:32 7次下载

    Matlab和VC混合编程的DSP数据采集系统

    设计了基于Matlab 和VC 混合编程的DSP 数据采集系统,实现了在Matlab 平台上控制和操作DSP 目标板进行数据采集,并把采集
    发表于 01-25 14:43 50次下载

    基于VC++ 6.0的高速串口通信数据采集系统

    VC++6.0中利用MSComm控件实现串口通信时实时性较差,系统资源利用不足,无法满足高速串口数据采集软件的编程要求.针对高速串口数据采集软件的设计要求,提出了基于多线程技术和自
    发表于 03-02 14:28 100次下载

    基于VC++的数据采集监控系统设计

    本内容介绍了基于VC++的数据采集监控系统设计
    发表于 06-09 17:53 56次下载
    基于<b class='flag-5'>VC</b>++的<b class='flag-5'>数据采集</b>监控<b class='flag-5'>系统</b>设计

    VC串口通信的数据采集系统设计

    VC++6.0中利用MSComm控件实现串口通信时实时性较差,系统资源利用不足,无法满足高速串口数据采集软件的编程要求.针对高速串口数据采集软件的设计要求,提出了基于多线程技术和自定
    发表于 11-09 15:15 1742次阅读
    <b class='flag-5'>VC</b>串口通信的<b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>设计

    基于富因特网应用的EAST数据采集管理系统_杨育

    基于富因特网应用的EAST数据采集管理系统_杨育
    发表于 03-17 09:42 0次下载

    基于Matlab和VC混合编程的DSP数据采集系统

    基于Matlab和VC混合编程的DSP数据采集系统
    发表于 10-20 09:31 4次下载
    基于Matlab和<b class='flag-5'>VC</b>混合编程的DSP<b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>

    PLC数据采集如何实现?PLC数据采集网关怎么来选?

    工业4.0的大潮中,很多应用都是由上位机、云来实现,那么PLC数据采集是最基本的前提条件之一。PLC数据采集如何实现?目前主流的PLC
    的头像 发表于 08-10 16:07 1556次阅读
    <b class='flag-5'>PLC</b><b class='flag-5'>数据采集</b>如何实现?<b class='flag-5'>PLC</b><b class='flag-5'>数据采集</b>网关怎么来选?

    海水淡化设备plc数据采集监控运维系统

    随着全球水资源的日益紧张,海水淡化成为解决水资源短缺问题的重要途径。而在海水淡化过程中,PLC数据采集监控运维系统发挥着举足轻重的作用。本文将介绍海水淡化设备PLC
    的头像 发表于 09-25 17:12 356次阅读

    plc数据采集模块的缺点 plc数据采集模块与数据采集卡的区别

    PLC(可编程逻辑控制器)数据采集模块是用于连接传感器、执行器和机器设备,收集实时数据的设备。虽然PLC数据采集模块在工业自动化领域得到了广
    的头像 发表于 01-19 14:20 438次阅读

    PLC远程监控与数据采集系统的原理及组成

    PLC远程监控与数据采集系统的原理及组成 PLC远程监控与数据采集系统是一种可以远程监控和
    的头像 发表于 01-22 16:46 373次阅读
    <b class='flag-5'>PLC</b>远程监控与<b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>的原理及组成