我要开店

台安TP02系列PLC与上位机通讯中的应用

台安TP02系列PLC与上位机通讯中的应用VB6.0在PLC与上位机通讯中的应用 1、引言  可编程控制器以其高可靠性,配置灵活和完善的功能,在工业控制系统中得到越来越广泛的应用。但对于操作员所需要的报表打印、趋势图形显示、工况查寻、参数在线修改等功能,PLC却不能直接方便地提供。所以通常采用计算机PC与PLC组成一个完整的监控系统。本文以台安TP02系列PLC为例,讨论用VisualBasic(VB)实现PLC与上位机的通讯。  2、VB在通讯控件中的使用  可编程控制器PLC与上位机PC之间的通信,下位机为PLC,基于其可靠性极高,主要承担控制功能,而上位PC机主要承担监察管理功能,有时兼备部分控制功能,如发出运行,停止命令。VB语言是基于WINDOWS操作系统的功能强、易学易用、主要是面向学习对象的程序设计语言。VB带有专门管理串行通讯的MSComm控件,只需设置几个主要参数就可以实现PLC与PC串行通讯。要完成通信必须设置MSComm的相关属性值:  (1)CommPort:设置或传回通信连接端口代号  (2)Settings:设置初始化参数。以字符串的形式设置或传回连接速度、奇偶校验、数据位、停止位等4个参数  (3)PortOpen:设置或传回通信连接端口的状态  (4)bbbbb:从输入寄存器传回并移除字符  (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.2PLC运行程序:  STX$="::"  TransmitBuf$="01?5RUN"  sum$=CheckSum(transmitBuf$)  ETX$=Chr$(13)  SXD$=STX$+transmitBuf$+sum$+ETX$  MSComm1.Output=SXD$  Do  DoEvents  LoopUntilMSComm1.InBufferCount>=12  In1$=MSComm1.bbbbb  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  LoopUntilMSComm1.InBufferCount>=20  InData$=MSComm1.bbbbb  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  LoopUntilMSComm1.InBufferCount>=13  In4$=MSComm1.bbbbb  Coil$=Mid$(In4$,10,1)  C1%=CInt(Coil$)  Label6.Caption=C1%  4.2.5设定Relay状态,将Relay设定为ON(反应时间50ms):  DimC1AsInteger  STX$="::"  transmitBuf$="01?5SCSY00011"  sum$=CheckSum(transmitBuf$)  ETX$=Chr$(13)  SXD$=STX$+transmitBuf$+sum$+ETX$  MSComm1.Output=SXD$  Do  DoEvents  LoopUntilMSComm1.InBufferCount>=12  In2$=MSComm1.bbbbb  4.2.6PLC停止运行:  STX$="::"  transmitBuf$="01?5STP"  sum$=CheckSum(transmitBuf$)  ETX$=Chr$(13)  SXD$=STX$+transmitBuf$+sum$+ETX$  MSComm1.Output=SXD$  Do  DoEvents  LoopUntilMSComm1.InBufferCount>=12  In3$=MSComm1.bbbbb    4.2.7VB6.0下CheckSum函数代码如下:  PrivateFunctionCheckSum(transmitBuf$)  L=Len(transmitBuf$)  Add=0  Dimk,sumAsInteger  Fork=1ToL  TJ$=Mid$(transmitBuf$,k,1)  Add=Add+Asc(TJ$)  Nextk  DoWhileAdd>=256  Add=Add-256  Loop  Add=255-Add+1  tempBuf$=Hex$(Add)  CheckSum=LTrim(tempBuf$)  EndFunction    5、结论  PLC与上位机的结合,并通过VB6.0传送数据所构成的计算机监控系统,对于近距离传输数据的现场控制来说是一种性价比很高的解决方案。充分的利用的PLC的抗干扰性能和PC强大的图形显示,浮点运算的特点,与之有效地结合,最大限度,合理的利用资源。——此文章转载于互联网,文中观点与本网站无关,如有侵权请联系删除

关于阿里巴巴国际站

阿里巴巴国际站成立于1999年,是阿里巴巴集团的第一个业务板块,现已成为全球数字化出海服务平台。阿里巴巴国际站累计服务200余个国家和地区的超过2600万活跃企业买家,近三年支付买家的复合增长超过100%。

阿里巴巴国际站致力于让所有的中小企业成为跨国公司。打造更公平、绿色、可持续的贸易规则。提供更简单、可信、有保障的生意平台。它始终以创新技术为内核,高效链接生意全链路,用数字能力普惠广大外贸中小企业,加速全球贸易行业数字化转型升级。

未来三年,阿里巴巴国际站将赋能全球3000万活跃中小企业,实现全面无纸化出口、货通全球。

  • 我要开店
  • 在线咨询
  • 活动日历
  • 获取报告