您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页modbustcp服务器

modbustcp服务器

来源:意榕旅游网
S7-1200ModbusTCP通信指令块 STEP7V13SP1软件版本中的ModbusTCP库指令目前最新的版本已升至V4.0,该版本的使用需要具备以下两个条件: 1.软件版本:STEP7V13SP1及其以上 2.固件版本:S7-1200CPU的固件版本V4.1 图1.ModbusTCPV4.0版本指令块 S7-1200ModbusTCP实验环境

下面以两台S7-1200之间进行ModbusTCP通信为例,详细阐述客户端与服务器侧如何编程及通信的过程。表格列出了具体的实验环境:

操作系统 编程软件 系统硬件 WIN7SP1专业版64位 STEP7ProfessionalV13SP1Update5 1.CPU1215C??6ES7215-1AG40-0XB0??V4.1 2.CPU1212C??6ES7212-1AE40-0XB0??V4.1 3.CSM1277???6GK7277-1aa10-0aa0 表1.ModbusTCP通信的实验环境

CPU类型 客户端 服务器 CPU1212C CPU1215C IP地址 端口号 0 502 硬件标识符 64 64 表2.ModbusTCP通信双方的基本配置

硬件标识符是在“设备组态”中,双击PROFINET接口,然后在“属性”中的“硬件标识符”中查看。

图2.S7-1200设备的PROFINET接口硬件标识符 S7-1200ModbusTCP服务器编程

“MB_SERVER”指令将处理ModbusTCP客户端的连接请求、接收并处理Modbus请求并发送响应。

1.在“程序块->OB1\"中调用“MB_SERVER”指令块,然后会生成相应的背景DB块,点击确定,如图3所示。 图3.调用MB_SERVER指令块 该功能块的各个引脚定义如下:

DISCONNET MB_HOLD_REG CONNECT NDR DR ERROR STATUS 为0代表被动建立与客户端的通信连接;为1代表终止连接。 指向Modbus保持寄存器的指针。 指向连接描述结构的指针。TCON_IP_v4(S7-1200) 为0代表无数据;为1代表从Modbus客户端写入新的数据。 为0代表无读取的数据;为1代表从Modbus客户端读取的数据 错误位:0:无错误;1:出现错误,错误原因查看STATUS。 指令的详细状态信息。 表3.MB_SERVER各个引脚定义说明 2.CONNECT引脚的指针类型

第一步,先创建一个新的全局数据块DB2,如图4所示: 图4.创建全局数据块

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

图5.创建MB_SERVER中的TCP连接结构的数据类型 各个引脚定义说明如下:

InterfaceId ID ConnectionType ADDR RemotePort LocalPort 硬件标识符。(设备组态中查询) 连接ID,取值范围1~4095 连接类型。TCP连接默认为:16#0B 服务器侧的IP地址 远程端口号 本地端口号 ActiveEstablished 建立连接。主动为1(客户端),被动为0(服务器)。 表4.TCON_IP_v4数据结构的引脚定义

客户端侧的IP地址为,端口号为0,所以MB_SERVER服务器侧该数据结构的各项值如图6所示。

图6.MB_SERVER服务器侧的CONNECT数据结构定义 3.S7-1200服务器侧MB_SERVER编程

调用MB_SERVER指令块,实现被客户端读取2个保持寄存器的值,如图7所示。 图7.MB_SERVER服务器侧编程

注意:MB_HOLD_REG指定的数据缓冲区可以设为DB块或M存储区地址。DB块可以为优化的数据块,也可以为标准的数据块结构。 S7-1200MODBUSTCP通信调试

S7-1200MODBUSTCP服务器侧准备数据,用于客户端读访问,如图8所示。 图8.服务器侧监控表

S7-1200MODBUSTCP客户端侧,给MB_CLIENT指令块中REQ引脚一个上升沿,监控数据读取成功。如图9所示。 图9.客户端侧监控表

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务