
简介面向工业自动化HMI工程师与系统集成人员的Intouch驱动_DAServer_DASSIDirect3.0资源包聚焦DAServer与DASSIDirect3.0驱动组件的部署与使用适用于需要为Wonderware Intouch对接PLC、SCADA、I/O模块等设备的中高级组态开发与维护人员可帮助解决数据采集、状态监控与控制指令下发等通信层面的关键问题。压缩包共含155个文件总大小28.39MB文件类型以DLL运行库、EXE驱动程序、CHM/HLP帮助文档、PDF说明手册、XML配置和MSC管理控制台为主分别服务于驱动运行、安装部署、参数配置、协议适配和故障排查等环节整体结构清晰便于查阅。目前已有3927人学习/下载在同类驱动资源中属于关注度较高的实用资料。通过包内驱动及配套帮助文档工程师可以快速完成DASSIDirect3.0的安装与设备连接配置理解通讯参数设置和日志分析方法并借助报错信息定位通讯中断、设备无响应等常见故障从而缩短现场调试周期提升工业控制系统的整体稳定性与交付效率。 搞工业上位机这行的朋友对Wonderware InTouch应该都不陌生。最近我在做一套老产线改造把现场十几台西门子PLC的数据统一汇到中控室的InTouch画面上底层通信用的就是标题里这个组合InTouch DAServer DASSIDirect 3.0。这套东西吧说简单也简单说坑也真坑尤其是S7-1200/1500普及之后很多以前S7-300时代的老经验直接失效。我前前后后折腾了好几天把从装软件到建Topic再到InTouch里配访问名这条完整链路走了一遍今天就把整个过程和踩过的坑一次性写清楚给正在做S7系列PLC上位机组态的朋友做个参考。这篇内容适合谁看正在用InTouch做上位机画面、需要跟西门子S7-200/300/400/1200/1500系列PLC通信的工程师或者刚接手老旧项目、发现原来的通信驱动是DASSIDirect 3.0但不知道怎么维护的新人。我会尽量把每一步操作背后的原因也讲明白而不是简单丢给你一串“下一步下一步”的截图式教程。1. 先把概念理清楚DAServer、DASSIDirect 3.0与InTouch三者是什么关系很多刚接触这套体系的人会被三个名词绕晕其实把它们的关系拆开看就特别简单InTouch是负责画面显示和逻辑处理的SCADA软件它本身不直接跟PLC说话中间必须有一个“翻译官”这个翻译官就是DAServer。1.1 DAServer在InTouch体系里的位置DAServer的全称是Data Acquisition Server在Wonderware的体系里它取代了早期那套FSB和DDE/NetDDE的IO Server模式。你可以把它理解成一个独立的通信网关进程专门负责跟各种品牌的PLC、仪表、Modbus设备打交道然后把采集到的数据整理好通过SuiteLink或者DDE协议送给InTouch。这里有个常见误区有人以为装了InTouch就自带西门子驱动其实不是。InTouch安装包通常只包含一些通用接口比如OPC、SQL具体到西门子S7协议需要单独装DASSIDirect这个DAServer组件。这也是为什么很多人第一次配置时会发现SMCSystem Management Console里找不到Siemens相关的选项——因为根本没装上。1.2 DASSIDirect 3.0到底能干什么DASSIDirect 3.0这个驱动是针对西门子S7系列PLC的以太网通信驱动走的是S7协议ISO-on-TCP默认TCP 102端口。它的特点在于“直接”——不需要在PLC侧额外组态通信功能块只要PLC的CPU支持PUT/GET通信驱动就能直接读写。3.0这个版本相比老版本最大的变化是加入了对S7-1200和S7-1500系列的支持。如果你手里还是2.x的版本很可能连S7-1200的设备都添加不上或者连上了也读不到数据。这一点在项目交接时特别容易踩坑一定要在前期确认DAServer版本。1.3 一条完整的数据链路长什么样我给你画一条最常规的链路InTouch画面上的标记变量 ↓ 访问名Access Name DASSIDirect 3.0 DAServerSMC里配置的Topic ↓ S7协议TCP 102端口 西门子S7 PLCS7-300/400/1200/1500InTouch里的每个“访问名”指向DAServer的某个实例访问名里的“主题名”对应DAServer里创建的Topic而标记变量里的“项目名”就是具体的PLC地址比如DB1.DBD20。这层映射关系是整个配置的核心任何一个环节的名字对不上数据就传不上来。2. 搭建环境前必须确认的几件事磨刀不误砍柴工很多人配置到一半发现连不上回头一查是软件版本不对或者PLC侧没设置好。这部分我建议你花十分钟看完能省下后面好几个小时的排查时间。2.1 软件版本与安装顺序DASSIDirect 3.0通常不是单独发布的它包含在Wonderware System Platform的安装包里。我的习惯是先装System Platform选择包含DAServer的组件再装InTouch。顺序反了容易出现SMC里面关联DLL注册不上之类的问题。版本匹配上我列个常见的对照表供参考System Platform版本对应InTouch版本备注System Platform 2012InTouch 2012老项目常见System Platform 2014 R2InTouch 2014 R2目前存量项目较多System Platform 2017InTouch 2017界面开始变化System Platform 2020InTouch 2020新项目推荐这里特别提醒一句DASSIDirect 3.0虽然在2012到2020版本里都能找到但高版本System Platform里创建的DAServer实例低版本InTouch不一定能通过SuiteLink正常访问跨大版本混用容易出怪问题。最简单的办法同一年代的SP和InTouch搭配使用。2.2 PLC侧与网络侧的准备工作PLC侧的准备经常被忽略但往往是连接失败的第一大原因。S7-300/400需要配置以太网模块CP343-1/CP443-1或者CPU自带PN口并设置好IP地址、子网掩码。S7-1200/1500需要在TIA Portal里勾选CPU属性中的“允许来自远程对象的PUT/GET通信访问”。很多项目里工程师出于安全考虑会关掉这个选项结果上位机怎么都连不上这点务必优先排查。确认机架号和槽号S7-300常用机架0槽号2S7-400常用机架0槽号3/4/5视CPU型号而定S7-1200/1500通常填机架0槽号0但个别机型可能有差异以TIA Portal硬件组态里的实际槽号为准。网络侧最简单的方式是先在本机CMD里ping一下PLC的IP确认二层三层通不通。接着确认Windows防火墙有没有放行TCP 102端口以及DAServer进程的入站规则。很多现场网络是通的就是防火墙把102端口给拦了导致驱动一直报超时。3. 一步一步配置DASSIDirect 3.0SMC实操环境准备好后进入正题。这一章我会按照实际操作的顺序把SMC里的每一处关键配置点都说清楚。先记住一个总原则DASSIDirect 3.0的配置层级从上到下依次是“DAServer实例 → 端口 → 设备 → Topic”每层各司其职。3.1 创建DAServer实例与端口打开SMCSystem Management Console左侧导航栏找到DAServer Manager右键空白区域选择新建在弹出的驱动列表里找DASSIDirect 3.0给它起个实例名我习惯用SIDirect_0这种带协议标识的名字方便以后多个驱动并存时区分。实例创建后默认会有一个端口配置。右键实例进入Configuration找到端口Port设置。这里的Port跟TCP端口完全是两个概念它是DAServer内部的一条逻辑通信通道。一般保持默认即可但如果后续需要同时连多个子网或者对不同的PLC组设置不同的通信参数可以添加多个端口。真正需要关注的是底层的TCP 102端口这是S7通信的固定端口不能改。只要防火墙放行了102DAServer到PLC的通信通道就打开了。还有个细节是连接超时Timeout和重试次数建议初次调试时把超时设长一点比如5秒避免因为PLC响应稍慢导致驱动反复重建连接。3.2 添加PLC设备并设置机架槽号在端口下右键“设备”填上PLC设备名称然后进入通信参数配置。IP地址就是PLC的以太网IP机架号和槽号务必按2.2里说的确认。这里我特别想强调下S7-1200/1500和300/400的区别S7-300基本是机架0槽2万年不变S7-400要看具体CPU有些CPU在槽3有些在槽4S7-1500则要看TIA Portal里硬件组态的实际槽位用“机架0槽0”很多时候能通但个别固件版本会拒绝连接。设备添加完成后不要急着直接去InTouch里建标记先在SMC里测试连通性。右键设备名选择“测试”Test在测试对话框里填一个肯定存在的地址比如DB1.DBX0.0点读取。如果这里能读到值说明DAServer到PLC这条链路已经打通后面问题大概率出在InTouch访问名或标记配置上。3.3 建Topic并开启激活Topic可以理解成一组“地址集合”或者“数据字典”InTouch访问名里的主题名必须和这里完全一致。在设备下右键新增Topic起名的时候别用中文也别带空格比如T_PLC1、T_S7_1500_01这种风格最稳妥。Topic参数里轮询周期默认是100ms对于数据量大的项目建议调到500ms甚至1秒并不是越快越好。轮询太快会导致PLC的通信负载过高影响程序扫描周期。超时时间保持默认即可。更新模式选“周期”还是“变化”取决于现场需求。做趋势和历史记录的项目选周期模式更可靠纯画面显示用变化模式能减轻网络压力。配置完所有对象后回到DAServer实例节点右键“激活”Activate让配置生效。这一步很多人忘记做结果改了半天的地址一个都没加载进去。激活之后看状态栏出现绿色标识并显示“运行中”才说明DAServer真正跑起来了。3.4 在InTouch里建访问名和标记名打开InTouch WindowMaker进入“标记名字典”在“访问名”页面新建一个访问名。这里有几处关键字段任何一个不对都会被坑得很惨节点名DAServer所在计算机的机器名。如果DAServer和InTouch在同一台机器上可以留空或用本机机器名。应用程序名固定填dassidirect这是DASSIDirect实例默认的应用程序名。主题名填SMC里创建的Topic名称比如T_PLC1。协议推荐选SuiteLink这是Wonderware自家针对工业实时通信优化的协议比DDE快一个量级。只有特殊情况比如远程节点不支持SuiteLink才用DDE/NetDDE。访问名建好后在“标记”页面新建I/O型变量时“项目名”这一栏填PLC地址格式要符合DAServer的规范比如位变量M0.0、I0.5、Q1.2、DB1.DBX0.0字节/字变量MB10、MW12、IW64、QW2、DB1.DBW10双字/浮点变量MD20、ID4、DB1.DBD12数据类型必须跟PLC里的实际类型对上比如S7里的REAL对应InTouch的I/O实数型S7里的DINT对应I/O长整数型这个后面第4章会详细展开。4. 那些容易踩的坑S7-300/400与S7-1200/1500的差异标题里既然点到了DASSIDirect 3.0这一章就重点说说为什么3.0版本值得单独写一篇。很多人用老版本驱动连S7-300顺手了换成S7-1200/1500后各种莫名其妙的故障本质都是新旧两代PLC在通信模型上的差异导致的。4.1 地址格式与偏移问题S7-300/400的地址空间很规整DASSIDirect 3.0沿用了传统S7寻址方式DB块里以0起始计算字节偏移。比如S7-300里DB10.DBW0就是数据块DB10的第0、1两个字节组成的一个字这个跟STEP 7里看到的完全一一对应基本不会搞错。S7-1200/1500虽然理论上也支持标准寻址但在TIA Portal默认建DB块时很多工程师图省事直接勾了“优化块访问”。一旦勾了这个选项PLC编译后DB块里的“地址偏移”就不再是你在程序里看到的DBD20这种实际物理偏移了而是由编译器动态分配的符号地址。DASSIDirect 3.0按DBD20去读读回来的全是0或者干脆报错。遇到这种情况要么在TIA Portal里把DB块的“优化块访问”取消勾选再重新编译下载要么在DAServer里配置符号文件Symbol文件让驱动按符号名去访问。我个人的建议是只要不是几十上百个DB块的大项目直接把“优化块访问”取消掉用绝对地址最省心。4.2 优化块访问与PUT/GET权限跟“优化块访问”配套的另一个坑是PUT/GET权限。S7-1200/1500在CPU属性里有一项“允许从远程对象进行PUT/GET通信访问”默认是勾选的但很多PLC工程师出于军工、安全等要求会取消它。这个选项一旦取消DASSIDirect 3.0无论如何都连不进CPU而且症状特别像IP不通——SMC里能ping通但Test就是超时。这个坑的隐蔽之处在于它不是配置层面的问题是PLC侧的安全策略。遇到连接超时不要只盯着DAServer这边的IP、机架、槽号一定要去TIA Portal里检查一下这个开关。4.3 字符串、数组与数据类型的处理字符串在S7里的存储格式比较特殊占用空间比实际字符多两个字节首字节存字符串最大长度第二字节存实际使用长度真正的字符串内容从第三个字节开始。DASSIDirect 3.0读S7字符串时如果不做处理InTouch的消息型变量拿到的是从长度字节开始的一整段数据往往显示成一堆乱码和特殊字符。解决办法有三种一是干脆不用字符串类型改成用多个字节型变量在InTouch脚本里拼接二是在DAServer的Topic设置里看有没有字符串解码相关的选项三是用项名偏移比如DB1里的字符串从DBB10开始实际内容从DBB12开始干脆读DBB12然后自己处理长度。哪种方法适合你要看现场数据量和脚本维护成本。另外数据长度也要小心。S7里DBD是4字节InTouch里如果没有对应的I/O长整数或I/O实数很容易把高2位截掉出现数值“对不上号”的问题。我见过最典型的情况是S7里的DINT数值超过32767InTouch用I/O整数去读结果读回来变成负数。5. 常见问题与排查技巧实录这部分是压箱底的实战经验。我从几个真实项目里把高频问题整理成了一个速查表你在现场遇到类似现象可以直接照着排查。5.1 连不上PLC的通用排查思路现象可能原因解决思路SMC里Test超时设备状态灰色PLC IP不通、防火墙拦截、机架槽号错误先CMD ping PLC IP再检查Windows防火墙是否放行102端口最后核对机架槽号Test返回错误“No response”S7-1200/1500的PUT/GET权限未开启在TIA Portal CPU属性里勾选允许PUT/GET重新下载硬件激活后DAServer自动停止授权问题或端口被占用查看Windows事件日志里的DAServer错误确认License状态尝试用其他端口实例网线/交换机正常但偶尔掉线轮询周期过短、网络中存在广播风暴调大轮询周期检查交换机端口双工模式尽量使用工业交换机排查顺序我建议始终是物理链路 → PLC侧权限 → 防火墙 → 机架槽号 → DAServer测试。不要一上来就怀疑配置绝大多数“连不上”都是前三步就能解决的。5.2 读取数据不稳定、类型错乱怎么办数据能通但数值不对通常不是通信问题而是数据类型匹配问题。S7里的WORD对应InTouch的I/O整数16位有符号但如果你项目里的是一个无符号的WORD超过32767的值在InTouch里就成了负数这时候用I/O长整数配合位或脚本来处理更合适。还有个容易忽略的点是“字节顺序”。S7默认是大端模式高字节在前InTouch和DASSIDirect 3.0通常能正确处理但如果你中间经过OPC网关或者第三方转换字节顺序被打乱的情况非常常见。表现为明明该是整数1读出来却是256。遇到这种先确认中间链路是否跨协议转换再检查DAServer的字节序配置。5.3 远程访问DAServer的注意事项如果你的InTouch和DAServer不在同一台机器上走SuiteLink远程访问时除了节点名要填对还要确保两台机器在同一局域网且能互相解析机器名。Windows防火墙对SuiteLink的放行也是高频问题建议用1322端口或者干脆在信任网络里临时关防火墙做验证。远程场景下我强烈建议在DAServer侧的SMC里先做本地测试确认DAServer到PLC没问题后再去InTouch侧测试。如果本机测试通、远程不通问题基本锁定在InTouch到DAServer这段网络或在访问名配置上跟PLC侧无关。6. 一点收尾的实用习惯最后分享两个我自己养成的习惯。第一个是项目验收前我会在SMC里逐台设备的“统计”页面看通信错误计数如果错误数持续增长说明通信质量有问题哪怕画面暂时正常也不能贸然验收。这个习惯帮我提前发现过好几条隐性故障的通信线路。第二个习惯是每次改完PLC侧硬件组态或DAServer配置我都习惯把SMC里的配置导出备份一份对应的TIA Portal工程文件也一并归档。DASSIDirect 3.0的配置本身不复杂但现场环境千奇百怪有份备份能让你在出问题时快速回退也方便排查是不是有人改过配置。这套驱动我这么多年用下来总体感觉是只要PLC侧的权限和地址格式搞定DASSIDirect 3.0其实很稳长期跑下来很少出幺蛾子。真出问题九成以上都出在通信基础配置和类型匹配上。希望这篇文章能帮你少走点弯路。本文还有配套的精品资源点击获取