基于集成PN口的s7-300 PLC通讯方案

2011-05-14 20:07郭越付永民
卷宗 2011年10期
关键词:功能块调用以太网

郭越 付永民

摘要:本文针对西门子可编程控制器在生产线升级改造过程中建立PLC之间的主-主通讯的难题,提出一种基于集成PN口的通讯解决方案。利用profinet总线实现s7-300 PLC之间的数据传输,实现了整个生产线上的通信连接的经济解决方法。为控制装置的升级改造提供了很好的依据,具有很强的实用性和借鉴性。并对S7-300 集成 PN 口的 S7 通信做了基本介绍,对其配置步骤以及编程方法作了完整的描述。

关键词:s7通讯;连接资源;s7-300 PLC;集成 PN 口

1、技术现状

在烟草生产企业中,基于profibus总线协议的西门子可编程控制器大范围应用。Profibus总线协议采用了ISO/OSI模型中的第一层、第二层以及必要时还采用了第七层。总线传输采用RS485 串行总线。然而,profibus总线需要铜质双芯电缆,最高传输带宽是12mbps,传输距离最长为100米,传输的实时性不能满足复杂的控制要求。针对这一现状,西门子公司推出了适应能力更强的基于工业以太网的profinet总线协议。它传输带宽达到100mbps,两个设备之间传输距离最长为100米,实时性远比profibus及时准确,而且不需要总线终端电阻,极大减少了网络故障现象。在支持的通讯协议类型中,profibus和profinet都支持S7通讯协议。但是在profinet协议中,S7通讯受到的限制更少,应用更广泛。

S7通讯协议是s7系列plc基于mpi、profibus、Ethernet网络的一种优化的通讯协议,在profibus总线中,主要用于s7-400/400、s7-300/400plc之间主-主通讯,也非常适合s7 plc与HMI通讯,例如与操作面板OP/TP以及与上位监控软件wincc的通信。

每个CPU都有资源限制,如过程映像区的大小、计数器/计时器的个数。同样,通讯的资源也有限制,在产品样本里有CPU的链接数量指标,这就是CPU 的通信资源。旧版本的S7-300PLC中有动态连接和静态连接之分,动态连接是指通过MPI,PLC与plc通过调用SFC通信的通信连接,调用SFC时建立连接,停止调用时连接仍然维持,通过调用断开连接的SFC才能释放连接资源;静态连接指与HMI的通信连接,当把OP/TP、WinCC连接到同一CPU时会发生有的OP/TP、WinCC连接不上,这是因为使用的连接数已经超过了CPU的连接资源限制,此外还有一个静态连接资源保留给编程器用。

PLC与PLC之间的通信也占用这些资源,一个s7的连接要占用一个静态连接,因为s7-300PLC静态连接资源较少,所以在profibus总线系统中s7-300系统建议不采用s7连接。同时s7-300系统之间也不能直接建立s7连接,可以通过最新版本CP342-5(V5.0以上)、CP343-1扩展16个s7连接而只占用CPU一个连接资源。S7-300 PLC只能作为通信的Server,s7-300PLC可以通过CP与s7-300PLC(通过CP)建立双边s7通信,通过发送/接收功能块相互访问对方数据。

2、基于profinet总线协议的s7通信

随着profinet技术的成熟和推广,profinet IO系统和profinet CBA系统已经应用在新的生产线上,大量正常运行的生产线改造在经济性考虑无法大规模把旧的控制器更换为新的控制器,把profibus总线全部更换为profinet总线也面临极大的技术难题,针对这一现象,新门子公司推出了集成profinet端口的s7-300 PLC系统,上位采用profinet总线协议,下位采用profibus总线,为技术改造提供了极大的方便。

由于集成了profinet端口,s7-300 PLC具有更灵活的适应性,在通讯资源方面,集成PN端口的s7-300 PLC最大拥有16个静态连接资源,不需要再通过CP网卡进行扩展连接资源。而且两个集成PN端口的s7-300 PLC之间不仅可以作为通信的Server端,还可以作为Client端。从而使两个集成PN端口的s7-300 PLC之间可以直接建立s7连接。

在profibus总线协议中,两个PLC之间建立s7通讯,为了满足实时性的要求,需要在两个PLC的DP端口进行硬件上的总线直接连接,如果两个PLC相距较远,受到profibus传输距离最长100米的限制,就需要RS485中继器的支持,给应用造成极大的不便。而在profinet总线协议中,相距较远的两个PLC之间可以不直接进行总线连接,可以借助车间工业以太网Scalance交换机进行连接,在技术上提供了极大的便利。

3、s7通信中三种发送、接收方法的比较

在进行s7通信编程中,可以根据实际情况调用不同的功能块实现数据发送和接收,在Libraries子项standard中的communication Blocks内可以调用不同的功能块进行编程。下面对功能块进行简单的介绍:

在s7-300中FB8和FB9、FB12和FB13成对使用,一端发送,一端接收。FB14和FB15在单边使用,其中FB12和FB13 所能传输的数据量最大,可达65534字节。综上所述,传输数据量大并需要对数据进行接收确认时,采用FB12和FB13功能块;对数据准确性要求较低时,可以采用FB8和FB9功能块;在一个PLC中进行单边读写时,可以采用FB14和FB15功能块。

4、集成PN口的s7-300 PLC之间的s7通信示例

结合许昌卷烟厂制丝线改造,详细讲解s7通信的应用实例。在许昌卷烟厂制丝线HXD前喂料机和电子秤改造中,我们应用了集成PN口的s7-300 PLC之间的s7通信进行数据传输。CPU 采用两个 315-2PN/DP,使用以太网进行通信。

4.1 硬件连接

