欢迎来到天天文库
浏览记录
ID:41065072
大小:60.00 KB
页数:6页
时间:2019-08-15
《基于PROFIBUS的PLC网络监控系统设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于PROFIBUS的PLC网络监控系统设计王彦文摘要:随着工业自动化水平的提高,将PLC底层网络与上位计算机相结合,组成上下位机网络监控系统的控制方式得到了广泛的应用,本文以西门子S7-300系列PLC为例,上位机采用可视化编程语言VB,实现了计算机监控系统的设计。关键词:VB6.0;S7300;PRODAVE;监控系统;PROFIBUS;通讯Abstract:withthedevelopmentofautomation,combinethe1.引言随着控制技术的发展,尤其现场总线技术的出现,基
2、于现场总线的PLC控制网络正成为工业控制的主要控制方式,然而由于PLC与PC机相比其数据计算、存储能力具有的明显的局限性,尤其不能实现汉字、图形的显示,不具有可视化功能。因此利用PC与PLC相结合,组成上下位机结构,PLC作为下位机完成现场各种数据的实时采集以及控制任务,PC机作为上位机,利用PC机强大的数据存储计算能力和友好的人机界面实现人机对话,实现对整个系统的监控和故障诊断功能。在这样的上下位机系统中,下位PLC网络之间的通讯与现场数据的采集和处理,上位机与PLC之间的通讯、上位机数据的处理
3、将是整个系统的关键技术。下面介绍下位机采用S7-300PLC,基于PROFIBUS总线组成的计算机监控系统设计。2.系统硬件设计及原理2.1系统的网络结构本系统中采用4台西门子S7-300系列PLC作为下位机,以PROFIBUS—DP的方式组成网络拓扑结构,考虑到功能和经济性,其中一台PLC型号为CPU315-2DP,集成PROFIBUS-DP接口与MPI接口,在网络中作为DP主站,其它三台PLC型号为CPU314,作为DP从站,配CP342-5PROFIBUSDP模块,上位机采用工业控制计算机,
4、配CP5611卡,支持MPI和PROFIBUS通讯。系统结构图见图2-1。6图2-1系统结构图2.2PLC网络之间、PLC与上位机之间的通讯PROFIBUS-DP总线作为国际的标准总线,其最大传输速率为12Mb/s,当以9.6Kb/S传送时,传输距离最高可达1200米,本系统中传输速率设为1.5MB/S,为CP342-5支持的最大传输速率,系统采用典型的主站/从站结构,设置一个主站,三个从站的一主多从结构,主站与从站之间以PROFIBUS主站/从站协议进行通讯,主站周期的读取各从站的输入信息并周期
5、的向各从站发送输出信息,完成主站与从站之间的数据交换。为实现数据交换,必须在各从站的OB1组织快中编写发送指令DP-SEND,和接收指令DP-RECEIVE,用于将从站CPU中的数据发送到PROFIBUSCP模块中,或从CP中获得数据到CPU,在这两个指令中指定发送数据和存储接收数据的地址和发送报文长度。在众多的上位监控系统设计中,下位PLC与上位计算机之间的数据通讯一般使用RS-232/422通讯,即利用计算机的串口,以串行方式进行,应用串口通讯可以方便的实现PLC与上位机之间的通讯,但是其通讯
6、速率、准确度低,为保证通讯准确,一般需增加效验机制,除串口方式之外,西门子PLC与上位机之间通信还可采用PROFIBUS和以太网方式,以太网通讯速率最快,然而成本高,需在主站配CP343-1以太网模块,PC机配以太网卡,而且开发难度较高,在本系统中选用了PROFIBUS的方式,上位计算机通过CP5611卡从PLC主站获得或传送数据。因为西门子PLC的通讯协议不公开,应用VB如何实现上位机与PLC的通讯将成为问题的关键。通过研究实践,成功的解决了通讯问题。3上位监控软件的设计3.1通讯实现Visua
7、lBasic是强有力的可视化开发工具,6它易学好用,通过调用动态链接库或WIN32下的API函数可以实现强大、复杂的功能,西门子公司的PRODAVE软件,提供了用于实现PC与PLC之间通讯的链接库,内部封装了用于通信的全部API函数。本系统设计采用调用DLL库的方式,完成了上位机VB与PLC之间的通讯。主要的函数及功能如下:1)Load_tool建立PLC与上位机之间的连接,调用时需传递三个参数,分别为连接序号、连接的设备名称,连接设备的具体地址参数。第三个参数为一个结构变量,包括PLC的一些硬件
8、信息,函数返回值为长整型的数,返回值为0表示连接成功。调用方法如:res=load_tool(1,"S7ONLINE",plcadr(0)),在此例中,连接序号为1号连接,连接的设备形式为MPI的方式(STONLINE表示MPI方式),PLC的地址参数由结构变量plcadr(0)指定。2)New_ss激活建立的连接。3)db_read以字为单位读DB区中数据,该函数传递四个参数,分别为读数据的DB区号;读DB区中数据的首地址;读的数据个数,读出数据存储缓冲区地址,返回值为0表示读取
此文档下载收益归作者所有