简介这份资源是 Wonderware Intouch 的 Modbus TCP 通信驱动 DASMBTCP1.1面向工业自动化领域的 HMI 组态工程师、PLC 调试人员及自控专业学生用于打通 Intouch 可视化软件与支持 Modbus TCP 协议的 PLC、仪表等设备之间的数据交互解决以太网环境下实时读写寄存器、采集模拟量与数字量的问题。压缩包共 129 个文件约 10.9MB以 66 个 dll 动态库和 21 个 exe 可执行程序为核心辅以 12 个 chm 帮助文档、6 个 pdf 手册、5 个 hlp 及 cnt、msc、msi 等安装与配置文件另含少量 html、ini、ocx 等辅助组件覆盖驱动安装、DAServer 管理与日志查看等模块。目前已有 2630 人学习下载。借助其中的配置说明与帮助文档读者可完成数据源创建、IP 与端口设置、数据点映射及断线重连排查快速搭建稳定的 Modbus TCP 通信链路。1. 组态软件连 Modbus 设备为什么老工程师都绕不开 DASMBTCP做 SCADA 上位机的人迟早会撞上同一个场景现场一堆 PLC、仪表、电表、变频器协议清一色 Modbus TCP可上位机组态软件本身不直接认这个协议中间必须有个“翻译层”。Intouch 里这个翻译层就是 DAServer而 DASMBTCP 1.1 正是其中专门吃 Modbus TCP 的那一款驱动。它干的事很纯粹——把 Intouch 的访问名Access Name映射到远端 Modbus 设备的寄存器地址上让画面上的数值、按钮、报警直接读写 4xxxx、3xxxx 这些寄存器不用自己写 Socket 通信。这份资源适合三类人一是刚接手 Intouch 项目、被 DAServer 配置卡住的新手二是现场设备换型、需要重新规划寄存器映射的调试工程师三是想把老 DAServer 迁移到新版本、又怕踩坑的维护人员。它解决的不是“Modbus 协议是什么”这种理论问题而是“装完之后怎么让第一个点位通”的落地问题。下面按安装、配置、联调、排错的顺序拆开讲能抄的地方直接抄。2. DASMBTCP 1.1 的安装与运行环境先把地基打对2.1 版本匹配与依赖关系DASMBTCP 1.1 属于 Wonderware现 AVEVADAServer 体系里的老版本驱动它的运行依赖两个东西一是 DAServer 框架本身通常随 Intouch 或独立安装包提供二是对应的 Modbus TCP 通信组件。很多人翻车的第一个点就是只装了驱动、没装框架结果 SMCSystem Management Console里根本看不到 DASMBTCP 这个节点。常见做法是先确认 Intouch 版本再选 DAServer 版本。Intouch 10.0 到 2014 R2 这一段DASMBTCP 1.1 基本都能用再新的版本如 2017 之后官方主推 OI Server 或 DASMBTCP 3.x1.1 虽然有时能跑但 SMC 界面和注册方式已经变了。如果你手上是旧项目维护1.1 是稳妥选择如果是新项目建议直接上更高版本别为了“和旧机器一致”硬套。安装顺序建议先装 DAServer 框架 → 再装 DASMBTCP 1.1 → 最后装 Intouch如果 Intouch 还没装。反过来装容易出现注册表项覆盖SMC 里节点显示不全。装完重启一次别省这一步DAServer 的服务注册在重启后才稳定。2.2 安装步骤与验证安装包一般是DASMBTCP_1.1.exe或类似命名双击后按向导走。关键节点有三个# 安装前建议先停掉相关服务避免文件占用 net stop DAServer Manager net stop ArchestrA Service装完后验证是否成功看两个地方# 1. 检查服务是否注册 sc query DASMBTCP # 2. 检查 SMC 节点打开 SMC 后展开 DAServer Manager # 正常应看到 Local DASMBTCP 节点如果sc query返回服务不存在说明安装没写进服务表多半是权限不够或框架没装。以管理员身份重装一次别用普通用户双击。提示安装路径不要带中文和空格老版本 DAServer 对路径解析很敏感C:\Program Files\...有时都会出问题建议装到C:\DAServer\这类短路径下。2.3 SMC 里的基础配置SMC 是 DASMBTCP 的管理入口所有设备连接、寄存器映射都在这里定义。打开 SMC 后右键DASMBTCP节点 →Add ModbusTCPPort先建一个端口对象。端口对象对应一个远端 IP 和端口号Modbus TCP 默认 502。配置项里几个关键参数参数含义常见值Port Name端口对象名称PLC1_PortIP Address远端设备 IP192.168.1.10PortModbus TCP 端口502Timeout单次请求超时(ms)1000Retry重试次数3Scan Rate扫描周期(ms)100端口建好后再在端口下建ModbusTCPDevice设备下建ModbusTCPGroup组下才是具体的ModbusTCPItem点位。这个层级不能跳跳了 Intouch 那边访问名就对不上。3. 从 Access Name 到寄存器地址Intouch 侧怎么接3.1 Access Name 的配置逻辑Intouch 画面里的每个数值、按钮最终都要通过 Access Name 找到 DAServer 里的点位。Access Name 的配置在 Intouch 的Special Access Names里关键字段是Node Name、Application Name、Topic Name。Node NameDAServer 所在机器名本机就填localhost或本机名Application Name固定填DASMBTCPTopic Name填 SMC 里建的ModbusTCPPort名称比如PLC1_Port这三者必须和 SMC 里的层级严格对应。Topic Name 填错是最常见的“画面数值不动”原因因为 Intouch 不报错只是默默读不到。3.2 寄存器地址映射规则DASMBTCP 1.1 的地址映射遵循 Modbus 标准四区模型但在 Item Name 里的写法有自己的一套约定。常见写法是寄存器类型地址比如40001 # 保持寄存器地址 1对应 Modbus 地址 0 30001 # 输入寄存器地址 1 10001 # 输入状态地址 1 00001 # 线圈地址 1注意这里的“地址 1”和 Modbus 协议里的“地址 0”差一位这是历史遗留的 1-based 表示法。如果你在 Modbus Poll 里读的是 40001在 DASMBTCP 里也写 40001通常能对上但如果设备文档写的是“寄存器 0”那 DASMBTCP 里要写 40001 而不是 40000。数据类型也要在 Item 里指定常见的有数据类型占用寄存器数说明Boolean1 位线圈/状态Short116 位整数Long232 位整数高低字顺序可配Float232 位浮点字节序可配StringN字符串需指定长度Float 的字节序是重灾区。不同 PLC 厂商对 32 位浮点的字序、字节序定义不同DASMBTCP 里一般有Byte Order和Word Order两个选项常见组合是Big-Endian / High-Low或Little-Endian / Low-High。读出来是乱码数值先别怀疑通信先换这两个顺序试。3.3 一个完整的点位配置示例假设要读一台 PLC 的保持寄存器 40001 作为温度值Float配置流程如下1. SMC 中展开 DASMBTCP PLC1_Port PLC1_Device PLC1_Group 2. 右键 Group Add ModbusTCPItem 3. Item Name 填Temperature 4. Address 填40001 5. Data Type 选Float 6. Byte Order 选Big-Endian 7. Word Order 选High-Low 8. 保存后在 Intouch 里建 Access Name - Application Name: DASMBTCP - Topic Name: PLC1_Port 9. 画面里建一个数值显示Tagname 填Temperature - Access Name 选刚建的 - Item 填Temperature这套流程走完如果 PLC 那边寄存器确实有值画面应该能显示。不显示就按下一章的排查顺序走。4. 联调与排错那些让你怀疑人生的坑4.1 通信不通的排查顺序现象Intouch 画面数值显示?或0SMC 里 Item 状态是Bad。原因排查按这个顺序走别跳步网络层在 DAServer 机器上ping设备 IP通不通。不通先解决网络别碰 DAServer。端口层telnet 192.168.1.10 502看 502 端口是否开放。很多设备默认不开 Modbus TCP或者端口被改过。SMC 状态SMC 里看 Port 对象的状态如果是Stopped手动Start。有时服务重启后 Port 不会自动启动。Item 地址确认地址写法、数据类型、字节序。地址错一位、类型选错都会导致 Bad。Access Name确认 Topic Name 和 SMC 里的 Port 名称完全一致大小写敏感。4.2 数值乱码与字节序翻车现象通信状态是Good但 Float 读出来是1.234e-38这种离谱值或者整数读出来是负数。原因字节序或字序不对。Modbus 本身只传字节流32 位数据怎么拼由驱动决定。DASMBTCP 1.1 里这两个选项在 Item 属性里改完要保存并重启 Port 才生效。解决拿一个已知值比如 PLC 里写死 123.45逐个组合试。常见四种组合Big-Endian/High-Low、Big-Endian/Low-High、Little-Endian/High-Low、Little-Endian/Low-High。试到对为止别凭感觉猜。注意改字节序后一定要重启 Port 对象光保存不重启DASMBTCP 有时不会重新加载配置你会以为改了没用。4.3 扫描周期与超时的平衡现象点位时好时坏偶尔 Bad 一下又恢复。原因扫描周期设太短或者超时设太短。DASMBTCP 1.1 默认扫描周期 100ms如果设备响应慢比如串口转 TCP 的网关100ms 内回不来就判超时。解决把 Scan Rate 调到 500ms 或 1000msTimeout 调到 2000msRetry 设 2 到 3 次。先保证稳定再逐步压短。现场调试阶段别追求“快”稳定比快重要。4.4 多设备共用端口的冲突现象一个 Port 下挂多个 Device其中一个设备通信正常另一个一直 Bad。原因DASMBTCP 1.1 对同一 Port 下多 Device 的并发处理能力有限如果两个设备 IP 不同但共用一个 Port 对象驱动会串行轮询慢的设备拖累快的。解决每个设备建独立的 Port 对象哪怕 IP 相同、端口相同也分开建。这样每个 Port 独立线程互不干扰。代价是 SMC 里节点多但稳定性值得。4.5 服务重启后配置丢失现象重启 DAServer 服务后SMC 里配置还在但 Port 状态是 StoppedIntouch 读不到数。原因DASMBTCP 1.1 的 Port 对象默认不自动启动需要手动 Start或者配置成自动启动。解决在 Port 属性里找Auto Start选项勾上。如果没有这个选项就在服务启动脚本里加一句启动命令或者每次重启后手动在 SMC 里 Start 一次。老版本这个坑很常见别指望它自己起来。5. 进阶批量点位导入与配置备份5.1 用 CSV 批量导入点位SMC 界面里一个个建 Item 效率太低DASMBTCP 1.1 支持从 CSV 导入。CSV 格式一般是ItemName,Address,DataType,ByteOrder,WordOrder Temp1,40001,Float,Big-Endian,High-Low Temp2,40003,Float,Big-Endian,High-Low Pressure1,40005,Short,, Status1,00001,Boolean,,导入路径在 SMC 里右键 Group →Import Items选 CSV 文件。注意 CSV 编码用 ANSI 或 UTF-8 无 BOM带 BOM 的 UTF-8 有时会读成乱码导致第一列 ItemName 前面多个不可见字符导入后点位名对不上。导入前先备份现有配置导入是覆盖式的同名 Item 会被替换。我一般会先把当前 Group 导出成 CSV 存一份再导入新的出问题能回滚。5.2 配置备份与迁移DASMBTCP 1.1 的配置存在两个地方一是 SMC 的配置数据库通常在C:\Program Files\...\DAServer\下的某个.dat或.xml二是注册表里的服务参数。迁移到另一台机器时只拷 SMC 配置不够注册表项也要一起导。稳妥做法# 1. 导出 SMC 配置SMC 里有 Export 功能导出成 .xml 或 .csv # 2. 导出注册表相关项 reg export HKLM\SOFTWARE\Wonderware\DAServer daserver_backup.reg # 迁移到新机器 # 1. 先装同版本 DAServer 框架和 DASMBTCP 1.1 # 2. 导入注册表 reg import daserver_backup.reg # 3. 在 SMC 里导入配置 # 4. 重启 DAServer 服务这套流程走完点位映射基本能原样恢复。但 IP 地址如果变了要在 SMC 里逐个 Port 改 IP别指望注册表导入能自动改。5.3 验证配置是否生效的快速方法配完一堆点位后别急着开 Intouch 画面先在 SMC 里看 Item 的Value和Quality。Quality 是Good才算通Bad或Uncertain都说明有问题。SMC 里能直接看到实时值比 Intouch 画面刷新快排查时以 SMC 为准。如果 SMC 里 Good、Intouch 里 Bad问题在 Access Name 或 Intouch 的 DDE/SuiteLink 配置不在 DASMBTCP。这时候回头查 Access Name 的 Application Name 是不是DASMBTCP、Topic Name 是不是 Port 名称基本就这两个。从那以后我每次配 DASMBTCP都强制先跑一遍“ping → telnet → SMC 状态 → Item 值”这四步确认底层通了再动 Intouch 画面省得在画面层瞎折腾。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?