基于VB的上位机与PLC的通信及应用

时间:2022-05-22 09:34:31

基于VB的上位机与PLC的通信及应用

【摘要】本文详细介绍了FX系列PLC的通信协议、指令与数据格式,以及VB串行通信控件的特性。通过串行通信控件实现了上位机与PLC的实时通信。该设计已成功应用于船舶机舱监测报警系统中。

【关键词】串口通信;PLC;Visual Basic;船舶机舱监测报警系统

1、引言

可编程控制器PLC因其安全可靠性、抗干扰能力强、性价比高、编程简单等优点广泛应用于工业自动化控制领域。在工业自动化控制中常常通过PLC监控现场设备,这就需要对现场设备的数据信息进行实时采集与管理。因此,上位机与PLC之间的实时通信是自动化控制系统设计开发的重点之一。

计算机和PLC本身都有通用的串行通信接口,因此工业控制中计算机和PLC之间的通信可以通过串行通信接口进行串行通信。而微软公司推出的Visual Basic中的MSComm控件可用来提供简单的串行端口通信功能。MSComm控件犹如桥梁一样可建立上位机与PLC之间的连接,实现两者间的串行通信。

2、PLC通信功能

2.1通信协议

PLC提供了与计算机的专有通信协议,可用于计算机与PLC的通信,最多可访问6台PLC。而且不需要梯形图计算机就可以直接读写操作PLC。

计算机和PLC之间的通信有3种形式:计算机从PLC中读取数据;计算机向PLC写数据;PLC向计算机写数据。

FX系列PLC一般使用异步通信,异步通信的字符信息格式,由1个起始位、7~8个数据位、1个奇偶校验位和停止位组成,波特率为9600 bps,字符为ASCⅡ码。FX系列PLC有读、写、强制通、强制断4个通信命令,并有5个通信控制代码:STX――数据开始传送;ETX――数据传送结束;ENQ――要求通信;ACK――了解;NAK――不了解。

2.2通信参数设置

实现FX系列PLC与计算机的通信之前,必须先设置好通信参数和PLC站号。参数设置好后,必须关闭PLC的电源,然后重新上电,设置的参数才可生效。

(1)D8120的设置

D8120可用来设置如下通信参数:数据长度、校验、停止位、波特率、起始字符、结束字符、握手控制线、求和校验、协议方式、通信控制协议。

(2)PLC站号的设置

计算机通信模式下,计算机可以读写任何一台PLC的元件数据,所以必须以编号的形式对PLC加以区分,该编号就称为PLC站号。FX系列PLC用D8121数据寄存器来设定和存储站号,设定范围为00H~0FH。

3、VB通信功能

VB采用可视化的图形用户界面(GUI)、面向对象的程序设计思想、事件驱动的工作机制和结构化的程序设计语言、简单易学、易于掌握、功能强大、界面丰富。VB提供了专用于串口通信的串口通信控件――MSComm,编程方便且具有完善的发送和接收功能。通过MSComm控件即可建立上位机与PLC的连接。

在使用MSComm控件之前需要对其属性进行相应设置。MSComm控件有5个常用属性:(1)CommPort:设置并传回通信连接端口代号。(2)Settings:以字符串的形式设置并传回初始化参数:波特率、奇偶校验、数据位、停止位。(3)PortOpen:设置并传回通信连接端口的状态。(4)Input:从接收缓冲区读取数据并移除字符。(5)Output:向传输缓冲区写入数据,将一个字符写入输出寄存器。

利用VB的MSComm控件实现PLC与计算机的通信过程如下:程序开始;初始化VB界面打开通讯端口;启动接收函数;是否接收到函数判断;运行数据校验处理,把处理后的数据进行保存、显示,并把相应的数据发送给PLC。

4、PLC串口通信的应用――船舶机舱监测报警系统

按照PLC通信协议通过VB的串行通信控件即可实现上位机和PLC的串口通信,在此基础上,运用VB也可设计控制系统的监控界面。本文按此方法设计了船舶机舱监测报警系统,实时对机舱各类设备的数据信息进行采集、处理和控制,并在上位机的监控界面直观形象的加以显示。

4.1硬件与选型

本文选用了三菱FX2N-64MR型PLC,连接电缆的9针端连接在计算机串行端口上,另一端连接在PLC的RS-232编程口。

4.2端口初始化

要实现上位机与PLC之间的通信,在程序运行之前,首先要对上位机和PLC的串行口进行初始化。因为只有PC与PLC端口参数保持一致,才能进行数据传输。

PLC的端口初始化通过设置D8120数据寄存器即可。本文采用的通信参数为:数据长度为8位,无奇偶校验,停止位为1位,波特率为9600bps,无起始字符,无结束字符,RS-232接口,自动添加和校验码,专用协议,协议形式1。PLC的站号设置为0号站。

上位机的端口初始化则是通过在VB环境下开发端口初始化程序设置MSComm控件的属性。MSComm控件属性的设置必须与D8120数据寄存器设置的通信参数严格一致。

4.3监控界面

建立了上位机和PLC的可靠通信后,运用VB设计了监控界面,可用来监视船舶主机、辅机、锅炉等设备的实时参数和运行状况并具有越限或故障报警、报警显示和消声消闪功能、报警事件记录和打印、试灯和自检功能、多形态实时显示监测数据、召唤记录打印等功能。

为了使监测系统各个监测点的设置客观有序并方便用户观察,对每个监测点根据其所监测的对象进行了详细的分类。对较重要的主机温度、主机压力和液位部分,专门采用模拟仪表的形式显示,更加直观形象。同时为了保证系统的实时性,设置系统间隔固定时间自动重新通过PLC读取数据并传送到各个监测点。本系统的报警记录采用ADOData数据控件与Access实现连接,使用Access数据库改善了历史报警信息的存储空间和处理过程。

5、结论

VB易于编程使用,为与串行设备的通信提供了很大的方便,同时为实现PLC与上位机的通信提供了简化的平台。基于VB软件的PLC与计算机串口通信以及船舶机舱监测报警系统,功能都满足规范要求,经运行,系统稳定、可靠,达到了设计目标。按照上述方案用VB软件所设计的人机界面运行平台还可应用到其他的工业控制设备,在工业控制系统中具有一定的应用价值。

参考文献

[1]胡学林.可编程控制器教程.北京:机械工业出版社,2003.

[2]三菱电机有限公司.FX通信用户手册,2000.

[3]孟学多等.Visual Basic程序设计基础.杭州:浙江大学出版社,2008.

[4]郭昌荣.FX系列PLC的链接通信及VB图形监控.北京:北京航空航天大学出版社,2008.

[5]郑华耀.船舶电气设备及系统.大连:大连海事大学出版社,2007.

作者简介

张宁(1985-),女,汉,山东济宁,济宁技师学院助理讲师,硕士.

上一篇:电力市场营销过程中的客户关系管理 下一篇:一种基于PROFIBUS_DP总线的精炼机控制器