zoukankan      html  css  js  c++  java
  • 两个S7-1200之间以太网通信的仿真实验

     

    一、理论知识
    1、PROFINET 通信口
    S7-1200 CPU 本体上集成了一个PROFINET 通信口,支持以太网和基于TCP/IP和UDP 的通信标准。这个PROFINET物理接口是支持10/100Mb/s的RJ45口,支持电缆交叉自适应,因此一个标准的或是交叉的以太网线都可以用于这个接口。使用这个通信口可以实现S7-1200 CPU 与编程设备的通信,与HMI触摸屏的通信,以及与其它CPU 之间的通信。

    2、 支持的通信协议
    S7-1200 CPU 的PROFINET 通信口支持以下通信协议及服务
    1)TCP
    2)ISOon TCP ( RCF 1006 )
    3)UDP(V1.0不支持)
    4)S7通信

    3、 硬件版本 V4.1 支持的协议和最大的连接资源:
    分配给每个类别的预留连接资源数为固定值;您无法更改这些值。 但可组态6个"可用自由连接"以按照应用要求增加任意类别的连接数。

    示例:1 个PG 具有3 个可用连接资源。根据当前使用的 PG功能,该PG 实际可能使用其可用连接资源的1、2或3。 在S7-1200 中,始终保证至少有1 个PG,但不允许超过1 个PG。

    在CPU属性>常规>连接资源显示:


    二、开发工具
    1、博途TIA Protal V13
    2、仿真器S7-PLCSIM V13


    三、实现过程
    S7-1200与S7-1200之间的以太网通信可以通过TCP或ISOonTCP协议来实现,使用的通信指令是在双方CPU通用T-block(TSEND_C,TRCV_C, TCON, TDISCON, TSEN,TRCV)指令来实现,通信方式为双边通信,因此通信指令必须成对出现。


    1、组态&编程
    (1)打开博途软件,创建新项目,命名为:2个S7-1200之间通信


    (2)添加新设备,命名为PLC1,这里选择的是CPU1214C,版本V4.1


    (3)CPU属性设置,启用系统存储器字节和时钟存储器字节


    (4)以太网地址设置,IP地址设为:192.168.0.1



    (5)新建全局数据块DB1,命名为Data,用来发送和接收数据。


    (6)在数据块DB1中,新建数组send,用来发送数据到对方通信PLC,数据类型为Array[0..9]ofByte,共计10个字节;新建数组receive,用来接收对方通信PLC发送过来的数据,数据类型为Array[0..9]of Byte,共计10个字节。


    (7)在全局数据块DB1点击右键,选择属性

    将“优化的块访问”复选框的钩去掉,因为使用绝对寻址,需要禁用这个选项。


    “优化的块访问”复选框的钩去掉后,点确定


    (8)在PLC1上点击右键,复制并粘贴,命名为PLC2,修改IP地址:192.168.0.2


    (9)点击项目根目录下的“设备和网络”,并用鼠标连线PLC1与PLC2的通信网口

    连线成功后,如下图,两个PLC之间的通信组态完成。


    (10)在PLC1的Main(OB1)中编程,选择通信指令中的开放式用户通信指令:TSEND_C,TRCV_C.


    (11)选中TSEND_C指令,右键属性,选择组态,并设置各项参数如下:


    (12)选中TRCV_C指令,右键属性,选择组态,并设置各项参数如下:


    (13)TSEND_C指令,各项参数设置如下:

    (14)TRCV_C指令,各项参数设置如下:


    (15)在PLC2的Main(OB1)中编程,选择TSEND_C,TRCV_C指令,组态&编程和PLC1类同。

    2、模拟仿真
    (1)在电脑“控制面板”中,点击“设置PG/PC接口”,将应用程序访问点设置为:PLCSIMS7-1200/1500.


    (2)选中在PLC1,点击“开始仿真”


    (3)点击开始搜索,选中目标设备,下载。


    (4)PLC2的启动仿真,程序下载和PLC1的方法完全一致。


    (5)在PLC1的“监控和强制表”中添加新监控表如下,并在线监控:


    (6)在PLC2的“监控和强制表”中添加新监控表如下,并在线监控:


    (7)通过上面第(5)、(6)步骤,可以看到PLC1与PLC2交互的数据完成正确。


    (8)在PLC1的Main(OB1)中在线监视通信指令的情况如下,由于仿真器非真正的实体PLC,不能完全代替其实际功能,故指令执行状态与实际PLC指令状态存在差异,但不影响执行结果。

     

    ----公众号abseMe:坚持原创  注重实用

  • 相关阅读:
    LD_PRELOAD的偷梁换柱之能
    ATOM & Sublime Text 下MarkDown插件功能比较
    存在
    2017年执行计划
    2015年总结以及2016年计划
    2014年总结以及2015年计划
    asp.net MVC中form提交和控制器接受form提交过来的数据
    2013年回顾及2014年计划
    c# XML序列化与反序列化
    Namenode HA原理详解(脑裂)
  • 原文地址:https://www.cnblogs.com/abseme/p/10943762.html
Copyright © 2011-2022 走看看