[西门子] 西门子 S7-200 SMART 系列八:实例讲解如何实现s7-200 smart cpu 与 cpu之间通讯

[复制链接]
查看45667 | 回复0 | 2024-3-23 07:38:32 | 显示全部楼层 |阅读模式
通过向导实现s7-200 SMART CPU之间S7通信

上期介绍了西门子S7-200 samrt 串口通讯中Modbus的应用,实际上s7-200 smart 串口还支持USS通讯(西门子驱动专用通讯协议)、自由口通讯协议,但由于都不太常用,就不再过多介绍,有需要的朋友可以加小编微信私聊,本期开始分享s7-200 smart 的以太网通讯,感谢大家支持;


003656
西门子S7通信简介

S7通信

西门子S7通讯是一种用于自动化控制系统的开放式网络协议。它旨在提供高效、可靠和安全的设备之间通信方式。S7通讯支持各种类型的网络拓扑结构和连接方式,例如以太网、Profibus和Profinet等。此外,它还支持多种通讯协议和数据格式,包括二进制、ASCII和BMP等。通过S7通讯,不同厂商生产的设备可以相互通信,并实现协同工作。这有助于提高生产效率、降低成本,并促进自动化控制系统的智能化发展。

S7连接

S7连接是指建立在西门子S7通讯协议基础上的设备之间的互联。它可以通过各种接口(如以太网、串行口等)实现,使不同类型的设备(例如工控机、PLC、触摸屏等)能够相互通信和交换数据。在S7连接中,使用了特定的网络拓扑结构,例如Master-Slave或Peer-to-Peer等。这些拓扑结构可以根据实际应用需求进行调整,以满足不同场景下对系统效率、可靠性和安全性的要求。

单边通讯

在S7连接中,多使用单边通讯(即PUT/GET)实现CPU与CPU之间数据通讯。单边通讯顾名思义就是指只有一端发起的通讯,其它CPU程序无需做任何处理。这种通讯方式也被称为"主从通讯"或"读写通讯"。在单边通讯中,其中一台设备作为主站(Master),而另一台设备则作为从站(Slave)。主站负责向从站发送指令或数据,而从站则根据主站的要求进行操作或返回数据。单边通讯具有以下优点:
    简单易用:结构简单、操作便捷,适合于低功耗和低带宽的场景。高效稳定:主站控制从站工作,可以避免多台设备之间的干扰和冲突,保证通讯稳定性和效率。安全可靠:单向数据流使得主站更容易对从站进行控制和管理,有助于减少系统故障和安全风险。
S7-200 SMART CPU之间的以太网通信

S7-200 SMART CPU 固件版本 V2.0 及以上版本的 CPU 可实现CPU、编程设备和HMI(触摸屏)之间的多种通信:
    CPU与编程设备之间的数据交换。CPU与HMI之间的数据交换。CPU与其他S7-200 SMART CPU之间的PUT/GET通信。CPU与其它S7系列(s7-1200,s7-300,s7-1500)PLC之间的PUT/GET通信。

S7-200 SMART CPU 以太网连接资源如下:
    1个连接用于与STEP7 Micro/Win SMART软件的通信。8个连接用于CPU与HMI之间的通信。8个连接用于CPU与其他S7-200 SMART CPU之间的PUT/GET主动连接8个连接用于CPU与其他S7-200 SMART  CPU之间的PUT/GET被动连接

注:S7-200 SMART 在 V2.5 版本(硬件和软件)增加标准型 CPU 支持 PROFINET IO  智能设备的功能。后期会为大家分享学习如何使用s7-200 samrt 作为IO设备和智能设备
通信资源数量

PLC的通讯能力与该PLC的通讯链接资源数有关,链接资源越多,通讯能力就越强;

