打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【文末抽奖】S7-1200PLC与上位机ModbusTCP通信

西门子PLC作为市场占有率非常高的一款PLC,支持Profinet、Profibus、S7、Modbus、TCP等多种通信协议,本案例以S7-1200 PLC为例,主要讲述使用西门子PLC作为ModbusTCP服务器,上位机作为ModbusTCP客户端的应用场景。西门子S7-1200 PLC并不支持直接ModbusTCP,需要编写一些PLC程序,PLC程序的主要目的是通信参数及地址映射的设置。

1. PLC程序编写

步   骤操作说明
1通过博图软件创建一个新的PLC项目,
根据硬件型号插入新设备,这里为
CPU 1214C DC DC DC
2双击PLC的以太网口,设置IP地址,
这里设置为192.168.1.210
3创建一个新的DB块用于数据传输,定义为DB100,其中<ModbusData为200个
字节的数组,注意DB块要去除优化的块
访问
4打开OB1,将指令MB_SERVER拖拽至OB1的程序段1中,根据操作提示,添加背景数据块
5将MB_SERVER功能块各个引脚填写完整:
(1)DISCONNECT设置为False
(2)CONNECT_ID设置为1
(3)IP_PORT使用默认502
(4)MB_HOLD_REG使用创建的ModbusData
6编译PLC程序,下载PLC程序

2. Modbus地址映射

PLC程序编写完成后,下一步进行Modbus测试,在测试之前,首先明确Modbus地址与PLC地址的映射关系:

Modbus地址PLC地址
00001-08192Q0.0-Q1023.7
10001-18192I0.0-I1023.7
30001-31022IW0-IW1022
40001-40099DB100.DBW0-DB100.DBW198

由上表可知,Modbus的0区、1区和3区,分别对应PLC的过程映像输出、过程映像输入和过程映像输入,但实际应用中,这三个区应用较少,主要使用的是4区,4区的映射地址是由自己设置,也就是MB_HOLD_REG。

3. 通信功能测试

下面我们使用ModbusPoll软件来针对各个区做下简单的测试,具体如下所示:

  • 输出Q点对应0区:该存储区是可读可写的,可以通过ModbusPoll读取到PLC中Q点的值,也可以进行写入,PLC监控及Modbus软件监控结果如下:
  • 输入I点对应1区:该存储区是只读的,可以通过ModbusPoll读取到PLC中I点的值,PLC监控及Modbus软件监控结果如下:
  • 过程输入存储区对应3区:该存储区是只读的,可以通过ModbusPoll读取到PLC中输入存储区的值,PLC监控及Modbus软件监控结果如下:
  • 创建的DB存储区对应4区:该存储区是可读可写的,可以通过ModbusPoll读取到PLC中DB存储区的值,也可以进行写入,PLC监控及Modbus软件监控结果如下:

4. 写在最后

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
基于PLCSIM-Advanced搭建ModbusTCP通信仿真环境
200MPI以太网模块西门子plc以太网通讯程序
新阁上位机开发---10年工程师的Modbus总结
上位机开发之单片机通信实践
西门子PLC做485通信就这几步,都不用记(MODBUS通信第5节)
独家讲解PLC的Modbus485通信编程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服