衡水西门子PLC一级代理商
S7通信
S7通信概述
1. 连接的基本概念
数据通信协议可以分为面向连接的协议和无连接的协议,前者在进行数据交换之前,必须与通信伙伴建立连接,后者用于发送单个消息。
这两种协议在安全性方面有较大的区别,它们具有不同的传输效率。面向连接的协议具有较高的安全性,与无连接协议相比,在上层计算机中需要进行多的处理。
连接是指两个通信伙伴之间为了执行通信服务建立的逻辑链路,而不是指两个站之间用物理媒体(例如电缆)实现的连接。连接相当于通信伙伴之间一条虚拟的“专线”,它们随时可以用这条“专线”进行通信。一条物理线路可以建立多个连接。
如果交换的信息非常重要,或者需要保证传输数据的完整性,应使用面向连接的协议。为了确保正确地建立连接,连接的一方必须是主动的,另一方是被动的,否则无法建立连接
无连接协议传输的信息单元相当于电报报文,它们通常是一种独立完整的消息,有时也被称为数据报文。
2. 动态连接和静态连接
连接分为不需要组态的动态连接和需要组态的静态连接。
(1)不需要组态的动态连接
PG(编程器)通信和S7基本通信不需要对连接组态,这种连接也称为动态连接,S7基本通信将在14.3节介绍。
(2)需要组态的静态连接
S7连接属于需要组态的连接,这类连接用STEP7集成的网络组态工具NetPro组态。组态的连接一经建立会一直保持,可以实现快速的通信,称为静态连接。与同一个通信伙伴可以建立多个连接,CPU和CP同时可以使用的连接的数量受到与其型号有关的连接资源的限制。
在组态连接时,应*通信伙伴和连接类型,以及连接的特殊属性。组态时将为每个连接自动分配一个一的“本**识符”(本地ID)。在调用通信块时,需要使用本**识符。
3.客户机与服务器
基于连接的通信分为单向通信和双向通信。在双向通信中,通信双方都需要调用通信块,一方调用发送块来发送数据,另一方调用接收块来接收数据。
与双向通信不同,单向通信只需要通信的一方编写通信程序。编写通信程序一方的CPU 为客户机(Client),不需编写通信程序一方的CPU为服务器(Server)。客户机是向服务器
请求服务的设备,它是主动的,需要调用通信块对服务器的数据进行读、写操作。服务器是提供特定服务的设备,服务经客户机要求启动。服务器是通信中的被动方,通信功能由它的操作系统执行。
4. S7通信
S7通信是专为SIMATICS7和C7优化设计的通信协议,提供简明、强有力的通信服务。所有S7和C7PLC都集成了S7通信服务,通过S7服务,用户程序可以读取或改写通信伙伴的数据。S7-300/400PLC广泛地使用S7通信,它主要用于S7-300/400 CPU之间的主-主通信、CPU与功能模块(FM)之间、CPU与西门子人机界面TP/OP(触摸屏/操作员面板)和组态软件 WinCC 之间的通信。
S7通信可以用于工业以太网、PROFIBUS或MPI网络。这些网络的S7通信的组态和编程方法基本上相同。
S7系统的设备可以实现下列S7功能(与设备的型号有关,有的只能实现部分功能):
1)编程、测试、调试和诊断S7-300/400PLC的全部STEP7在线功能。
2)自动地与HMI(人机界面)交换数据。
3)S7站点之间的。
4)读、写别的S7站点的数据,通信伙伴不需要编写通信程序。
5)控制通信伙伴CPU的停止和起动。
6)监视通信伙伴CPU的运行状态。
5. 用于数据交换的S7通信的SFB/FB
用于数据交换的S7通信的SFB/FB见表4-1。在S7单向连接中,客户机调用单向通信功能块GET和PUT,读、写服务器的存储区。S7-400可以调用SFB8/SFB9和SFB12/SFB13,进行双向通信。
表 4-1 用于S7通信数据交换的SFB/FB
浔之漫智控技术(上海)有限公司专注于西门子等