江西自动化网|江西工控论坛

标题: 西门子S7-1200 Modbus TCP通信指令块 MB_SERVER即Modbus TCP服务器从站指令块使用实例 [打印本页]

作者: 宏微自动化    时间: 2017-1-20 13:59
标题: 西门子S7-1200 Modbus TCP通信指令块 MB_SERVER即Modbus TCP服务器从站指令块使用实例
西门子S7-1200Modbus TCP 通信指令块
MB_SERVERModbus TCP服务器(从站)指令块使用实例
Modbus TCP服务器从站指令块使用实例编程实例下载地址
详细操作说明下载地址(回复本帖可见)
Modbus TCP客户端主站指令块编程实例下载地址:http://www.jx-auto.cn/thread-11438-1-1.html
STEP 7 V13 SP1 软件版本中的Modbus TCP库指令目前最新的版本已升至V4.0,该版本的使用需要具备以下两个条件:
1. 软件版本: STEP 7 V13 SP1及其以上
2. 固件版本: S7-1200 CPU 的固件版本V4.1

图1.Modbus TCP V4.0 版本指令块
S7-1200 Modbus TCP 实验环境
下面以一台S7-1200作为服务器即从站,Modbus POLL作为客户端即主站之间进行Modbus TCP 通信为例,详细阐述客户端与服务器侧如何编程及通信的过程。表格列出了具体的实验环境:
  
操作系统
  
  
WIN7 SP1 专业版 64位
  
  
编程软件
  
  
STEP 7 Professional V13 SP1 Update 7
  
  
系统硬件
  
  
1.CPU1214C 6ES7 214-1BG40-0XB0  V4.1
  
表1.Modbus TCP 通信的实验环境
  
CPU类型
  
  
IP地址
  
  
端口号
  
  
硬件标识符
  
  
客户端
  
  
Modbus POLL
  
  
192.168.31.228
  
  
0
  
  
64
  
  
服务器
  
  
CPU 1214C
  
  
192.168.31.12
  
  
502
  
  
64
  
表2.Modbus TCP 通信双方的基本配置
硬件标识符是在“设备组态”中,双击 PROFINET 接口,然后在“属性”中的“硬件标识符”中查看。

图2.S7-1200设备的PROFINET接口硬件标识符
S7-1200 Modbus TCP 服务器编程
“MB_SERVER”指令将处理 Modbus TCP 客户端的连接请求、接收并处理 Modbus 请求并发送响应。
1. 在“ 程序块->OB 1"中调用“MB_SERVER”指令块,然后会生成相应的背景DB块,点击确定,如图3所示。

图3.调用MB_SERVER指令块
该功能块的各个引脚定义如下:
  
DISCONNET
  
  
为0代表被动建立与客户端的通信连接;为1代表终止连接。
  
  
MB_HOLD_REG
  
  
指向 Modbus 保持寄存器的指针。
  
  
CONNECT
  
  
指向连接描述结构的指针。TCON_IP_v4(S7-1200)
  
  
NDR
  
  
为0代表无数据;为1代表从 Modbus 客户端写入新的数据。
  
  
DR
  
  
为0代表无读取的数据;为1代表从 Modbus 客户端读取的数据
  
  
ERROR
  
  
错误位:0:无错误;1:出现错误,错误原因查看STATUS。
  
  
STATUS
  
  
指令的详细状态信息。
  
表3.MB_SERVER 各个引脚定义说明
2. CONNECT 引脚的指针类型
第一步,先创建一个新的全局数据块DB3,并命名为MB_SERVER_TCON,如图4所示(注:图中编号可根据实际需要更改,在我们这实例中已经改为DB3):

图4.创建全局数据块
第二步,双击打开新生成的 DB3 数据块,定义变量名称为“sd",数据类型为“TCON_IP_v4”(可以将 TCON_IP_v4 拷贝到该对话框中),然后点击“回车”按键。该数据类型结构创建完毕。如图5所示:

图5.创建 MB_SERVER 中的 TCP 连接结构的数据类型
各个引脚定义说明如下:
  
