当前位置:主页 > 娱乐 > 明星 > 正文

WinCC高速数据采集归档的应用

未知 2019-07-11 10:53

1 引言

  simatic wincc是性能全面技术先进的西门子视窗控制中心。系统开放的hmi/scada软件和实时数据库是scada系统的核心技术。wincc5.1版本采用sysbase7.0进行数据的归档,支持sql结构化语言查询,wincc6.0版本采用sql2000进行数据的归档。归档数据用来存储获取的生产过程的设备状态信息、人员操作指令、与其它系统的通讯数据。s7-plcsim simulating modules由西门子公司推出,可以替代西门子硬件plc的仿真软件,控制程序无须plc硬件支持,可以直接调用仿真软件运行模拟硬件plc运行,适用于单cpu系统,除网络通讯、电源故障ob、fm功能之外,s7在线系统功能都可模拟实现。

2高速数据归档

  自动化控制系统响应的实时性决定了数据归档系统必须运行速度快,循环周期短。因为各种运行参数刷新变化快,速度为毫秒级,参数的变化不易被人为在线观察和辨别,同时由于时间的不可逆性,特定时间的系统运行情况不可以在线重复观察,系统的复杂性也决定了同一时间不可能观察到所有的参数。wincc实时归档数据库与s7-plcsim联合应用可实现对生产过程的运行再现,监控当时的设备状态与系统运行参数。wincc5.1最高刷新速度为250毫秒,普通归档记录为500毫秒,为了保证实时数据的精确记录,可以应用s7高速数据采集功能,其数据采集理论上可以达到1毫秒1次的采集记录精度。

  2.1s7-plcsim对工艺运行系统过程的模拟

  (1)可控性:仿真可以对系统循环运行周期加以控制,加大系统循环时间降低数据刷新频率,各运行参数刷新间隔扩大,使其能够被人为准确识别、判断。

  (2)可逆性:可对过去的时间段内程序运行情况、参数变数进行反复观察,时间点和时间段具有可选性。

  2.2采用visual basic作为设计语言

  采用visual basic作为设计语言,使用vb提供的ado控件与wincc归档数据库建立连接。

  (1)wincc5.1中以sybase7.0格式归档的数据,使用ado/odbc访问,连接wincc数据库字符串:msdasql.1;persist securityinfo=false;userid=用户名;datasource=归档数据库名称;mode=read;msdasql.1为提供数据库连接的程序,persist securityinfo=false表示连接上数据库后不需要保留登陆密码。读取指定数据值记录使用sql语句即可:select *from 表名 where字段查询条件。表名:pde#hqz#gas_pre组成方式如下pde:固有pde、归档名称hqz、变量名gas_pre,表结构:有三个字段:t,v, f ,t-时间、v-变量值、f-标志。用sql语言上面sql语句返回结果为记录形式,提取记录中所需要字段的数值。

  (2)以ado/wincc oledb访问wincc6.0中归档的数据,高速采集的数据以压缩归档的方式存储。连接wincc数据库字符串:provid-er=winccoledbprovider.1;catalog=工程运行数据库名称;datasource=。\wincc,查询过程值归档sql语句tag:r,`变量名1`,`起始时间`,`终止时间`where条件。使用ado/microsoft ole

  db访问wincc6.0中压缩归档的数据时,由于数据存储在varbinary数据类型中,使用普通sql语句不能读出其内容(可以读取非压缩归档数据),存储数据被wincc处理后,即使读出varbinar中数据,也不能被直接使用,只能使用winccoledb驱动,专用的tag:r指令。

  2.3s7prosim1控件

  s7-plcsim提供了s7prosim1控件,该控件用在visval basic中与s7-plcsim连接、交换数据。s7prosi-m1具有的功能属性:s7prosim1.a-utoconnec=true,设定s7prosim1与s7-plcsim连接;s7prosim1.sc-anmode=singlescan/continuouss-can,设定s7-plcsim工作方式,程序是否循环运行。s7prosim1具有的功能函数:s7prosim1.writeinputpoint(lbyteindex,lbitindex,vdata)向s7-plcsim传送输入映象区位数据,lbyteindex传入映象区启始字节位置,lbitindex数据在字节中位位置,vdata传入数据;s7prosim1.writeinputimage(lstartindex, vdata)向s7-plcsim传送输入映象区字节、整形、长整形数据,lbyteindex传入映象区启始字节位置,vdata为传入数据。

3windowsapi函数

  由于s7prosim1控件功能函数只提供了数字量数据传入,部分数据类型、数据地址无法传送,如:模拟量plc内部存储器数据,浮点、时间数据类型等。由于s7-plcsim是基于windows视窗系统的应用程序,这部分数据的传送可使用windowsapi函数,借用windows消息通过windows不同进程间交换数据的功能来完成数据的传送、交换。windows通过消息系统操作各种窗口,消息机理是windows的控制机理。windows中消息有以下两方面的用途:把消息传递给窗口程序,指出一个特定的事件,消息传递给一个窗口和控件,请求它执行特定的操作。使用windows消息功能,控制s7-plcsim中数据、地址输入控件执行特定的操作,来接收读取到的归档数据库中数据。用到的主要相关api函数及功能如下:

  hwnd=findwindow(vbnullstring,s7-plcsim- simview1)取得s7-plcsim程序进程句柄;取得s7-plcsim接收输入区数据、地址控件句柄;

  public function enumchildproc(byval hwnd as long, byval lparam as long) aslongdim id as longid=getdlgctrlid(hwnd) 读取s7-plcsim程序进程内控件id

  if id=213 then地址输入控件id=213,将句柄存入数组

  m(b)=hwnd

  b=b+1

  else

  if id=214 then数据输入控件id=214,将句柄存入数组

  n(c)=hwnd

  c=c+1

  end if

  enumchildproc=1

  endfunction

  把数据地址传送给s7-plcsim。

  sendmessage m(i), wm_sett-

  ext, 0,form2.text6.text

  postmessage m(i), wm_keyd-own, vk_return,0

  postmessage m(i), wm_k-

  eyup, vk_return, 0

  postmessage m(i),wm_ki-

  llfocus, 0, 0

  把数据值传送给s7-plcsim

  sendmessage n(i), wm_sett-

  ext,0, form2.text3.text

  postmessage n(i), wm_keydo-

  wn, vk_return,0

  postmessage n(i), wm_keyup, vk_return, 0

4 仿真程序运行时序

  plc仿真程序运行时序如附图所示。如果同一时间点数据发送完成需耗时tsend、读取耗时tread,plc仿真程序主循环耗时需tfact秒。为了保证同一时间点数据被同步刷新必须满足以下条件:

  tmin》tsend+tread

  tsub》tsend,

  tmin最大可为6秒(plc适用类型西门子400系列,西门子318),由于定时器的特殊性,其独立于主程序工作,所以加大主程序循环间隔时要考虑到该段时间对内定时器的影响,可按比例放大定时器的设定时间。plc程序一循环周期执行完毕后s7-plcsim给出程序执行完毕返回指令传递给数据接口软件,该标志用sendmessage(hwnd,wm_gettext,32,buf)读取;读取到标志后启动下一时间点数据传入。

5结束语

  设备运行历史过程的模拟再现,使用户可以方便的跟踪观察设备特定时间的运行状态,生产参数的变化,准确分析、处理系统运行中各种异常现象,保障生产的可靠运行。

标签