台安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万活跃中小企业,实现全面无纸化出口、货通全球。