基于profibus的plc网络监控系统设计

上传人:xzh****18 文档编号:34632124 上传时间:2018-02-26 格式:DOC 页数:6 大小:60KB
返回 下载 相关 举报
基于profibus的plc网络监控系统设计_第1页
第1页 / 共6页
基于profibus的plc网络监控系统设计_第2页
第2页 / 共6页
基于profibus的plc网络监控系统设计_第3页
第3页 / 共6页
基于profibus的plc网络监控系统设计_第4页
第4页 / 共6页
基于profibus的plc网络监控系统设计_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《基于profibus的plc网络监控系统设计》由会员分享,可在线阅读,更多相关《基于profibus的plc网络监控系统设计(6页珍藏版)》请在金锄头文库上搜索。

1、1基于 PROFIBUS 的 PLC 网络监控系统设计王彦文摘要:随着工业自动化水平的提高,将 PLC底层网络与上位计算机相结合,组成上下位机网络监控系统的控制方式得到了广泛的应用,本文以西门子 S7-300系列 PLC为例,上位机采用可视化编程语言 VB,实现了计算机监控系统的设计。关键词:VB6.0;S7300;PRODAVE;监控系统;PROFIBUS;通讯Abstract: with the development of automation, combine the1引言随着控制技术的发展,尤其现场总线技术的出现,基于现场总线的 PLC控制网络正成为工业控制的主要控制方式,然而由于

2、PLC与 PC机相比其数据计算、存储能力具有的明显的局限性,尤其不能实现汉字、图形的显示,不具有可视化功能。因此利用 PC与 PLC相结合,组成上下位机结构,PLC 作为下位机完成现场各种数据的实时采集以及控制任务,PC机作为上位机,利用 PC机强大的数据存储计算能力和友好的人机界面实现人机对话,实现对整个系统的监控和故障诊断功能。在这样的上下位机系统中,下位 PLC网络之间的通讯与现场数据的采集和处理,上位机与 PLC之间的通讯、上位机数据的处理将是整个系统的关键技术。下面介绍下位机采用 S7-300 PLC,基于 PROFIBUS总线组成的计算机监控系统设计。2系统硬件设计及原理2 1 系

3、统的网络结构本系统中采用 4 台西门子 S7-300 系列 PLC 作为下位机,以 PROFIBUSDP 的方式组成网络拓扑结构,考虑到功能和经济性,其中一台 PLC 型号为 CPU315-2DP,集成PROFIBUS-DP 接口与 MPI 接口,在网络中作为 DP 主站,其它三台 PLC 型号为CPU314,作为 DP 从站,配 CP342-5 PROFIBUS DP 模块,上位机采用工业控制计算机,配 CP5611 卡,支持 MPI 和 PROFIBUS 通讯。系统结构图见图 2-1。2PC(配 561卡 )U3 EM2T7IROFBS4CP-/4CP-/D图 2-1 系统结构图22 PL

4、C 网络之间、PLC 与上位机之间的通讯PROFIBUS-DP 总线作为国际的标准总线,其最大传输速率为 12 Mb/s ,当以 9.6Kb/S传送时,传输距离最高可达 1200米,本系统中传输速率设为 1.5MB/S,为 CP342-5支持的最大传输速率,系统采用典型的主站/ 从站结构,设置一个主站,三个从站的一主多从结构,主站与从站之间以 PROFIBUS 主站/从站协议进行通讯, 主站周期的读取各从站的输入信息并周期的向各从站发送输出信息,完成主站与从站之间的数据交换。为实现数据交换,必须在各从站的 OB1组织快中编写发送指令 DP-SEND,和接收指令 DP-RECEIVE,用于将从站

5、CPU中的数据发送到 PROFIBUS CP模块中,或从 CP中获得数据到 CPU,在这两个指令中指定发送数据和存储接收数据的地址和发送报文长度。在众多的上位监控系统设计中,下位 PLC与上位计算机之间的数据通讯一般使用 RS- 232/422通讯,即利用计算机的串口,以串行方式进行, 应用串口通讯可以方便的实现PLC与上位机之间的通讯,但是其通讯速率、准确度低,为保证通讯准确,一般需增加效验机制,除串口方式之外,西门子 PLC与上位机之间通信还可采用 PROFIBUS和以太网方式,以太网通讯速率最快,然而成本高,需在主站配 CP343-1以太网模块,PC 机配以太网卡,而且开发难度较高,在本

6、系统中选用了 PROFIBUS的方式,上位计算机通过 CP5611卡从PLC主站获得或传送数据。因为西门子 PLC的通讯协议不公开,应用 VB如何实现上位机与PLC的通讯将成为问题的关键。通过研究实践,成功的解决了通讯问题。3 上位监控软件的设计31 通讯实现Visual Basic是强有力的可视化开发工具,它易学好用,通过调用动态链接库或WIN32下的API函数可以实现强大、复杂的功能,西门子公司的PRODAVE软件,提供了用于实现PC3与PLC之间通讯的链接库,内部封装了用于通信的全部API函数。本系统设计采用调用DLL库的方式,完成了上位机VB与PLC之间的通讯。主要的函数及功能如下:1

7、)Load_tool 建立PLC与上位机之间的连接,调用时需传递三个参数,分别为连接序号、连接的设备名称,连接设备的具体地址参数。第三个参数为一个结构变量,包括PLC的一些硬件信息,函数返回值为长整型的数,返回值为0表示连接成功。调用方法如:res = load_tool(1, S7ONLINE, plcadr(0),在此例中,连接序号为1号连接,连接的设备形式为MPI的方式(STONLINE表示MPI方式),PLC的地址参数由结构变量plcadr(0)指定。2)New_ss 激活建立的连接。3)db_read 以字为单位读DB区中数据,该函数传递四个参数,分别为读数据的DB区号;读DB区中数