S7-200 SMART CPU 以太网端口含有 8 个PUT/GET 主动连接资源和 8 个PUT/GET 被动连接资源。例如:CPU1 调用 PUT/GET  指令与 CPU2 ~ CPU9 建立8主动连接的同时,可以与 CPU10 ~ CPU17 建立8被动连接(CPU10 ~ CPU17 调用 PUT/GET  指令),这样的话 CPU1 可以同时与16台 CPU(CPU2 ~ CPU17)建立连接。

关于主动连接资源和被动连接资源的详细解释如下:
    主动连接资源和被动连接资源
      调用 PUT/GET 指令的CPU 占用主动连接资源数;相应的远程 CPU 占用被动连接资源。
    8 个PUT/GET 主动连接资源
      S7-200 SMART CPU 程序中可以包含远多于 8个PUT/GET 指令的调用,但是在同一时刻最多只能激活 8 个 PUT/GET 连接资源。同一时刻对同一个远程 CPU 的多个 PUT/GET 指令的调用,只会占用本地 CPU的一个主动连接资源和远程 CPU的一个被动连接资源。本地 CPU  与远程 CPU之间只会建立一条连接通道,同一时刻触发的多个 PUT/GET 指令将会在这条连接通道上顺序执行。同一时刻最多能对8个不同 IP 地址的远程 CPU 进行 PUT/GET 指令的调用,第9个 远程CPU的PUT/GET  指令调用将报错,无可用连接资源。已经成功建立的连接将被保持,直到远程 CPU断电或者物理断开。
    8 个PUT/GET 被动连接资源
      S7-200 SMART CPU 调用 PUT/GET 指令,执行主动连接的同时也可以被动地被其他远程 CPU 进行通信读写。S7-200 SMART最多可以与被8个不同 IP 地址的远程 CPU 进行 建立被动连接。已经成功建立的连接将被保持,直到远程  CPU断电或者物理断开。

使用向导完成CPU与CPU之间通讯步骤

通过S7通信实现CPU与CPU之间通讯,西门子提供了PUT/GET编程指令(通过指令&参数完成,有兴趣朋友可以学习学习,参数理解比较困难,本期不做过多介绍),同时也可以使用 PUT/GET 向导以简化编程步骤。该向导最多允许组态 16 项独立 PUT/GET 操作,并生成代码块来协调这些操作。

在下面的例子中,CPU1 为主动端,其 IP 地址为192.168.2.100,调用 PUT/GET 指令;CPU2 为被动端,其 IP  地址为192.168.2.101,不需调用 PUT/GET 指令。通信任务是把 CPU1 的实时时钟信息写入 CPU2 中,把CPU2  中的实时时钟信息读写到 CPU1 中。操作步骤如下:


image-20240320105435615

    STEP 7 Micro/WIN SMART 在“工具” 菜单的“向导”区域单击“Get/Put”按钮,启动 PUT/GET 向导,在弹出的“Get/Put”向导界面中添加操作步骤名称并添加注释;


    MWSmart_O1yHg3YH7r
    定义PUT操作


    MWSmart_sm7zUl3DWd
    定义PUT操作:
      选择操作类型,PUT(将数据写入远端,对应PUT_CPU2)通信数据长度8(时钟信息占用8个字节)定义远端CPU的IP地址(192.168.2.101)本地通讯区域和起始地址(时钟数据存储在VB100开始的8个字节中)远断通讯区域和起始地址(将数据写入VB0开始的8个字节中)

    定义GET操作


    image-20240320111444680
    定义GET操作:
      选择操作类型,GET(从远端获取数据,对应GET_CPU2)通信数据长度8(时钟信息占用8个字节)定义远端CPU的IP地址(192.168.2.101)本地通讯区域和起始地址(将读取到的数据存储在VB0开始的8个字节中)远断通讯区域和起始地址(读取远端从VB100开始的8个字节)

    分配存储器地址


    image-20240320111829009
    注:点击“建议”按钮向导会自动分配存储器地址。需要确保程序中已经占用的地址、PUT/GET  向导中使用的通信区域与不能存储器分配的地址重复,否则将导致程序不能正常工作。

    点击下一步,显示向导自动生成的组件,可直接下一步或者生成;


    image-20240320112024391
    点击“生成”按钮将自动生成网络读写指令以及符号表。只需用在主程序中调用向导所生成的网络读写指令即可


    image-20240320112311078
    NET_EXE 子程序参数说明:
      Timeout 超时输入为整数值,以秒为单位定义定时器值。允许范围为 0(= 无定时器)和 1 - 36767(= 以秒为单位的定时器值)。Cycle 输出是指在每次所有 NET 操作全部完成后被切换的布尔值。允许值为假值 (0) 和真值 (1)。周期输出在一个周期为假值 (0),下一周期为真值  (1),接下来的第三个周期为假值 (0)。Error 输出是 NET_EXE 子例程返回的布尔值,用于指示执行结果。0=无错误;1=错误;

    S7通信本地侧配置完成,远端无需配置,只需要配置需要传输的数据即可。


    image-20240320113004146
