一种可编程序控制器与上位机之间的数据通讯方法

文档序号:6329446阅读:286来源:国知局
专利名称:一种可编程序控制器与上位机之间的数据通讯方法
技术领域
本发明涉及一种可编程序控制器与上位机之间的数据通讯方法。
技术背景
上位机软件WinCC和可编程序控制器广泛运用于工业控制领域。虽然可编程序控制器的数据存储周期可达1ms,但WinCC的最短数据归档周期却为500ms,对于需要高速采集的数据,WinCC无法满足要求。目前,解决此问题的方法主要是选用更高档次的可编程序控制器,或是编写独立的数据处理软件,导致成本提高,开发复杂。发明内容
本发明的所要解决的技术问题是提供一种可编程序控制器与上位机之间的数据通讯方法,该可编程序控制器与上位机之间的数据通讯方法采用最简便的方法低成本地实现高速通信。
为解决上述技术问题,本发明所采用的技术方案为
一种可编程序控制器与上位机之间的数据通讯方法,在可编程序控制器中,将现场实时数据每隔时间Tl存放于可编程序控制器的数据块中,通过工业现场总线将该存放的现场实时数据以数据包的形式传输至上位机;
其中Tl小于可编程序控制器与上位机之间的默认数据通讯周期;
在上位机端,对接收到的数据包进行解包,并将解包后的数据进行处理;完成可编程序控制器与上位机之间的数据通讯。
在可编程序控制器中,采用定时中断方式对现场实时数据进行存储。
所述的处理为存储,或者直接将解包后的数据进行显示、绘图或查询。
所述的数据包的形成过程即数据打包过程为在数据块中建立长度为2N字节的整型数组变量,其中前2N-2个字节用来存储实时工业现场数据即整形数据,最后两个字节用来存储最新存入数据的位置编号;每一次数据存储时,更新位置编号和实时工业现场数据,N为建立的数据块所能存放整型数据的个数。
数据包进行解包即数据解包的过程为在上位机软件中定义一种原始数据变量, 将其地址和大小设置成与可编程序控制器里的数据块相一致,再建立一个总长度为2N字节的整型变量数组;在上位机软件中设置全局脚本的触发周期为T2,将可编程控制器中的数据块采集到上位机中,将获取的数据赋给所述的整形变量数组。
所述的上位机软件为WinCC软件,WinCC软件通过调用系统支持的GetTagRaw函数,将可编程控制器中的数据块采集到WinCC中,并把GetTagRaw函数的返回值即解包后的数据赋给建立好的变量数组;且Tl = M*T2 ;M为T2时间的采样次数;M和N满足关系式M < N-I。
WinCC以原始数据变量的形式一次从可编程序控制器采集一批数据,这样就获取了完整的高速数据,间接地实现了高速通信。
在WinCC全局脚本中,数据解包后通过比较本次位置编号变量值A和上次数据解包得到的并已存在上位机中的位置编号变量值B,得出两次采集时间间隔内的有效数据的位置区间;如果A大于B,则在上位机中只存储解包后数组中第B到第A个数据,如果A小于B,则在上位机中只存储第B到N-I个、第1到第A个数据;建立文本文档数据文件,根据系统日期以年月日的格式命名文件,数据每次存储都按“当前时间一时分秒毫秒/ 换行/第一个数据/换行/第二个数据/换行/……最后一个数据/换行”的格式存储。
在WinCC中组态数据显示画面,添加函数功能控件,调用ktProp函数设置函数功能控件的标题、横纵坐标范围、线条颜色。通过修改“data X”、“data Y”属性,将获得的数据用描点连线的方式在控件中显示出来。
在WinCC中组态输入输出域,用来接收用户的输入的查询条件,即数据起始查询时间、查询的数据长度。组态查询按钮,用来触发C语言查询脚本。在脚本中读入查询条件,通过fseek函数浏览相应数据文件,将浏览到的时间与查询起始时间比较,如果不满足查询条件,则继续往下浏览,如果满足查询条件,则开始将所查询数据取出赋给指针变量, 利用函数功能控件进行显示。
Tl 和 T2 满足如下关系式TlXM = T2,Tl 彡 lms,T2 彡 250ms,TlS T2。其中,Tl 为可编程序控制器中循环中断组织块的中断周期,T2为WinCC上位机软件全局脚本的触发周期,M为T2时间内PLC所采集到的新数据的个数,T1、M、T2均为整数,
M和N满足如下关系式M< N-I。其中,M为WinCC上位机软件全局脚本的触发周期内PLC所采集到的新数据的个数,N为建立的数据块所能存放整型数据的个数。
本发明的有益效果
本发明的可编程序控制器与上位机之间的数据通讯方法,充分利用了 WinCC软件的开放性,最大限度地使用了系统本身的功能。通过调整可编程序控制器循环中断的周期和WinCC中全局脚本的触发周期,本发明可以使可编程序控制器和WinCC的通信周期由最短的500ms降至IOms不等,并通过编写程序实现了数据存储、显示和查询,成功地满足了有些数据需要高速采集的要求。该方法不需要额外的软硬件支持,便可实现可编程序控制器和上位机WinCC软件间的数据高速通信、存储、显示和查询,易于实施,无线增加硬件成本, 软件编程也简单,即能低成本的完成单片机与上位机之间的高速通信。


