大家好,我是专注于工业自动化技术分享的博主。在工控项目开发中,上位机组态软件与PLC的通讯调试往往是耗时最长的环节之一,尤其是对于初学者或手头没有实体设备的朋友。你是否也遇到过这样的困境:想学习MCGS触摸屏与汇川H5U PLC的通讯,却苦于没有实物硬件,或者担心操作不当损坏设备?本文将为你彻底解决这个问题。
我将手把手带你实现 “无实物仿真” 下的MCGS与H5U PLC通讯全流程。通过纯软件环境,你不仅能安全、零成本地掌握昆仑通态MCGS组态软件与汇川H5U系列PLC的联机技术,还能深入理解Modbus TCP通讯协议的核心配置。无论你是自动化专业的学生,还是希望拓展技能的工程师,这篇硬核教程都将提供一套从环境搭建、协议配置到画面组态、数据监控的完整闭环解决方案。学完后,你将能独立完成一个仿真通讯项目的搭建,为后续的实物操作打下坚实基础。
1. 背景与核心概念:为什么需要仿真通讯?
在深入实操之前,我们有必要厘清几个核心概念,理解仿真通讯的价值所在。
MCGS(昆仑通态组态软件) 是一款在国内广泛应用的工业自动化监控组态软件。它主要用于开发人机界面(HMI),也就是我们常说的触摸屏画面,用于监控和控制下位的PLC、仪表等设备。MCGS功能强大,支持多种通讯协议,学习曲线相对平缓,是很多工程师入门HMI开发的首选。
汇川H5U系列PLC 是汇川技术推出的高性能小型PLC,以其出色的运动控制性能和友好的编程软件(AutoShop)而备受市场青睐。在小型自动化设备、产线中应用非常广泛。
Modbus TCP 是一种基于以太网TCP/IP协议的工业通讯标准。它简单、开放、通用,是不同品牌设备之间进行数据交换最常用的协议之一。MCGS与H5U PLC通过网线连接进行通讯,底层采用的就是Modbus TCP协议。
那么, “无实物仿真” 的意义何在?
- 零成本学习 :无需购买昂贵的PLC和触摸屏硬件,仅需在电脑上安装软件即可。
- 零风险调试 :可以大胆尝试各种配置和编程,完全不用担心误操作导致设备故障或生产线停机。
- 突破时空限制 :随时随地可以进行学习和项目模拟,不受实验室或车间的限制。
- 聚焦核心逻辑 :剥离硬件连接的不稳定性(如网线、IP地址冲突),让我们更专注于通讯协议配置、数据地址映射和画面逻辑设计本身。
本教程的目标,就是在你的电脑上,虚拟出一台“MCGS触摸屏”和一台“H5U PLC”,并让它们像真实设备一样成功“对话”。
2. 环境准备与版本说明
工欲善其事,必先利其器。以下是完成本教程所需的全部软件环境。请务必注意版本,不同版本间的界面和功能可能存在差异。
操作系统 :Windows 10 或 Windows 11(64位)。软件在Win7上也可运行,但推荐使用较新系统以获得更好兼容性。
核心软件清单 :
- MCGS嵌入版组态软件 :本文以 MCGS Pro 3.3.6 版本为例。这是昆仑通态较新的版本,界面更现代化,功能也更完善。请从昆仑通态官网或授权渠道下载安装。
- 汇川AutoShop编程软件 :本文以 AutoShop V4.8.2.0 版本为例。这是汇川H5U等系列PLC的编程和调试软件。请从汇川技术官网下载。
- H5U PLC仿真器 :AutoShop软件自带PLC仿真功能,无需单独安装。这是实现“无实物”的关键。
- 虚拟网卡(可选但推荐) :为了更真实地模拟网络环境,避免与真实网络冲突,建议在电脑上创建一个“环回适配器”或使用虚拟网卡软件(如SoftEther)。本文会以系统自带的“环回适配器”为例进行说明。
版本兼容性提示 :
- MCGS Pro 对 Modbus TCP 驱动的支持非常稳定,与 AutoShop 的仿真 PLC 兼容性良好。
- AutoShop 的仿真功能可以完全模拟真实 H5U PLC 的通讯行为,包括 Modbus TCP 服务器功能。
- 如果你的软件版本与本文不同,大部分操作逻辑是相同的,但部分菜单位置或选项名称可能有细微差别,请灵活调整。
3. 核心原理与协议拆解:Modbus TCP 地址映射
要让MCGS和H5U正确通讯,必须让它们说同一种“语言”,并且对“数据存放的仓库地址”有共识。这就是协议和地址映射。
Modbus TCP 通讯模型 : 在这个仿真项目中,H5U PLC的仿真器将扮演 Modbus TCP 服务器(Server) 的角色,也就是数据提供方。MCGS触摸屏将扮演 Modbus TCP 客户端(Client) 的角色,也就是数据请求方。MCGS会周期性地向H5U发起数据读取或写入请求。
关键:H5U PLC的Modbus地址与内部软元件地址的映射关系
这是最容易出错的地方!H5U PLC内部的编程使用的是如
M0
、
D0
、
X0
、
Y0
这样的地址。但Modbus协议不认识这些,它只认数字化的寄存器地址。因此,需要一套转换规则。
汇川H5U系列PLC的Modbus地址映射通常遵循以下规则(非常重要!):
| H5U 内部软元件 | Modbus 寄存器类型 | Modbus 起始地址(十进制) | 对应MCGS设备地址(4x/0x) | 示例与说明 |
|---|---|---|---|---|
| D (数据寄存器) | 保持寄存器 (Holding Register) | 0 - 7999 | 4x00001 - 4x08000 |
D0
-> 4x00001,
D100
-> 4x00101
|
| M (辅助继电器) | 线圈 (Coil) | 0 - 7999 | 0x00001 - 0x08000 |
M0
-> 0x00001,
M100
-> 0x00101
|
| X (输入继电器) | 离散输入 (Discrete Input) | 0 - 877 | 1x00001 - 1x00878 |
X0
-> 1x00001,
X10
-> 1x00011
|
| Y (输出继电器) | 线圈 (Coil) | 0 - 877 | 0x00001 - 0x00878 |
Y0
-> 0x00001,
Y10
-> 0x00011
|
地址计算与MCGS填写格式详解 :
- “4x”、“0x”、“1x” 是MCGS中区分不同寄存器类型的标识符。
- 地址编号 :Modbus起始地址(十进制) + 1 = MCGS设备地址编号。
-
举例1
:我们要访问H5U的
D100寄存器。- 查表:D寄存器对应保持寄存器,起始地址为100。
- 计算:100 + 1 = 101。
-
在MCGS中应填写:
4x00101(通常写为5位,不足补零)。
-
举例2
:我们要访问H5U的
M50线圈。- 查表:M寄存器对应线圈,起始地址为50。
- 计算:50 + 1 = 51。
-
在MCGS中应填写:
0x00051。
牢记这个映射表,是通讯成功的第一步。接下来,我们开始实战。
4. 完整实战案例:从零构建仿真通讯项目
我们将按照以下步骤,一步步完成整个仿真系统的搭建:
- 创建虚拟网络环境(设置IP)。
- 在AutoShop中创建H5U项目并开启仿真。
- 在MCGS Pro中创建触摸屏项目并配置Modbus TCP设备。
- 建立变量连接,并制作简单的监控画面。
- 运行调试,实现数据交互。
4.1 步骤一:配置虚拟网络环境(设置固定IP)
为了让MCGS和仿真PLC在“虚拟网络”中能找到彼此,我们需要一个固定的IP地址。最简便的方法是使用Windows的“环回适配器”。
- 打开“控制面板” -> “网络和 Internet” -> “网络连接”。
- 在菜单栏点击“文件” -> “新建传入连接...”(如果看不到菜单栏,按Alt键)。
- 在弹出的向导中,勾选当前用户或创建一个新用户,点击“下一步”。
- 在“通过网络连接”页面,选择“Internet 协议版本 4 (TCP/IPv4)”,然后点击“属性”。
-
在弹出的属性窗口中,选择“指定IP地址”,并设置一个网段的地址,例如:
-
IP地址:
192.168.1.100 -
子网掩码:
255.255.255.0
-
IP地址:
- 点击确定完成创建。此时在网络连接中会多出一个“传入的连接”图标。
-
(关键)
右键点击这个“传入的连接” -> “属性” -> 双击“Internet 协议版本 4 (TCP/IPv4)” -> 在“常规”选项卡中,设置一个同网段的IP,例如
192.168.1.200。这一步是为“虚拟网卡”本身设置IP,以便其他软件绑定。
至此,我们拥有了一个IP为
192.168.1.200
的虚拟网卡。
记下这个IP
,后续MCGS将使用它。
4.2 步骤二:创建H5U项目并启动仿真PLC
- 打开AutoShop,新建项目 :启动汇川AutoShop软件,点击“文件”->“新建”。在对话框中选择“H5U”系列,根据实际选择具体型号(如H5U-1614MTD-A),点击确定。
-
编写简单逻辑(用于测试)
:在“主程序”段(MAIN)中,编写一个简单的交替闪烁程序,并让一个寄存器累加。
这段程序的意思是:利用PLC内部的1秒时钟脉冲让M0不断通断,每次M0接通时,D0加1,同时把D0的值复制到D100。我们将在MCGS中监控D100和M0,并控制M100。// 这是一个梯形图程序的文本化表示,实际在AutoShop中为图形化梯形图 // 网络1:1秒时钟脉冲(M8013)驱动辅助继电器M0 [M8013]---[OUT M0] // 网络2:M0的上升沿触发数据寄存器D0自增1 [M0 P]---[INC D0] // 网络3:将D0的值传送给D100,用于MCGS读取 [Always ON]---[MOV D0 D100] // 网络4:用一个按钮控制M100(模拟触摸屏控制) // (此部分由MCGS控制,PLC内无需编写驱动逻辑,只需预留M100) -
设置PLC IP地址
:在项目树中,双击“设备配置”或“PLC参数”。找到“以太网”或“网络参数”设置。将PLC的IP地址设置为与虚拟网卡同一网段,例如
192.168.1.10,子网掩码255.255.255.0。 务必关闭“BOOTP”或“DHCP”选项,使用静态IP 。 -
启动仿真
:点击工具栏上的“仿真”按钮(通常是一个播放键图标)。AutoShop会启动内置仿真器,并提示“仿真运行中”。此时,一台虚拟的H5U PLC已经在你的电脑上运行起来了,它的IP是
192.168.1.10,并开放了Modbus TCP服务器端口(默认为502)。
4.3 步骤三:创建MCGS项目并配置Modbus TCP设备
- 打开MCGS Pro,新建工程 :启动MCGS Pro,选择“文件”->“新建工程”。选择对应的触摸屏型号(如TPC7062Ti),点击确定。
-
添加父设备(Modbus TCP)
:
- 在工作台的“设备窗口”中,双击进入设备组态界面。
- 在右侧“设备工具箱”中,找到并双击“通用TCP/IP父设备”,将其添加到左侧的设备组态列表中。
- 右键点击刚添加的“通用TCP/IP父设备” ,选择“属性”。
-
在“基本属性”页,设置本地IP地址为我们在步骤4.1中设置的虚拟网卡IP:
192.168.1.200。这个IP是MCGS“自身”的地址。 -
设置远程IP地址为仿真PLC的IP:
192.168.1.10。 -
远程端口号填写
502(Modbus TCP默认端口)。 - 其他参数如超时时间、采集周期可保持默认。
-
添加子设备(Modbus TCP)
:
- 在“设备工具箱”中,找到“Modbus TCP”子设备(可能在“PLC”分类下),双击添加到“通用TCP/IP父设备”下方,形成父子层级关系。
- 右键点击“Modbus TCP”子设备,选择“属性”。
-
在“基本属性”页,确认设备地址为
1(Modbus设备站号,通常为1)。 - 在“通道连接”页,我们将在这里建立变量。先暂时关闭属性窗口。
4.4 步骤四:建立变量连接与画面组态
-
定义数据变量
:在MCGS工作台,进入“实时数据库”标签页。点击“新增对象”多次,创建以下几个变量:
-
data_D100:类型选“数值型”。这个变量将连接PLC的D100寄存器。 -
flag_M0:类型选“开关型”。这个变量将连接PLC的M0线圈。 -
control_M100:类型选“开关型”。这个变量将连接PLC的M100线圈,用于测试控制。
-
-
连接设备通道
:回到“设备窗口”的“设备组态”界面。
- 双击“Modbus TCP”子设备,打开其“属性”->“通道连接”页。
- 你会看到一个表格。“通道名称”是MCGS内部的通道号,“连接变量”需要绑定我们刚才创建的变量。
-
点击第一行“连接变量”下的单元格,选择
data_D100。然后双击同一行的“通道名称”列,进行地址设置。 -
在弹出的“修改通道”对话框中:
- 通道类型:选择“04保持寄存器”(对应H5U的D寄存器)。
-
通道地址:填写
101(对应H5U的D100,计算方式:100+1=101)。 - 数据类型:根据D100存储的数据选择,比如“16位无符号二进制”。
-
点击“确认”。这样就完成了
data_D100与 PLCD100寄存器的连接。 -
同理,添加第二行,连接变量
flag_M0。- 通道类型:选择“01线圈”(对应H5U的M、Y线圈)。
-
通道地址:填写
1(对应H5U的M0,计算方式:0+1=1)。
-
添加第三行,连接变量
control_M100。- 通道类型:选择“01线圈”。
-
通道地址:填写
101(对应H5U的M100,计算方式:100+1=101)。 - 注意 :对于“线圈”(0x地址),MCGS既可以读也可以写。我们将用这个变量控制PLC的M100。
-
制作简单监控画面
:进入“用户窗口”,新建一个窗口(如“窗口0”),双击打开画面编辑器。
-
添加一个“标签”:显示文本“D100数值:”,旁边关联一个“输入框”或“标签”显示数据,将其“显示输出”属性连接到变量
data_D100。 -
添加一个“指示灯”:将其“数据对象”属性连接到变量
flag_M0,可以设置闪烁效果,直观显示M0的通断状态。 -
添加一个“按钮”:将其“操作属性”设置为“按1松0”,数据对象连接到
control_M100。这样点击按钮时,M100会置1,松开置0。 -
添加一个“文本”显示当前连接状态,可以关联系统变量
$DeviceStatus来显示父设备状态。
-
添加一个“标签”:显示文本“D100数值:”,旁边关联一个“输入框”或“标签”显示数据,将其“显示输出”属性连接到变量
4.5 步骤五:运行调试与验证
激动人心的时刻到了!我们将同时运行MCGS模拟器和PLC仿真器,看它们是否能成功通讯。
- 启动MCGS模拟运行 :在MCGS Pro中,点击工具栏上的“模拟运行”按钮(像一台电脑的图标)。MCGS会启动运行时环境并加载我们组态好的工程。
-
观察通讯状态
:
- 在MCGS模拟运行界面,你应该能看到我们制作的画面。
- 观察“D100数值”显示,它应该开始变化(每秒钟增加1),因为PLC程序正在让D0/D100累加。
- 观察“M0指示灯”,它应该以1秒为周期闪烁。
-
测试控制功能
:
- 点击我们制作的“控制M100”按钮并按住。此时,MCGS会向PLC的M100线圈写入“1”。
-
我们可以回到AutoShop的仿真环境。在菜单栏选择“在线”->“监视”->“软元件监视”(或使用快捷键)。在弹出的监视窗口中,输入
M100并监视。当你按住MCGS画面上的按钮时,应该能看到M100的值变为“ON”(或1),松开后变为“OFF”(或0)。
- 验证成功 :如果以上数据监控和控制功能都正常,那么恭喜你!你已经成功实现了在无实物环境下,MCGS与汇川H5U PLC的仿真通讯。
5. 常见问题与排查思路
即使按照教程操作,你也可能会遇到一些问题。以下是通讯失败时最常见的排查步骤,请按顺序检查:
| 问题现象 | 可能原因 | 排查思路与解决方案 |
|---|---|---|
| MCGS设备状态显示“初始化失败”或“通讯错误” |
1. IP地址设置错误。
2. 端口被占用或错误。 3. 防火墙阻止连接。 4. 父/子设备未正确添加或参数错误。 |
1.
核对IP
:确认MCGS父设备“本地IP”是虚拟网卡IP(如
192.168.1.200
),“远程IP”是PLC仿真IP(如
192.168.1.10
)。
2. Ping测试 :在CMD中用
ping 192.168.1.10
测试能否通。仿真PLC可能禁Ping,但IP须正确。
3. 关闭防火墙 :临时关闭Windows防火墙和杀毒软件进行测试。 4. 检查端口 :确认PLC Modbus端口是502,MCGS远程端口也是502。 5. 检查层级 :确保“Modbus TCP”子设备在“通用TCP/IP父设备”之下。 |
| MCGS能连接,但数据不更新(全部为0或不变) |
1. Modbus地址映射错误。
2. 数据类型不匹配。 3. PLC程序未运行或变量未变化。 4. MCGS变量未正确连接通道。 |
1.
复查地址
:这是最高频错误!严格对照第3章的映射表,检查MCGS中设置的“通道地址”是否正确(PLC地址+1)。
2. 检查PLC程序 :在AutoShop仿真中,在线监视
D100
、
M0
等软元件,确认其值在按预期变化。
3. 检查数据类型 :在MCGS通道设置中,确认“数据类型”(如16位有符号、32位浮点等)与PLC中数据实际类型一致。例如,PLC中D100是整数,MCGS就不能选成浮点数。 |
| MCGS能读数据,但不能写数据(控制无效) |
1. 写入的线圈地址错误或不可写。
2. MCGS按钮属性设置错误。 3. PLC侧该线圈被程序强制或覆盖。 |
1.
确认地址
:确保写入的线圈地址(如M100)在PLC中未被其他地方频繁复位。
2. 检查按钮属性 :按钮的操作属性应设置为“按1松0”或“取反”,并且数据对象正确连接到控制变量(如
control_M100
)。
3. PLC监视 :在AutoShop中监视目标线圈(M100),看MCGS操作时是否有变化。 |
| AutoShop仿真启动失败 |
1. 软件未完全激活或试用期已过。
2. 与其它仿真软件冲突。 3. 系统兼容性问题。 |
1.
重新激活
:检查AutoShop授权状态。
2. 重启软件/电脑 :关闭所有相关软件后重试。 3. 以管理员身份运行 :右键点击AutoShop图标,选择“以管理员身份运行”。 |
通用排查口诀 :先查IP连通性,再核地址映射,三看数据类型,四验程序逻辑。
6. 最佳实践与工程建议
掌握了基础通讯后,以下建议能帮助你在真实项目中做得更专业、更稳定:
-
规划清晰的变量命名规范 :
-
避免使用
data1,temp1这种无意义的名称。采用“功能_设备_数据类型”的格式,如Tank1_Pump_Run(1号水箱水泵运行)、Mixer_Speed_Set(搅拌机速度设定)。 - 在MCGS的实时数据库和PLC的软元件注释中,使用一致的描述。
-
避免使用
-
优化通讯性能与稳定性 :
- 分组采集 :在MCGS设备编辑中,将需要相同采集周期的变量放在同一个“通道连接”组里。对变化慢的数据(如温度、设定值)设置较长的采集周期(如1000ms),对需要快速响应的数据(如急停信号、运行状态)设置较短的周期(如100-200ms)。
- 心跳机制 :在PLC程序中创建一个每秒自增的“心跳”寄存器(如D9999)。在MCGS中监控它。如果这个值长时间不变化,可以在画面上显示“通讯中断”报警。
- 超时与重试 :合理设置MCGS父设备中的“超时时间”和“尝试恢复间隔”。
-
仿真项目的进阶应用 :
- 复杂逻辑模拟 :你可以在PLC仿真器中编写更复杂的程序,如PID控制、顺序流程、运动控制等,然后用MCGS制作完整的监控画面,包括趋势曲线、数据报表、报警记录等,形成一个完整的虚拟调试项目。
- 脚本增强 :利用MCGS强大的脚本系统(如“运行策略”中的循环脚本),可以实现仿真数据的自动生成、流程的自动测试,极大提高调试效率。
-
向实物迁移的注意事项 :
- 当仿真测试无误后,迁移到实物硬件时,首要任务是 修改IP地址 。将MCGS的“远程IP”改为真实PLC的IP,将MCGS的“本地IP”改为触摸屏实际的IP(或设置为自动获取,如果网络有DHCP)。
- 先连接,后下载 :确保MCGS触摸屏和H5U PLC物理上通过网线连接,且网络互通后,再将项目程序分别下载到硬件中。
- 做好备份 :下载前,备份好PLC和触摸屏的原始程序。
通过本教程,你不仅学会了一种无实物的学习方法,更重要的是掌握了MCGS与H5U PLC通过Modbus TCP通讯的核心原理与配置流程。这套方法同样适用于MCGS连接其他支持Modbus TCP的PLC(如西门子S7-1200/1500、三菱FX5U等),只需调整对应的地址映射表即可。技术的核心在于理解原理,掌握了原理,便能举一反三。建议你在此基础上,尝试用MCGS控制更多的PLC软元件,或者设计一个更复杂的监控画面,彻底巩固这项工控工程师的必备技能。如果在实践过程中遇到新的问题,欢迎在评论区交流探讨。
416



被折叠的 条评论
为什么被折叠?



