如何通过自制s7 300编程电缆驱动实现PC机与S7

导读:VB实现S7-300PLC与PC机的普通串口通信TheImplementofCo,串行通信是一种使用相当广泛的通信方式,容易实现,本文以VB在西门子PLCS7-300与上位机通信中的应用为例,提出了VB在串行通信中一种新的应用方法,实现对工业生产的过程控制,这就促进了上位机与现场工控设备通信手段的不断发展和完善,S7-300PLC与PC的通信是通过专用接口卡5611卡和MPI电缆实现的,通信软
VB实现S7-300 PLC与PC机的普通串口通信 The Implement of Communication Between S7-300 PLC
and Personal Computer
(陕西科技大学电气与电子工程学院)李光明
Li, Guangming
摘要:现代工业应用中,串行通信是一种使用相当广泛的通信方式,其配线数少,容易实现,长久以来一直被广泛采用。而Visual Basic在开发可视化环境下的监控系统时具有其独特的优势,倍受青睐。本文以VB在西门子PLCS7-300与上位机通信中的应用为例,提出了VB在串行通信中一种新的应用方法。
关键词:Visual Basic;可编程控制器;串行通信;上位机
中图分类号:TP273
文献标识码:A
Abstract: Serial communication is a widely used communication method in the applications of modern industry. It has little wiring and is easy to realize. So it has been used for a long time. Moreover, Visual Basic has its special advantage in development of inspection system in viewable environment. This paper takes the communication between SIMATIC S7-300 and the computer as an example, puts forward the new idea of the usage of Visual Basic in serial communication. Keywords: Visual B PLC;
host computer
现代工业控制系统通常以PC机为上位机,通过与现场工控设备如PLC等的数据交换与处理,实现对工业生产的过程控制。这就促进了上位机与现场工控设备通信手段的不断发展和完善。
西门子S7-300 PLC因其功能强、速度快、扩展灵活,在广大工业控制领域中占有重要地位。目前,S7-300PLC与PC的通信是通过专用接口卡5611卡和MPI电缆实现的。通信软件为STEP7、PRODAVE_S7_mini以及功能十分强大的WinCC。但是,对于较小的工业控制系统使用这样的软硬件,成本相对昂贵,同时对操作人员的技术要求也较高。本文提出了通过VB自编通信程序,使用普通串口,实现上位机与PLC的自由通信。
2.串行通信
随着科技的发展,RS-232串行通信设备硬件开发实现了集成化、简单化,且使用方便,因而应用越来越广泛。另外,同属串行通信的RS-485网络也被大量应用在工业环境中,而长距离、抗噪声的优点也使其得到了迅速发展。
RS-232协议是控制中经常用到的计算机串口协议,基于物理层,直接与硬件打交道。而VB提供了通信控件,简单易用,使其在开发可视环境下的监控系统时具有独特的优势。
2.1 RS-232串行通信
RS-232串行通信端口是每台计算机上的必要配备,通常有COM1和COM2两个端口。目前RS-232是PC机与通信工业中应用最广泛的一种串行接口,被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。但工业环境通常会有噪声干扰传输线路,在用RS-232串行通信进行传输时经常会受到外界的电气干扰而使信号发生错误。为了解决上述问题,RS-485串行通信方式应运而生了。
2.2 RS-485串行通信
RS-485是一种多发送器的电路标准,允许双导线上一个发送器驱动32个负载设备。负载设备可以是被动发送器、接收器或收发器(发送器和接收器的组合)。RS-485电路允许共
用电话线通讯。电路结构是在平衡连接电缆两端有终端电阻,在平衡电缆上挂发送器、接收器、组合收发器。RS-485标准没有规定在何时控制发送器发送获接收机接收数据的规则。MPI接口就是一个RS-485串行通信接口。
3.设计方案
任何指令在传输线路上均以数字形式存在,即一串高低电平。因此,使用VB的通信控件对线路上的数据侦听并进行分析至关重要。
3.1 硬件连接
PLC上的数据传输端口为RS-485串行通信端口,而PC上的COM口为RS-232串行通信端口。为使数据侦听能够进行,需用到RS-232/RS-485转换器ADAM-4520。ADAM-4520转换器能够在配置RS-232的系统上使用RS-485信号。它将RS-232信号转换成独立的RS-485信号,不需要改变计算机的硬件或软件。
数据从同一端口采集,同时经过MPI电缆和ADAM-4520,分别经过5611卡和COM口进入PC。连接方法如图一所示:
3.2 软件实现
3.2.1 MSComm简介
在开发通信程序时,主要用到的是VB的通信控件MSComm。
MSComm (Microsoft Common Control简称MSComm)控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。该控件屏蔽了通信过程中的底层操作,程序员只需设置并监视MSComm控件的属性和事件,结合其它VB提供的控件就可完成对串口的初始化和数据的发送接收。
在本设计中,采用二进制接收方式,即InputMode属性设为ComInputModeBinary;在Settings属性中设置S7-300 PLC与计算机通信的波特率,最低为19200bps。
3.2.2数据监测程序
使用VB通信控件MSComm编写数据监测程序,通过串行端口接收数据并进行分析。程序代码如下:
Private Sub Command1_Click() If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False Else MSComm1.PortOpen = True
End If End Sub
Private Sub Command2_Click() End End Sub
Private Sub Command3_Click()
//选择端口号
MSComm1.Settings = &19200,e,8,1&
//设定波特率
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeBinary
//二进制接收方式
MSComm1.PortOpen = True
Call MSComm1_OnComm
Private Sub MSComm1_OnComm()
Dim arr() As Byte
Dim sent As String
Dim Len_OneTimes As Long
Dim i As Integer
arr = MSComm1.Input
Len_OneTimes = UBound(arr)
For i = 0 To (Len_OneTimes)
sent = sent & Hex(arr(i)) & & &
RichTextBox1.Text = RichTextBox1.Text + sent + Chr(13) + Chr(10)
运行数据检测程序并将PLC上电,运行PRODAVE_S7_mini并在其中进行各种操作(如LOAD、UNLOAD、READ、WRITE等),我们就可以检测到一系列的数据。
3.2.3监测结果
a、与西门子S7-200不同,S7-300不管处于何种状态(run或stop),一经上电,PLC就会不断地发出数据查找设备,在读写数据过程中也不间断。
b、连接、断开、读出/写入时,监测到一系列有规律的数据,读出/写入的数据包括在其中。
经多次监测,分析比较,可得到不同数据命令所执行的不同功能。
进一步根据MPI协议的基本格式进行分析:
令牌报文的格式:SD4
总线访问协议报文的格式: SD1
数据报文格式:SD2
SD1 = 开始分界符1 Start Delimiter 1
SD2 = 开始分界符2 Start Delimiter 2 LE = 长度 Length
LER= 重复长度 Repeated Length SA = 源地址 Source Address DU = 数据单元 Data Unit DA = 目的地址 Destination Address FC = 功能码 Function Code
FCS = 帧检查顺序 Frame Check Sequence ED = 结束分界符 End Delimiter
DSAP = 目的服务存取点 Destination Service Access Point
SSAP = 源服务存取点 Source Service Access Point
现结合所监测到的数据具体说明。
令牌报文的格式: SD4
总线访问协议报文格式: SD1
16 数据报文格式:SD2
3.2.4通信程序
数据分析完毕,可将5611卡和MPI电缆去掉。用VB编写PC与S7-300通信的程序。可通过此程序向PLC发出相关指令(实际发送的是一串二进制代码),将数据写入PLC或从PLC中读出数据。以读数据为例,程序流程如图二。
为了检验通信是否成功,可在结束通信程序后运行STEP7或PRODAVE_S7_mini,读PLC相应单元,若结果一致,即表明数据已成功写入或读出。
本文给出了利用VB(主要是其中的通信控件)开发通信程序,实现PLC与PC普通串口通信的实用方法。实际测试表明,该程序运行稳定可靠,且操作简便。将程序稍加修改,还可应用到其他工业控制设备,在小型工业控制系统中具有一定的应用价值。
[1] 刘圣才,李春葆.Visual Basic程序设计导学 清华大学出版社.2002年1月
[2] 范逸之,陈立元. Visual Basic与RS-232串行通信控制(最新版)清华大学出版社.2002
[3] 郑晟,巩建平,张学.现代可编程控制器原理与应用 科学出版社.2002年5月
[4] Noel Jerke. Visual Basic 6参考大全.北京希望电子出版社.1999年10月
[5] 李玉东,李罡,李雷. Visual Basic 6.0中文版控件大全.电子工业出版社.2000年2月
[6] 沈显威.温控系统中VB实现的PC与单片机串行通讯.2002年9月
作者简介:李光明(1963―):男,西安交通大学电气工程学院硕士毕业,主要研究方向计算机网络与应用。通信地址:陕西省咸阳市陕西科技大学467信箱;电话:;email:
陕西咸阳人民西路49# 陕西科技大学电气与电子工程学院) 李光明
(College of Electrical and Electronics Engineering, Shaanxi University of Science & Technology, XianYang Shaanxi 712081) Li, Guangming
包含总结汇报、资格考试、办公文档、文档下载、旅游景点、出国留学、教学研究、考试资料、专业文献、教学教材、教程攻略以及用VB实现S7-300 PLC与PC机的普通串口通信等内容。
相关内容搜索您的位置: &
利用FETCH/WRITE方式实现PC机与S7PLC的直接通讯
优质期刊推荐

我要回帖

更多关于 s7 300编程电缆驱动 的文章

 

随机推荐