基于VB的上位机与PLC的通信及应用.doc
文本预览下载声明
基于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控件的属性。MSC
显示全部