故事作者:love1987

最近创作

看看TA的故事

[无处不在]+西门子1200PLC应用实践

已锁定

love1987

西门子1847工业学习平台

  • 帖子

    30
  • 精华

    0
  • 被关注

    31

论坛等级:侠客

注册时间:2015-03-30

黄金 黄金 如何晋级?

[无处不在]+西门子1200PLC应用实践

1644

1

2017-01-16 11:53:51

    眨眼之间,换了工作已有两年时间,所从事的行业由钢铁冶金换到了医药环保,所用的西门子PLC也由之前的300/400/458/TDC换到了现在的1200/1500,今天给大家介绍一下1200PLC的PROFINET通讯。

1. 1200系统的PROFINET通信

作为基于以太网的自动化标准,PROFINET定义了跨厂商的通信、自动化系统和工程组态模式。PROFINET 的目标是:

l   基于工业以太网建立开放式自动化以太网标准;

尽管工业以太网和标准以太网组件可以一起使用,但工业以太网设备更加稳定可靠,因此更适合于工业环境(温度、抗干扰等)。

l   使用 TCP/IP 和 UDP 标准;

l   实现有实时要求的自动化应用;

l   全集成现场总线系统。

S7-1200CPU的PROFINET通信口支持TCP 、ISO on TCP 、UDP、S7通信等通信协议及服务,该接口带一个具有自动交叉网线功能的RJ45连接器,提供10/100Mbit/s的数据传输速率,最大的通信连接数为23个连接,其中:

n   1个连接用于编程设备(PG)与CPU的通信

n   3个连接用于HMI与CPU的通信

n   8个连接用于OPEN IE(TCP,ISO-ON-TCP)的编程通信,使用T-CON、TSEND、TRCV指令或者TSEND_C、TRCV_C来实现,可用于两个S7-1200之间的或者S7-1200与S7-300/400的通信

n   3个连接用于S7通信的服务器连接,可以实现与S7-200或者与S7-300/400的以太网S7通信

n   8个连接用于S7通信的客户机连接,可以实现与S7-200或者与S7-300/400的以太网S7通信

由于200的编程软件为STEP7 MicroWIN,300/400的仿真器均与1200的编程及仿真模拟器不统一,故为了方便本文仅介绍1200与1200之间的可仿真的PROFINET通信的相关参数、组态、软件设置,与200/300/400的通信类似。

2. TCP通信

通信方式为双边通信,因此 TSEND (TSEND_C)和 TRCV(TRCV_C) 必须成对出现,使用的通信指令是在双方 CPU 调用 T-block (TSEND_C, TRCV_C, TCON, TDISCON, TSEND, TRCV) 指令来实现。1200与1200之间通信分为同一个项目内部2个CPU之间的通讯与不同项目之间的2个CPU的通讯,下面分别介绍。

3.1. 同一个项目内部2个1200CPU之间的通讯

3.1.1.   打开博途V13软件并创建新工程项目,首先在项目底下添加硬件,在对话框中选择所使用的S7-1200 CPU添加到机架上,命名为 PLC_1;同样方法在同一个项目底下再添加通信伙伴的S7-1200 CPU ,命名为 PLC_2;如图1所示。

图1 添加新设备并命名PLC

3.1.2.   在设备浏览中点击 CPU 上代表PROFINET 通信口的绿色小方块,在下方会出现PROFINET 接口的属性,在CPU的属性常规界面下下分配IP 地址为 192.168.0.10 ,子网掩码为255.255.255.0;同样方法,在同一个项目里分配另一个新设备的IP 地址为192.168.0.20;如图2 所示。

图2 为添加的CPU分配IP地址

3.1.3.   为了编程方便,使用 CPU 属性中定义的时钟位,定义方法如下:在 项目树底下的设备与网络中选中 CPU ,然后在其下面的属性窗口中下,将系统位定义在MB1,时钟位定义在MB0,如图3所示。时钟位我们主要使用 M0.3,它是以2Hz 的速率在0和1之间切换的一个布尔量,可以使用它去自动激活发送任务。

图3 系统时钟位的设定

3.1.4.   创建并定义PLC_1的发送数据区DB块,PLC_1的接收数据区DB块;创建并定义PLC_2的发送数据区DB块,PLC_2的接收数据区DB块;对于双边编程通信的CPU,如果通信数据区使用DB块,既可以将 DB 块定义成符号寻址,也可以定义成绝对寻址。使用指针寻址方式,必须创建绝对寻址的DB块。此处均采用绝对寻址,取消优化的块访问的符号寻址。如图4所示。

图4创建发送、接收数据区 DB 块

3.1.5.   在项目树视图下,创建两个设备的拓扑连接。用鼠标点中 PLC_1 上的PROFINET通信口的绿色小方框,然后拖拽出一条线,到另外一个PLC_2 上的PROFINET通信口上,松开鼠标,连接就建立起来了,如图5所示。

图5 建立两个 CPU的逻辑物理连接

3.1.6.   在PLC_1的OB1中调用发送指令TSEND_C并配置基本通信块接口参数,发送10个字节;调用接收指令TRCV_C并配置基本通信块接口参数,接收20个字节。在PLC_2的OB1中调用发送指令TSEND_C并配置基本通信块接口参数,发送20个字节;调用接收指令TRCV_C并配置基本通信块接口参数,接收10个字节。如图6所示。

