一种读写PLC数据的方法和装置制造方法及图纸

技术编号:17969682 阅读:48 留言:0更新日期:2018-05-16 10:51
本发明专利技术公开了一种读写PLC数据的方法,包括:获取已配置的需要读写的数据点信息;按数据块编号对已获取的所有数据点信息进行分组;对各分组的数据点信息按照PLC数据开始地址进行排列;对各组数据点信息按预设规则进行分区,保证各区的数据密度D满足分区密度要求;使用Sharp7,在S7MultiVar中添加各个分区,加入读写队列,执行读写命令。本发明专利技术对获取的需要读写的数据点信息进行分组、分区,通过设置数据密度D的方式找到地址连在一起的数据点信息,可以实现数据的批量读写,极大提高了读写效率。另外,本发明专利技术还具有低成本、编程与配置简单、占用系统资源小且程序移植灵活等特点。本发明专利技术还公开了一种读写PLC数据的装置。

【技术实现步骤摘要】
一种读写PLC数据的方法和装置
本专利技术属于自动化控制领域,具体涉及一种读写PLC数据的方法和装置。
技术介绍
由于PLC具有可编程,控制稳定性好的优点,其被广泛应用于工业领域。在大型的工业自动化控制中,往往采用分级控制,下级使用PLC,主要用于顺序控制、逻辑控制等,上级使用上位机,主要用于数据储存、报表分析、工艺优化等。二者之间采用高速以太网相连进行数据通信。西门子PLC在大型自动化系统中占有率非常高,为此采用上位机读写西门子PLC数据是一个经常使用到的技术。目前主流的技术包括:(1)基于OPC协议;(2)通过TCP/IP协议,通过Socket连接进行报文通讯。其中技术(1)需要在上位机上需要安装OPCServer,其价格昂贵,且编程与配置复杂,且占用系统资源比较大,移植不灵活。技术(2)需要在PLC上进行专用的通讯编程,有一定技术门槛,另外双方约定好通讯报文后,后期改动比较复杂,程序不够灵活。有鉴于此,现有技术提出了采用开源Sharp7组件实现上位机读写PLC数据的方法:直接利用现有的S7Client相关函数实现上位机对PLC的数据读取。包括:ConnetTo(IpAddress,Rack,Slot):连接到目标PLCReadArea(Area,DBNumber,Start,Amount,WordLen,byte[]Buffer):读取数据WriteArea(Area,DBNumber,Start,Amount,WordLen,byte[]Buffer):写入数据Disconnect():关闭连接上述方法虽然成本低廉、无需编程、配置简单、占用系统资源小且程序移植灵活,但是其读写速度依然较慢,不能实现高效的读写。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的是提供一种读写PLC数据的方法,用于上位机和西门子PLC通信中,在保证低成本、编程与配置简单、占用系统资源小且程序移植灵活等特点的同时,还具有快速读写的特点。为达到以上目的,本专利技术采用的技术方案是:一种读写PLC数据的方法,包括以下步骤:S01,获取已配置的需要读写的数据点信息,其中所述数据点信息至少包括:ID号、数据块编号、PLC数据开始地址、PLC数据类型以及PC数据类型;S02,按数据块编号对已获取的所有数据点信息进行分组;S03,对各分组的数据点信息按照PLC数据开始地址进行排列;S04,对各组数据点信息按预设规则进行分区,保证各区的数据密度D满足分区密度要求;S05,使用Sharp7,在S7MultiVar中添加各个分区,加入读写队列,执行读写命令。进一步的,所述分区密度要求包括:各区的分区密度D不小于预设的最小密度Dmin,计算数据密度D的方法包括:D=C/L其中,C表示区内所有配置占用的字节数;L表示区总长度。进一步的,对各组数据进行分区的方法包括:若一组数据中包含N条数据点信息,则依次判断前N-M条数据点信息是否满足所述分区密度要求,若满足则将对应的数据点信息配置成一个组,其余的信息重新按照分区方法进行判断,其中N为正整数,M的值从0取到N-1。进一步的,在S7MultiVar中添加各个分区,加入读写队列后,还包括以下步骤:若需要读取PLC数据,则从缓冲区获得所有区的字节流,采用Sharp7根据PLC数据类型得到对应的数据,并转换为PC数据类型,然后再执行读命令;或者,若需要写入PLC数据,则将PC数据类型转化为字节流,然后再执行写命令,将字节流写入缓冲区。进一步的,对各分组的数据点信息按照PLC数据开始地址进行升序或降序排列。相应的,本专利技术还公开了一种读写PLC数据的装置,包括信息获取模块、信息分组模块、信息排列模块、信息分区模块、信息读写模块,其中:信息获取模块,用于获取已配置的需要读写的数据点信息,其中所述数据点信息至少包括:ID号、数据块编号、PLC数据开始地址、PLC数据类型以及PC数据类型;信息分组模块,用于按数据块编号对已获取的所有数据点信息进行分组;信息排列模块,用于对各分组的数据点信息按照PLC数据开始地址进行排列;信息分区模块,用于对各组数据点信息按预设规则进行分区,保证各区的数据密度D满足分区密度要求;信息读写模块,用于使用Sharp7,在S7MultiVar中添加各个分区,加入读写队列,执行读写命令。本专利技术与现有技术相比的有益效果在于:本专利技术对获取的需要读写的数据点信息按照预定义的规则进行分组、分区,即通过设置数据密度D的方式找到地址连在一起的数据点信息,可以实现数据的批量读写,极大提高了读写效率。另外,本专利技术基于免费的Sharp7组件,无需采购昂贵的OPCServer就能与PLC自由通信,节省了成本。并且本专利技术无需对PLC端进行任何编程,系统占有率低,上位机就可以读写PLC数据,这样在上位机开发的系统能更灵活。附图说明图1是本专利技术一种读取PLC的读写方法流程图。图2是本专利技术一种读取PLC的读写装置的结构示意图。具体实施方式为了使本专利技术的目的、技术方案以及优点更加清楚明白,下面结合实施例进行进一步详细说明。应该理解的是,此实施例仅仅是本专利技术应用的一个方面,并不用于限定本专利技术。在一些实施例中,图1示出了一种读取PLC的读写方法,包括以下步骤:S101,获取已配置的需要读写的数据点信息,其中所述数据点信息包括:ID号、数据块编号、PLC数据开始地址、PLC数据类型、PC数据类型等。当PLC数据类型为Bit时,还包括Remark字段。数据点信息的具体内容如表1所示。表1序号字段名称说明1Id唯一编号,实施例选用自动生成的GUID。2DBNumber数据块编号3StartPLC数据开始地址4PLCDataTypePLC数据类型5PCDataTypePC数据类型6Remark仅当PLC数据类型为Bit时,此处填第几位其中PLCDataType包括Bit,Byte,Char,Word,Int,DWord,DInt,Real。其占用的字节数分别是1/8,1,1,2,2,4,4,4。其中PCDataType包括bool,char,short,int,float等。S102,按数据块编号对已获取的所有数据点信息进行分组。S103,对各分组的数据点信息按照PLC数据开始地址进行排列。比如按照升序或降序排列。S104,对各组数据点信息按预设规则进行分区,保证各区的数据密度D满足分区密度要求。数据密度D是衡量数据地址是否连在一起的指标,为了实现数据点信息的批量读取,需要将地址连在一起的数据点信息分为一组。数据密度D的最小阈值Dmin必须小于1。经过多次试验,数据密度D的最小阈值Dmin优选为0.49。计算数据密度D的公式(1)如下所示:D=C/L(1)其中,C表示区内所有配置占用的字节数;L表示区总长度。可以理解的,当C为小数时(PLC数据类型包括Bit),其值选取为大于它的最小正整数。对于单个数据点信息组成的区,其数据密度为1。对各组数据进行分区的方法包括:若一组数据中包含N条数据点信息,则依次判断前N-M条数据点信息是否满足所述分区密度要求,若满足则将对应的数据点信息配置成一个组,其余的信息重新按照分区方法进行判断,其中N为正整数,M的值从0取到N-1。现举出一列做更详细的说明。比如,在某钢厂,待读取的PLC型本文档来自技高网
...
一种读写PLC数据的方法和装置

