基于PLCSIM-Advanced搭建ModbusTCP通信仿真环境

1、写在前面

当我们学习Modbus TCP时,我们可以采用Modbus Poll + Modbus Slave快速搭建一个Modbus TCP的环境,看似很美好,但是深入学习之后,大家就会发现Modbus Slave的一个弊端,Modbus Slave只能仿真4个存储区中的1个存储区,如果我们通信时,涉及到多个存储区,那么Modbus Slave就很难满足要求了。这时候,有的人就会问,有没有方法解决这个问题,搭建一个Modbus TCP服务器,并且同时支持4个存储区呢?答案是有的,今天主要讲述如何基于S7-PLCSIM Advanced搭建Modbus TCP服务器仿真环境。

2、PLCSIM-Advanced安装

对于该软件的获取,大家可以去西门子相关网站下载,也可从下方链接获取:

【免费领取】这个免费的软件资源库,你一定要收藏好!

PLCSIM-Advanced的安装也比较简单,基本上是一路NEXT即可,但是主要的是PLCSIM-Advanced会依赖WinPcap软件,所以大家可以提前安装好WinPcap,即使不提前安装,安装过程中也会提示你安装的。

安装完成后,电脑中会额外多出一个虚拟网卡,名称为Siemens PLCSIM Virtual Ethernet Adapter,如下图:

3、PLCSIM-Advanced使用

安装完成后,桌面上会多出一个图标,即S7-PLCSIM Advanced V3.0,如下图所示:

该软件的使用可以按照下方的步骤执行和确定,一定要记住以下需要注意的地方,否则一个很小的问题,可能会让你浪费半天的时间,这样就得不偿失了。

(1)软件要以管理员权限运行:可以直接每次右击,以管理员权限运行,如果想一劳永逸,可以点击图标,右击属性,在兼容性中,将以管理员身份运行此程序的选项勾选。

(2)将本地网卡及虚拟网卡的IP地址获取设置为自动获取。

(3)设置PG/PC接口:

通过控制面板,打开设置PG/PC接口界面,按照下图所示设置应用程序访问点:

(4)打开PLCSIM-Advanced,依次按照步骤进行设置:

(5)使用博图创建一个简单项目,一定要选择1500PLC,PLCSIM-Advanced只支持1500PLC,但是对学习通信来说,没什么影响。

(6)点击整个项目名称(不是单个项目),右击属性,将保护中的块编译时支持仿真选项勾选:

(7)下载PLC程序时,将PG/PC接口设置成Siemens PLCSIM Virtual Ethernet Adapter。

(8)选择显示所有兼容的设备,点击开始搜索,搜索到之后,点击下载即可。

4、Modbus TCP服务器配置

  • ModbusTCP服务器配置需要编写一段PLC程序,从指令库中拖拽一个MB_SERVER指令到OB中,如下图所示:

  • MB_HOLD_REG中直接填写P#M100.0 byte 100,将MB100-MB199与40001-40050映射,CONNECT填写一个CONN变量。

  • CONNECT引脚需要填写一个TCON_IP_v4的结构体,创建一个DB2,添加一个变量,类型为TCON_IP_v4,如上图所示:

  • CONNECT引脚各个参数填写格式如下图所示:

  • 按照帮助给CONN变量赋初始值,如下图所示:

  • 将PLC程序下载到PLCSIM-Advanced中。

5、Modbus Poll通信测试

我们使用ModbusPoll软件进行测试,IP地址填写192.168.1.20,端口号填写502,如下图所示:

连接成功后,与PLC数据进行对比,看看数据是否正确,结果如下图所示;

6、通信测试平台测试

我们使用新阁教育通信测试平台软件进行通信测试,设置IP地址为192.168.1.20,端口号为502,点击连接,连接成功后,设置存储区为输出寄存器4x,起始地址为0,读取长度为6,数据类型为Float,点击读取,读取结果如下图所示:

猜你喜欢

转载自blog.csdn.net/xiketangAndy/article/details/108408873