[西门子] 西门子 S7-1200 系列十五:干货!实例手把手教你如何实现s7-1200(1500) Modbus TCP通讯及测试(上)

[复制链接]
查看92420 | 回复0 | 2024-7-19 01:26:24 | 显示全部楼层 |阅读模式
Modbus TCP简介

Modbus TCP是一种基于Modbus协议的通讯协议,用于实现工业自动化网络中的数据传输。Modbus TCP通讯协议将Modbus协议的消息帧封装在TCP/IP协议中,使其能够通过以太网进行传输。

Modbus TCP通讯协议的主要特点如下:
    基于TCP/IP协议:Modbus TCP使用TCP协议作为其传输层协议,保证了数据传输的可靠性和稳定性。同时,Modbus TCP使用标准的以太网接口,使其能够方便地与现有的以太网网络集成。简单的数据帧结构:Modbus TCP的数据帧结构相对简单,包括事务标识符、协议标识符、长度、单元标识符、功能码、数据区和校验和等字段。这种简单的数据帧结构使得Modbus TCP协议易于实现和解析。支持多种数据类型:Modbus TCP支持多种数据类型,包括离散输入、线圈、输入寄存器和保持寄存器等。这些数据类型可以满足不同场景下的数据传输需求。支持多个从站设备:Modbus TCP协议支持多个从站设备,通过设置不同的单元标识符来区分不同的从站设备。这使得Modbus TCP协议能够方便地实现多从站设备的通讯。支持广播通讯:Modbus TCP协议支持广播通讯,即主站设备可以向所有的从站设备发送广播消息。这种广播通讯方式可以用于实现某些特定的应用场景,如同步时钟等。
Modbus TCP与Modbus RTU区别

Modbus TCP和Modbus RTU是两种不同的Modbus通信协议变种,它们在数据传输方式和应用场景上有所区别:
    传输介质:
      Modbus TCP:通常用于以太网通信,使用TCP/IP协议栈,适合于局域网和广域网环境。Modbus RTU:通常用于串行通信,如RS-232、RS-485等,适合于短距离通信。
    数据帧结构:
      Modbus TCP:数据帧包括事务标识符、协议标识符、长度、单元标识符、功能码、数据区和校验和等字段。数据帧较长,但由于基于TCP协议,不需要额外的错误检测和校验。Modbus RTU:数据帧包括地址、功能码、数据区和循环冗余校验(CRC)码。数据帧较短,且每个字节之间有固定的时间间隔,因此需要CRC来保证数据的完整性。
    传输速度和效率:
      Modbus TCP:由于使用以太网和TCP协议,传输速度较快,但数据封装较为复杂,可能会增加一些额外的开销。Modbus RTU:由于使用串行通信,传输速度较慢,但数据帧结构简单,传输效率较高。
    错误检测和校验:
      Modbus TCP:依赖于TCP协议的错误检测和校验机制,不需要额外的校验。Modbus RTU:使用CRC校验来检测数据传输过程中的错误。
    地址编码:
      Modbus TCP:使用单元标识符(通常是设备的IP地址)来寻址。Modbus RTU:使用设备地址(0x01到0xFF)来寻址。
    应用场景:
      Modbus TCP:适用于需要高速、可靠通信的网络环境,如工厂自动化、楼宇自动化等。Modbus RTU:适用于点对点或多点通信的简单环境,如远程监控和控制。

TIA Portal中Modbus TCP Server配置步骤

本期内容使用1台s7-1500与Modbus Poll仿真软件进行Modbus TCP通讯,s7-1500作为服务端(提供数据的一侧,可以理解为从站)

软件测试环境:
    TIA Portal V17Modbus Poll V10.9.0(文末附下载链接)

硬件测试环境:
    CPU 1515-2 PN

注:Modbus TCP需要使用真实PLC或 PLCsim advance仿真(不支持1200)进行测试,小编手头没有1200用1500替代,两种PLC配置及调试方式一致

