S7-1200PLC与上位机ModbusTCP通信

摘要:
作为一个市场占有率非常高的PLC,西门子PLC支持多种通信协议,如Profinet、Profibus、S7、Modbus、TCP等。本案例以S7-1200 PLC为例,主要描述了将西门子PLC用作Modbus TCP服务器,将上位机用作Modbus TCP客户端的应用场景。西门子S7-1200 PLC不支持直接ModbusTCP,因此需要编写一些PLC程序。PLC程序的主要目的是设置通信参数和地址映射。[新建展馆

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

【新阁在线教育 服务号:thinger_as】

1. PLC程序编写

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

 

2. Modbus地址映射

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

S7-1200PLC与上位机ModbusTCP通信第7张

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

3. 通信功能测试

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

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

S7-1200PLC与上位机ModbusTCP通信第8张

S7-1200PLC与上位机ModbusTCP通信第9张

  • 输入I点对应1区:该存储区是只读的,可以通过ModbusPoll读取到PLC中I点的值,PLC监控及Modbus软件监控结果如下:

S7-1200PLC与上位机ModbusTCP通信第10张

S7-1200PLC与上位机ModbusTCP通信第11张

  • 过程输入存储区对应3区:该存储区是只读的,可以通过ModbusPoll读取到PLC中输入存储区的值,PLC监控及Modbus软件监控结果如下:

S7-1200PLC与上位机ModbusTCP通信第12张

S7-1200PLC与上位机ModbusTCP通信第13张

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

S7-1200PLC与上位机ModbusTCP通信第14张

S7-1200PLC与上位机ModbusTCP通信第15张

4. 写在最后

       公司开通了服务号,用于活动通知。针对本群粉丝,直接扫描下方二维码,关注新阁教育公众号,后台回复【抽奖】,奖品丰厚,先到先得。

S7-1200PLC与上位机ModbusTCP通信第16张

 

免责声明:文章转载自《S7-1200PLC与上位机ModbusTCP通信》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇2.1.1优化程序性能Java Socket中使用ObjectInputStream对象的注意事项下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

安卓下如何使用JUnit进行软件测试

软件测试作为程序员必备的一项技能是决定软件开发周期长短以及软件运行成败的关键,可以说好的软件不是代码写得好而是有效的测试决定的。本文将介绍在android下利用eclipse进行开发时如何使用JUnit进行单元测试。一、测试的分类(仅举例其中一些方法)【根据测试是否知道代码】 1、黑盒测试(测试的时候不知道具体代码):指的是把被测的软件看作是一个黑盒子,我...

4G EPS 中的 PDN Connection

目录 文章目录 目录 前文列表 PDN PDN Connection APN APN 与 PGW POOL APN 与 vPGW APN 与漫游 PDN Type IP 类型 Non-IP 类型 MME 通过 S6a 查询 HSS 中的用户信息(APN、PDN Type) APN-NI 与 PDN Type 的匹配规则 UE 没有上报 APN...

uniapp读取通讯录

getContacts: function() {                 var that = this;                 //获取通讯录对象                 plus.contacts.getAddressBook( plus.contacts.ADDRESSBOOK_PHONE, function( addre...

VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题

使用VS2008编译了一个程序,使用到自己编译的DLL,丢到某些机子上无法运行,提示“由于应用程序配置不正确,应用程序未能启动”的错误,装了vcredist_x86也没有用,开始以为是DLL的问题,后来换个简单的程序,仍然不行,百撕不得其解,后来上网找,下面有说了很多解决办法。 我最终的解决办法是复制本机中的.manifest文件,修改里面的版本号,复制到提...

升级macOS High Sierra遇到的坑

昨天升级了macOS Hgigh Sierra,新系统的优点也是有的,毕竟是传闻多年的APFS文件系统,占用硬盘小一点,速度快一点。缺点也有,有些软件不兼容了。总体来说还是值得升级的。 但是升级的过程,可以说用糟糕来形容。原因有几个,第一个是网速,第二个是国内的Mac Appstore确实不咋地。。过去这么多年了还是这样,偶尔IOS也会遇到下载的坑。 总结...

uCOS iii/uCOS Ⅲ系统时钟解释及CAN通信速度的配置

系统在启动时调用BSP_Init();该函数会初始化系统的各部分时钟。 void  BSP_Init (void) {BSP_RCC_Configuration();//初始化系统时钟     BSP_LED_Init();                                             /* Initialize the I/Os...