ARTICLE DETAIL

资讯详情

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

繁易触摸屏带汇川PLC实例:通信配置、寄存器映射与故障排查

繁易触摸屏带汇川PLC实例:通信配置、寄存器映射与故障排查 简介这是一份繁易触摸屏与汇川可编程逻辑控制器PLC联动的完整程序实例面向自动化现场工程师、人机界面组态人员和设备调试初学者适用于触摸屏与控制器之间的通信联调、画面设计与功能验证。压缩包内共383个文件整体大小4.22MB内容以触摸屏界面位图、矢量图形、窗口配置文件、通信与报警配置文件、工程主文件等形式为主覆盖了画面设计、变量映射、通信参数、报警事件等主要开发环节。已有731人学习下载资源虽小但结构完整能够帮助理解繁易触摸屏与汇川控制器之间的典型连接方式与配置思路。通过阅读工程文件和配置项可以学习从新建工程、画面绘制、寄存器关联到报警输出的完整流程配置目录划分清晰便于按模块对照分析可直接用于相似自动化项目的前期参考或教学演示。1. 拿到「繁易触摸屏带汇川PLC程序实例」先看什么设备维修间里最常见的一幕压缩包里既有繁易触摸屏的组态工程也有汇川PLC的工程文件触摸屏上电后却直接报PLC无响应。很多人第一反应是换线、改波特率折腾半天才发现地址映射里D100和4x100差了一个偏移。这套「繁易触摸屏带汇川PLC程序实例」本质上不是两个独立文件而是一整套通信契约触摸屏怎么找到PLC、PLC把哪些寄存器开放给HMI、人机画面用哪些变量去读写三者必须同时成立。设备厂电气工程师、化工与包装产线的售后调试凡是接手成套设备程序的人都需要先把这套契约拆开看清楚。下面按「协议→地址→程序骨架→联调→诊断页」的顺序把这些年的通用做法完整捋一遍。2. 繁易触摸屏与汇川PLC的通信链路与寄存器地址规划通信是整套程序的地基。繁易触摸屏和汇川PLC连不起来后面画面做得再漂亮也没有意义。这一章先把通信链路选型、寄存器映射、网口参数讲清楚这部分内容直接决定你在触摸屏变量表里填什么地址。2.1 先定协议Modbus RTU 还是 Modbus TCP繁易触摸屏本身不一定内置汇川私有协议驱动所以工程里绝大多数情况走的是标准Modbus。选择依据很简单手头PLC有没有网口。H1U、H2U这类只有串口的型号用RS485跑Modbus RTUAC系列和Easy系列的网口型号可以选Modbus TCP也可以继续用串口。通信方式选型会直接决定后续变量地址写法建议第一次做就固定下来不要RTU和TCP混用。下表是两种方式在工程上的差异对比项Modbus RTURS485Modbus TCP以太网物理接口COM口A/B两根线RJ45直连或经交换机关键参数波特率、数据位、停止位、校验位、从站号IP地址、端口号典型默认值9600, 8, 1, N, 从站号1192.168.1.x端口502调试工具USB转485 ModbusPollWireshark / ModbusPoll TCP适合场景现场距离几十米、干扰较强距离近、需兼顾远程监控RTU方案必须保证触摸屏和PLC两侧参数完全一致TCP方案里端口502是Modbus规范固定值除非PLC侧被改过否则不要随便动。汇川PLC在这个链路里做Modbus从站触摸屏做主站周期性读写。你不需要在PLC里为通信写额外指令串口或网口被配置成Modbus从站后变量表里的D区、M区会自动开放给标准功能码访问。2.2 寄存器地址是怎么换算的4x / 0x / 1x 与偏移量汇川PLC的Modbus从站地址映射是约定俗成的D区映射到保持寄存器用03、06、16功能码读写M区和Y区映射到线圈用01、05、15功能码读写X区映射到输入或离散输入用02功能码读取。触摸屏变量表里常见写法是“4x”开头表示保持寄存器、“0x”开头表示线圈。这里有一个最容易踩的偏移问题Modbus协议报文里的寄存器地址从0开始而人机界面为了传统习惯从1开始显示所以触摸屏上写4x100实际发送的报文地址可能是99或100取决于驱动有没有做隐式减一。汇川手册里的“D100对应地址”需要先判断起始方式上电后读不到就调这个“地址偏移”通常只调0或-1两档。PLC元件功能码触摸屏常见写法注意事项D0~D199903 / 06 / 164x0001~4x2000偏移差1是最常见的故障M0~M799901 / 05 / 150x0001~0x8000按位读写连续16位效率更高Y0~Y37701 / 05 / 150x0001开头Y是输出线圈直接操作有安全风险X0~X377021x0001开头部分型号需要PLC程序把X中转给M区假设实例工程让触摸屏读取D100触摸屏地址栏多半是4x100PLC侧对应保持寄存器地址99如果PLC手册的Modbus地址表直接写0x0063两者是同一个位置。现场验证时先把PLC里的D100改成整数1让触摸屏显示对应地址若数值不跟随且地址加减1后跟随说明偏移方向选反了。32位数据的坑集中在浮点上D100存储一个32位浮点数时实际占D100和D101两个寄存器。汇川PLC默认小端存放低字在前触摸屏变量类型里的字序就要选「低字在前」。如果PLC程序里做过高低位交换触摸屏侧则要反过来。这就是「汇川PLC用Modbus RTU高低位转换」讨论的典型场景——没转读出来是个天文数字转反了读出来是个负的小数。2.3 网口PLC的IP和端口怎么配置Easy与AC系列AC系列或Easy系列走网口时先给PLC配固定IP。常见做法是在AutoShop左侧工程树里找到「PLC配置→以太网参数」勾选固定IP填一个和触摸屏同网段的地址。举例触摸屏192.168.1.10PLC设192.168.1.88子网掩码255.255.255.0下载后PLC重新上电生效。触摸屏侧新建连接时选Modbus TCP目标IP填PLC的IP端口填502。汇川AC系列连接电脑下载程序时AutoShop连接配置里用默认端口即可如果电脑提示连不上按「Ping通PLC→关闭电脑防火墙→检查AutoShop连接配置→确认PLC在RUN」的顺序排查不要把Modbus调试端口和编程下载端口混为一谈。2.4 通信验证步骤先让一个变量亮起来不要一上来就画十几个画面先把通信打通再谈界面。通用验证流程如下在繁易触摸屏配套的组态软件中新建工程建立HMI与PLC的连接变量表里添加一个D100整数变量下载到触摸屏然后PLC侧把D100改成12345触摸屏数值框显示12345再反过来在触摸屏上写入一个值PLC监视里看到同样数值。双向都通说明通信链路、地址映射、串口参数全部正确此时再继续追加M100、D101等变量或者从Excel批量导入变量表稳定性会高很多。提示PLC处于RUN时Modbus从站正常响应PLC如果STOP很多型号的从站不响应触摸屏会报超时。见到PLC_NO_RESPONSE这类报错先确认PLC是否在运行。3. 用AutoShop与繁易触摸屏组态软件搭出可运行的程序实例实例程序之所以能直接用不是因为画面做得精致而是PLC侧的通信映射区、手自动逻辑和触摸屏侧的变量绑定严丝合缝。这一章按PLC到HMI的顺序把一套可运行程序的最小骨架搭出来。3.1 PLC侧先做好通信映射区在AutoShop里新建工程先选对CPU型号以设备铭牌为准。程序结构建议分成四段主程序、通信映射区、工艺逻辑、故障处理。通信映射区的作用是给HMI一个固定入口不让画面上的变量满天飞。以下用结构化文本表达通信区与输出逻辑的对应关系在梯形图里就是常开触点、常闭触点和输出线圈的组合// 通信映射区示例M100启动M101停止M102急停M200中间输出 IF M100 AND NOT M101 AND NOT M102 THEN M200 : TRUE; END_IF; IF M102 THEN M200 : FALSE; END_IF; Y0 : M200 AND 无故障; // 无故障在梯形图里是另一个常闭触点 D301 : D100; // 把HMI给定值换算后放到上送区这段逻辑的要点M100启动信号进来后用M200这个中间继电器自锁避免通信抖动导致设备一停一顿M102急停在梯形图里必须用物理常闭触点串联在安全回路不能只依赖HMI逻辑。把HMI的启动信号放在M区是因为M区在线圈功能码里单独位操作效率低如果现场变量数量大可以把按钮位做成16个一组放在D区再用PLC程序解位这样一次通信就能读取全部按钮状态。D301这个上送区是给触摸屏显示实际值用的例如变频器频率、当前电流由PLC每个扫描周期刷新一次。3.2 在繁易触摸屏组态软件里配置连接与变量绑定下载触摸屏工程前先确认屏的型号和固件版本再新建工程、添加连接。选择Modbus RTU或Modbus TCP后会弹出通信参数页这里必须和PLC侧串口配置一字不差。参数触摸屏侧PLC侧AutoShop通信配置波特率96009600数据位88停止位11校验无None无从站号11任何一项改动都要保存并重新下载工程只编译不下载触摸屏里还是旧参数。变量表里绑定地址的写法要统一16位整数写D10032位浮点写D100低字在前位变量写M100。变量表支持整体导入导出变量上百个时先在Excel里把地址列好再导入比在软件里一格格点快得多也便于后续对照PLC程序检查。触摸屏按钮的事件脚本示例// 启动按钮按下事件仅在按下瞬间执行 IF HMI_手自动 1 THEN HMI_启动位 : TRUE; ELSE MSG(请先切到手动模式); END_IF;脚本说明HMI_手自动绑定PLC的M104HMI_启动位绑定M100。按下启动瞬间脚本把M100置为TRUE一帧PLC在下个扫描周期把这个脉冲锁存。如果PLC里已经写了自保持逻辑按钮也可以直接用触摸屏的「置位/复位」模式不必写脚本。注意按钮的「按下触发」和「弹起触发」是两种事件用错会导致启动后立刻停止。手自动切换的互锁必须放在PLC里脚本在这里只能做操作提示画面层做校验、PLC层做保护这个分层思路要贯穿整个程序实例。3.3 实例包里还有接线图与注释拿到「程序实例.rar」后先翻压缩包里的说明文档和接线图确认触摸屏用的COM口编号是COM1还是COM2PLC的通信端口是哪一个同一个PLC上不同串口可能跑不同协议接错口会一直报超时。工程迁移到另一台设备时只要触摸屏型号一致、PLC型号一致通常可以整套复用但触摸屏分辨率不同时需要重新布局画面。建议把原工程的库文件、字体文件一并备份缺库会导致控件显示成问号或乱码。压缩包内如果包含PLC程序备份和触摸屏工程备份两份先各自解压到独立文件夹不要混放组态软件打开工程时经常因为路径带中文或空格导致加载失败。4. 繁易触摸屏带汇川PLC联调的5类坑与排错方法联调阶段的问题大多集中在接线、参数、地址、网口和数据格式这五个方向。这一章按实际发生频率排序给出可照做的排查步骤。4.1 串口接错用Python小脚本验证PLC从站通不通RS485的A/B线接反是头号故障而且触摸屏端和PLC端的A/B标法可能相反。如果现场允许先把触摸屏撇开用电脑USB转485直接连PLC从站用ModbusPoll或下面这段Python验证链路本身from pymodbus.client import ModbusSerialClient client ModbusSerialClient( portCOM7, baudrate9600, bytesize8, parityN, stopbits1, timeout0.5, ) assert client.connect() # 读从站1的保持寄存器从地址0开始读4个字对应PLC的D0~D3 resp client.read_holding_registers(0, count4, slave1) print(resp.registers) client.close()代码说明port换成电脑实际串口号slave必须和PLC从站号一致波特率、校验方式也要和PLC侧完全一致。能读到数据说明PLC侧Modbus从站功能正常问题一定出在触摸屏接线或参数上如果电脑也读不到先换A/B线再试。这个小脚本可以直接放进U盘带着比在触摸屏上翻诊断页面快得多。4.2 参数不一致逐项核对串口表触摸屏能连上但不通信九成是某项参数不一致。按下面这张表逐项核对比乱试更高效排查项正确状态常见错误串口号触摸屏对应COM口与物理接线一致线插COM1连接配置里用的是COM2波特率与PLC完全一致PLC设9600触摸屏设19200校验方式与PLC一致建议尽量关闭PLC设偶校验触摸屏无校验从站号1~247之间且唯一触摸屏把从站号写成0协议模式RTU触摸屏误选ASCII或Modbus TCPPLC状态RUN停在STOP从站不响应触摸屏参数改完后必须保存并重新下载工程。调试阶段每改一次参数最好在触摸屏画面上放一个通信状态显示控件能省去来回跑现场的时间。4.3 地址差一和高低字Modbus RTU的经典误用现象是PLC里D100显示12345触摸屏读出来却是12344或0。先怀疑地址偏移。把触摸屏侧地址改成4x99或4x101试一次一次只调1确认方向。这种场景在Modbus驱动里很常见原因就是2.2节说的协议报文地址从0开始、HMI显示从1开始不同驱动做了不同隐式处理。整数没问题后再读浮点浮点出现乱码时先切换字序即「低字在前」改成「高字在前」或反过来第二步确认PLC里这个浮点到底存在哪两个D寄存器如果PLC程序把浮点存在D100实际占D100和D101触摸屏连续读两个字也要从D100开始不能在地址栏写D101。4.4 网口连不上Easy IP与AC连接端口的排查顺序Easy系列IP设置方法在2.3节写过了这里补一个细节触摸屏和PLC直连时大多数设备能自动识别直通线和交叉线但部分老旧型号必须用交叉线换一根网线能解决的问题不要钻牛角尖。AC系列连接电脑时端口用AutoShop默认值不要自己改端口号Ping通说明IP和网卡没问题再查防火墙是否拦截AutoShop、AutoShop版本与固件是否兼容。Modbus TCP的端口固定是502这是触摸屏连PLC用的电脑下载程序走的是AutoShop自己的连接通道和502是两码事。排查时把这两条通道分开想不会乱。4.5 数值不变、跳变或乱串PLC里值正确、触摸屏显示不变检查HMI变量是否被设成只读或者画面其他脚本在周期性覆盖写同一个变量。显示跳变大概率是字序或字节序问题也可能是PLC周期性写通信区时HMI恰好读到旧高字和新低字32位数据被拆成两次读中间被更新了。常见做法是在PLC里把通信映射区的刷新放到一个定时段里执行例如每100毫秒统一传送不要每个扫描周期持续刷新给HMI一个完整的读窗口。数值乱串且偏大通常是地址偏移差一个寄存器长度或者16位整数被当成32位浮点读取。遇到这类问题先在PLC里用固定值填充通信区再观察触摸屏显示是否稳定可以快速二分定位问题在PLC侧还是HMI侧。5. 在繁易触摸屏程序里加两个诊断画面把排错效率翻倍联调经验丰富的工程师会在正式画面前先做两个诊断画面一个给通信把脉一个给输出回路单点测试。这两页不交到操作工手里却能在现场调试时省出大量时间。5.1 用M500心跳和D200累加区分通信故障层级PLC程序里加一个1秒定时器每隔1秒翻转M500一次每隔100毫秒对D200加1。触摸屏画面上放一个指示灯绑定M500一个数值框绑定D200。正常运行时指示灯按1秒节奏闪烁D200数字持续累加。两个现象配合能区分故障层级灯不闪且数字不动是通信完全断开去查接线和参数灯有闪烁但数字卡住说明HMI在周期性读取但中间丢帧查超时时间和变量采集周期灯乱闪但数字递增正常说明数据已经出来了问题多半在画面刷新率设置。这套心跳机制不增加硬件成本比看报警记录直观得多。5.2 通信状态与PLC状态整行显示单独做一页「诊断」放四个文本框PLC运行状态、通信累计失败次数、当前从站号与IP、最后报错时间。PLC运行状态从D区读一个状态字判断通信失败次数由触摸屏脚本维护读到错误响应时自动加1。这些信息写不进正式交付画面但调试阶段一直留着。注意诊断页不要用弹窗提示通信故障时弹窗会反复弹出干扰操作在画面角落静态显示即可。5.3 受密码保护的输出测试页画面再做一页「强制输出测试」用M区按钮直接驱动Y输出。这页必须绑定密码权限且PLC侧保留独立的硬件急停与限位逻辑HMI强制位不能绕过安全回路。我一般在PLC里加一个「测试模式」字M300为TRUE时允许单点输出M300为FALSE时即使HMI置位Y也不动作。这样既方便现场查线又不至于让测试页变成安全漏洞。测试位和实际输出之间至少串一个联锁常闭接点这是实例程序最基本的安全要求。把心跳、状态行、强制输出测试页放进你自己的工程模板遇到问题先看心跳再看失败计数器最后才怀疑触摸屏画面本身。本文还有配套的精品资源点击获取
返回列表