企业: | 控制网 | 日期: | 2006-01-04 |
---|---|---|---|
领域: | PLC&PAC | 点击数: | 2375 |
PLC(可编程序控制器)在工业现场因其编程方便,抗干扰能力强,获得了广泛的应用。但受到内部硬件电路的限制,在运算速度、数据处理能力等方面和PC机相比,要逊色很多。因此在工业现场对复杂模型进行控制时,可以借助上位机PC来建立生产模型,通过构建 SCC监督式控制系统,让下位机PC为一DCC直接数字控制系统,实现复杂系统的控制。另外,还可通过上位机PC和下位机PC组建监控系统,达到对工业现场实时监控的目的。其中关键技术为PC机和PC之间的通讯。本文首先介绍PC机与PLC的通讯种类和机制,然后就采用高级语言VB和组态软件MCGS,对完成以上二者通讯进行介绍、比较。 二、PC机和PLC通讯的种类和机制 (1)硬件配置 本实验所用PLC型号为OMRON系列CPM1A,属小型机。在机体上没有RS232串口,只有一个编程口。在和PC机进行数据传输的时候,首先应该在PLC的编程口处接一适配器,实现编程口到RS232口的转换,CQM1-CIF01电缆可以完成上述功能,电缆的两端分别与PC机串口1或2及PLC编程口相连。实验时PC机采用的是486PIII300。具体连接见图1所示。
PC机和PLC有两种通讯方式,一种是PC机作主动者,即主局,PLC为从动者,即子局。另一种是PLC为主局,而PC机为子局。无论工作在哪种方式,数据一般都采用串行方式来传输,即可通过RS232、RE422或RS485电缆线来进行信息传递。 在进行通讯时,首先将PC机和PLC传递信息的波特率设置一致。另外还要对奇偶校验位、传输数据位数和停止位进行设置。 在PC机和PLC进行通讯时,要使用命令帧和响应帧的形式来进行信息传递。 (2)帧的发送接收 每次通信送出的一组数据称作“帧”。帧可以从持有发送权的一方传出。每送出一帧,上位机或PLC就将发送权交给另一方。当接收方收到终端(命令或响应的终字符)或分界符(分割帧的字符)信息后,就将发送权转到另一方。 在上位链接通信中,开始由上位PC机持有发送权并开始通信。响应由PLC自动返回。如图2所示:
(3)命令/响应格式 用上位链接通信发送接收的命令/响应格式如下所示: (1) 命令格式 从上位机PC发送命令时,程序中编写下列格式的命令数据并开始发送。 (2) 相应格式 对应命令PLC的相应返回如下的格式。编写返回相应数据。 三、通讯的具体实现 实现上位机PC和下位机PLC通讯一般可采用两种方法:可以通过Windows或高级语言编程,实现二者通讯;还可借助现在普遍使用的工业控制组态软件。使用前者,编程比较繁琐,需要了解具体的通讯机制,另外还要掌握某种高级语言,并对所编程序花费一定调试时间,但是软件的成本得到降低。使用后者则可以迅速掌握简化的编程语言,在较短的时间内编制出控制功能复杂的程序,而且调试时间也相对较短,但是需花费很高的价格购买正版软件。下面分别就以上两种实现方式进行简要介绍和比较。 (1)通过高级语言的程序编制 这种通讯编程又可大致分为两种,一种是基于Windows语言编程,它可调用Windows的API函数,直接对串口进行操作,但是需要掌握Windows语言,比较繁琐,上手较慢。另一种就是基于高级语言,例如Visual Basic或Visual C++等。在Visual Basic中提供了一个串行通讯控件Microsoft Comm Control,简称MSComm控件。编程者只需要设置和监视MSComm空间的属性和事件,然后按照相应的通讯规约就可以实现串行通讯。 下面就笔者利用VB中的MSComm控件完成PC机和PLC的通讯程序编制,简要进行一下介绍。 1. 首先在VB环境中加入控件MSComm,然后把它放在窗口中,就可以对其一些参数进行设置,比方说通讯的波特率、奇偶校验位、数据位和停止位。 初始化程序如下: 2. PC机发送数据给PLC 3. PC机接受PLC传来数据 4. PC机和PLC之间传递数据时,采用FCS校验码,来保证传递信息的正确性。算法可见参考文献,具体程序在此省略。 (2)通过组态软件来实现通讯 组态软件是一个专为工控开发的工具软件。它为用户提供了多种通用工具模块,用户不需要掌握太多的编程语言技术,就能很好的完成一个复杂工程所要求的几乎所有功能。MCGS软件是其中的一种。在此以MCGS为例,来对程序编制进行介绍。软件系统包括组态环境和运行环境两个部分。组态环境,用来设计和构造自己的应用系统。运行环境则按照组态环境中构造的组态工程,以用户指定的方式运行,并进行各种处理,完成用户组态设计的目标和功能。如图3所示。
设备窗口是MCGS系统的重要组成部分,负责建立系统与外部硬件设备的连接,根据具体外部硬件,可以在设备窗口配置不同类型的设备构件,这样使MCGS能从外部设备读取数据并控制外部设备的工作状态。 MCGS的这种结构形式使其成为一个与设备无关的系统,对于不同的硬件设备,只需定制相应的设备构件,放置到设备窗口中,并设置相关的属性,系统就可对这一设备进行操作。 在建立对PLC设备的通信连接时,首先单击“设备窗口”选项卡,进入“设备窗口”页,双击“设备窗口”,进入“设备组态”,选中“串口通讯父设备”,单击“增加”,然后双击“PLC设备”,在其下拉菜单中选中 “欧姆龙”,型号:Omron-HostLink。单击“增加”,“Omron-HostLink”被增加到了右侧方框中。如图4。
最后双击“串口通讯父设备”,在弹出的窗口中进行下列参数的设置: 最小采样周期(ms):1 串口端口号:1-COM2 通讯波特率:6―9600 数据校验方式:偶校验 数据位位数:2-7 停止位位数:1 以上基本设置完成后,就可以将监控程序和外部PLC的变量建立起联系,从而在上位机运行的监控程序中反映出下位机的运行状况,也可以把上位监控中的一些工作参数传输到下位机PLC。 四、总结 作者通过两种方法都实现了计算机和PLC之间的通讯,从两种通讯实现方法来看,使用组态软件可以不必了解具体的通讯过程,调用相应的驱动程序即可。如果采用高级语言,则需要了解确切的通讯机制,还要熟练的掌握一种高级语言。因此在组建大型工程的监控系统时,常常会使用成熟的组态软件,从而大大缩短软件开发的周期。任何事物都一分为二,使用组态软件固然省事,但需要支付软件的高昂费用,并且软件的二次开发受到一定限制。如采用高级语言编程,则能够节约成本,并根据需要随时对程序进行升级,但需要自己完成程序编制和花费一定调试时间。 |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
1.我有以下需求: | |
|
|
2.详细的需求: | |
* | |
姓名: | * |
单位: | |
电话: | * |
邮件: | * |