S7-1200 Modbus TCP客户端

    S7-1200 Modbus TCP 通信指令块

    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 TCP 通信为例,详细阐述客户端与服务器侧如何编程及通信的过程。表格列出了具体的实验环境:

    操作系统

    WIN7 SP1 专业版 64位

    编程软件

    STEP 7 Professional V13 SP1 Update 5

    系统硬件

    1.CPU1215C   6ES7215-1AG40-0XB0   V4.1
    2.CPU1212C   6ES7212-1AE40-0XB0   V4.1
    3.CSM1277    6GK7277-1aa10-0aa0

    表1. Modbus TCP 通信的实验环境

     
    CPU类型
    IP地址
    端口号
    硬件标识符
    客户端
    CPU 1212C
    192.168.0.6
    0
    64
    服务器
    CPU 1215C
    192.168.0.4
    502
    64

    表2. Modbus TCP 通信双方的基本配置

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

    图2. S7-1200设备的PROFINET接口硬件标识符

    S7-1200 Modbus TCP 客户端编程

    S7-1200 客户端侧需要调用MB_CLIENT指令块,该指令块主要完成客户机和服务器的TCP连接、发送命令消息、接收响应以及控制服务器断开的工作任务。

    1. 将MB_CLIENT 指令块在“ 程序块 -> OB1 ”中的程序段里调用,调用时会自动生成背景DB ,点击确定即可。

    图3. Modbus TCP 客户端侧指令块

    该功能块各个引脚定义如下:

    REQ与服务器之间的通信请求,上升沿有效。
    DISCONNECT

    通过该参数,可以控制与 Modbus TCP服务器建立和终止连接。 0(默认):建立连接;1:断开连接。

    MB_MODE

    选择 Modbus 请求模式(读取、写入或诊断)。0:读;1:写。

    MB_DATA_ADDR

    由“MB_CLIENT”指令所访问数据的起始地址。

    MB_DATA_LEN数据长度: 数据访问的位或字的个数。
    MB_DATA_PTR指向 Modbus 数据寄存器的指针。
    CONNECT

    指向连接描述结构的指针。TCON_IP_v4(S7-1200)

    DONE最后一个作业成功完成,立即将输出参数 DONE 置位为“1”。
    BUSY作业状态位:0:无正在处理的“MB_CLIENT”作业;1:“MB_CLIENT”作业正在处理。
    ERROR错误位:0:无错误;1:出现错误,错误原因查看STATUS。
    STATUS

    指令的详细状态信息。

    表4. MB_CLIENT 各引脚定义说明

    2. CONNECT 引脚的指针类型

    第一步,先创建一个新的全局数据块 DB2:

    图4. 创建全局数据块

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

    图5. 创建 MB_CLIENT 中的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.0.4,远程端口号设为502。所以客户端侧该数据结构的各项值为:

    图6. MB_CLIENT 侧 CONNECT 引脚数据定义

    注意: CONNECT引脚的填写需要用符号寻址的方式。

    3. 创建 MB_DATA_PTR 数据缓冲区

    第一步,创建一个全局数据块 DB3,创建方法可以参考上面的图3,数据块的名称如图7所示:

    图7. 生成的两个DB块名称

    第二步,建议一个数组的数据类型,以便通信中存放数据,请参考图8所示:

    图8. MB_DATA_PTR 数据缓冲区结构

    注意: MB_DATA_PTR*的数据缓冲区可以为DB块或M存储区地址中。DB块可以为优化的数据块,也可以为标准的数据块结构。若为优化的数据块结构,编程时需要以符号寻址的方式填写该引脚;若为标准的数据块结构(可以右键单击DB块,“属性”中将“优化的块访问”前面的勾去掉,如下图9所示),需要以**地址的方式填写该引脚。本文以标准的数据块(默认)为例进行编程。

    图9. 修改 DB 块属性为标准的块结构

    4. 客户端侧完成指令块编程

    调用 MB_CLIENT 指令块,实现从 Modbus TCP 通信服务器中读取2个保持寄存器的值,如图10所示:

    图10. MB_CLIENT 指令块编程

    5. 将整个项目下载到S7-1200

    待Modbus TCP 服务器侧准备就绪,给MB_CLIENT指令块的REQ引脚一个上升沿,将读取到的数据放入 MB_DATA_PTR引脚*的DB 块中。具体的实验结果可以查看S7-1200 服务器侧编程。

    常见问题

     MB_CLIENT 指令的背景数据块中的 "MB_Unit_ID" 有什么功能?

    S7-1200 CPU 作为 Modbus TCP 客户端与 Modbus TCP 服务器通信,当尝试访问比 Modbus TCP 服务器更低端的串行子网中的设备,会有报错 "无法建立连接"。

    这种情况下, Modbus TCP 服务器作为 Modbus RTU 协议中的网关,"MB_Unit_ID" 参数相当于 Modbus RTU 协议中的从站地址。

    Modbus TCP 客户端直接向 Modbus TCP 服务器发送请求,Modbus TCP 服务器通过识别 "MB_UNIT_ID" 参数,将请求转发到从站设备。

    在 S7-1200 项目中,选择系统块,双击打开 MB_CLIENT 指令的背景数据块“MB_CLIENT_DB”, 在静态变量Static下可以找到 MB_Unit_ID (默认起始值16#FF,等于十进制 255)。如下图 11 所示:

    图 11. MB_Unit_ID

    例如,当 S7-1200 做客户端与电脑上的 Modbus TCP 调试软件 Modsim 通信时,会遇到如上“无法建立连接”的问题。

    这时,修改调试软件 Modsim 中Device Id 为255,使之等于 MB_Unit_ID 的值,即可建立联系。如下图 12 所示:

    图 12. Device Id

     注意:如果 Modbus TCP 服务器无法更改 Device Id 的值, 则修改S7-1200 项目中MB_Unit_ID数值, 使双方的参数一致。


    上海腾希电气技术有限公司专注于西门子PLC,V90伺服,V20变频器等, 欢迎致电 13681875601

  • 词条

    词条说明

  • 命令输出

    命令输出命令输出的处理选项参数对于通过主站或主机输出命令的站中的数据点,可以选择激活以下输出选项:LATCH_ON/OFF该功能将命令输出*锁定为值 0 或 1。注意:锁定值仅可由新命令取消。或者,该命令可由用户程序复位。PULSE_ON/OFF该功能评估主站命令信号(脉冲)的数量和长度。数据点类型可为下列数据点类型组态输出选项:ST7命令输出 (Cmd01B_R)IECSingle comma

  • 端口 IP 地址映射

    端口 IP 地址映射在该页面上,为特定端口分配一个 IP 地址。在“DHCP 服务器”(DHCP Server) 选项卡中创建 IPv4 地址段后,此选项卡中将创建一个新行。本页面上的组态影响“DHCP 服务器”(DHCP Server) 和“端口范围”(Port Range) 选项卡。说明该表包含以下各列:池 ID (Pool ID)显示 IPv4 地址段编号。为每个地址段创建一行。端口 (Po

  • 在项目中搜索的设置概览

    在项目中搜索的设置概览概述在下表中,列出了在项目中搜索的各种设置:组设置说明在项目中搜索激活“在项目中搜索”启用或禁用在项目中搜索功能。重新创建搜索索引在项目中,重新生成搜索的搜索索引。

  • 遥控服务器(Telecontrol Basic 协议)

    遥控服务器(Telecontrol Basic 协议)重复或冗余遥控服务器的寻址TCSB V3:对 TCSB 冗余组合寻址对于使用“Telecontrol Basic”协议自固件版本 V2 起的 CP在 LAN 中的 TCSB 服务器 PC 与 DSL 路由器(如 SCALANCE M)所连接的主站上,计算机操作系统的网络负载平衡 (NLB) 功能将为两个服务器 PC 分配一个公共的虚拟

联系方式 联系我时,请告知来自八方资源网!

公司名: 上海腾希电气技术有限公司

联系人: 田礼科

电 话: 021-37660026

手 机: 13681875601

微 信: 13681875601

地 址: 上海松江上海市松江区广富林路4855弄星月大业**88号4楼

邮 编:

网 址: shtxjd.cn.b2b168.com

八方资源网提醒您:
1、本信息由八方资源网用户发布,八方资源网不介入任何交易过程,请自行甄别其真实性及合法性;
2、跟进信息之前,请仔细核验对方资质,所有预付定金或付款至个人账户的行为,均存在诈骗风险,请提高警惕!
    联系方式

公司名: 上海腾希电气技术有限公司

联系人: 田礼科

手 机: 13681875601

电 话: 021-37660026

地 址: 上海松江上海市松江区广富林路4855弄星月大业**88号4楼

邮 编:

网 址: shtxjd.cn.b2b168.com

    相关企业
    商家产品系列
  • 产品推荐
  • 资讯推荐
关于八方 | 八方币 | 招商合作 | 网站地图 | 免费注册 | 一元广告 | 友情链接 | 联系我们 | 八方业务| 汇款方式 | 商务洽谈室 | 投诉举报
粤ICP备10089450号-8 - 经营许可证编号:粤B2-20130562 软件企业认定:深R-2013-2017 软件产品登记:深DGY-2013-3594
著作权登记:2013SR134025
Copyright © 2004 - 2024 b2b168.com All Rights Reserved