vb6.0在plc与上位机通讯中的应用_第1页
vb6.0在plc与上位机通讯中的应用_第2页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、引言可编程控制器以其高可靠性,配置灵活和完善的功能,在工业控制系统中得到越来越广泛的应用。但对于操作员所需要的报表打印、趋势图形显示、工况查寻、参数修改等功能,PLC 却不能直接方便地提供。所以通常采用计算机 PC 与 PLC 组成一个完整的系统。本文以台安 TP02 系列 PLC 为例,用 Visual Basic(VB)实现 PLC 与上位机的通讯。2、VB 在通讯控件中的使用可编程控制器 PLC 与上位机 PC 之间的通信,下位机为 PLC,基于其可靠性极高,主要承担控制功能,而上位 PC 机主要承担监察管理功能,有时兼备部分控制功能,如发出运行,停止命令。VB 语言是基于WINDO

2、WS 操作系统的功能强、易学易用、主要是面向学习对象的程序设计语言。VB 带有专门管理串行通讯的数就可以实现 PLC 与 PC 串行通讯。要完成通信必须设置(1)CommPort:设置或传回通信连接端口代号m 控件,只需设置几个主要参m 的相关属性值:Settings:设置初始化参数。以字符串的形式设置或传回连接速度、奇偶校验、数据位、停止位等 4 个参数PortOpen:设置或传回通信连接端口的状态Input:从输入寄存器传 回并移除字符Output:将一个字符串写入输出寄存器InputLen:指定由串行端口读入的字符串长度InBuFFerCount:传回在接收寄存器中的字符数3、软硬件之间

3、:台安TP02 与上位机 PC 通信时,为了实现两者的通信需要配备通信线。4、通信程序的实现通信初始化程序首先,在窗体开始设计之前,添加程序编写:m 控件。4.2.1 通信控件m1 属性设置:4.2.2 PLC 运行程序:STX$ = :TransmitBuf$ = 01?5RUNsum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$m1.Output = SXD$DomPort = 1 设置端m1.Settings = 19200,E,7,2 设置通信参数m1.InputLen

4、= 0 设置读入字符串长度m1.PortOpen = True 设置通信端口状态4.2.3 从 PLC50ms):资料,将寄存器内的数据资料在 PC 上显示以便观察(反应时间4.2.4 从 PLC资料,将 RelayC0001 状态通过 PC 显示进行反应时间 50ms):4.2.5 设定 Relay 状态,将 Relay 设定为 ON(反应时间 50ms):Dim C1 AsegerSTX$ = :STX$ = :transmitBuf$ = 01?5MCRC0001sum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + trans

5、mitBuf$ + sum$ + ETX$m1.Output = SXD$DoDoEventsLoop Untilm1.InBufferCount = 13In4$ =m1.InputCoil$ = Mid$(In4$, 10, 1)C1% = C(Coil$)Label6.Caption = C1%STX$ = :transmitBuf$ = 01?5MRVD000102sum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$m1.Output = SXD$DoDoEventsLo

6、op Untilm1.InBufferCount = 20InData$ =m1.InputLabel2.Caption = Mid$(InData$, 10, 4)Label3.Caption = Mid$(InData$, 14, 4)DoEventsLoop Untilm1.InBuFFerCount = 12 In1$ =m1.Input4.2.6PLC 停止运行:4.2.7VB6.0 下 CheckSum 函数代码如下:5、结论PLC 与上位机的结合,并通过 VB6.0 传送数据所的计算机系统,对于近距离Private Function CheckSum(transmitBuf$)L

7、 = Len(transmitBuf$)Add = 0Dim k, sum AsegerFor k = 1 To LTJ$ = Mid$(transmitBuf$, k, 1)Add = Add + Asc(TJ$)Next kDo While Add = 256Add = Add - 256LoopAdd = 255 - Add + 1tempBuf$ = Hex$(Add)CheckSum = LTrim(tempBuf$)End FunctionSTX$ = :transmitBuf$ = 01?5STPsum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$m1.Output = SXD$DoDoEventsLoop Untilm1.InBufferCount = 12In3$ =m1.InputtransmitBuf$ = 01?5SCSY00011sum$ = CheckSum(transmitBuf$)ETX$ = Chr$(13)SXD$ = STX$ + transmitBuf$ + sum$ + ETX$m1.Output = SXD$DoDoEventsLoo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论