图6 通信指令的选择

3.1.7.   TCP通信的连接参数指的是通讯伙伴的选择、IP地址的分配、通讯协议的指定、端口号的匹配、主动连接方的选取、连接数据背景存储区的新建。需要注意的是双边通信协议中上述连接参数应成对出现,发送方的设置与接收方的相关设置必须一一对应才能保证通信任务的顺利连接与完成,如图7所示。

图7 通信的连接参数组态

3.1.8.   点击博途软件的仿真按钮启动S7-1200仿真器,选中项目里的1200 PLC ,点击下载按钮,会弹出如下下载选项对话框,按照图中所示选择接口,并点击“开始搜索”按钮,,在兼容设备对话框里会显示出仿真器设备,如图8所示:

图8 仿真的启动与下载

3.1.9.   直接运行两个CPU,实时监视数据块DB的状态,如图9所示。PLC_1的发送数据区PLC1_SEND的10个字节中的5个数值已成功被PLC_2的接收数据区PLC2_RECEIVE接收。PLC_2的发送数据区

PLC2_SEND的20字节中的8个数值已成功被PLC_1接收数据区PLC1_ RECEIVE接收。发送方与接收方的数据类型需一致,保证数据长度之间不存在地址重叠复用的现象。仿真器中的绿色标明CPU正处于运行状态,同时仿真测试中测试了4种不同数据类型的通信。实际工程运用中此种通信的实现方式步骤同仿真一模一样,区别就是一个仿真的模拟CPU一个是实物CPU。

图9 仿真结果实时监测

3.2   不同项目之间的2个CPU的通讯

3.1.1.   同一个项目的通讯与不同项目的通讯区别:同一个项目是在一个项目底下添加两个1200的CPU并组态两个CPU之间的网络连接;不同项目是新建两个项目,每个项目底下各一个1200的CPU,不需要组态网络连接,在连接参数设置里选择通讯伙伴为“未指定”。使用的通讯指令及其接口参数设置也一样,如图10所示。

图10 不同项目之间的2个CPU的通讯指令及连接参数设置

3.1.2.   通讯仿真的实时监测结果如图11所示。

图11 仿真结果实时监测

4.ISO-ON-TCP通信     

4.1   同一个项目内部2个1200CPU之间的通讯

4.1.1.   通讯指令的选择与块参数的设置与TCP通讯一样,不同的地方就是连接参数设置的通讯协议选择ISO_ON_TCP,如图12所示。

图12 ISO_ON_TCP通讯连接参数设置

4.1.2.   通讯仿真的实时监测结果如图13所示。

图13 仿真结果实时监测

4.2   不同项目之间的2个CPU的通讯

此种情况与TCP的通讯非常类似,这里不再详细描述。

5.S7通信     

5.1   同一个项目内部2个1200CPU之间的通讯

5.1.1. S7-1200 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端。S7-1200 仅支持 S7单边通信,仅需在客户端单边组态连接和编程,而服务器端只准备好通信的数据就行。在“设备组态”中 ,选择“网络视图”栏进行配置网络,点中左上角的“连接”图标,连接框中选择“S7连接”,然后选中PLC1(客户端),右键选择“添加新的连接”,在创建新连接对话框内,选择连接对象PLC2,选择“主动建立连接”后建立新连接,如图14所示。

图14网络配置并组态S7连接

5.1.2. 在主动建连接的客户机侧调用 Get、Put 通信指令,配置块接口参数,在 S7-1200 两侧,分别创建发送和接收数据块 DB6和DB7,数据块的属性中需要选择非优化块访问。

图15 S7通信的通讯指令

5.1.3. 在“S7_连接_1”的连接属性中查看各参数,通讯连接的ID 号及连接资源设置要与网络连接中定义的一致,如图15所示。

图15 S7通信的连接参数设置

5.1.4. 通过在S7-1200客户机侧编程进行S7通讯,实现两个CPU之间数据交换,监控结果如图16所示。

图16 S7通信的仿真监视结果

5.2   不同项目之间的2个CPU的通讯

5.2.1   在“设备组态”中 ,选择“网络视图”栏进行配置网络,点中左上角的“连接”图标,连接框中选择“S7连接”,然后选中PLC1,右键选择“添加新的连接”,在创建新连接对话框内,选择连接对象“未指定”,如图17所示。

图17 S7连接组态

5.2.2   调用 Get、Put 通信指令,设置块接口参数与连接参数,在常规中,显示连接双方的设备,在伙伴方“站点”栏选择“未知”,如图 18 所示。

图18 S7通信指令连接参数设置

5.2.3   从监控表中可以看到,PLC_1 的 PUT 指令发送数据22字节,PLC_3 接收到数据22字节。而 PLC_3 发送数据20字节,PLC_1的GET指令接收数据是20字节。数据类型与数值状态一一对应,通讯任务完成,如图19所示。

 

 

 

图19 S7通信的仿真监视结果


[无处不在]+西门子1200PLC应用实践 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3364条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。