由于车间级由Scalance交换机组成环网,所以我们采用总线物理连接借助Scalance交换机,节省总线电缆,连接方便。PLC与最近的Scalance交换机进行总线连接。如果车间级没有工业以太网,我们可以将两台PLC直接进行总线连接。

4.2 网络组态

硬件平台建好后,我们需要硬件组态。在 STEP7 中创建一个新项目,项目名称为 PN S7。插入两个 S7-300 站,在硬件组态中,分别插入 CPU 315-2 PN/DP。如图 1所示。

新建以太网,打开“NetPro”设置网络参数,选中 CPU,在连接列表中建立新的连接。如图 2 所示。

然后双击该连接,设置连接属性。在“General”属性中块参数 ID = 1,这个参数即是下面程序中的参数“ID”。在 SIMATIC 315PN-1 中激活“Establish an active connection”,作为 Client 端,SIMATIC 315PN-2 作为 Server 端。

4.3 软件编程

由于此项目中传输的数据需要参与控制,必须保障数据的准确性,所以采用FB12和FB13功能块进行确认数据接收的数据传输。如果在应用中数据要求等级不高,可以采用FB8和FB9功能块进行无确认数据接收的数据传输,减少通讯传输负载。

SFB/FB 12 "BSEND" 向类型为“BRCV”的远程伙伴 SFB/FB 发送数据。通过这种类型的数据传送,更多的数据可以在通讯伙伴之间传输,超过任何其它用于组态的S7 连接的通讯SFB/FB 所能传输的数据量。

要发送的数据区是分段的。各个分段单独发送给通讯伙伴。通讯伙伴在接收到最后一个分段时对此分段进行确认,该过程与相应 SFB/FB "BRCV" 的调用无关。在调用块之后,当在控制输入 REQ 上有上升沿时,发送作业被激活。发送用户存储区中的数据与处理用户程序是异步执行的。

由 SD_1 指定起始地址和要发送数据的最大长度。可以通过 LEN 来确定数据域的作业指定长度。在这种情况下,LEN 替换 SD_1 的长度区域。参数 R_ID 必须在相应的两个SFB/FB 上完全相同。如果在控制输入 R 处有上升沿,则当前数据传送将被取消。如果传送成功完成,则通过将状态参数 DONE 的数值设置为 1 来进行指示。如果状态参数 DONE 或ERROR 的数值为 1,则在前一个发送处理结束之前,不能处理新的发送作业。

SFB/FB 13 "BRCV" 接收来自类型为“BSEND”的远程伙伴 SFB/FB 的数据。在收到每个数据段后,向伙伴 SFB/FB 发送一个确认帧,同时更新 LEN 参数。在块调用完毕,并且在控制输入 EN_R 数值为 1 之后,块准备接收数据。可以通过 EN_R=0 来取消一个已激活的作业。

由 RD_1 指定起始地址和接收区的最大长度。由 LEN 指示已接收数据域的长度。从用户存储区中接收数据与处理用户程序是异步执行的。参数 R_ID 必须在相应的两个SFB/FB 上完全相同。通过状态参数 NDR 的数值为 1 来指示所有数据段的无错接收。接收到的数据保持不变,直到通过 EN_R=1 来重新调用 SFB/FB 13 为止。如果在数据的异步接收期间调用块,则将引发一个警告,该警告通过 STATUS 参数输出;如果当控制输入 EN_R数值为 0 时进行调用,则接收将被终止,并且 SFB/FB 将返回到它的初始状态。

打开 SIMATIC 315PN-1 的 OB1,在 OB1 中依次调用 FB12,FB13 如图 3、图 4 所示:

同样,在 SIMATIC 315PN-2 的 OB1 中,调用 FB12/FB13。通信双方的 R_ID 设为 0,LEN设为 10,将 SIMATIC 315PN-1 的 MB120-MB129 赋值 B#16#04,在 SIMATIC 315PN-2中,将 FB13 的“EN_R”置 1,然后在 SIMATIC 315PN-1 中,将 FB12 中“REQ”设置上升沿信号,此时 SIMATIC 315PN-2 的 MB130-MB139 接收到 B#16#04。如图 5 所示。

同理,将 SIMATIC 315PN-2 的 MB120-MB129 赋值为 B#16#05,SIMATIC 315PN-1 的MB130-MB139 接收到 B#16#05。如图 6 所示。

编程完成后,为了防止s7通信连接资源过少而触发PLC通讯故障报警,在PLC属性communication中修改s7通信连接资源为10,经过在线监测,数据传输准确无误。

4.4 效果验证

经过编程,建立通讯连接后,我们对传输的数据进行监控,数据传输迅速准确,总线网络运行稳定可靠,经过连续6个月的运行,没有出现错误报警。

5、结束语

本文结合现场实际情况,具体分析需要采用的技术,为实际工作提供了一种解决实际问题的思路。通过本厂的实践证明,该s7通讯系统性能稳定,运行良好,便于调试和维护,具有很强的实用性和借鉴性。

参考文献

[1] 崔坚 《西门子工业网络通讯指南.上册》 机械工业出版社 2004年9月

[2] 崔坚 《西门子工业网络通讯指南.下册》 机械工业出版社 2004年9月

[3] 廖常初 《大中型PLC应用教程》 机械工业出版社 2005年2月

猜你喜欢
功能块调用以太网
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
Ovation系统FIRSTOUT和FIFO跳闸首出比较
谈实时以太网EtherCAT技术在变电站自动化中的应用
基于系统调用的恶意软件检测技术研究
自定义功能块类型在电解槽联锁中的应用
一种90W高功率以太网供电系统的设计
浅谈EPON与工业以太网在贵遵高速公路中的应用
基于MACSV6.5.2的锅炉燃尽风开关量调节门控制功能块设计