基于VB6.0的上位机与PLC实时通信技术
来源:用户上传
作者:
摘要:本文对上位机与PLC之间的通信方式、原理进行分析,并从数据格式、通信协议、数据传输几个方面,对二者之间的实时通信技术加以阐述,旨在使通讯程序在工业现场中的应用更加科学高效。
[关键词]上位机PLC串口通信技术
PLC具有较强的可靠性,属于现代控制系统中不可缺少的重要内容,特别是在机床控制中得到广泛应用。一般采用小型PLC与上位机相结合的方式,上位机的主要作用在于软件编程与调试、提供人机界面,便于各项参数调整。在本文的研究中,主要在VB6.0的基础上对,上位机与PLC的通信技术進行分析。
1上位机与PLC的通信方式与原理
现阶段,上位机与PLC之间的通信方式主要有三种,一是购买通用上位机组态软件,如WinCC、组态王等,使计算机与可编程控制器连接起来,实现通信;二是借助可编程控制器开发商系统与网络适配器,形成企业内部网络,利用开发商提供的上位机组态软件,实现通信;三是利用可编程控制器厂商提供的通信端口,与用户个人端口相连接,这种方式具有较强的灵活性,且无需投资便可适应,适用于小规模控制系统。在本文的研究中,主要针对S7-200系列PLC通信方式进行分析,其具有四种通信方式,具体如下:
(1)点对点。基于西门子VB6.0的PLC编程器以及其他接口产品通信;
(2)多点接口。与西门子企业可编程控制器相结合,在编程器中集成通信接口,构建小规模通信网络;
(3)自由端口通信。由用户自定义,可与众多智能设备相互连接;
(4)DP方式。借助Profibus中的DP接口与现场总线网络相连接,进而使PLC的应用面积进一步扩大。在本文所研究的系统中采用的是第三种通信方式,即自由端口通信。
上位机串口为RS232,在本文所研究的S7系列中提供的串口为RS-485,二者在通信过程中需要对信号电平进行转换,在西门子企业所提供的电缆带为RS485电平转换器。对此,应在不改变硬件环境的条件下,十分快捷的实现上位机与PLC之间的互联。在试验过程中,应时刻关注电动机的工作状态,使PLC始终处于工作状态,二者均采用自主工作方法,由PLC不间断的进行数据发送与接收,在工序中始终居于主导地位,通过二者的有机配合提高数据正确性与同步性。
2上位机与PLC间的通信技术
2.1数据格式与数据帧
现阶段,大部分数控机床均采用步进电机为执行系统,利用上位机对PLC中的各项加工参数进行设置,并由上位机完成对驱动电机脉冲数的记录,然后经过串行通讯将数据信息发送到PLC控制器之中。在通讯过程中往往采用ASCII编码,用4个字节表示,如若不足则在前方加0,如若数据经过VB静态文本框输入,共计为2个数据传输,然后为8个字节的ASCII编码数据,最后为帧。
2.2通信协议
在PLC与上位机之间不但要明确通信方式与原理,还应保障双方在通信中的波特率与应答方式相同。在应答方式的选择上,可按照实际应用需求来定。在上位机中利用VB中的通信空间MSComm能够完成串行端口的数据传输功能,在该控件中具有众多属性,本文主要介绍几种常用属性,具体如下:
MSComm1.CommPort:设置并返回通信端口号;
MSComm1.Settings=”9600,n,8,1”设置波特率为9600bps,没有奇偶校验,1位停止位;
MSComm1.InPort:从接收缓冲区获取数据;
MSComm1.OutPut:将数据发送至输出缓冲区;
根据相关要求对MSComm控件属性进行设置,可参考VB信息。在MSComm空间通信方式的选择上有两种,一种为查询方式,另一种为事件驱动方式,通常情况下采用后者居多,根据通信协议对串行通信处理程序进行编写,使其充当OnComm事件处理程序。当该控件属性发生改变后,出现OnComm事件时,便可开启该程序,对属性值进行分析,并作出相应处理,从而实现与PLC的通信。
另外,不但要对上位机的串行通讯进行设置,还应对PLC进行设置,对S7-200系列进行设置时应与PLC通讯相关,利用特殊继电器进行输入,具体实施时可参考相关手册。其中,与自由口通信具有较为紧密联系的继电器由SMB30、SMB87、SMB89、SMB94、SMB90,分别代表的是自由口通信控制期存器、信息控制寄存器、结束符、接收字符最大数值、空闲时间间隔。当相应继电器全部设置完毕后,可依据实际要求,对通讯主从方式进行明确,由哪一方开启通信,如若从PLC朝着上位机提出要求进行数据传输,则应在上位机进行程序运行时,由PLC将信号发送给上位机,当上位机获取到信号以后,将已经组织完毕的数据帧传动到PLC之中。
2.3数据处理
当上位机中的信息传递到PLC以后,要对接收信息的正确性进行分析,然后根据接收的数据帧对数据信息进行恢复。倘若接收数据帧无误,则PLC便可根据语句表对数据帧进行处理,具体措施如下:
(1)对接收数据缓冲区进行设置,如RCVVB99.0,代表接受数据应存储在VB99之中,处于数据缓冲区范围内;
(2)将接收数据帧中的数据信息进行转换,指令为:ATHVB101,VB300,8,代表的是从VB101开始,将8个字节的数据转变为十六进制数,在转变完毕后,分别对VW300与VW302中的数据信息进行保存。
3结论
综上所述,本文在VB6.0基础上,对上位机与PLC之间的实时通讯技术进行分析,利用PLC自由口通信协议,借助VB开发工具,开发出通信应用软件,实现对电动机的信号采集与装置控制,对于小型系统来说具有较大的应用价值。
参考文献
[1]卫昱含,张佳莹,基于VB6.0实现PC与三菱PLC之间的通讯[J].电子技术与软件工程,2015(24):64-64.
[2]甄任贺。用VB6.0实现PC机与PLC的串行通信[J].机电工程,2014,21(05):17-19.
转载注明来源:https://www.xzbu.com/1/view-14925746.htm