[西门子] 西门子博图仿真MODBUS TCP通讯

[复制链接]
查看445 | 回复0 | 2024-6-10 17:44:45 | 显示全部楼层 |阅读模式
>1、新建一个项目文件,添加基本设置,如IP地址等,可参考前面分享关于新建项目设定文章,新建完成后,如下图所示:

PS:西门子S7-1500系列可以仿真,S7-1200无法仿真,所以新建项目时需添加S7-1500PLC
2、点击项目名,右键“属性”打开属性界面,如下图所示:

3、打开的属性对话框,点击“保护”,在“块编译时支持仿真”一定要勾选,否则将无法模拟,如下图所示:

4、双击打开主函数OB1,添加一个MB_SERVER指令,关于此指令的各个端口说明,上篇文章有详细介绍,可参考:
DISCONNECT=0:在无通信连接时建立被动连接。
MB_HOLD_REG 参数:是一个指向数据缓冲区的指针
CONNECT:指向连接描述结构的指针,TCON_IP_v4 结构

5、新建两个全局数据块:
REG用于存放从 Modbus 服务器读取或向 Modbus 服务器写入的数据。
数据块_1:新建一个TCON_IP_V4型的数据,用于存放设定连接的连接描述。如下图所示:

6、分别点击两个数据块,右键“属性”,打开属性对话框,如下图所示:

7、在属性对话框中,取消优化的块访问,不取消将无发寻址访问,如下图所示:另外一个数据块同样的操作方式,自行处理。

8、将刚才创建的数据块,分别填入对应的端口处,注意两个端口都是一个指针,所以应该为P#,如下图所示:

9、打开高级仿真,S7-PLCSIM Advanced软件,而不是S7-PLCSIM(无法仿真MODBUS TCP通讯),如下图所示:

10、点击图中1处切换为PLCSIM Virtual Eth.Adapter高级仿真,图中2位置采用“以太网”通讯,新建一个S7-1500的PLC名称可自行设定,IP地址:与PLC项目中地址一致,子网掩码也保持一致,然后点击图中5位置“启动”,6位置可看到虚拟PLC建立后状态,如下图所示:

11、回到PLC项目中,先编译一下全部程序,然后点击“下载”下载全部项目到虚拟PLC中,如下图所示:

12、PG/PC接口选高级仿真的虚拟网卡“Siemens PLCSIM”,然后点击“开始搜索”,找到PLC的设备后,下载程序,如下图所示:

13、下载完成后,监视状态下看,指令无报警,如下图所示:

14、此时我们需要用到一个MODBUS TCP的调试助手,打开调试助手后如下图所示:

15、打开设置“Setup”“Read/Write Definition”设置界面,地址Address:表示对应的缓存区地址,0就对应40001,依次类推。Quantity:表示要读写的数据个数,点击“应用”“OK”,如下图所示:

16、点击链接,选用MODBUS TCP/IP协议,下方IP地址设定,端口号:502一定不能错。确定后即可看到通讯完成,可进行数据交互,如下图所示:

17、采用通讯助手,可修改INT1的值,也可在监视值更改,同步到通讯助手,如下图模拟所示:

以上就完成了,西门子PLC的MODBUS TCP通讯的模拟,下次分享模拟两个PLC之间的MODBUS TCP通讯。
文中用到的高级仿真和调试助手,有需要可留言。以上为个人练习总结欢迎留言讨论。




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则