您的位置 首页 观点

VB6.0在PLC和上位机通讯中的使用

1、引言可编程控制器以其高可靠性,配置灵活和完善功能,工业控制系统中到越来越广泛应用。但操作员所需要报表打印、趋势图形显示、工况查

1、导言

可编程操控器以其高可靠性,装备灵敏和完善功用,工业操控体系中到越来越广泛应用。但操作员所需求报表打印、趋势图形显现、工况查寻、参数线修正等功用,PLC却不能直接便利供给。一般选用计算机PC与PLC组成一个完好监控体系。本文以台安TP02系列PLC为例,评论用Visual Basic(VB)完结PLC与上位机通讯

2、VB通讯控件中运用

可编程操控器PLC与上位机PC之间通讯,下位机为PLC,根据其可靠性极高,首要承当操控功用,而上位PC机首要承当督查办理功用,兼备部分操控功用,如宣布运转,中止指令。VB言语是根据WINDOWS操作体系功用强、易学易用、主面向学习目标程序规划言语。VB带有专门办理串行通讯MSComm控件,只需设置几个首要参数就可以完结PLC与PC串行通讯。要完结通讯有必要设置MSComm相关特色值:

(1)CommPort:设置或传回通讯衔接端口代号
(2)Settings:设置初始化参数。以字符串方式设置或传回衔接速度、奇偶校验、数据位、中止位等4个参数
(3)PortOpen:设置或传回通讯衔接端口状况
(4)Input:从输入寄存器传 回并移除字符
(5)Output:将一个字符串写入输出寄存器
(6)InputLen:指定由串行端口读入字符串长度
(7)InBufferCount:传回接纳寄存器中字符数

3、软硬件之间:

台安TP02与上位机PC通讯时,完结两者通讯需求装备通讯线。

4、通讯程序完结

4.1 通讯初始化程序

首要,窗体开端规划之前,增加MSComm控件。

4.2程序编写:

4.2.1 通讯控件MSComm1特色设置:

MSComm1.CommPort = 1 设置端口号
MSComm1.Settings = “19200,E,7,2” 设置通讯参数
MSComm1.InputLen = 0 设置读入字符串长度
MSComm1.PortOpen = True 设置通讯端口状况

4.2.2 PLC运转程序:
STX$ = “::”
TransmitBuf$ = “01?5RUN”
sum$ = CheckSum(transmitBuf$)
ETX$ = Chr$(13)
SXD$ = STX$ + transmitBuf$ + sum$ + ETX$
MSComm1.Output = SXD$
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 12
In1$ = MSComm1.Input

4.2.3 从PLC读取材料,将寄存器内数据材料PC上显现调查监控(反应时间50ms):

STX$ = “::”
transmitBuf$ = “01?5MRVD000102”
sum$ = CheckSum(transmitBuf$)
ETX$ = Chr$(13)
SXD$ = STX$ + transmitBuf$ + sum$ + ETX$
MSComm1.Output = SXD$
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 20
InData$ = MSComm1.Input
Label2.Caption = Mid$(InData$, 10, 4)
Label3.Caption = Mid$(InData$, 14, 4)
  
4.2.4从PLC读取材料,将RelayC0001状况PC显现进行监控(反应时间50ms):

STX$ = “::”
transmitBuf$ = “01?5MCRC0001”
sum$ = CheckSum(transmitBuf$)
ETX$ = Chr$(13)
SXD$ = STX$ + transmitBuf$ + sum$ + ETX$
MSComm1.Output = SXD$
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 13
In4$ = MSComm1.Input
Coil$ = Mid$(In4$, 10, 1)
C1% = CInt(Coil$)
Label6.Caption = C1%

4.2.5 设定Relay状况,将Relay设定为ON(反应时间50ms):

Dim C1 As Integer
STX$ = “::”
transmitBuf$ = “01?5SCSY00011”
sum$ = CheckSum(transmitBuf$)
ETX$ = Chr$(13)
SXD$ = STX$ + transmitBuf$ + sum$ + ETX$
MSComm1.Output = SXD$
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 12
In2$ = MSComm1.Input

4.2.6 PLC中止运转:
STX$ = “::”
transmitBuf$ = “01?5STP”
sum$ = CheckSum(transmitBuf$)
ETX$ = Chr$(13)
SXD$ = STX$ + transmitBuf$ + sum$ + ETX$
MSComm1.Output = SXD$
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 12
In3$ = MSComm1.Input
  
4.2.7 VB6.0下CheckSum函数代码如下:

Private Function CheckSum(transmitBuf$)
L = Len(transmitBuf$)
Add = 0
Dim k, sum As Integer
For k = 1 To L
TJ$ = Mid$(transmitBuf$, k, 1)
Add = Add + Asc(TJ$)
Next k
Do While Add >= 256
Add = Add – 256
Loop
Add = 255 – Add + 1
tempBuf$ = Hex$(Add)
CheckSum = LTrim(tempBuf$)
End Function
  
5、定论

PLC与上位机结合,并VB6.0传送数据所构成计算机监控体系,近距离传输数据现场操控来说是一种性价比很高解决方案。充分使用PLC抗干扰功能和PC强壮图形显现,浮点运算特色,与之有用结合,最大极限,合理使用资源

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/235109.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部