MB_Server配置步骤如下:

    打开TIA Portal项目,新建FC块,并将MB_SERVER功能块拖入程序中,需要为该块指定背景数据块;


    image-20240605164523869
    MB_SERVER指令参数如下:

    参数

    声明

    数据类型

    说明

    DISCONNECT

    Input

    BOOL

    “MB_SERVER”指令建立与一个伙伴模块的被动连接。服务器会响应在 CONNECT 参数的 SDT“TCON_IP_v4”中输入的 IP 地址的连接请求。

    接受一个连接请求后,可以使用该参数进行控制:

    MB_HOLD_REG

    InOut

    VARIANT

    指向“MB_SERVER”指令中 Modbus 保持性寄存器的指针

    MB_HOLD_REG 引用的存储区必须大于两个字节。

    保持性寄存器中包含 Modbus 客户端通过 Modbus 功能 3(读取)、6(写入)、16(多次写入)和 23(在一个作业中读写)可访问的值。

    作为保持性寄存器,可以使用具有优化访问权限的全局数据块,也可以使用位存储器的存储区。

    CONNECT

    InOut

    VARIANT

    指向连接描述结构的指针

    可以使用下列结构 (SDT):

    对于 V4.2 以上指令版本的 MB_SERVER,TCP 的以下连接描述也可用:

    NDR

    Output

    BOOL

    “New Data Ready”:

    DR

    Output

    BOOL

    “Data Read”:

    ERROR

    Output

    BOOL

    如果在调用“MB_SERVER”指令过程中出错,则将 ERROR 参数的输出设置为“1”。有关错误原因的详细信息,将由 STATUS 参数指定。

    STATUS

    Output

    WORD

    指令的详细状态信息。


      0:未读取数据

      1:从 Modbus 客户端读取的数据

      0:无新数据

      1:从 Modbus 客户端写入的新数据

      TCON_IP_V4_SEC(S7-1200 CPU 固件版本 V4.3 及以上版本,或 S7-1500 CPU 固件版本 V2.5 及以上版本)

      TCON_QDN(S7-1200 CPU 固件版本 V4.4 及以上版本,或 S7-1500 CPU 固件版本 V2.5 及以上版本)

      TCON_QDN_SEC(S7-1200 CPU 固件版本 V4.4 及以上版本,或 S7-1500 CPU 固件版本 V2.5 及以上版本)

      TCON_IP_v4:包括建立指定连接时所需的所有地址参数。默认地址为 0.0.0.0(任何 IP 地址),但也可输入具体 IP 地址,以便服务器仅响应来自该地址的请求。使用 TCON_IP_v4 时,可通过调用指令“MB_SERVER”建立连接。

      TCON_Configured:包括所组态连接的地址参数。使用 TCON_Configured 时,会在下载硬件配置后由 CPU 建立连接。

      0:在无通信连接时建立被动连接。

      1:终止连接初始化。如果已置位该输入,那么不会执行其它操作。成功终止连接后,STATUS 参数将输出值 0003。

    为MB_Server配置参数,注意CONNECT参数需要使用“TCON_IP_v4”类型数据;(按照小编习惯,通常先不管参数意义是什么,现在DB块中将接口参数建好,保证程序可以下载)


    image-20240605165943907
    为MB_SERVER指定保持寄存器数据区域,以指针的形式体现,建议使用非优化DB块;


    image-20240605170139174
    MB_SERVER配置完成,可对程序进行下载;由于CONNECT参数需要设置,因此MB_SERVER会产生错误代码;


    image-20240605170400284
    对CONNECT参数进行配置,CONNECT参数说明,及配置说明如下:

    字节

    参数

    数据类型

    起始值

    说明

    0 … 1

    InterfaceID

    HW_ANY

    -

    本地接口的硬件标识符

    2 … 3

    ID

    CONN_OUC

    -

    引用该连接(取值范围:1 到 4095)。

    该参数将唯一确定 CPU 中的连接。指令“MB_SERVER”的每个实例必须使用唯一的 ID。该 ID 还不得被不同通信类型的其他指令同时使用。

    注:对于固件版本为 V2.9 或更高版本的 S7-1500 CPU 和固件版本为 V4.5 或更高版本的 S7-1200 CPU,ID 也可能由指令“TCONSettings”提供。

    4

    ConnectionType

    BYTE

    11

    连接类型

    对于 TCP,选择 11(十进制)。不允许使用其它连接类型。如果使用了其它连接类型(如 UDP),该指令的 STATUS 参数将输出相应的错误消息。

    5

    ActiveEstablished

    BOOL

    FALSE

    建立连接的方式所对应的 ID

    对于被动连接建立,应选择 FALSE。

    6 … 9

    RemoteAddress

    ARRAY [1..4] of BYTE

    0.0.0.0

    连接伙伴的 IP 地址,例如,192.168.0.1:

    如果指令“MB_SERVER”要接受来自任何连接伙伴的连接请求,应将“0.0.0.0”用作 IP 地址。

    10 … 11

    RemotePort

    UINT

    0

    远程连接伙伴的端口号(取值范围:1 - 49151)。

    如果指令“MB_SERVER”要接受来自远程伙伴任何端口的连接请求,应将“0”用作端口号。

    12 … 13

    LocalPort

    UINT

    502

    本地连接伙伴的端口号(取值范围:1 - 49151)。

    此 IP 端口号定义 Modbus 客户端连接请求中要监视的 IP 端口。

    默认值为 502。

    注:InterfaceID,ID,ConnectionType,LocalPort参数必须设置,其它可以保持默认。

    interfaceID通过硬件组态查看:


    image-20240605172055991
    配置完成如下:


    image-20240605172232237

      addr[1] = 192

      addr[2] = 168

      addr[3] = 0

      addr[4] = 1

    打开Mobdu Pol,设置连接参数,建立通讯连接


    image-20240605172409611
    新建一个Modbus测试窗口(默认10个数据,功能码03)


    image-20240605172502851
    监控数据如下:


    image-20240605190610142
    MB_SERVER配置完成;
