用VB 6.0实现计算机对S7-200 PLC的实时监控

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用VB 6.0实现计算机对S7-200 PLC的实时监控
何献忠
【摘要】以SIEMENS公司的S7-200 PLC为例,叙述了如何用Visual Basic 6.0
编程实现计算机与PLC之间实时通信的方法,给出了PLC和Visual Basic 6.0之间的通信与软件的设置方法.所述系统充分利用了计算机和PLC的资源,在几乎不增加设备开支的情况下实现上位机与PLC的通信和监控.
【期刊名称】《现代电子技术》
【年(卷),期】2007(030)007
【总页数】2页(P189-190)
【关键词】PLC;Visual Basic6.0;串行通信;实时监控
【作者】何献忠
【作者单位】湖南冶金职业技术学院,湖南,株洲,412000
【正文语种】中文
【中图分类】TP273
1 引言
在工业控制中,作为工厂自动化的三大支柱之一的可编程控制器
PLC(Programmable Logic Controller),由于其安全可靠、功能齐全、应用灵活、操作维修容易和稳定可靠等特点而得到广泛应用。

但他也存在一些缺点,如不能给用户提供良好的人机控制、管理界面。

随着工厂自动化程度要求的不断提高,生产
过程中,要监视、控制PLC内部的数据与运行状况,如选用市场上的人机界面或
组态软件,虽然功能丰富,但大都价格昂贵,同时对操作人员的技术要求也较高。

本文就此以S7-200 PLC为例,介绍一种用高级语言通过Visual Basic 6.0编程实现计算机作为上位机与PLC的通信,完成工业流程和工艺参数的显示以及控制参
数的修改等功能。

2 硬件设置
S7-200系列PLC为西门子公司的小型PLC,由于他具有紧凑的设计、良好的扩展性、低廉的价格、丰富的功能模块以及强大的指令系统,使其可以近乎完美地满足小规模的控制要求。

计算机与S7-200 PLC之间的通信可通过PC/PPI电缆或通信专用接口卡(如
CP5611)等实现。

PLC的数据传输端口为串行通信端口,RS 232是计算机普遍配备的接口。

为使数据侦听能够进行,需用到RS 232/ RS 485转换器ADAM-4520,他可将RS 232信号转换成独立的RS 485信号,而不需要改变计算机的硬件或软件。

3 通信方法
3.1 PLC软件设置
CPU的串行通信口可由用户程序控制,这种操作模式为自由端口模式。

选择S7-200PLC自由端口模式,其模式控制字如下:
PPDBBBMM
PP=01(偶校验) D=1(每个字符7位)
BBB=010(9 600波特) MM=01(自由口协议)
选择端口1,控制字SMB130=69H
例如:上位机PC和PLC之间的通信,PLC接收上位PC发送的一串字符,直到接收到回车符为止,PLC又将信息发送回PC机。

主程序
网络1
//初始化
LD SM0.1
//首次扫描
MOVB 16#69,SMB130
//初始化自由通信
//选择9 600,8位数据位,无校验MOVB 16#B0,SMB87
//初始化RCV信息控制信息
//RCV允许,检测信息结束字符
//检测空闲线空闲条件
MOVB 16#0A,SMB89
//设定结束字符为16#0A(回车) MOVW +5,SMW90
//设置空闲线超时为5 ms MOVB 100,SMB94
//设定最多接收字符为100个字符ATCH INT_0,23
//接收完成事件连接到中断ATCH INT_2,9
//发送完成事件连接到中断
ENI
//中断允许
RCV VB100,0
//端口指向接收缓冲区VB100
中断程序INT_0
网络1
//接收完成中断
LDB= SMB86,16#20
//接收状态显示接收到结束字符
MOVB 10,SMB34
//连接一个10 ms的时基中断,触发发送接收到的信息字符ATCH INT_1,10
CRETI
NOT
//接收未完成
RCV VB100,0
//启动一个新的接收
中断程序INT_1
网络1
//定时中断
LD SM0.0
DTCH 10
//断开定时器中断
XMT VB100,0
//在端口向用户返回信息
中断程序INT_2
网络1
//发送完成中断
LD SM0.0
RCV VB100,0
//发送完成,允许另一个接收
3.2 计算机软件设置
微软公司推出的Visual Basic 6.0,开发串行通信程序时,有两种方法,一种是用Windows API函数,另一种是用VB支持的通信控件MSCOMM.OCX。

利用Windows API函数是通过调用读写等函数来操作串口。

两种比较,使用MSCOMM.OCX控件编程方便,具有更完善的发送和接收功能。

这里采用了MSCOMM.OCX控件。

图1 软件界面
如实现图1数据采集:在新建工程的表单上添加MSCOMM.OCX控件,属性设置省略。

初始化程序:
Private Sub Form_Load()
mPort=1
′选择COM1口
MSComm1.Settings =″9600,e,7,1″
′波特率9600,偶校验,7个数据位,1个停止位
MSComm1.InBufferSize=40
′设置MyComm接收缓冲区为40个字节
MSComm1.OutBufferSize=2
′设置MyComm发送缓冲区为2个字节
MSComm1.InputMode=comInputModeBinary ′设置接收数据模式为二进制模式
MSComm1.InputLen=1
′设置一次从接收缓冲区读取字节数为1 MSComm1.Rthreshold=1
′设置一次从发送缓冲区读取字节数为1
End Sub
Private Sub Command1_Click()
MSComm1.PortOpen=True
′打开通信口
Call MSCcomm1_OnComm
End Sub
Private Sub Command2_Click()
MSComm1.PortOpen=False
End
End Sub
对数据采集的处理程序采用MSComm事件驱动方式: Private Sub MSComm1_OnComm()
With MSComm
Select mEvent
EvReceive

′ 接收数据、对数据进行处理
EVSend

′发送数据
EventRxParity

′对奇偶校验错误进行处理
End Select
End with
End Sub
4 结语
本文方法充分利用计算机和PLC的资源,在几乎不增加设备开支的情况下实现上位机与PLC的通信和监控,实现优势互补的自动控制系统。

还可利用网络连接构成对多个PLC的综合控制,达到现代自动控制的要求。

采用Visual Basic 6.0软件编程,人机界面丰富、美观,实用性强。

参考文献
[1] 王永华.现代电气控制及PLC应用技术[M].北京:北京航空航天大学出版社,2004.
[2] 范逸之,陈立元,孙德萱,等.利用Visual Basic实现串并行通信技术[M].北京:清华大学出版社,2001.
[3] 黄淼云.Visual Basic控件高手[M].北京:北京希望电子出版社,2001.。

相关文档
最新文档