技术中心
 
 

MSComm控件实现PC与PLC串行通讯

   日期:2006-05-05     作者:管理员    

        摘 要: PLC是以微处理器为核心的工业控制装置。他已经广泛地应用于分布式监控系统中,主要负 责现场高速数据采集、逻辑运算、定时、计数、PID调节等控制任务,并普遍采用计 算机作为上位机集中管理。本文介绍了VB提供的串行通讯控件MSComm,编程口操作命令类型 、上位计算机与PLC之间的链接方式、PLC的通讯设置,并提供了利用RS 232串行通讯端口实 现计算机与可编程控制器通讯的方法。本文旨在探讨用可视化编程语言实现PC机与PLC网络 之间数据通讯的技术及软硬件实现方案,充分合理地利用系统资源及特点,提高通讯效率。
  关键词:计算机;PLC;VB;串口通讯

1引言
  PLC是以微处理器为核心的工业控制装置。他将传统的继电器控制系统与计算机技术结合 在 一起,具有高可靠性、适应工业过程现场以及强大的联网功能等特点,被广泛应用。VB提供 MSComm控件,通过串行端口传输和接收数据,为应用程序提供程序通讯功能。
 
  在微机与PLC之间构成的集散控制系统中,多数是由一台PC机与数台PL

C之间形成1∶N的通 信模式。该模式系统中PLC负责现场高速数据采集、实现逻辑、定时、计数、PID调节等控制 任务,并通过串行通讯口向微机传送PLC工作状态及有关数据,从而实现计算机对控制系统 的管理,提高了PLC的控制能力。该集散控制系统中,PLC与微型计算机之间的通讯显得尤为 重要。因此如何提高保证他们之间的通讯准确程度、可靠性及效率是通讯成功与否的关键技 术之一。

2串行通讯控件[1]
2.1MSComm控件的引用
  MSComm控件与其他控件的引用类似,在工程开始设计之前,到【工程】菜单下选择【部件 】选项,出现部件选项对话框,在对话框中选中Microsoft Comm Control 6.0,然后单击 确定,则MSComm控件出现在工具框中,用户可以像使用内部控件那样把他添加到窗体。
 
2.2MSComm控件的属性
  MSComm控件的属性众多,比较重要的有:
  CommPort属性用于设置或返回通讯连接端口的号码。
  Settings属性用于设置初始化参数。
  PortOpen属性用于设置或返回通信连接端口的状态。
  Input属性用于从输入缓存区返回并删除字符。
  Output属性用于将一个字符串写入输出缓存区。
  HandShaking属性用于指定通信两方的交握协议。
 
  CommEvent 属性CommEvent 属性在通信错误或事件发生时都会产生OnC omm事件(这也是此控件惟一的事件),CommEvent 属性存有该错误或事件的数值码。

2.3MSComm控件的事件
  OnComm事件是MSComm控件的惟一事件,此事件可用来处理所有与通信相关的事件,不管是 何种事件发生,MSComm控件只用一个CommEvent的属性予以代表。使用事件程序的好处是不 需要一直让程序处于检查的状态,只要事先将程序代码写好,一有事件发生,就会直接执行 相应的程序代码。

3上位计算机与PLC之间的链接方式
  上位机与多台PLC组成的多链系统,常用的链接方式有2种:

  方式一:使用链接适配器较少、不用信号转换,但若中间一台PLC出故障,其后续的PLC 无法与上位机通讯。
 
  方式二:使用了信号转换模块,可以避免前级故障对后级的影响。

MSComm控件实现PC与PLC串行通讯如图


 

4编程口操作命令类型
  串行通讯是计算机与其他机器之间进行通讯的一种常用方法。通过SC08编程电缆 或FX232A W模块,可将微型计算机的串行通讯口RS 232和PLC 的编程口连接起来,这样微型计算机就 可对PLC的RAM区数据进行读、写操作。由PLC本身具有的特性,可对PLC进行以下4种类型 的操作[2]:
  (1)位元件或字元件状态读操作(CMD0)。
  (2)位元件或字元件状态写操作(CMD1)。
  (3)位元件强制ON操作(CMD7)。
  (4)位元件强制OFF操作(CMD8)。
  另外,在进行上述4类操作前,首先要对端口进行初始化操作,即设定通讯协议( 包括设置通讯波特率、数据位数、数据停止位及奇偶校验)。

5Windows系统下VB通讯程序设计
  上位机通讯软件是用VB开发的。因VB具有强大的图形显示功能,可以开发出界面良好的 Windows标准风格的图形用户界面。同时VB还提供了串行端口控件MSComm,程序员在 利用该控件 时,只需设置、监视其属性和事件,即可完成对串行口的初始化和数据的传输工作。程序示 例如下:
  

6PLC方的通讯设置
  计算机与PLC通讯的目的是实现计算机对PLC运行































状态、数据区的监控、PLC的管理并可用 计 算机编程。一般来说,在通讯过程中PLC是被动的,每一次通讯都由计算机发起与终止,但 也可以由PLC发起。通讯前需用外部输入设备在系统数据寄存器D8120中进行通讯条件设定。

7结语
  编程电缆将PLC的编程口和微型计算机的RS 232口连接起来,将PLC用户程序由微型计算机 编程环境传到PLC用户程序区,其编程口大多没有被再利用。其实,这是一种浪费。也就 是说,可利用此编程口实现微型计算机和PLC的数据通讯,将PLC的工作状态纳入微型计算 机管理之下。本文旨在探讨用可视化编程语言实现PC机与PLC网络之间数据通讯的技术及 软硬件实现方案,合理充分利用系统的资源及特点,提高通讯效率。希望能对同类系统的设 计与实现有一定的启发和帮助。

参考文献

[1] 范逸之.Visual Basic与分布式监控系统[M].北京:清华大学出版社,2002.
[2] 李现勇.Visual C++与串口通信技术与工程实践[M].北京:人民邮电出版社,2 002



 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