摘 要: PLC是以微处理器为核心的工业控制装置。他已经广泛地应用于分布式监控系统中,主要负 责现场高速数据采集、逻辑运算、定时、计数、PID调节等控制任务,并普遍采用计 算机作为上位机集中管理。本文介绍了VB提供的串行通讯控件MSComm,编程口操作命令类型 、上位计算机与PLC之间的链接方式、PLC的通讯设置,并提供了利用RS 232串行通讯端口实 现计算机与可编程控制器通讯的方法。本文旨在探讨用可视化编程语言实现PC机与PLC网络 之间数据通讯的技术及软硬件实现方案,充分合理地利用系统资源及特点,提高通讯效率。
关键词:计算机;PLC;VB;串口通讯
1引言
PLC是以微处理器为核心的工业控制装置。他将传统的继电器控制系统与计算机技术结合 在 一起,具有高可靠性、适应工业过程现场以及强大的联网功能等特点,被广泛应用。VB提供 MSComm控件,通过串行端口传输和接收数据,为应用程序提供程序通讯功能。
在微机与PLC之间构成的集散控制系统中,多数是由一台PC机与数台PL
2串行通讯控件[1] 2.3MSComm控件的事件 3上位计算机与PLC之间的链接方式 方式一:使用链接适配器较少、不用信号转换,但若中间一台PLC出故障,其后续的PLC 无法与上位机通讯。 4编程口操作命令类型 5Windows系统下VB通讯程序设计 6PLC方的通讯设置
2.1MSComm控件的引用
MSComm控件与其他控件的引用类似,在工程开始设计之前,到【工程】菜单下选择【部件 】选项,出现部件选项对话框,在对话框中选中Microsoft Comm Control 6.0,然后单击 确定,则MSComm控件出现在工具框中,用户可以像使用内部控件那样把他添加到窗体。
2.2MSComm控件的属性
MSComm控件的属性众多,比较重要的有:
CommPort属性用于设置或返回通讯连接端口的号码。
Settings属性用于设置初始化参数。
PortOpen属性用于设置或返回通信连接端口的状态。
Input属性用于从输入缓存区返回并删除字符。
Output属性用于将一个字符串写入输出缓存区。
HandShaking属性用于指定通信两方的交握协议。
CommEvent 属性CommEvent 属性在通信错误或事件发生时都会产生OnC omm事件(这也是此控件惟一的事件),CommEvent 属性存有该错误或事件的数值码。
OnComm事件是MSComm控件的惟一事件,此事件可用来处理所有与通信相关的事件,不管是 何种事件发生,MSComm控件只用一个CommEvent的属性予以代表。使用事件程序的好处是不 需要一直让程序处于检查的状态,只要事先将程序代码写好,一有事件发生,就会直接执行 相应的程序代码。
上位机与多台PLC组成的多链系统,常用的链接方式有2种:
方式二:使用了信号转换模块,可以避免前级故障对后级的影响。
串行通讯是计算机与其他机器之间进行通讯的一种常用方法。通过SC08编程电缆 或FX232A W模块,可将微型计算机的串行通讯口RS 232和PLC 的编程口连接起来,这样微型计算机就 可对PLC的RAM区数据进行读、写操作。由PLC本身具有的特性,可对PLC进行以下4种类型 的操作[2]:
(1)位元件或字元件状态读操作(CMD0)。
(2)位元件或字元件状态写操作(CMD1)。
(3)位元件强制ON操作(CMD7)。
(4)位元件强制OFF操作(CMD8)。
另外,在进行上述4类操作前,首先要对端口进行初始化操作,即设定通讯协议( 包括设置通讯波特率、数据位数、数据停止位及奇偶校验)。
上位机通讯软件是用VB开发的。因VB具有强大的图形显示功能,可以开发出界面良好的 Windows标准风格的图形用户界面。同时VB还提供了串行端口控件MSComm,程序员在 利用该控件 时,只需设置、监视其属性和事件,即可完成对串行口的初始化和数据的传输工作。程序示 例如下:
计算机与PLC通讯的目的是实现计算机对PLC运行
7结语
编程电缆将PLC的编程口和微型计算机的RS 232口连接起来,将PLC用户程序由微型计算机 编程环境传到PLC用户程序区,其编程口大多没有被再利用。其实,这是一种浪费。也就 是说,可利用此编程口实现微型计算机和PLC的数据通讯,将PLC的工作状态纳入微型计算 机管理之下。本文旨在探讨用可视化编程语言实现PC机与PLC网络之间数据通讯的技术及 软硬件实现方案,合理充分利用系统的资源及特点,提高通讯效率。希望能对同类系统的设 计与实现有一定的启发和帮助。
参考文献
[1] 范逸之.Visual Basic与分布式监控系统[M].北京:清华大学出版社,2002.
[2] 李现勇.Visual C++与串口通信技术与工程实践[M].北京:人民邮电出版社,2 002