补充说明:读取时钟指令


image-20240320114152339
说明  READ_RTC、SET_RTC 编程提示

这些指令不接受无效日期。例如,如果输入 2 月 30 日,则会发生非致命性日时钟错误 (0007H)。 不要在主程序和中断例程中使用 READ_RTC/SET_RTC 指令。执行另一个 READ_RTC/SET_RTC 指令时,无法执行中断例程中的  READ_RTC/SET_RTC 指令。在这种情况下,CPU 会置位系统标志位 SM4.3,指示尝试同时对日时钟执行二重访问,导致 T 数据错误(非致命错误  0007H)。 CPU 中的日时钟仅使用年份的最后两位数,因此 00 表示为 2000 年。使用年份值的用户程序必须考虑两位数的表示法。 2099 年之前的闰年年份,CPU 都能够正确处理。

8 字节时间缓冲区的格式,从字节地址 T 开始

所有日期和时间值必须采用 BCD 格式分配(例如,16#12 代表 2012 年)。00 至 99 的 BCD 值范围可分配范围为 2000 至 2099  的年份。
T 字节说明数据值
000  至 99(BCD 值)20xx 年:其中,xx 是 T 字节 0 中的两位数 BCD 值
101  至 12(BCD 值)
201  至 31(BCD 值)
3小时00  至 23(BCD 值)
400  至 59(BCD 值)
500  至 59(BCD 值)
6保留始终设置为  00
7星期几使用  SET_RTC/TODW 指令写入时会忽略值。
通过 READ_RTC/TODR 指令进行读取时,值会根据当前年/月/日值报告正确的星期几。
1 至 7,1  = 星期日,7 = 星期六(BCD 值)

注意

紧凑型串行 (CRs) CPU 型号没有 RTC(实时时钟)  可使用 READ_RTC 和 SET_RTC 指令设置紧凑型串行 (CRs) CPU 型号中的年份、日期和时间值,但这些值将在下一次 CPU  断电通电循环时丢失。上电时,日期和时间将初始化为 2000 年 1 月 1 日。
样例程序下载

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

下载方式:关注公众号,在公众号回复“10003”,获取下载连接


public
西门子 s7-200 smart 系列文章


    西门子 S7-200 SMART 系列七:手把手教你配置S7-200 SMART Modbus RTU 从站&样例程序下载

    西门子S7-200 SMART 系列六:手把手教你配置S7-200 SMART Modbus RTU附样例程序下载

    西门子 S7-200 SMART 系列五:手把手教你配置S7-200 SMART Web服务器实例

    西门子 S7-200 SMART 系列四:S7-200 SMART 新功能Web服务器功能介绍

    西门子 S7-200 SMART 系列三: 最新西门子 s7-200 smart V2.8产品特性及软件包下载

    西门子 S7-200 SMART 系列二: 最新西门子规格型号及订货号整理

    西门子 S7-200 SMART 系列一: 产品介绍

本帖子中包含更多资源

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

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

本版积分规则