图1为硬件连接示意图2为总体技术方案示意图3为可编程序控制器中数据连续存储流程图4为WinCC中数据存储显示流程图;具体实施方式
以下结合附图对本发明作进一步说明。
实施例1
如图1-4所示,一种基于可编程序控制器和上位机软件的高速通信方法,具体步骤是
1.在可编程序控制器中,建立循环中断组织块0B35,设置其中断周期为10ms。建立数据块DB10,在数据块中建立整型数组变量val[l.. 101],val[l]至val[100]用来存储工业现场数据,val[101]用来存储最新存入数据的位置编号。编写程序如图2所示,先根据上位机传来的控制信号判断是否需要开启高速通信功能,若开启则进行数据圆整、缩短字节的处理,通过寄存器间接寻址的方式,将数据连续存入数据块DBlO中,最后更新数据位置编号变量。
2.在上位机软件WinCC中,建立长度为202字节的原始数据变量gstag,设置其地址与数据块DBlO相对应。在WinCC中编写全局脚本,设置触发周期为500ms。流程图如图3所示,建立一个总长度为202字节的整型变量数组,通过调用系统支持的GetTagRaw 函数,将PLC中的数据块采集到WinCC中,并把GetTagRaw函数的返回值(解包后的数据) 赋给建立好的变量数组。通过比较本次位置编号变量值A (数组的最后一个整型变量)和上次数据解包得到的并已存在上位机中的位置编号变量值B,可以得出两次采集时间间隔内的有效数据的位置区间。如果A大于B,则在上位机中只存储解包后数组中第B到第A 个数据,如果A小于B,则在上位机中只存储第B到第N-I个、第1到第A个数据。建立文本文档数据文件,根据系统日期以“20110627”的格式命名文件,数据每次存储都按“时间 (17:12:50:500)即时、分、秒、毫秒,这里的数值为一个实例\n(换行)第一个数据\n(换行)……最后一个数据\n”的格式存储。每天采集的数据以追加的方式存储在同一个文件中,不同日期的数据存储在不同的文件中。这样,上位机每隔500ms就可采集到50个数据, 间接地实现了高速通信,即每IOms —个数据。
3.在WinCC中组态数据显示画面,添加函数功能控件,调用ktProp函数设置函数功能控件的标题、横纵坐标范围、线条颜色。通过修改“data X”、“data Y”属性,将获得的数据用描点连线的方式在控件中显示出来。
4.在WinCC中组态输入输出域,用来接收用户的输入的查询条件,即数据起始查询时间、查询的数据长度。组态查询按钮,用来触发C语言查询脚本。在脚本中读入查询条件,通过fseek函数浏览相应数据文件,将浏览到的时间与查询起始时间比较,如果不满足查询条件,则继续往下浏览,如果满足查询条件,则开始将所查询数据取出赋给指针变量, 利用函数功能控件进行显示。
通过调整可编程序控制器循环中断的周期和WinCC中全局脚本的触发周期,本发明可以使可编程序控制器和WinCC的通信周期由最短的500ms降至IOms不等,并通过编写程序实现了数据存储、显示和查询,成功地满足了有些数据需要高速采集的要求。
权利要求
1.一种可编程序控制器与上位机之间的数据通讯方法,其特征在于,在可编程序控制器中,将现场实时数据每隔时间Tl存放于可编程序控制器的数据块中,通过工业现场总线将该存放的现场实时数据以数据包的形式传输至上位机;其中Tl小于可编程序控制器与上位机之间的默认数据通讯周期;在上位机端,对接收到的数据包进行解包,并将解包后的数据进行处理;完成可编程序控制器与上位机之间的数据通讯。
2.根据权利要求1所述的可编程序控制器与上位机之间的数据通讯方法,其特征在于,在可编程序控制器中,采用定时中断方式对现场实时数据进行存储。
3.根据权利要求1所述的可编程序控制器与上位机之间的数据通讯方法,其特征在于,所述的处理为存储,或者直接将解包后的数据进行显示、绘图或查询。
4.根据权利要求1-3任一项所述的可编程序控制器与上位机之间的数据通讯方法,其特征在于,所述的数据包的形成过程即数据打包过程为在数据块中建立长度为2N字节的整型数组变量,其中前2N-2个字节用来存储实时工业现场数据即整形数据,最后两个字节用来存储最新存入数据的位置编号;每一次数据存储时,更新位置编号和实时工业现场数据,N为建立的数据块所能存放整型数据的个数。
5.根据权利要求4所述的可编程序控制器与上位机之间的数据通讯方法,其特征在于,数据包进行解包即数据解包的过程为在上位机软件中定义一种原始数据变量,将其地址和大小设置成与可编程序控制器里的数据块相一致,再建立一个总长度为2N字节的整型变量数组;在上位机软件中设置全局脚本的触发周期为T2,将可编程控制器中的数据块采集到上位机中,将获取的数据赋给所述的整形变量数组。
6.根据权利要求5所述的可编程序控制器与上位机之间的数据通讯方法,其特征在于,所述的上位机软件为WinCC软件,WinCC软件通过调用系统支持的GetTagRaw函数,将可编程控制器中的数据块采集到WinCC中,并把GetTagRaw函数的返回值即解包后的数据赋给建立好的变量数组;且Tl = M*T2 ;M为T2时间的采样次数;M和N满足关系式M < N-I。
7.根据权利要求6所述的可编程序控制器与上位机之间的数据通讯方法,其特征在于,在WinCC全局脚本中,数据解包后通过比较本次位置编号变量值A和上次数据解包得到的并已存在上位机中的位置编号变量值B,得出两次采集时间间隔内的有效数据的位置区间;如果A大于B,则在上位机中只存储解包后数组中第B到第A个数据,如果A小于B,则在上位机中只存储第B到N-I个、第1到第A个数据;建立文本文档数据文件,根据系统日期以年月日的格式命名文件,数据每次存储都按“当前时间一时分秒毫秒/换行/ 第一个数据/换行/第二个数据/换行/……最后一个数据/换行”的格式存储。
全文摘要
本发明公开了一种可编程序控制器与上位机之间的数据通讯方法,在可编程序控制器中,通过循环中断将数据打包存放于可编程序控制器数据块中,数据包通过工业现场总线传输至上位机系统;在上位机winCC软件中,对数据进行解包,利用文本文件存储数据,并利用函数功能控件实时显示,编写脚本查询数据。该方法不需要额外的软硬件支持,便可实现可编程序控制器和上位机winCC软件间的数据高速通信、存储、显示和查询。
文档编号G05B19/418GK102508465SQ20111030155
公开日2012年6月20日 申请日期2011年10月8日 优先权日2011年10月8日
发明者舒招强, 谭建平, 陈晖 申请人:中南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1