PROFIBUS是世界上第一个开放式现场总线标准,目前技术已成熟,其应用领域覆盖了从机械加工、过程控制、电力、交通到楼宇自动化的各个领域。PROFIBUS于1995年成为欧洲工业标准(EN50170),1999年成为国际标准(1EC61158-3)。
在S7-200 系列plc的CPU中,CPU22X都可以通过增加EM277 PROFIBUS-DP 扩展模块的方法支持PROFIBUS DP 网络协议。最高传输速率可达12Mbit/s。采用PROFIBUS的系统,对于不同厂家所生产的设备不需要对接口进行特别的处理和转换,就可以通信。PROFIBUS连接的系统由主站和从站组成,主站能够控制总线,当主站获得总线控制权后,可以主动发送信息。从站通常为传感器、执行器、驱动器和变送器。它们可以接收信号并给予响应,但没有控制总线的权力。当主站发出请求时,从站回送给主站相应的信息。PRORFIBUS除了支持主/从模式,还支持多主/多从的模式。对于多主站的模式,在主站之间按令牌传递顺序决定对总线的控制权。取得控制权的主站,可以向从站发送,获取信息,实现点对点的通信。
西门子S7通过PROFIBUS现场总线构成的系统,其基本特点如下:
(1)PLC、I/O模板、智能仪表及设备可通过现场总线连接,特别是同厂家的产品提供通用的功能模块管理规范,通用性强,控制效果好。
(2)I/O模板安装在现场设备(传感器、执行器等)附近,结构合理。
(3)信号就地处理,在一定范围内可实现互操作。
(4)编程仍采用组态方式,设有统一的设备描述语言。
(5)传输速率可在9.6kb/s~12Mb/s间选择。
(6)传输介质可以用金属双绞线或光纤。
1.PROFIBUS的组成
PROFIBUS由三个相互兼容的部分组成,即PROFIBUS-FMS,PROFIBUS-DP及
PROFIBUS-PA。
(1)PROFIBUS-DP(Distributed Periphery 分布I/O系统)
PROFIBUS-DP是一种优化模板,是制造业自动化主要应用的协议内容,是满足用户快速通信的最佳方案,每秒可传输12兆位。扫描1000个I/O点的时间少于lms。它可以用于设备级的高速数据传输,远程I/O系统尤为适用。位于这一级的PLC或工业控制计算机可以通过PROFIBUSEDP同分散的现场设备进行通信。
(2)PROFIBUS-PA(Process Automation 过程自动化)
是为PA主要用于过程自动化的信号采集及控制,它是专为过程自动化所设计的协议,可用于安全性要求较高的场合及总线集中供电的站点。
(3)PROFIBUS-FMS(Fieldbus Message Specification 现场总线信息规范)
FMS是为现场的通用通信功能所设计,主要用于非控制信息的传输,传输速度中等,可以用于车间级监控网络。FMS提供了大量的通信服务,用以完成以中等级传输速度进行的循环和非循环的通信服务。对于FMS而言,它考虑的主要是系统功能而不是系统响应时间,应用过程中通常要求的是随机的信息交换,如改变设定参数。FMS服务向用户提供了广泛的应用范围和更大的灵活性,通常用于大范围、复杂的通信系统。
2.PROFIBUS协议结构
PROFIBUS协议以ISO/OSI参考模型为基础。第一层为物理层,定义了物理的传输特性;第二层为数据链路层;第三层至第六层PROFIBUS未使用;第七层为应用层,定义了应用的功能。PROFIBUS-DP是高效、快速的通信协议,它使用了第一层、第二层及用户接口,第三~七层未使用。这样简化了的结构确保了DP的高速的数据传输。
3.传输技术
PROFIBUS对于不同的传输技术定义了惟一的介质存取协议。
(1)RS-485
RS485是PROFIBUS使用最频繁的传输技术,具体论述参见前面有关章节。
(2)IECll58-2
根据IECll58-2在过程自动化中使用固定波特率31.25kb/s的同步传输,它可以满足化工和石化工业对安全的要求,采用双线技术通过总线供电,这样PROFIBUS就可以用于危险区域了。
(3)光纤
在电磁干扰强度很高的环境和高速、远距离传输数据时,PROFIBUS可使用光纤传输技术。使用光纤传输的PROFIBUS总线段可以设计成星型或环型结构。现在在市面上已经有RS-485传输链接与光纤传输链接之间的耦合器,这样就实现了系统内RS-485和光纤传输之间的转换。
(4)PROFIBUS介质存取协议
PROFIBUS通信规程采用了统一的介质存取协议,此协议由OSI参考模型的第二层来实现。在PROFIBUS协议设计时充分考虑了满足介质存取控制的两个要求,即:在主站间通信时,必须保证在分配的时间间隔内,每个主站都有足够的时间来完成它的通信任务,在PLC与从站(PLC或其他设备)间通信时,必须快速、简捷地完成循环,进行实时的数据传输。为此,PROFIBUS提供了两种基本的介质存取控制:令牌传递方式和主/从方式。
令牌传递方式可以保证每个主站在事先规定的时间间隔内都能获得总线的控制权。令牌是一种特殊的报文,它在主站之间传递着总线控制权,每个主站均能按次序获得一次令牌,传递的次序是按地址升序进行的。
主/从方式允许主站在获得总线控制权时,可以与从站通信,每发送或获得信息。
主站要发出信息,必须持有令牌。假设有一个由3个主站和7个从站构成的PROFIBUS系统。3个主站构成了一个令牌传递的逻辑环,在这个环中,令牌按照系统预先确定的地址升序从一个主站传递给下一个主站。当一个主站得到了令牌后,它就能在一定的时间间隔内执行该主站的任务,可以按照主/从关系与所有从站通信,也可以按照主/主关系与所有主站通信。在总线系统建立的初期阶段,主站的介质存取控制(MAC)的任务是决定总线上的站点分配并建立令牌逻辑环。在总线的运行期间,损坏的或断开的主站必须从环中撤除,新接入的主站必须加入逻辑环。MAC的其他任务是检测传输介质和收发器是否损坏,检查站点地址是否出错,以及令牌是否丢失或有多个令牌。
PROFIBUS的第二层按照国际标准IEC870-5-1的规定,通过使用特殊的起始位和结束位、无间距字节异步传输及奇偶校验来保证传输数据的安全。PROFIBUS第二层按照非连接的模式操作,除了提供点对点通信功能外,还提供多点通信的功能,即广播通信和有选择的广播、组播。所谓广播通信,即主站向所有站点(主站和从站)发送信息,不要求回答。所谓有选择的广播、组播是指主站向一组站点(从站)。
5.S7-200CPU接入PROFIBUS网络
S7-200CPU必须通过PROFIBUS-DP模块EM277连接到网络,不能直接接入PROFIBUS网络进行通信。EM277经过串行I/O总线连接到S7-200CPU。PROFIBUS网络经过其DP通信端口,连接到EM277模块。这个端口支持9600b/s~12Mb/s之间的任何传输速率。EM277模块在PROFIBUS网络中只能作为PROFIBUS从站出现。作为DP从站,EM277模块接受从主站来的多种不同的I/O配置,向主站发送和接收不同数量的数据。这种特性使用户能修改所传输的数据量,以满足实际应用的需要。与许多DP站不同的是,EM277模块不仅仅传输FO数据。EM277能读写S7-200CPU中定义的变量数据块。这样,使用户能与主站交换任何类型的数据。通信时,首先将数据移到S7-200CPU中的变量存储区,就可将输入、计数值、定时器值或其他计算值传输到主站。类似地,从主站来的数据存储在S7-200CPU中的变量存储区内,进而可移到其他数据区。
EM277模块的DP端口可连接到网络上的一个DP主站上,仍能作为一个MPI从站与同一网络上如SIMATIC编程器或S7-300/S7-400CPU等其他主站进行通信。为了将EM277作为一个DP从站使用,用户必须设定与主站组态中的地址相匹配的DP端口地址。从站地址是使用EM277模块上的旋转开关设定的。在变动旋转开关之后,用户必须重新起动CPU电源,以便使新的从站地址起作用。主站通过将其输出区来的信息发送给从站的输出缓冲区(称为“接收信箱”),与每个从站交换数据。从站将其输入缓冲区(称为发送信箱)的数据返回给主站的输入区,以响应从主站来的信息。
EM277可用DP主站组态,以接收从主站来的输出数据,并将输入数据返回给主站。输出和输入数据缓冲区驻留在S7-200CPU的变量存储区(V存储区)内。当用户组态DP主站时,应定义V存储区内的字节位置。从这个位置开始为输出数据缓冲区,它应作为EM277的参数赋值信息的一个部分。用户也要定义FO配置,它是写入到S7-200CPU的输出数据总量和从S7-200CPU返回的输入数据总量。EM277从FO配置确定输入和输入缓冲区的大小。DP主站将参数赋值和I/O配置信息写入到EM277模块V存储器地址和输入及输出数据长度传输给S7-200CPU。
输入和输出缓冲区的地址可配置在S7-200CPU的V存储区中任何位置。输入和输出缓冲区器的默认地址为VB0。输入和输出缓冲地址是主站写入S7—200CPU赋值参数的一部分。用户必须组态主站以识别所有的从站及将需要的参数和I/O配置写入每一个从站。
一旦EM277模块已用一个DP主站成功地进行了组态,EM277和DP主站就进入数据交换模式。在数据交换模式中,主站将输出数据写入到EM277模块,然后,EM277模块响应最新的S7-200CPU输入数据。EM277模块不断地更新从S7-200CPU来的输入,以便向DP主站提供最新的输入数据。然后,该模块将输出数据传输给S7-200CPU。从主站来的输出数据放在V存储区中(输出缓冲区)由某地址开始的区域内,而该地址是在初始化期间,由DP主站提供的。传输到主站的输入数据取自V存储区存储单元(输入缓冲区),其地址是紧随输出缓冲区的。
在建立S7-200CPU用户程序时,必须知道V存储区中的数据缓冲区的开始地址和缓冲区大小。从主站来的输出数据必须通过S7—200CPU中的用户程序,从输出缓冲区转移到其他所用的数据区。类似地,传输到主站的输入数据也必须通过用户程序从各种数据区转移到输入缓冲区,进而发送到DP主站。
从DP主站来的输出数据,在执行程序扫描后立即放置在V存储区内。输入数据(传输到主站)从V存储区复制到EM277中,以便同时传输到主站。当主站提供新的数据时,则从主站来的输出数据才写入到V存储区内。在下次与主站交换数据时,将送到主站的输入数据发送到主站。
SMB200~SMB249提供有关EM277从站模块的状态信息(如果它是I/O链中的第一个智能模块)。如果EM277是I/O链中的第二个智能模块,那么,EM277的状态是从SMB250一SMB299获得的。如果DP尚未建立与主站的通信,那么,这些SM存储单元显示默认值。当主站己将参数和I/O组态写入到EM277模块后,这些SM存储单元显示DP主站的组态集。用户应检查SMB224,并确保在使用SMB225~SMB229或V存储区中的信息之前,EM277己处于与主站交换数据的工作模式。