【技术保护点】
一种读写PLC数据的方法,其特征在于,包括以下步骤:S01,获取已配置的需要读写的数据点信息,其中所述数据点信息至少包括:ID号、数据块编号、PLC数据开始地址、PLC数据类型以及PC数据类型;S02,按数据块编号对已获取的所有数据点信息进行分组;S03,对各分组的数据点信息按照PLC数据开始地址进行排列;S04,对各组数据点信息按预设规则进行分区,保证各区的数据密度D满足分区密度要求;S05,使用Sharp7,在S7MultiVar中添加各个分区,加入读写队列,执行读写命令。

【技术特征摘要】
1.一种读写PLC数据的方法,其特征在于,包括以下步骤:S01,获取已配置的需要读写的数据点信息,其中所述数据点信息至少包括:ID号、数据块编号、PLC数据开始地址、PLC数据类型以及PC数据类型;S02,按数据块编号对已获取的所有数据点信息进行分组;S03,对各分组的数据点信息按照PLC数据开始地址进行排列;S04,对各组数据点信息按预设规则进行分区,保证各区的数据密度D满足分区密度要求;S05,使用Sharp7,在S7MultiVar中添加各个分区,加入读写队列,执行读写命令。2.如权利要求1所述的方法,其特征在于,所述分区密度要求包括:各区的分区密度D不小于预设的最小密度Dmin,计算数据密度D的方法包括:D=C/L其中,C表示区内所有配置占用的字节数;L表示区总长度。3.如权利要求1所述的方法,其特征在于,对各组数据进行分区的方法包括:若一组数据中包含N条数据点信息,则依次判断前N-M条数据点信息是否满足所述分区密度要求,若满足则将对应的数据点信息配置成一个组,其余的信息重新按照分区方法进行判断,其中N为正整数,M的值从0取到N-1。4.如权利要求1所述的方法,其特征在于,在S7MultiVar中添加各个分区,加入读写队列后,还包括以下步骤:若需要读取PLC数据,则从缓冲区获得所有区的字节流,采用Sharp7根据PLC数据类型得到对应的数据,并转换为PC数据类型,然后再执行读命令;或者,若需要写入PLC数据,则将PC数据类型转化为字节流,然后再执行写命令,将字节流写入缓冲区。5.如权利要求1所述的方法,其特征在于,对各分组的数据点信息按照PLC数据开始地址进行升序或降序排列。6.一种读写PLC数据的装置,其特征在于,所述装置包括:信息获取模块、信息分组模块、信息排...

【专利技术属性】
技术研发人员:王志军
申请(专利权)人:中冶南方工程技术有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1