
简介面向SAMKOON显控AK系列HMI触摸屏的Windows USB驱动程序专为工业自动化人机交互场景设计解决计算机与触摸屏之间通过USB连接时的设备识别、数据通信与调试控制问题帮助用户在产线运维、设备调试及固件升级等任务中快速建立稳定的通信链路。压缩包共13个文件以dll动态库、inf安装信息、cat安全目录及bat批处理脚本为主整体仅6.14MB轻量且结构清晰其中dll提供运行库支持inf定义设备安装参数cat用于驱动签名校验bat便于执行辅助命令同时包含i386与amd64两种架构驱动可覆盖32位和64位Windows系统包内文件组织规范便于按需选用。目前已有1637人学习下载该驱动为2.0.0版本集成功能改进与问题修复适合自动化工程师、HMI应用开发者以及工业现场维护人员使用。借助该驱动用户可在Windows系统中稳定识别AK系列触摸屏完成画面组态、逻辑编程、实时状态监控与故障排查并通过固件更新持续优化设备性能是保障HMI设备长期稳定运行的关键组件。1. 为什么 SAMKOON AK 系列 Windows USB 驱动值得先搞清楚工业现场给 HMI 触摸屏下载工程时很多人习惯先找串口线插上以后发现设备管理器里多了一个 COM 口然后配置波特率。但 SAMKOON 显控 AK 系列走的是另一条路它不依赖虚拟串口而是通过 WinUSB 结构让上位机软件直接和设备对话。这样一个驱动包 AK_HMI_Windows_UsbDriver_2.0.0 里就同时包含了 32 位和 64 位两套资源文件看起来不复杂但里面的 WdfCoInstaller01007.dll、AKHMI_winusb.inf 和 androidwinusb 签名文件每一处都和后续“电脑不认识屏幕”“软件连接超时”“设备管理器中代码 43”这些高频现场问题直接挂钩。这篇把驱动包逐文件拆开讲清楚为什么这样设计再给出从安装到验证的完整操作流程最后用 adb_close.bat 和 PowerShell 把驱动状态钉死。适合刚接触显控 AK 系列的电气工程师也适合手里同时管着威纶通、昆仑通态、台达等多个品牌 HMI 的自动化维护人员参考。2. 驱动包结构拆解为什么 AK 系列用的是 WinUSB 而不是虚拟串口2.1 解压后的文件清单里每个文件都不是多余的把 AK_HMI_Windows_UsbDriver_2.0.0 解压以后先看根目录再进 i386 和 amd64 两个子目录。两个目录下的文件结构基本一致核心包括这些。AKHMI_winusb.inf驱动安装描述文件负责把硬件 ID 映射到系统自带的 winusb.sysWinUSBCoInstaller.dllWinUSB 联合安装程序用于向系统注册设备接口 GUIDWdfCoInstaller01007.dll / WUDFUpdate_01007.dll旧 Windows 系统上安装 KMDF 和 UMDF 运行时组件的辅助文件androidwinusb86.cat / androidwinusba64.cat两个不同架构下的目录签名文件用于验证驱动包完整性adb_close.bat常常被忽略的一个脚本用来结束本机 ADB 服务进程避免 USB 通道被占。不少人有疑问为什么驱动包里没有 AKHMI.sys因为 AK 系列没有写自己的专属内核驱动而是直接借用 Windows 自带的 winusb.sys。INF 文件安装时把硬件 ID 绑定到 winusb.sys再用 WinUSBCoInstaller.dll 把 Userspace 访问设备需要的接口 GUID 写进注册表。这样 HMI 编程软件可以通过 WinUSB API 打开设备句柄不经过 COM 口也就不存在波特率不匹配的问题。2.1.1 androidwinusb 文件出现是否意味着屏幕跑 Android看到 androidwinusb 签名文件时不必把它理解成显控 AK 系列内置了 Android 系统。实际原因是不少国产 HMI 的 USB 下载通道在 USB 枚举阶段沿用了类似 ADB 的传输描述符结构目录文件也就沿用了这套签名体系。这样设计的好处在于Windows 对 ADB 结构的设备枚举经验丰富插上以后不容易出现 Unknown Device。现场如果在设备管理器里看到设备名称带 Android 字样先不要急着重装驱动很大概率就是这个驱动包已经把自己的身份信息暴露出来了。2.2 AKHMI_winusb.inf 里的关键 INF 片段用记事本打开 AKHMI_winusb.inf重点看这几段。第一处是 Manufacturer 和设备安装节[Manufacturer] %MfgName%WinUSB_Install,NTamd64 [WinUSB_Install.NTamd64] %DeviceName% USB_Install, USB\VID_1234PID_ABCD [USB_Install] Includewinusb.inf NeedsWINUSB.INF.NT [USB_Install.Services] Includewinusb.inf AddServiceWinUSB,0x00000002,WinUSB_ServiceInstall [USB_Install.Wdf] KmdfServiceWINUSB, WinUSB_Install_Wdf这段 INF 的逻辑可以拆成三部分。第一部分指定了 64 位平台对应的安装节NTamd64后缀是 Windows 驱动安装约定表示只用于 64 位系统第二部分把硬件 IDUSB\VID_1234PID_ABCD和安装节绑定这里的 VID 和 PID 只是占位示例不同批次的 AK 屏幕实际枚举出来的 ID 可能不同第三部分通过[USB_Install.Wdf]声明需要安装 KMDF 运行时这也是 WdfCoInstaller01007.dll 存在的原因。AddServiceWinUSB后面的0x00000002含义是 SPSVCINST_ASSOCSERVICE把它作为和设备关联的功能服务。如果这个值写错设备管理器里会出现设备“已安装”但始终打感叹号。排查的时候可以在设备管理器选中设备右键属性 - 详细信息 - 硬件 ID对照 INF 里的 VID/PID 是否匹配。如果看到的是USB\UNKNOWN基本可以断定是线缆、供电或设备枚举层的问题而不是 INF 的问题。2.3 WinUSB、虚拟串口和 HID 驱动差别在哪威纶通和老款台达触摸屏里USB 下载通常走 USB 虚拟串口也就是 CDC 类设备安装完系统多一个 COM 口软件通过 COM 号访问屏幕。这种方式兼容性好但有两个老毛病COM 号会漂移换一个 USB 口就可能从 COM3 变成 COM7还有波特率、数据位设置一致性经常被忽略导致下载的时候报“通信超时”。AK 系列选择 WinUSB直接通过设备路径和接口 GUID 访问不再关心 COM 口传输走 USB 批量端点吞吐量也比 CDC 高。驱动类型用户态接口常见问题适用场景虚拟串口 CDCCOM 端口COM 号漂移、波特率不一致老式 HMI、PLC 串口下载线HID 驱动HID API数据包长度受限不适合大文件传输极少数 USB 键盘界面型设备WinUSBWinUSB API依赖 CoInstaller 正确注册 GUID新平台 HMI、固件升级和工程下载选型结果也带来了新的坑WinUSB 在 Windows 10/11 上由系统提供但在 Windows 7 或更老系统上需要 WdfCoInstaller01007.dll 补上 KMDF 运行时环境。很多老电脑显示“驱动安装失败”或者“设备无法启动”最终查出来都是缺这个运行时组件而不是驱动本身写错。3. Windows 10/11 下手动安装 AK 驱动避开代码 12 与触摸屏失灵3.1 安装前的系统检查与版本选择安装驱动之前先别急着插线。打开设备管理器展开“通用串行总线控制器”查看是不是已经存在大量带感叹号的未知 USB 设备。如果以前装过安卓手机驱动系统里可能已经有一份 WinUSB 环境这会抢先占用设备枚举导致 AK 屏插上去以后被分到错误的驱动。这时候先把安卓手机相关驱动卸载再安装显控驱动包。本驱动包含 amd64 和 i386 两套64 位系统用 amd6432 位系统用 i386。不要图省事直接把 64 位文件硬装到 32 位系统目录签名文件和 WDF 运行时会直接报错。安装前可以先查看当前驱动库确认是否有旧版本pnputil /enum-drivers执行后输出内容里找到需要关注的第三方驱动列表如果其中已经有包含 AKHMI 或 SAMKOON 字样的条目说明之前装过旧版。建议先把旧版本删掉再执行新增驱动pnputil /delete-driver oem14.inf这里的 oem14.inf 是上一条命令里查到的 Published Name每次机器上不同先查再删。清理干净以后进入驱动解压目录用管理员身份运行这条命令pnputil /add-driver .\AKHMI_winusb.inf /install/add-driver的作用是把 INF 文件复制进系统 DriverStore不是临时加载所以拔插之后不会消失/install让系统立即为当前已连接的设备尝试安装。命令执行成功后会返回一个 Published Name 字段记录这个编号后面卸载或排查都以它为准。比起右键 INF“安装”这条命令更适合批量部署因为没有弹窗也可以写进脚本。3.2 设备管理器里 Unknown Device 的处理思路连接 AK 触摸屏后最常出现的状态是 Unknown USB Device。第一步换线优先更换一条标准 USB 数据线而不是那种只有供电线的充电线。插到主机后置 USB 口尽量避开 USB Hub 和扩展坞。如果设备管理器里已经枚举出带黄色感叹号的“AK HMI”设备右键选择“更新驱动程序”然后选择手动指向解压出的 amd64 或 i386 目录。正常安装成功后设备会出现在“通用串行总线设备”分支下名称一般为 WinUSB Device。如果设备状态里显示错误代码按照下面表格对照处理。错误代码含义处理方向代码 10设备无法启动重装 WdfCoInstaller01007.dll检查 KMDF 运行时代码 12找不到可用资源更新 USB 控制器驱动关闭 BIOS 里的 Legacy USB 或调整 USB 资源分配代码 43Windows 已停止设备更换线缆、换 USB 口检查是否被其他 WinUSB 设备占用通道代码 12 在旧工控机上出现频率偏高主要原因是 ACPI 资源分配把 USB 控制器和某个旧式设备的内存区域重了。先把设备管理器里“通用串行总线控制器”下所有带感叹号的项目卸载重启电脑让系统重新分配资源比直接修改 BIOS 要快很多。如果机器上有扩展卡自带 USB 口也可以先插到扩展卡口上不占用原生的 XHCI 控制器资源。注意代码 43 如果反复出现先检查线缆再检查 HMI 端口的物理针脚。工业现场常见的是下载口被插拔次数过多导致接触不良这种问题驱动层面无法解决只能换端口或修硬件。3.3 驱动安装与触摸屏本身失灵的区别驱动装好不等同于触摸屏一切正常。经常看到有人问“为什么装了驱动以后屏幕触摸没反应”大多数时候是屏幕自身的系统参数或校准问题。比如博图 HMI 仿真按钮无反应的案例底层原因是仿真器与变量表之间没有真正建立映射放到显控 AK 系列上也类似按钮元件没有正确绑定寄存器地址按下就不会有反馈。触摸失灵则要判断是不是只在连接电脑时发生如果拔掉 USB 线后屏幕依然无响应与驱动毫无关系该做的是进入 HMI 的系统维护页做触摸校准或者检查电源。只有插上线出现异常、拔掉线恢复正常的才需要从驱动层面找原因。4. 让驱动真正干活SAMKOON 编程软件下的下载、监控与固件升级4.1 连接 HMI 后选择正确的通信通道驱动安装完成并不代表 SAMKOON 的编程软件能自动识别屏幕。打开软件后在“系统参数”或者其他通信设置里需要明确选择连接方式为 USB。这个位置往往容易踩坑如果电脑上同时装了威纶通 EBPro、台达 DOPSoft、昆仑通态 MCGS它们各自的软件为了配合自己的 USB 驱动默认都会尝试绑定一个 USB 通道。此时需要检查软件运行时是否加载了名为 usbdrv.dll 的库文件这个 DLL 负责向 Windows 发起 WinUSB 设备查找。如果软件安装目录下没有这个文件即使驱动装好了也会在“查找”环节返回空列表。多品牌软件共存时建议在连接 SAMKOON 屏幕前先关掉其他软件的 USB 监控功能。MCGS 的调试助手就是一个典型例子它会在后台持续枚举 USB 设备。和 MCGS 的“智能连接”不同AK 系列需要手动选择 USB 设备并在下拉列表里出现设备名后确认。如果设备名一直不出现重新执行一次 adb_close.bat 再刷新设备列表通常就能看到。4.1.1 与第三方软件自由标签通信的边界有工程师在 LeadSys Studio 仿真环境下与外部触摸屏做自由标签通信发现连接失败。这种情况不要把责任归结到 USB 驱动上。自由标签通信通常走的是 TCP 或 UDP 协议触摸屏在仿真模式下是通过以太网口和上位机交互与 WinUSB 驱动无关。如果 HMI 连接电脑后在网络适配器里多出一个 169.254 网段的接口说明屏幕开启了 USB 虚拟网卡模式此时应该把上位机 IP 配到同一网段而不是继续调整 USB 驱动。判断方法打开命令提示符执行 ipconfig查看是否出现类似“USB Ethernet/RNDIS”的适配器描述有就是虚拟网卡模式确认后再用网络通信方式配置。4.2 工程下载、在线模拟与监控的参数配置在 SAMKOON 编程软件中新建工程时需要选择 AK 系列的准确型号。型号选错会导致通信协议不匹配下载时报“设备无响应”。工程编译通过后连接方式选 USB通信参数一般保持默认。下载前关闭屏幕正在运行的项目部分场合屏幕端弹出“是否接受下载”的提示需要手动确认。下载过程可以观察屏幕端显示的进度条蓝色进度条跑完后再拔线。博图里常见的“仿真按钮无反应”问题放在这里就是变量表地址和画面元件没有正确关联。试着在 AK 工程里新建一个位地址绑定一个按钮下载到屏幕后手动点一下看监控画面里对应寄存器是否翻转。如果按钮控件本身没问题但按压没有反应检查屏幕的系统保护等级和窗口切换逻辑。监控模式下SAMKOON 软件会持续通过 WinUSB 批量读取寄存器值这个过程中如果屏幕固件里有大量历史报表读取会变慢不是驱动问题而是固件处理 IO 周期较慢。4.3 配方数据、U 盘导出与固件升级的落点“昆仑通态触摸屏上的配方数据怎么给到 PLC”在显控 AK 系列上有一条相同思路配方是一段连续地址空间通过组态软件里的“配方”功能把配方行映射到寄存器地址再由屏幕控制系统在特定条件下写入 PLC。这整个过程中 USB 驱动只负责上传下载工程文件真正的配方写操作由屏幕独立完成。如果要在电脑侧验证驱动传输大量数据是否稳定可以在软件里做一次“上传工程”操作上传一个带几十张画面的工程文件观察传输速度是否均匀如果中途卡住除了驱动问题还要检查工程文件里是否存在非法元件类型的兼容性报错。固件升级比工程下载更依赖驱动稳定性。升级过程中屏幕会进入 bootloader 模式此时设备管理器可能短暂闪烁几次这是正常现象。如果升级过程突然中断屏幕可能停留在“Updating”界面无法进入系统这时候不要反复试拔插电源先把驱动状态确认好然后重新打开固件升级工具再尝试一次。这当中最容易被忽视的是 Windows 电源设置电脑默认在插电时不进入睡眠但如果开启了“允许计算机关闭此设备以节省电源”系统可能挂起 USB 设备导致升级中途失败。5. 最后的验证技巧用 adb_close.bat 和 PowerShell 钉死驱动状态5.1 用 adb_close.bat 解除会话占用压缩包里自带 adb_close.bat名字看起来和工业 HMI 没关系但在实际工位上用途明确。打开这个批处理内容本质是关闭 ADB 服务进程echo off adb kill-server taskkill /f /im adb.exe exit脚本第一行调用 adb kill-server目的是结束占用了 WinUSB 设备路径的 ADB 服务器进程。如果电脑之前连接过安卓设备或安装了某些基于 ADB 的调试工具这个进程会一直驻留后台导致 SAMKOON 软件在枚举设备时拿不到句柄。执行脚本后再打开编程软件重新查找设备比卸载重装驱动更快。注意执行时不要在工程下载过程中进行否则会把正在传输中的会话切断。5.2 用 PowerShell 验证 WinUSB 是否真正接管设备安装驱动后可以通过 PowerShell 查看设备是否已被 WinUSB 正确接管Get-PnpDevice | Where-Object {$_.Class -eq WinUSB} | Format-List FriendlyName,InstanceId,Status输出结果里如果能找到名称包含 AK HMI 的设备并且 Status 为 OK说明驱动链路已经就绪。这里需要确认 Class 字段是 WinUSB如果显示的是 USBDevice 或 HIDClass说明 INF 文件里的 AddService 没有设置为 WinUSB设备即使安装成功也不会被 SAMKOON 软件识别。再进一步可以查询设备接口 GUID 是否写入注册表Get-ChildItem HKLM:\SYSTEM\CurrentControlSet\Enum\USB\*\*\Device Parameters -ErrorAction SilentlyContinue | Select-String DeviceInterfaceGUID这条命令会枚举当前所有 USB 设备的设备参数找到类似{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}的 GUID 输出。把输出结果与设备管理器中的硬件 ID 对照就能确认这个驱动是否把接口 GUID 注册到了正确的设备路径下。有了这个信息即使 SAMKOON 软件自己识别不到设备也可以通过 GUID 判断驱动本身是否生效避免陷入“驱动装上但软件连不上”的谜团。整套验证做完再回设备管理器把 USB 省电策略全部关闭这个驱动就算彻底安装到位。本文还有配套的精品资源点击获取