InterfaceId
  
  
硬件标识符。(设备组态中查询)
  
  
ID
  
  
连接ID(即从站站号),取值范围1~4095
  
  
Connection Type
  
  
连接类型。TCP连接默认为:16#0B
  
  
ActiveEstablished
  
  
建立连接。主动为1(客户端),被动为0(服务器)。
  
  
ADDR
  
  
服务器侧的IP地址
  
  
RemotePort
  
  
远程端口号
  
  
LocalPort
  
  
本地端口号
  
表4.TCON_IP_v4 数据结构的引脚定义
客户端侧的IP地址为192.168.31.228,端口号为0,所以 MB_SERVER 服务器侧该数据结构的各项值如图6所示。

图6.MB_SERVER 服务器侧的 CONNECT 数据结构定义
3. S7-1200 服务器侧 MB_SERVER 编程
调用MB_SERVER指令块,实现被客户端读取1000个保持寄存器的值,如图7所示。

图7.MB_SERVER 服务器侧编程
注意:MB_HOLD_REG 指定的数据缓冲区可以设为 DB 块或 M 存储区地址。DB 块可以为优化的数据块,也可以为标准的数据块结构。我们这个测试实例中新建了一个DB2的数据块,并在数据块里面建了一个数组,从而实现客户端能访问1000个保持寄存器。

图8.MB_HOLD_REG数据块
S7-1200 MODBUS TCP 通信调试
S7-1200 MODBUS TCP 服务器侧准备数据,因为初始化中配置的一些数据是0,所以在监控的时候需要将一些配置数据在监控表中写入进去如图9所示:
图中的502服务器端口号,16#0040是硬件标示符的16进制表示方式,16#0001是从站号。

图9配置值写入
客户端连接参数配置,选择TCP/IP,并设定IP地址和端口号,如图10:

图10.客户端连接参数配置
点击确定之后,再点击菜单栏中的安装选择POLL定义,在弹出来如图11中的画面中配置ID号既功能码、起始地址和长度。

11
之后就显示如图12,图12中已经将4000140002的值更改:

在服务器中显示的值如图12

12.服务器数据监视

这个时候只要在客户端或者服务器段更改数据另外一端就会跟着变化,如此MB_SERVER就测试成功了。


作者: klll    时间: 2017-2-6 11:26
1231131412313
作者: huangzl123    时间: 2017-2-18 10:40
谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
作者: whyslc    时间: 2017-2-19 09:38
正需要这个,感谢分享!!
作者: marsjuse    时间: 2017-2-24 23:15
感谢分享~!!!!
作者: vipvop    时间: 2017-2-26 19:24
西门子S7-1200 Modbus TCP通信指令块
作者: cocoon2006    时间: 2017-3-4 23:53
看着modbus有点头痛,看看有没有启发
作者: hw958    时间: 2017-3-27 16:17
谢谢,请给予下载这个程序的权限。
作者: Cortex    时间: 2017-4-1 11:24
也让让他挥戈退日忽然
作者: hgb32001    时间: 2017-4-17 17:13
西门子S7-1200 Modbus TCP通信指令块 MB_CLIENT即Modbus TCP客户端主站指令块实例下载
作者: qumaoliang    时间: 2017-5-21 14:34
MB_SERVER即Modbus TCP服务器从站谢谢
作者: 小小孙    时间: 2017-6-16 10:18
学习了,刚好工作中要用到了
作者: shanhe    时间: 2017-6-19 22:50
多谢楼主的分享
作者: cwj9959    时间: 2017-6-24 22:28
好资料,谢谢
作者: cwj9959    时间: 2017-6-24 22:30
好资料,谢谢
作者: cwj9959    时间: 2017-6-24 22:33
好资料,谢谢
作者: cwj9959    时间: 2017-6-24 22:35
很好的资料,谢谢了
作者: sandy0506    时间: 2017-7-21 08:07
正需要这个,感谢分享!!
作者: kingliz    时间: 2017-8-3 15:39
为什么我看不到图片
作者: 296708132    时间: 2017-8-3 20:03
找了很久终于找到了
作者: wwwcfo    时间: 2017-8-4 08:22
谢谢分享。。
作者: wl090606    时间: 2017-8-4 14:57
想学习下,最近在弄MODBUS TCP通讯
作者: jo胆红素飞    时间: 2017-8-7 11:44
111好1111111111111
作者: yuki0406    时间: 2017-8-13 09:32
刚好在用 还发现了问题 学习下
作者: xxjdk    时间: 2017-8-17 10:54
下载下来看看,测试下实际效果。
作者: xiaoheyidongliu    时间: 2017-8-27 17:44
江西工控论坛
作者: gd_jeffert    时间: 2017-8-31 23:56
TCP通信指令块 MB_SERVER即Modbus TCP服务器从站指令
作者: ygd123    时间: 2017-9-2 05:39
谢谢分享西门子S7-1200Modbus TCP 通信指令块
作者: qredcool    时间: 2017-9-2 09:47
好,学习了。
作者: sunboy1234    时间: 2017-9-3 09:36