8、据的首地址;读的数据个数,读出数据存储缓冲区地址,返回值为0表示读取成功,例res = db_read(10, 0, 5, value_word(0),表示读DB1O中的从DBW0开始的共五个字的数据,并存储到value_word(0)到value_word(4)中4) Db_write 写数据到PLC的DB区中,调用格式同DB-read,例res = db_write(5, 2, 2, value_word(0),把value_word(0)到value_word(2)中的数据写入DB5中从DBW2到DBW4中。5) Unload_tool 断开PLC与PC之间的连接除上面列出的函数外,还有

9、很多其它函数,这些函数能实现以BYTE为单位进行读写,以及读写M区,V区,定时器区,综合利用这些函数可以实现复杂的读写功能,但应注意的是,要用到的函数在程序中必须先进行声明。具体的通讯实现程序代码如下:1)函数声明及结构变量定义:在module1中添加函数声明以及全局数据变量定义Declare Function load_tool Lib w95_s7.dll (ByVal nr As Byte, ByVal dev As String, adr As plcadrtype) As LongDeclare Function new_ss Lib w95_s7.dll (ByVal nr As

10、Byte) As LongDeclare Function unload_tool Lib w95_s7.dll () As LongDeclare Function db_read Lib w95_s7.dll (ByVal db As Long, ByVal dw As Long, anz As Long, value As Integer) As LongDeclare Function db_write Lib w95_s7.dll (ByVal db As Long, ByVal dw As Long, anz As Long, value As Integer) As Long2)

11、变量定义Type plcadrtype 定义结构变量adr As ByteSEGMENTID As ByteSLOTNO As ByteRACKNO As Byte4End TypePublic plcadr(5) As plcadrtype2)初始化连接,建立PLC与PC机之间的连接,可放在Form_load中plcadr(0).adr = 2 PLC地址plcadr(0).SEGMENTID = 0 plcadr(0).RACKNO = 0 基架号plcadr(0).SLOTNO = 2 槽号res = load_tool(1, S7ONLINE, plcadr(0) RES返回值为0。则

12、连接成功If res 0 Then res = error_message(res, ErrorText),RES不等于0。连接失败3)读PLC数据函数,在程序中可以调用此SUB实现读数据,调用时需传递参数。Sub ReadDB( BLOCKNO as long, no as long, AMOUNT as long, Write_word(0) as value ) Dim I as integerres = db_read(BLOCKNO, no, AMOUNT, Write_word(0) if res=0 then for I=0 to amount-1ReturnValue(i)=W

13、rite_word(i)Next IEnd ifEnd Sub32 程序设计在通讯中,通讯的主动权在上位机,下位PLC没有主动权来请求发送或接收数据,即完全由上位机决定何时读取、发送数据,采用PC机定时周期读取PLC数据的方式,易于实现数据的更新,能够确保实时性,但当读取的数据量很大时,因每次循环读取数据都要花费很长的时间,以这种定时的方式会严重的加重PLC及计算机的负担,损耗系统的资源,甚至系统导致死机或崩溃。为了解决上面的问题,考虑到PLC中的数据可能会在一定的时间内保持不变,因此采用不定时读取PLC数据的方式,可以极大的减少PC机的负担,具体设计思想为在PLC程序中设置专用于与PC机通讯

14、的数据块DB10,DB10专用于与上位机之间进行数据交换,其中在DB10中定义DBW0作为读状态标志字,当PLC中的数据发生变化时,置DBW0为FFFF,上位机循环读取DBW0中的状态字,只有查询到标志字为FFFF时,才读取DB10中数据,并保存到上位机中已定义长整型数组Status()中,数据读完,置状态标志字为0000,程序流程如下图3-1。533 上位机故障实时报警设计上位机监控系统功能强大,可以根据需要设计各种不同的功能,包括系统的动画监控、故障信息显示与查询、历史记录报表查询与打印等,其中故障报警是上位监控软件的一个最基本的功能,限于篇幅,下面将以故障信息显示为例,说明上位机数据的处

15、理方法。在程序中定义布尔型数组 AlarmStatus(),每一个数组变量对应一个特定的开关量报警,1 表示报警发生,0 表示正常,例如 AlarmStatus(0)=1对应油压过高报警;AlarmStatus(1)对应油压过低报警 等等,在从 PLC读的数组 status()中,每一个数组变量对应 16个开关量报警状态,因此上位机需对 status()中的数据进行提取,确定各开关量的报警状态值,定时 0.5s开始系统初始化与 PLC 连接成功否?读 PLC 状态标志字为 FFFF ? 读完 DB 区中数据转数据处理程序 复位状态标志字为 0000提示信息YNYN图 3-1 图 3-2开始置循

16、环初值 I=0AlarmStatus(i)=Status(n) and 2iAlarmStatus(i)=1 ?I=I+1显示报警I16?结束YNYN6设计中采用二进制相与的方法,识别每个开关量状态,程序流程图见图 3-2,实际应用中,该上位监控系统能实现故障报警的实时显示,并能充分保证系统的实时性、可靠性。4 结束语PLC 加上位机的工业监控制系统应用日益广泛,本文设计的系统已成功的应用在铺排船监控系统中,通信稳定、可靠、上位系统能实时、准确的监控现场状态,对实时性要求很高的系统有一定的参考价值。参考文献:1姜建芳等 西门子S7-300 系列PLC 与PC 机通信实现的研究 制造业自动化第 2003-12徐沪萍,佟力 基于动态链接技术的PLC与PC通信的实现 武汉理工大学学报3 西门子S7300 PLC编程与组态手册 4 唐济扬 P

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号