ARTICLE DETAIL

资讯详情

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

AutoShop与ITP仿真联调:PLC和HMI全链路虚拟调试指南

AutoShop与ITP仿真联调:PLC和HMI全链路虚拟调试指南 前两年做一个设备改造项目PLC和触摸屏都要换新供货周期卡得死现场又等着设备投产。那段时间我基本是靠汇川AutoShop的仿真功能加上ITPInoTouchPad触摸屏组态软件的模拟运行把整套程序先在电脑上跑通的梯形图逻辑、HMI画面、通讯链路全部虚拟联调。等硬件到位以后直接下装接线、上电、试机整个过程没有因为程序逻辑返过工。这套组合的核心思路不复杂AutoShop负责模拟PLC侧ITP负责模拟触摸屏侧让两个假设备在电脑里通过以太网握手实现控制系统全链路闭环验证。很多人觉得两个软件各玩各的难点卡在IP怎么设置、变量怎么绑一旦遇到通讯失败就放弃仿真直接蹲回电柜前折腾真机。这篇文章把整条链路拆开讲从IP通信模型到变量绑定细节再到最常见的故障排查顺序。想验证程序逻辑、给客户做画面演示、或者带新人熟悉项目流程的都可以照着走一遍。1. 为什么我坚持先做全链路仿真省下的不只是蹲在电柜前的时间1.1 AutoShop的仿真能模拟到哪一步AutoShop是汇川小型PLC的主力编程软件常见的H1U、H2U、H3U这些机型都在它的支持范围内支持梯形图、指令表、结构化文本这些编程方式。它自带的仿真模式不依赖真实PLC在电脑上直接把编译后的用户程序跑起来。你要清楚它模拟的是CPU的运算逻辑线圈通断、定时器累积、计数器加计数、寄存器读写这些都能做。但仿真不是万能的。它模拟不了外部硬件的真实信号模拟量模块的实际电流电压输入、串口和以太网口上的真实报文、高速计数器对应的编码器物理脉冲这些在纯仿真环境里都不存在。所以我养成了一个习惯凡是开关量、定时器、计数器、数据处理相关的逻辑尽量全部用仿真验证凡是通讯协议、模拟量采集、运动控制这类与硬件强相关的部分会等硬件到手后单独做一个最小功能测试来验证通讯和接线而不是把时间浪费在等设备到货上。1.2 ITP在整套流程里扮演什么角色ITP是汇川IT系列触摸屏的组态软件用来设计画面、配置控件和变量。放在这套流程里ITP负责模拟HMI侧AutoShop负责模拟PLC侧两者之间通过以太网通讯AutoShop的仿真模块相当于一个虚拟PLC服务器ITP的模拟运行相当于触摸屏客户端。ITP向AutoShop发起连接读写寄存器。举个例子你在电脑上点击ITP画面里的启动按钮虚拟PLC里的M0就会置位梯形图逻辑接着动作输出Y0变为ON画面上的指示灯也跟着亮了。这个链路完整还原了现场人按触摸屏→PLC执行逻辑→输出反馈回画面的过程。这就意味着不用接一根线就能先把人机交互和程序逻辑整体验证一遍。1.3 这套组合真正带来的价值说直接点它有四个实打实的价值。第一是开发期验证。程序逻辑有没有问题在没有硬件时就能暴露。我自己就因为在仿真时发现互锁逻辑写反避免了一次现场事故。如果直接下载到设备上两个输出会同时导通轻则设备动作异常重则损坏机构。第二是方案演示。给客户或领导看项目方案时直接打开仿真工程画面操作一遍比任何PPT都有说服力。第三是新人培训。新同事上手不会一上来就接触真机。一台电脑装好两个软件就可以完整走一遍编程、组态、通讯联调的流程学习成本低也不怕把设备搞坏。第四是效率。柜子还没到、电气还没接线的时候程序已经能跑了设备一到就是下装、接线、上电、试机四步曲现场调试周期大幅缩短。2. 仿真联调的第一步把ITP和AutoShop之间的IP通信模型想清楚2.1 虚拟设备之间的网络通路长什么样很多第一次做联调的同事最容易把仿真理解成单独模拟AutoShop点一个仿真启动ITP点一个模拟运行两个窗口各自干各自的。其实真正的联调是让两个虚拟设备彼此找到对方这中间要走一条虚拟以太网通路。AutoShop启动仿真以后电脑上会挂起一个虚拟PLC服务监听某个端口等待连接。ITP模拟运行时相当于一个虚拟触摸屏按配置的目标IP去连接那个服务。所以核心问题只有一个ITP配置里填的IP必须和AutoShop仿真时PLC所在的IP一致端口也要对应。就这么简单但很多人就是栽在这。你需要注意一点不同版本的AutoShop显示虚拟PLC通讯信息的方式不一样。有些版本在仿真窗口或状态栏直接显示一个IP地址有些版本直接使用本机网卡配置的IP作为虚拟PLC地址还有的版本需要在仿真设置里手动指定。启动仿真以后先看清楚自己的软件属于哪种情况记下那个IP再往下配。2.2 本机静态IP配置的两种场景分清楚场景你是纯仿真环境联调还是要和现场真实设备混用。纯仿真环境建议给本机网卡配一个固定IP子网掩码255.255.255.0。IP段选192.168.1.x这种经典网段x取一个不容易冲突的数值比如10。网关可以不填因为只有本机内部通讯。但Win10之后有一个让人抓狂的设定只填IP和掩码、不填网关点确定的时候系统会报错认为配置不完整。我的解决办法很土但有效临时填一个同网段的网关地址比如192.168.1.1。如果这台电脑之后还要正常上网记得改回原来配置所以建议用专用的本地连接做仿真别和日常上网的网卡混用。真实设备混用场景如果等一下要连真实的PLC和触摸屏就把电脑IP直接设置成和它们同一个网段。比如PLC是192.168.1.88触摸屏是192.168.1.66电脑就设192.168.1.10。这样仿真联调和真实联调之间的切换成本最低IP不用反复改。2.3 防火墙是仿真联调中最隐蔽的拦路虎Windows防火墙默认会拦截入站连接ITP连AutoShop时经常出现怎么都连不上的情况。最直接的检查办法启动AutoShop仿真和ITP模拟运行的时候注意看Windows有没有弹出是否允许应用访问网络的提示。如果有勾选专用网络后点允许。如果没弹窗但连不上临时把防火墙关掉测试一下。确认问题出在防火墙后再把两个软件加入白名单。不建议长期关闭防火墙工控电脑的安全还是要重视。3. AutoShop侧先跑起来写一个最小的电机启停逻辑3.1 新建工程、写逻辑、启动仿真打开AutoShop新建工程选好PLC机型。我这里用H3U举例流程适用于大部分H系列。梯形图里写一个带自锁和自动停机的启保停逻辑LD M0启动按钮 OR Y0自保持 ANI M1停止按钮 ANI T0定时到自动断 OUT Y0输出到电机接触器 LD Y0运行状态下 OUT T0 K100计时K100为设定值具体时长看该机型定时器时基 MOV T0 D10把定时器当前值送到D10供HMI显示编译通过后在工具栏或调试菜单里找到仿真启动入口。不同版本菜单位置有差异有的工具栏上直接有模拟运行图标。点下去以后AutoShop进入仿真状态梯形图进入在线监视模式。屏幕最下方状态栏或在线监视窗口里会显示当前仿真连接信息包括虚拟PLC的IP地址和服务端口。把这组信息记下来这就是后面ITP要去连接的目标。3.2 用状态监视表模拟现场按钮状态监视表是AutoShop仿真时最常用的工具。它可以添加M、Y、D、T各类寄存器双击值直接修改。比如启动按钮M0现实中要接一个常开按钮才能触发但仿真里你直接在监视表里把M0改为ON等效于按下了按钮。演示一下在监视表添加M0、M1、Y0、T0、D10。把M0改为ON梯形图里Y0变ONT0开始累积D10跟着变化最终T0计时到Y0断开D10停在设定值。这一整套流程模拟的就是按下启动、电机运行、运行一段时间自动停止的现场过程。逻辑对不对、定时时长合不合适此刻就能判断不需要任何硬件。3.3 把HMI用到的地址规划成一张表在给ITP绑定变量之前强烈建议先把HMI会用到的地址梳理成一张分配表。这不是形式主义是后面ITP配置变量的依据。先用上面这个例子用途地址类型说明启动按钮M0位HMI写入模拟按下停止按钮M1位HMI写入模拟按下运行输出Y0位HMI只读显示电机状态运行计时D10字HMI只读显示运行时间故障代码D20字HMI只读备用把这张表放进项目文件夹和程序、工程文件放在一起。ITP里建变量时直接照表填基本不会出地址错误。4. ITP侧通讯配置把虚拟触摸屏接到虚拟PLC上4.1 新建工程与触摸屏型号选择打开ITP新建工程选择目标触摸屏型号。手上没有触摸屏实物时建议尽量选和项目实际一致或接近的型号。不同尺寸的屏幕分辨率影响画面布局但不影响通讯变量配置逻辑。如果只是验证逻辑选一款常用型号即可后续随时能改。ITP界面一般分几个区域左侧是工程管理器或工程树中间是画面编辑区。在工程树里找到设备或通讯相关节点双击进入通讯设置。4.2 通讯节点配置的关键项在通讯配置窗口里通常需要新增一个PLC连接然后配置以下几项驱动或品牌选择汇川或通用的Modbus TCP驱动PLC类型选择与AutoShop工程一致的PLC系列通讯方式以太网或TCP/IP目标IP填AutoShop仿真时显示的虚拟PLC地址端口保持默认或与AutoShop仿真提示的端口一致超时时间和重试次数保持默认除非有断线问题填完这些ITP才知道去连接谁。这一步是联调失败的重灾区尤其是IP地址。我见过有人把本机网卡的IP地址填进去结果AutoShop虚拟PLC的IP跟它根本不是一回事自然连不上。提示AutoShop仿真显示的IP是目标ITP里必须填它本机网卡IP是源地址只需要和虚拟IP在同一网段。这两个概念混掉是第一天做联调最容易犯的错。4.3 用最小画面验证通讯链路在ITP里新建画面放四个控件一个置位位按钮地址M0模拟启动一个复位位按钮地址M1模拟停止一个指示灯地址Y0一个数值显示地址D10显示格式设为整数。点击ITP的在线模拟或模拟运行按钮进入画面模拟状态。正常情况下模拟器能连上AutoShop的虚拟PLC。做两个方向验证在AutoShop监视表里强制M0为ONITP画面里Y0指示灯应变绿D10数值开始增加。在ITP画面里点击M0按钮AutoShop监视表里M0变ON梯形图中Y0在自锁逻辑下也变ON。这两个方向都通证明PLC程序、触摸屏画面、IP通讯三个环节全部正常剩下就是铺量加更多画面和控件。5. 变量绑定的实用技巧别让地址成为后期修改的枷锁5.1 先读透地址区的基本规则H系列的寄存器大致分几块M区是内部位寄存器Y和X是输出和输入点D区是数据寄存器T和C对应定时器和计数器。ITP的变量类型也围绕位和字两大类但不同版本对地址写法的要求有差异。有些老协议驱动可能要求把M0、D10换算成Modbus风格的绝对地址。遇到这种情况不用死记地址码在ITP变量界面或手册里找到驱动对应的功能码表再把你用到的地址按规则换算即可。如果选同品牌驱动通常已经封装好了地址映射直接填M0、D10就行。5.2 数据类型匹配数值显示对不上的根源这是几乎所有做HMI联调的人都要踩一遍的坑。AutoShop的D寄存器是16位的默认按有符号整数处理。假如PLC里往D10写入的是一个0到60000之间的无符号值ITP数值控件默认按16位有符号解析显示就成了负数看起来很离谱。解决办法是在ITP控件的属性或变量定义里找到数据类型选项改为无符号16位。决定用什么类型的依据不取决于希望显示成什么而是PLC程序写入该地址的数据范围。这句话要记住数据范围可能超过32767的无符号值就按无符号处理。另一个高频坑是32位数据。运行时间、累计产量这类数值在D区占两个连续地址比如D10和D11。ITP绑定这个值时地址仍填D10数据类型选双字32位注意高低字顺序。汇川的PLC和ITP一般遵循小端序低16位在D10高16位在D11保持默认即可。如果数值变成一个巨大错误值很可能是高低字被交换去检查通讯驱动里是否有多字节顺序选项。5.3 位和字之间别硬转在PLC里留好映射区有些场景需要把位状态组合成字比如把M区的状态位打包在HMI上用数值控件显示成状态码。最稳妥的做法不是在ITP里做复杂的位拼接而是在PLC程序里用BMOV或MOV指令把M区的位组合搬到D区ITP直接读D区。原因是HMI端的位运算能力很弱梯形图干这个最合适而且仿真时还能直接在AutoShop监视表里看到转换结果对不对。这个原则能帮你少掉很多头发。5.4 从直接填地址升级到变量表管理ITP支持设备变量表。建议先定义变量再让画面控件引用变量而不是在每个控件里直接写死地址。举个操作例子在变量表里新建一个条目变量名填RunStatus类型选位地址Y0。画面里的指示灯控件在变量属性里下拉选择RunStatus。这样做的价值体现在后期维护程序把运行状态从Y0挪到Y5只需要改变量表里的一处画面所有引用自动生效。直接在每个控件里写地址画面一多就要逐个检查非常痛苦。变量命名也值得多说一句。用英文或拼音缩写加用途比V001这种不明所以的编号好太多。中文名在ITP里通常支持但跨系统流传时有编码问题所以我习惯用RunStatus、FaultCode这种格式。6. 联调常见故障排查把这几个点按顺序查一遍6.1 ITP显示连接失败该去哪看遇到ITP模拟器报通讯失败不要急着反复点重试按顺序排查确认AutoShop的仿真还在运行。编译报错导致退出或软件崩溃时虚拟PLC进程消失ITP自然连不上。确认AutoShop仿真显示的虚拟IP然后和ITP通讯配置里的目标IP逐字符比对。确认本机网卡IP与虚拟IP在同一网段。比如虚拟IP是192.168.1.88本机是192.168.1.10掩码255.255.255.0没问题本机如果是192.168.0.10就不行。确认端口一致。AutoShop提示的端口和ITP配置的端口要相同大部分情况保持默认即可但改过就要核对。确认防火墙放行或者临时关闭防火墙测试。确认没有其他程序占用该端口。个别编程软件或仿真工具会监听相同端口导致连接被抢。按这个顺序排查90%的连接失败问题都能解决。剩下10%大概率是软件版本兼容问题换到兼容版本一般就好。6.2 画面能连上但数值不动问题出在绑定连上了但数据不刷新是变量绑定阶段最常见的问题。按这个思路查先看AutoShop监视表里目标地址有没有变化。数值没变化说明PLC侧就没写这个地址。可能程序里根本没写或者值存在功能块的局部变量里没传回全局D区。去程序里把传送指令加上。再看ITP控件是否绑定了正确变量。用变量表方式建立控件的改过变量地址后没重新编译控件还在引用旧变量这种情况特别隐蔽。每次修改变量表重新编译ITP工程再运行模拟避免用到过期缓存。最后看数据类型。数值疯狂跳变或出现负数大概率是符号位或位数不匹配。回变量属性核对数据范围改成无符号或32位。6.3 仿真系统时好时坏往往是IP配置漂移纯仿真环境最烦人的是今天能连上、明天连不上。常见原因有两个。一是AutoShop每次启动仿真的虚拟IP不固定取决于版本和网络环境。下次启动换了一个IPITP配置里还写着昨天的IP。解决办法每次启动仿真后先看IP有变化就同步改ITP配置。二是本机网卡在DHCP和静态IP之间漂移。比如早上插着公司网线自动获取IP下午拔网线做仿真Windows给网卡分配了一个169.254开头的地址和虚拟PLC不同网段连接必断。解决方法是给网卡固定一个专用仿真IP或者建一个虚拟网卡始终固定仿真网段。我实际项目中会做一张《联调IP记录表》把本机IP、AutoShop虚拟IP、ITP目标IP、端口、日期都记下来。每次联调开始前花两分钟核对就能避免很多莫名连不上的排查时间。这个习惯听起来基础但特别有效。写到这里AutoShop和ITP全链路仿真的完整流程已经串下来了。整体思路一句话总结AutoShop出虚拟PLCITP出虚拟触摸屏IP保证能握手变量绑定保证数据不错位。我个人的惯常做法是每接一个新项目首次联调前先把《联调IP记录表》放进项目目录然后照着最小示例先跑通一个按钮、一个灯、一个数值确认链路没问题后再把画面铺开。如果以后你也在用汇川这套工具做离线联调不妨试试这个流程能省下不少蹲在电柜前的冤枉时间。
返回列表