ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

KepserverEX连接MySQL从安装到跑通:ODBC与数据采集链路详解

KepserverEX连接MySQL从安装到跑通:ODBC与数据采集链路详解 简介Kepserver与MySQL数据库的对接方案面向工业自动化工程师、系统集成商以及需要将设备实时数据写入数据库的技术人员。压缩包内共1个PDF文档大小3.89MB。文档内容循序渐进先从MySQL安装与初始密码设置入手再到Navicat可视化管理工具的安装与离线破解然后说明ODBC 32位驱动必须正确部署的原因最后详细还原Kepserver连接MySQL的完整流程过程中特别强调了破解前需要停止所有相关服务、正确覆盖补丁文件等关键注意事项避免因文件占用或服务未停止造成失败。此外文档还补充了使用Excel批量导入数据到数据库的操作方法以及常见错误的排查思路基本覆盖了从零开始实现连接的全路径。目前已有2627人学习步骤与文字对照清晰适合需要快速落地、避免重复踩坑的实操型读者。1. Kepserver连接MySQL安装到跑通先把链路看清楚做工业数据采集的人迟早会碰上“Kepserver连接MySQL”这个需求PLC、OPC UA、Modbus 设备的数据采集上来之后总得落到业务数据库里MySQL 因为部署简单、生态好是很多产线项目的首选。但网上找的教程往往只讲了 Kepserver 怎么破解、MySQL 怎么装真正到了跑数据那一步就断掉了。这个资源好就好在它把整条链路串齐了KepserverEX 6.4 安装激活、MySQL 数据库部署、Navicat 可视化管理、ODBC 驱动选型、Excel 批量导入、最后在 Kepserver 里建通道建标签把数据接进来。适合做 SCADA 集成、MES 数据采集的工程师照着复现也适合刚入门想在本地搭一套“采集端 数据库”完整环境的新手。先说一个最容易翻车的结论Kepserver 是 32 位进程ODBC 驱动必须装 32 位这事在第四章展开。2. KepserverEX 6.4 安装与破解权限、服务和文件覆盖的先后顺序2.1 安装时选了“典型”之后还要确认示例文档KepserverEX 6.4 的安装包本身挺友好双击后会先出一个确认界面点 OK 进入向导后面一路“下一步”就行。安装类型建议选“典型”因为典型安装已经包含了 KepserverEX 的核心服务、OPC 客户端工具和快速客户端不用额外勾选别的组件。我一般会在“选择功能”那一步把“示例和文档”也勾上。这一步很多人会忽略觉得示例工程没用但实际上 KEPServerEX 自带的示例里就有 ODBC 相关的连接配置后面调 Kepserver 连 MySQL 时可以直接参考里面的通道参数总比自己瞎填强。安装完成后桌面和开始菜单会出现 KEPServerEX 的图标右下角任务栏也会常驻一个服务图标。注意这时候程序是自动启动的先不用管它继续看下面的授权处理。安装选的默认路径落在C:\Program Files (x86)\PTC\KEPServerEX 6.4\注意里面带(x86)这是 32 位程序目录这个细节后面要考。2.2 破解前必须停服务顺序错了就是“文件被占用”这个资源项目里最容易被初学者搞砸的就是破解补丁覆盖那一步。很多人双击补丁文件往安装目录一拖系统直接提示“文件被占用无法覆盖”然后以为是补丁有问题。其实原因是 Kepserver 的服务还在跑DLL 文件被进程锁死了。正确的破解顺序必须是“先退出程序再停服务最后覆盖文件”。具体说在电脑右下角任务栏右键点击 KEPServerEX 图标选择退出把 GUI 程序关掉。这一步只是退出界面服务未必停。打开任务管理器切到“服务”选项卡找到所有名字里带 KEPServerEX 的服务依次右键停止。确认所有 KEPServerEX 服务都变成“已停止”后再把补丁里的libutil.dll和libserver.dll覆盖到安装目录。关键点在第 2 步KEPServerEX 安装后通常不止一个服务常见的是KEPServerEX主服务和KEPServerEX License Manager授权服务。光停一个主服务不够License Manager 还在的话覆盖授权相关 DLL 依然会报占用。提示判断服务是否全停别只看任务管理器“服务”选项卡里的状态列最稳妥的办法是覆盖前把任务管理器“进程”选项卡里所有带 KEPServer 字样的进程全部结束掉。覆盖完再启动 KepserverEX打开后如果界面能正常出来、没有弹授权过期提示说明这一步过了。这个资源项目把破解步骤讲得很细但它真正的价值不在破解本身而是告诉你“服务、进程、文件占用”这三者的关系——这个顺序逻辑在以后换补丁、升级版本时一样适用。我在现场还遇到过一种情况补丁覆盖成功后KepserverEX 主界面能打开但 OPC Quick Client 连不上本地服务器。后来发现是覆盖时只停了主服务没停KEPServerEX Configuration服务DLL 实际上没替换成功。从那以后我的习惯是先重启一次电脑趁着没有任何 Kepserver 服务自启动的时候第一时间覆盖补丁成功率最高。3. MySQL 8.0 Navicat ODBC数据库侧的三件套准备3.1 MySQL 安装配置端口、密码策略和 Execute 提交MySQL 的安装包是向导式的第一次装的人最容易在“选择安装类型”那里迷路。这里要选“Custom”才能手动勾选组件。默认的“Developer Default”会装一堆用不上的东西比如 MySQL Router、Visual Studio 插件装了反而拖慢机器。Custom 模式下手动把 MySQL Server 和 MySQL Workbench 添加到右侧即可其他组件按需选。MySQL Server 是核心Workbench 是官方图形工具后面调试 SQL 会用到。安装进入配置阶段时有几个参数要当场定下来配置项推荐值说明端口3306默认值Kepserver 的 ODBC 连接串里要一致认证方式默认即可8.0 默认 caching_sha2_password后面 ODBC 连不上时再看这管理员密码自己定建议用强密码Kepserver 连接配置里要用服务名称MySQL80默认即可Windows 服务勾选自启动保证开机后 Kepserver 能连上数据库配置页最后有一个“Execute”按钮很多人以为只是“应用”按钮其实它是真正执行安装配置的动作。点完 Execute 后会逐个执行配置项旁边有进度条任何一个红❌都要停下来看日志不要直接下一步。我见过一批机器批量装 MySQL有一台 Execute 阶段报错“无法启动服务”排查半天是之前装过旧版 MySQL 没卸干净服务名冲突了。装完后桌面上会出现 MySQL Command Line Client 和 MySQL Workbench 的图标。命令行客户端可以用来快速验证安装是否成功输入密码后能进到mysql提示符就算成了。3.2 Navicat 安装与授权激活断网、Patch、请求码和激活码Navicat 在这个项目里承担的角色是可视化管理 MySQL建库、导数据、看表结构都比命令行方便。安装过程没什么特别之处接受条款一路下一步。接下来是这套资源里争议最大但也最容易被搜索到的一步授权激活。这个项目写得很直白断开网络、以管理员身份运行激活工具里的 NavicatCracker点 Patch 后再点 Generate 生成 Keygen 码。完整的激活流程是断开网络连接。打开 Navicat在“帮助—注册”里看到注册界面。运行激活工具点 Patch 给 Navicat 打补丁这会修改 Navicat 的 exe 文件。点 Generate 生成激活码先复制到 Navicat 注册界面的激活码栏里。点击“激活”如果提示需要手动激活就复制“请求码”回到激活工具生成对应的激活码再贴回 Navicat。这套流程里最容易翻车的点是“手动激活”那一步Navicat 新版激活时无论激活码对不对都先弹“无法激活是否手动激活”新手会以为激活失败。其实不是点手动激活后把请求码贴给激活工具重新生成的激活码才是正确格式直接贴回点激活就过了。提示授权激活这一类操作涉及软件版权问题项目里这么写是个人学习研究场景的处理办法正规生产环境请购买正版授权。从一线工程视角看Navicat 真正的价值在后面的“Excel 导入数据库”环节没有它手写LOAD DATA INFILE不仅格式容易错字段映射也不好调。所以装好 Navicat 不是终点是下一步的起点。3.3 ODBC 驱动必须是 32 位不能装 x64这是整个资源项目里最硬核也最容易被忽略的一个点原文用了加粗的强调语气“必须是 32 位驱动不能是 x64”。原因在于 KEPServerEX 6.4 是 32 位应用程序运行在 Windows 32 位兼容模式下它加载 ODBC 驱动时只能从 32 位 ODBC 驱动管理器里取驱动。如果你装了 64 位 MySQL Connector/ODBC在 Kepserver 的“选择 ODBC 驱动”下拉列表里死活看不到它——因为两个位数的环境根本隔离。ODBC 驱动装完之后验证和配置要在专门的 32 位 ODBC 数据源管理器里做。很多人直接打开控制面板里的“ODBC 数据源管理器(64位)”里面能看到驱动但用不了正确打开方式是运行(WinR)里输入 C:\Windows\SysWOW64\odbcad32.exe这个才是 32 位 ODBC 管理器。在这里新建一个“系统 DSN”选择刚刚安装的 MySQL ODBC 驱动填上主机地址127.0.0.1、端口3306、用户名和密码测试连接通过后Kepserver 那边才能引用到这个 DSN。这一步做错的现象很典型Kepserver 通道配置里能看到 ODBC 选项但设备列表里找不到 MySQL 驱动或者连接测试一直超时。先不要怀疑 Kepserver回头把 ODBC 位数核对一遍八成是这里的问题。4. Excel 批量导入到 MySQL先让数据进库再让 Kepserver 读表4.1 用 Navicat 导入向导建表字段类型和首行识别Excel 导入数据库是这个资源项目的后半段重点它的真实意图是先手工用 Excel 准备一批设备点位或历史数据快速导入 MySQL 形成表结构这样 Kepserver 连接 MySQL 后可以直接按表读数据省去逐条建标签的功夫。用 Navicat 导入 Excel 的路径是建好数据库连接后右键目标表选择“导入向导”文件类型选 Excel 文件然后选择要导入的 .xlsx 文件。导入向导里最关键的一步是“源文件选项”这里有三个坑要当场处理掉如果 Excel 第一行是列名要勾选“首行包含字段名”Navicat 才能把表头映射成字段。Excel 里的时间列到 Navicat 里可能被识别成文本要么在 Excel 里先把列格式设成时间要么导入后手动改字段类型。数字前导零会被丢掉比如点位编码0012导入后变成12这类字段必须先在 Excel 里转成文本格式。如果不用 Navicat也可以用 MySQL 自带命令导入效果一样-- 先建库建表 CREATE DATABASE IF NOT EXISTS kep_data CHARACTER SET utf8mb4; USE kep_data; -- 设备点位表tag_name 是文本value 是浮点ts 是采集时间 CREATE TABLE IF NOT EXISTS tag_values ( id INT AUTO_INCREMENT PRIMARY KEY, tag_name VARCHAR(64) NOT NULL, tag_value FLOAT, ts DATETIME ); -- 从 CSV 导入CSV 由 Excel 另存为导出 LOAD DATA LOCAL INFILE C:/temp/tag_values.csv INTO TABLE tag_values FIELDS TERMINATED BY , ENCLOSED BY LINES TERMINATED BY \n IGNORE 1 ROWS (tag_name, tag_value, ts);这段 SQL 里IGNORE 1 ROWS就是跳过 Excel 表头那一行FIELDS TERMINATED BY ,指定逗号分隔。用LOAD DATA的注意点是 CSV 文件路径里的斜杠要写正斜杠另外 MySQL 8.0 默认可能没开local_infile执行时如果报错需要先执行SET GLOBAL local_infile 1;。对比下来Navicat 的导入向导对新手更友好LOAD DATA命令适合数据量大、需要脚本化重复导入的场景。这个资源项目里用的是 Navicat但对导入结果有一个验证动作不能省导入完成后在 Navicat 里双击表查看数据确认行数对不对、字段类型对不对。4.2 Kepserver 里建 ODBC 通道数据源、设备名和标签映射数据库这边准备好了回到 KepserverEX 主界面开始配置连接。这一步的逻辑是Kepserver 通过 ODBC 通道读 MySQL 表把表的每一行映射成 OPC 标签这样上位机或者 SCADA 系统就能像读 PLC 寄存器一样读数据库里的值。新建通道的步骤是在 KepserverEX 左侧树形结构里右键单击“通道”选择“新建通道”在驱动列表里选择“ODBC Client”。注意驱动列表里没有直接叫“MySQL”的驱动MySQL 是靠 ODBC DSN 被 Kepserver 识别的所以有且仅有 ODBC Client 这一个入口。通道建好后右键新建设备设备名可以叫MySQL_Server关键参数如下参数填写内容说明数据源刚才在 32 位 ODBC 管理器里建的 DSN 名比如mysql_kep用户名MySQL 用户名默认root密码MySQL 对应密码与 MySQL 安装时设置的一致设备类型数据库表或视图选择后列表里会出现数据库里的表设备配置完成后Kepserver 会自动读取该表中的字段并生成数据组。最终要在服务器属性里新建“标签”标签的数据源指向刚才建好的设备表对应的字段会自动映射出来。映射逻辑是Excel 或 SQL 建表时定义的每个字段——比如tag_name、tag_value、ts——在 Kepserver 标签列表里一一对应。到这里“Kepserver 连接 MySQL”的完整链路就通了Excel 数据进 MySQLMySQL 通过 ODBC DSN 暴露给 KepserverKepserver 把表映射成 OPC 标签上位机再从 Kepserver 读值。整条链路里最容易断的不是 Kepserver 也不是 MySQL而是中间那个 32 位 ODBC DSN谁在这个环节装错了 64 位驱动谁就得回头重新折腾。5. Kepserver 连接 MySQL 常见问题排查五个翻车现场复盘5.1 破解补丁无法覆盖提示文件被占用现象向安装目录复制libutil.dll、libserver.dll时报“文件正在使用”或“需要权限”。原因KEPServerEX 的服务进程没有完全停止。只关了右下角任务栏图标实际后台服务还在运行DLL 被占用。解决按前面说的顺序走完整三步——任务栏退出 GUI任务管理器“服务”选项卡里停掉所有带 KEPServerEX 的服务再确认“进程”选项卡里没有残留的 KEPServer 进程最后执行覆盖。最快的兜底办法是重启电脑后立刻覆盖。5.2 ODBC 装了但 Kepserver 里找不到 MySQL 驱动现象Kepserver 通道里选了 ODBC Client设备配置的数据源下拉列表为空或者列表里看不到 MySQL 相关项。原因装成了 64 位 MySQL ODBC 驱动或者驱动装对了但 DSN 建在了 64 位数据源管理器里。Kepserver 是 32 位进程只能从 32 位 ODBC 环境里找 DSN。解决卸载现有 ODBC 驱动安装 32 位版本用C:\Windows\SysWOW64\odbcad32.exe重新建系统 DSN务必在 32 位管理器里点“测试连接”通过后再回 Kepserver 配置。5.3 Kepserver 连 MySQL 报认证插件错误现象连接测试时报Authentication plugin caching_sha2_password cannot be loaded或类似错误。原因MySQL 8.0 默认的认证插件是caching_sha2_password安装的 32 位 ODBC 驱动版本较旧时不认识这个新插件。解决两个方向任选。一是换用较新版本的 32 位 MySQL Connector/ODBC新版驱动兼容该插件二是在 MySQL 里把用户认证方式改回去执行ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 密码;改完重启 MySQL 服务。5.4 Excel 导入后数据错乱时间字段变文本现象导入 MySQL 后发现时间列全是2024-01-01 00:00:00这种还带着格式的字符串或者数字 0.85 变成 0.8500000001。原因Navicat 导入向导按 Excel 的显示格式推断字段类型Excel 里时间是格式化文本导进来就是 VARCHAR浮点数精度问题则是单精度转双精度导致的。解决导入前在 Excel 里把时间列统一设置成yyyy-MM-dd HH:mm:ss格式数值列若是点位量测值导入后在 Navicat 里把字段类型改成 DOUBLE 或 FLOAT。现场数据量小的话干脆导入后手动改字段类型最保险。5.5 Kepserver 标签能读到表结构但读不到值现象标签列表正常生成了但 OPC Quick Client 里看值是“bad quality”或空值。原因表的主键或标识字段没有正确设置ODBC 读取时无法确定行的唯一身份或者标签名与字段名存在大小写不一致。解决在 MySQL 里给表添加自增主键id INT AUTO_INCREMENT PRIMARY KEY并确认标签名与数据库字段名完全一致Kepserver 的 ODBC 驱动对大小写敏感时建议统一改成小写字段名再映射。6. 验证连接与进阶OPC Quick Client 读写确认再考虑采集周期整套配置做完第一件事不是接上位机而是用 Kepserver 自带的 OPC Quick Client 验证数据链路。打开 OPC Quick Client连接到本地 Kepserver展开服务器对象找到刚才建立的标签双击“读取”按钮如果值能从 MySQL 表里读出来说明 ODBC 通道、DSN、设备映射全部正常。可以顺手试一下“写入”直接改标签的值再到 Navicat 里查对应表看数据是否真的落库了。验证通过后有一个进阶参数值得当场调标签的采集周期Poll Rate默认可能是 1000ms 或更快。工业上如果每个标签 1000ms 轮询一次几十个标签对 MySQL 的压力不大但如果是几百个标签每秒几百次的查询会让 MySQL 的 CPU 明显飙升。我的习惯是需要实时响应的设备点位用 1000ms历史趋势类的点位放宽到 3000ms 到 5000ms数据库端再给tag_values表建一个按ts的索引查询效率会明显改善。数据库端索引的创建很简单USE kep_data; -- 查询条件是时间范围为主按 ts 建索引最有效 CREATE INDEX idx_ts ON tag_values (ts); -- 点位维度查询多的话追加一个组合索引 CREATE INDEX idx_tag_ts ON tag_values (tag_name, ts);注意idx_tag_ts这种复合索引只有在查询条件里同时带tag_name和ts时才生效如果业务里只按 tag_name 过滤单建这个索引是浪费磁盘的。先拿真实的上位机查询语句跑一遍EXPLAIN SELECT ...看有没有命中索引再决定要不要加。做完验证和索引这一圈这套 Kepserver 连接 MySQL 的工程就算真正闭环了。数据从设备来进了 MySQLKepserver 又读出来给上位机链路里每一环都确认过值。回想我自己第一次搭这套环境卡在 ODBC 位数上整整两天后来把每台机器的 ODBC 管理器打开对照位数才发现规律凡是 Kepserver 里看不到驱动的100% 是位数不对从那以后我每次搭采集服务都强制走一遍“Kepserver 位数 → ODBC 位数 → DSN 测试连接”的顺序再也没在连接上翻过车。希望帮到你。本文还有配套的精品资源点击获取
返回列表