正需要这个,感谢分享!!
作者: isliulin    时间: 2017-9-12 11:04
feichangbucuo!
作者: prcfirefly    时间: 2017-9-12 12:13
haohao好好好好
作者: hhb123456    时间: 2017-10-20 09:55
西门子S7-1200 Modbus TCP通信指令块 实例下载
作者: songrunda    时间: 2017-10-26 22:55
正在研究,看看是否能成功完成
作者: clsko    时间: 2017-11-19 08:51
学习学习,谢谢!
作者: 北京捷鸿    时间: 2017-11-22 15:44
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: 山豹—电控    时间: 2017-11-22 17:15
谢谢。学习学习正好要用上
作者: time917    时间: 2017-12-11 22:36
密码回复可见密码回复可见
作者: 382232054    时间: 2017-12-15 09:40
好东西,谢谢大神发现
作者: phy14    时间: 2018-3-19 15:27
好像下载不了了!!!!!!
作者: 郭世纪    时间: 2018-3-19 16:35
zhenghaoxuyao
作者: 迷航    时间: 2018-3-20 08:31
Modbus TCP服务器Modbus TCP服务器Modbus TCP服务器Modbus TCP服务器
作者: 刘健    时间: 2018-3-27 23:32
好好学习,学习学习

作者: ttma00    时间: 2018-4-9 16:04
照说明做 报个80B6 下个实例看看! 谢谢分享!
作者: cui_vs7vs    时间: 2018-4-16 20:43
谢谢,请给予下载这个程序的权限。
作者: q1093549437    时间: 2018-4-17 12:44
感谢分享!!!!!!!!!!!!!!!!!!!!!
作者: dsx99_99    时间: 2018-4-20 09:08
好,顶一个
作者: 大江    时间: 2018-5-24 15:36
多谢楼主分享~
作者: 小强-kyler    时间: 2018-5-30 12:21
关于MODBUS tcp 介绍很仔细
作者: jsliyu    时间: 2018-5-31 16:12
学习一下,谢谢
作者: 幽兰物语7    时间: 2018-6-19 08:18
下载下来 学习一下
作者: 不在意,不再忆    时间: 2018-6-24 17:09
;P;P
作者: xingxuesnow    时间: 2018-6-25 21:31
感谢楼主 ,楼主辛苦
作者: dg22021040    时间: 2018-6-28 11:22
我想看看看
作者: romacast    时间: 2018-6-29 13:45
支持楼主,下载下来看看
作者: 老陈    时间: 2018-6-30 23:15
很好!分地方地方更反感
作者: SYuan    时间: 2018-7-14 22:22
66666666666
作者: bokonger    时间: 2018-7-25 14:36
TCP通信指令块 MB_SERVER即Modbus
作者: 一个人的风景    时间: 2018-8-14 12:00
xiexie 很好 xiexie 很好 xiexie 很好 xiexie 很好
作者: 玛雅    时间: 2018-8-14 14:38
你好,看看TCP通信
作者: Accustomed    时间: 2018-8-17 10:25
请问怎么下载呢??
作者: 刘宏平_Js7j3    时间: 2018-9-6 08:39
写的太好了
作者: hechenghui001    时间: 2018-9-10 15:21
不错zvzvz da  
作者: gznihao    时间: 2018-9-13 10:38
你好,谢谢分享
作者: 王盛威    时间: 2018-9-22 12:57
成本经济国际化没干嘛木棉花应急救援
作者: weimei    时间: 2018-9-23 18:56
好东西值得分享
作者: 孤心自傲cium    时间: 2018-9-23 21:07
AAAAAAAAAAAAAAAAAAAAAAAAA
作者: 梦境见汐光    时间: 2018-9-30 09:30
谢111111谢
作者: sigler    时间: 2018-10-18 21:36
非常好好好好
作者: Lucky-赵    时间: 2018-10-22 19:54

