关于WinCC与Oracle连接以及数据交互的研究与应用
2016-10-18杨少霞李蒙蒙唐海林游晓航何宏宏
杨少霞,李蒙蒙,唐海林,游晓航,何宏宏
(1.北京机械工业自动化研究所 自控中心,北京 100120;2.北京机械工业自动化研究所 机器人中心,北京 100102)
关于WinCC与Oracle连接以及数据交互的研究与应用
杨少霞1,李蒙蒙1,唐海林1,游晓航1,何宏宏2
(1.北京机械工业自动化研究所 自控中心,北京 100120;2.北京机械工业自动化研究所 机器人中心,北京 100102)
介绍了西门子监控软件WinCC与Oracle数据库连接以及数据交互的实现,软件平台和结构特点,特别是ODBC数据源的建立和使用,将生产管理层与现场设备层安全可靠地连接起来。
Oracle;数据库;WinCC;ODBC
0 引言
上海某钢厂原料输入系统大修改造,需要从L2系统接收任务数据,存储在Oracle数据库中,WinCC监控系统调用该任务数据,在监控系统中显示,并下发到PLC控制系统;同时WinCC从PLC采集的数据,需要存储Oracle数据库中,以备报表查询。如何使用ODBC数据源将Oracle 中存储的数据读写到PLC 中,将是本篇研究的重点。
1 ODBC数据源介绍
开放数据库连接(Open Database Connectivity,ODBC)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。开放数据库互连(ODBC)是Microsoft提出的数据库访问接口标准。开放数据库互连定义了访问数据库API的一个规范,这些API独立于不同厂商的DBMS,也独立于具体的编程语言。
WinCC想要访问Oracle数据库,必须通过ODBC管理器注册一个ODBC数据源,管理器根据数据源提供的位置、类型及Oracle ODBC驱动程序等信息,建立起ODBC与Oracle数据库的联系。这样,只要WinCC将数据源名提供给ODBC,ODBC就能建立起与数据库的连接。因此就可以实现通过ODBC将数据库中的数据读取到WinCC和PLC中的目的。
2 开发环境
在数据库服务器Win server 2012上安装数据库软件Oracle 11g 64位服务器端和专门面向Oracle数据库存储的程序单元的集成开发环境PLSQL Developer v10。在需要访问数据库的本地计算机,安装西门子的WinCC 7.3 sp1外,还需要安装Oracle客户端oracle 10g 32位,用以在本机配置ODBC数据源管理器。系统软硬件开发环境如表1所示。
表1 系统软硬件组成
3 建立ODBC与Oracle的连接
1)配置Oracle本地服务名
在oracle客户端配置好与数据库服务器的本地连接。在D:Oracleproduct10.1.0Client_1NETWORK ADMIN nsnames.ora文件中增加如下配置即可:
2)建立ODBC数据源
在32位操作系统下建立ODBC数据源时,找到控制面板管理工具“数据源(ODBC)”,双击,弹出窗口ODBC数据源管理器,在“系统DSN”中单击“添加”,出现驱动程序选择窗口,选择Microsoft ODBC for Oracle,此时弹出数据源设置对话框。填写相应参数,包括数据源名、用户名、端口号和全局数据库名。
本文客户端是win7 64位旗舰版的操作系统,依次打开“控制面板 ->系统安全 ->管理工具 ->数据源(ODBC) ->用户DNS/系统DNS ->添加”发现已安装的SQL Server,MySQL有相应驱动,但没有Oracle驱动。所以不能用控制面板里的ODBC数据源进行配置,要运行c:windowssysWOW64odbcad32.exe进行ODBC数据源建立。
图1 ODBC数据源管理器界面
点击“添加”按钮,显示如图2所示界面。
图2 添加数据源界面
在如上界面中,驱动程序列表中,根据本机环境不同,有可能会出现两个Oracle的数据源驱动程序,要选择Microsoft ODBC for Oracle,在如下操作界面输入相应的连接参数:
数据源名称:可自定义,用于在编程代码中使用。
用户名称:需要和数据库的管理员取得。
服务器:之前oracle客户端配置的服务名ORCL_BG。
图3 参数输入
3)应用Excel测试Oracle的ODBC数据源创建是否成功
打开Excel 2010,单击“数据”“自其他来源”“来自数据连接向导”,出现“选择数据源”对话框,选择ODBC DSN,点击下一步,然后选择配置好的数据源ORCL_BG,点击下一步,输入用户名对应的密码(用户名为bguser,密码为bguser),测试连接是否成功。成功后,选择表格对话框,选择表CODE_ COMPANY,点击完成,将表CODE_COMPANY中的数据读取到Excel中。本部分测试工作完成后,则可以专心WinCC脚本程序的开发工作了。
4 WinCC与ODBC进行通讯
ODBC数据源定义完成后,在WinCC需要点击的按钮触发脚本中编写VBS脚本程序进行测试:
再次重申本文客户端是Win7 64位操作系统,而我们的Oracle客户端使用的是Oracle 10g 32位的安装软件,所以要特别注意WinCC 7.3软件的安装路径,默认安装在Program Files(x86)文件夹下,此时使用建立好的ODBC数据源,在WinCC中通过VBS脚本读写ODBC数据源,当脚本程序编制完成后,运行该画面,发现数据库中并没有数据的增加,监测到执行到lconn.Open这条语句时,提示连接ODBC数据源失败。这是因为WinCC安装路径下的括号造成的,此时更换WinCC安装路径到Program Files文件夹下,再次运行该画面,点击“插入数据”按钮,则查询到数据库中增加一条数据,WinCC写入数据到Oracle数据库成功。
5 结束语
本文通过使用ODBC数据源将WinCC和Oracle数据库进行连接,并实现了数据交互(写入和读取),将企业生产管理层(L2系统传来的数据)与现场设备层(PLC等)安全可靠地连接起来,以备企业报表查询统计相关数据。
[1] 姜建芳.西门子WinCC组态软件工程应用技术[M].机械工业出版社,2015.8.
[2] Richard Niemiec.Oracle Database 11gR2性能调整与优化[M].清华大学出版社,2013,12.
Research and application of winCC and Oracle connection and dataexchange
YANG Shao-xia1,LI Meng-meng1,TANG Hai-lin1,YOU Xiao-hang1,HE Hong-hong2
TP29
A
1009-0134(2016)09-0146-03
2016-08-17
杨少霞(1977 -),女,山东烟台人,工程师,硕士,主要从事制造执行系统MES软件的研究与开发。