通过ODBC连接Oracle,结合kepware的datalogger可实现PLC数据实时采集入库
准备
instantclient-basic
或instantclient-basiclite
,两者区别具体可查看官方描述instantclient-odbc
下载地址:https://www.oracle.com/cn/database/technologies/instant-client/downloads.html
根据需求下载对应版本对应平台即可,这里是结合kepware使用,kep只支持32位,故下载32位版本
这里有个小插曲,原本服务器数据库版本是19c,对应下载的19.5版本的odbc,但是连接失败了,改为最新版21.6.0.0.0,则一下就成功了,所以,配置完成,通信不起,可能是client版本不对,换个版本试试
根据官方描述,instantclient-basic
依赖Visual Studio 2017
下载地址:https://aka.ms/vs/17/release/vc_redist.x86.exe、https://aka.ms/vs/17/release/vc_redist.x64.exe
安装
- 先安装 vc ++ 环境
- 将两个zip包解压到同一个目录,这里解压到
C:\instantclient_21_6
,然后双击目录下odbc_install.exe
安装即可,无GUI,一闪而过,属正常现象
环境变量
名称 | 值 |
---|---|
NLS_LANG | SIMPLIFIED CHINESE_CHINA.ZHS16GBK |
ORACLE_HOME | C:\instantclient_21_6 |
配置tnsnames.ora
在C:\instantclient_21_6\network\admin
目录下新建一个tnsnames.ora
文件
# tnsnames.ora Network Configuration File: /opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL128 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.68.128)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
如果数据库是11g及以下,一般是SID,则把SERVICE_NAME = ORCL
换成SID = ORCL
即可
连接数据库
搜索 odbc 打开32位管理器
32位具体路径在:C:\Windows\syswow64\odbcad32.exe
进行相关配置,提示成功则表示配置完成
- 此处必须将配置放到 系统DSN tab下,否则kepware datalogger无法识别,会报错:未发现数据源名称并且未指定默认驱动程序
- TNS Service Name也支持直接配置URL的方式:
192.168.68.128:1521/ORCL