总结

注意:由于Mobdus TCP内部封装了大量串口通讯的程序,通讯中断或端口变化,都会引起某些莫名奇妙的错误,所以请谨慎使用;更多MB_SERVER使用下期分享
加小编,邀您加入“工控技术交流群”


image-20240324184601616
下载链接

如果您觉得文章对您有帮助,欢迎评论、点赞、收藏,加关注!您的支持将是小编最大动力

关注公众号,发送 30036,获取Modbus TCP主站模拟软件工具Modubs Poll


public
西门子 s7-1200 系列文章--持续更新中


    西门子 S7-1200 系列一:s7-1200 plc 产品介绍

    西门子 S7-1200 系列二:干货!教你做西门子S7-1200 PLC系统选型(其它系统适用) 附选型工具及1200文档下载

    西门子 S7-1200 系列三:最全S7-1200 固件使用及三种固件更新方式详解(附S7-1200 V2~V4.6固件包下载)

    西门子 S7-1200 系列四:西门子 TIA Portal 编程软件介绍及应用范围说明(附V15~V19软件下载连接)

    西门子 S7-1200 系列五:TIA博图中OB、DB、FC、FB介绍及应用范围说明再也不用担心混淆了

    西门子 S7-1200 系列六:S7-1200(1500适用)控制系统程序中数据类型详解(上)

    西门子 S7-1200 系列七:S7-1200(1500适用)控制系统程序中数据类型详解(下)

    西门子 S7-1200 系列八:无论新手老手你肯定没有全面了解过的 TIA Portal 中图标大全说明

    西门子 S7-1200 系列九:TIA Portal软件中那些你经常用到但却容易忽略的常用的基础操作说明(上)

    西门子 S7-1200 系列十:TIA Portal软件中那些你经常用到但却容易忽略的常用的基础操作说明(中)

    西门子 S7-1200 系列十一:TIA Portal软件中那些你经常用到但却容易忽略的常用的基础操作说明(下)

    西门子 S7-1200 系列十二:手把手教你如何激活S7-1200 OPC UA Server并配置服务器接口数据(附测试软件)

    西门子 S7-1200 系列十三:干货!西门子 s7-1200 Modbus RTU通讯详解(上)--(硬件篇,接线不发愁)

    西门子 S7-1200 系列十四:干货! 西门子 s7-1200 Modbus RTU通讯详解(下)--(程序篇,篇幅较长)


西门子 s7-200 smart 系列文章


    西门子 s7-200 smart 全系列(文档、编程软件、基本控制库、CAX图纸、实例应用)汇总分享

软件下载


    软件资源分享一:Modbus调试软件ModScan32 + Modsim32

    软件资源分享二:s7-200 smart 编程软件 V2.3~V2.8整合分享

    软件资源分享三:最新西门子精彩(smart line V4)触摸屏组态软件wincc flexible smart v4 sp2

    软件资源分享四:TIA Portal V15~V18编程软件 分享+s7-200 smart 技术应用汇总

    软件资源分享三:最新西门子博图编程软件 TIA Portal V19 软件更新分享附下载链接

    软件资源分享六:EPLAN Electric P8 2024 | Eplan 2024 中文版软件介绍+保姆级安装教程

    软件分享七:使用NetToPLCsim实现触摸屏、上位机与西门子PLC-SIM仿真软件的在线无硬件通讯测试(附下载链接+样例)

    软件分享八:推荐两款现场调试自用的两款IP扫描工具,很方便!(附:工具下载链接)

    软件分享九:西门子官方PROFINET网络调试和诊断工具PRONETA介绍及使用分享(附下载链接)

    软件分享十:功能更加强大全面的操作及维护工具 SIMATIC Automation TOOL可实现免TIA Portal下载程序

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则