作者: 阿巴贡590    时间: 2018-10-25 22:55
这好有这方面的需求,感谢楼主的分享。
作者: 小蚂蚁_OMIU0    时间: 2018-10-29 14:36
kan kan kan kan
作者: ark_j    时间: 2018-11-7 15:02
谢谢~!!!!
作者: zhhdadu    时间: 2018-11-11 15:14
这个应该有内容了吧,感谢。
作者: 工控账号666    时间: 2018-11-14 09:33
看一看吧,哈哈
作者: lmrsoa    时间: 2018-12-4 15:04

作者: 997436875    时间: 2018-12-6 14:05
非常好的参考资料!
作者: 乾川    时间: 2018-12-17 15:11
感谢分享,正需要这个
作者: a32013201    时间: 2018-12-18 08:18
好好好好好好好
作者: 梧桐丶_yaba    时间: 2019-1-7 10:28
做了很久,希望这有帮助吧
作者: 陈强    时间: 2019-1-8 15:01
下载通信例子
作者: 陈强    时间: 2019-1-8 15:04
下载例子西门子1200
作者: ziyie    时间: 2019-1-8 20:52
很需要了解一下,谢谢了。
作者: jxltyl    时间: 2019-1-10 09:12
查看实例,谢谢楼主能够分享
作者: zhibingding    时间: 2019-1-14 13:22

购买PLC编程线免费赠送PLC视频教程、PLC编程实例、PLC解密软件、PLC编程手册、PLC学习资料等
说明书是豆丁网的,我们下载不了
作者: 工业小雨    时间: 2019-2-24 16:28
感谢大神感谢大神感谢大神感谢大神感谢大神
作者: Z_D    时间: 2019-3-8 14:49
感谢楼主的分享
作者: Z_D    时间: 2019-3-8 14:55
感谢楼主的分享......
作者: songlei61    时间: 2019-4-3 09:58
谢谢,学习一下,参考参考
作者: jxcad    时间: 2019-4-16 09:47
谢谢分享。
作者: keruse    时间: 2019-4-16 10:14
先下载来看看学习再说
作者: wx_jRL5SDtF    时间: 2019-4-24 22:29
这样可以通讯,我曾经也是这样做的
作者: finiiy    时间: 2019-5-10 15:06
绝对支持号东西啊,
作者: seer123456    时间: 2019-5-15 14:34
PLC初学者,求代码,谢谢大佬,
作者: hlbjy    时间: 2019-5-17 15:49
学习一下,学习楼主
作者: huaihu1217    时间: 2019-5-17 16:19
abc反对反对法
作者: w07351756    时间: 2019-5-20 16:02
谢谢分享感谢楼主
作者: hahaha123456    时间: 2019-5-29 10:04
hebhaodeziliao

作者: husuhong    时间: 2019-5-29 15:26
非常干净专家提供宝贵资料
作者: xiewentao    时间: 2019-6-15 19:32
666666666666666666666666




欢迎光临 江西自动化网|江西工控论坛 (https://www.jx-auto.cn/) Powered by Discuz! X3.4