参考文档:《Unity Pro PLC 仿真器》EIO0000001719.06
(Control Expert 就是 Unity Pro 最新版本换了个名字,两者操作基本相同)
https://www.schneider-electric.cn/zh/download/document/EIO0000001719/
1. 适用 PLC
这里使用的仿真功能适用于施耐德中高端 PLC(编程软件使用 Unity Pro),适用的 PLC 型号:
- 大型 PLC:Quantum、M580
- 中型 PLC:Premium、M340
2. 使用仿真器的步骤
使用仿真器的步骤,与使用真实的 PLC 的步骤类似
3. 在项目中启动仿真器
- 调整软件为【仿真模式】
PLC --> 仿真模式
- 设置连接参数
PLC --> 设置地址(本机则设置为 127.0.0.1,连接到其他机器则设置对应机器的 IP)
- 连接到仿真器
PLC --> 连接
此时如果是在本机仿真,会自动启动仿真器软件,仿真器软件自动最小化到状态栏
- 传输程序到仿真器:仿真器软件重新打开时,内部没有程序,需要先将要仿真的程序编译后下载到仿真器中
- 仿真器运行:在连上仿真器后,仿真器默认为停止状态,点击【运行】可开始 PLC 运行
4. 仿真器的设置
4.1 如何打开仿真器软件
类似西门子的 PLCSIM 和 AB 的 RSLinx Simulator,施耐德 PLC 的仿真功能也是独立的仿真软件
若在同一台机器上编程、仿真,此软件可通过在编程软件中启动仿真启动(参考上一节的操作)
也可在开始菜单中启动
如果编程的软件和仿真器不是同一台电脑(如配置一台专门用于仿真的公共服务器),则需要在仿真服务器上通过菜单单独打开仿真器
4.2 仿真器的界面和基本功能
可查看当前仿真的项目、仿真PLC的运行状态(运行RUN 或 停止STOP)、指示灯,可进行模拟的一些硬件操作
下面显示的是分布式远程 IO 子站PRA0100
运行的仿真项目、仿真器的 IP 地址、连接到仿真器的客户端
(PRA0100 属于 M340 家族,因此这里显示的 CPU 型号为 BMX P34)
4.3 关闭强制安全功能
高版本的仿真器(Unity Pro V12 及以上版本)仿真项目时默认启用【强制安全性】。此功能在与仿真器连接时,会要求仿真的项目必须进行加密。
大多数仿真器连接都是测试使用,没必要启用加密,因此这里考虑将这个功能禁用
右键仿真器任务栏图标 --> 选项 --> 取消勾选【强制安全性】
5. 仿真器的通信
文档目录:
5.1 仿真器的通讯参数
仿真器只支持基于 ModbusTCP 的通讯,通讯参数如下:
- 协议:ModbusTCP
- IP:localhost(或 127.0.0.1)(仿真器只支持从本地连接)
- 端口:502
5.2 仿真器支持的功能码
支持的功能码如下:
5.3 仿真器与 Modbus 寄存器地址的对应关系
注意:施耐德 PLC 内部 寄存器地址 与 Modbus 地址一一对应
如:PLC 寄存器地址为 %MW1234,则这一 Word 的 Modbus 地址也为 1234,实际 Modbus 发送的地址应为(功能码 + Modbus寄存器地址,如 401234)
5.4 仿真器与外部进行 ModbusTCP 通信的示例
示例:项目使用 PLC 为 远程 DIO 子站 PRA0100
在电脑侧使用 Modbus Poll 软件,使用 ModbusTCP 协议:
- 对寄存器 %MW1003 读值、写值
- 对寄存器 %MW1004 连续读值
变量配置如下
- 变量名
test1
,变量类型INT
,变量地址%MW1003
,初始值为 0,用于客户端读写测试 - 变量名
testSecond
,变量类型INT
,变量地址%MW1004
,并为其赋值 PLC 内部时钟的秒数,用于客户端连续读测试
组态如下:不添加 IO 模块(仅测试模块内部寄存器,类似西门子MW
寄存器)
编写简单程序,将 PLC 内部时钟的秒数值赋给 testSecond 变量
启动仿真,在动态变量表(类似西门子的监视表格)监控这两个点位
可看到此时:test1 = 0,testSecond 高 8 位每 1s 加 1(testSecond 显示格式为 16进制)
Modbus Poll 连接到仿真 PLC:IP地址=PLC仿真器的 IP,端口=502,协议=ModbusTCP
5.4.1 对 %MW1004 连续读值
Modbus Poll 设置窗口显示内容:从站地址任意,功能码 = 03(读写寄存器地址 4XXXXX),起始显示区域 1000,显示连续 10 个寄存器
再将 1004 单元格显示格式变为 16 进制(HEX)
此时 Modbus Poll 的 1004 寄存值 = testSecond 寄存器值
5.4.2 对 %MW1003 读值、写值
在 PLC 编程软件中,给 %MW1003 置值,置为 2333
Modbus Poll 软件中查看 1003 寄存器,值为 2333。说明 Modbus 客户端正确读取到了值。
在 Modbus Poll 中将 1003 寄存器的值修改为 6666
此时动态变量表值变为 6666。说明 Modbus 客户端写入了新的值。