首页 上一页 1 2 下一页 尾页

用VB实现S7-300PLC与PC机的普通串口通信 点击:1870 | 回复:25



天下三分明月夜

    
  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2008-05-04 21:23:43
楼主

用VB实现S7-300 PLC与PC机的普通串口通信
The Implement of Communication Between S7-300 PLC
and Personal Computer
(陕西科技大学电气与电子工程学院)李光明 李妍 李茜
Li, Guangming Li, Yan Li, Qian
摘要:现代工业应用中,串行通信是一种使用相当广泛的通信方式,其配线数少,容易实现,长久以来一直被广泛采用。而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 Basic; PLC; serial communication; host computer
1.引言
现代工业控制系统通常以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.CommPort = 1 //选择端口号
MSComm1.Settings = "19200,e,8,1" //设定波特率
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeBinary //二进制接收方式
MSComm1.PortOpen = True
Call MSComm1_OnComm
End Sub

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)) & " "
Next
RichTextBox1.Text = RichTextBox1.Text + sent + Chr(13) + Chr(10)
End Sub
运行数据检测程序并将PLC上电,运行PRODAVE_S7_mini并在其中进行各种操作(如LOAD、UNLOAD、READ、WRITE等),我们就可以检测到一系列的数据。
3.2.3监测结果
a、与西门子S7-200不同,S7-300不管处于何种状态(run或stop),一经上电,PLC就会不断地发出数据查找设备,在读写数据过程中也不间断。
b、连接、断开、读出/写入时,监测到一系列有规律的数据,读出/写入的数据包括在其中。
经多次监测,分




citichma

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 17回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2008-10-21 14:17:57
21楼

学习还是可以的,无论行不行,管用否

?

zjggshy

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2008年11月07日
发表于:2009-07-03 08:40:27
22楼

 有点不明白,关键的地方没有,不知道作者本来就自己就不知道,还是在卖关子

独行侠

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 599回
  • 年度积分:0
  • 历史总积分:715
  • 注册:2009年1月09日
发表于:2009-07-03 15:47:44
23楼
引用小蝦米 的回复内容:

没有看懂,没有多少有用信息





WU01234

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 40回
  • 年度积分:0
  • 历史总积分:84
  • 注册:2008年12月13日
发表于:2009-07-03 20:47:56
24楼
23楼伦渠公司我使用过贵公司的串口转换器不能用唉,我用的是PC/PMI电缆能解释下吗

AutoCtrl888

  • 精华:0帖
  • 求助:0帖
  • 帖子:57帖 | 465回
  • 年度积分:48
  • 历史总积分:2394
  • 注册:2007年3月04日
发表于:2017-10-24 19:59:07
25楼

没有什么可操作性,真要研究PC高级语言与PLC通讯的话,可以看看这篇文章,里面有源代码可以下载的:

http://blog.sina.com.cn/s/blog_16d7d3ecb0102x1z5.html


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页