PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 117|回复: 0

[西门子] 西门子 S7-1200 系列十五:干货!实例手把手教你如何实现s7-1200(1500) Mod

[复制链接]
发表于 2024-6-8 14:26:30 | 显示全部楼层 |阅读模式
>
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 V17
  • Modbus 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-20240605164523869MB_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
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-6-28 18:30 , Processed in 0.046376 second(s), 26 queries .

快速回复 返回顶部 返回列表