1 引言P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
在工业控制领域中,PLC作为一种稳定可靠的控制器得到广泛的应用。但它也有自身的一些缺点,即数据的计算处理和管理能力较弱,不能给用户提供良好的界面等。而计算机恰好能弥补PLC的不足,它不但有很强的数据处理和管理能力,而且能给用户提供非常美观而又易于操作的界面。将PLC与计算机结合,可使系统达到既能及时地采集、存储数据,又可处理和使用好数据,两者结合的关键是PLC与计算机之间的通信。本文以OMRON公司的CPMIA小型PLC为例,详细的讨论了PLC与计算机通信的原理和用VB如何实现PLC与计算机的通信。P.L.C.技.术.网——可编程控制器技术门户
2 通行原理与方法WWW_PLCJS_COM-PLC-技.术_网
上位机要能够通过PLC监控下层设备的状态,就要实现上位机与PLC间的通信,一般工业控制中都是采用RS232C实现。上位机首先向PLC发送查询数据的指令(实际上是查询PLC中端子的状态和DM区的值等),PLC接收了上位的指令后,进行校验(FCS校验码),看其是否正确,如果正确,则向上位机传送数据(包含首尾校验字节)。否则,PLC拒绝向上位机传送数据。上位接收到PLC传送的数据,也要判断正确与否,如果正确,则接收,否则,拒绝接收。——可——编——程——控-制-器-技——术——门——户
由于CPM1A没有提供串行通信口,我们利用其提供的外设端口实现通信。PLC与计算机之间的WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
连接是通过OMRON提供的专用电缆CQM1-CIF01来实现的,其硬件连接图如图1所示。
WWW_P※LCJS_CO※M-PLC-技-.术_网
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
3 PLC与计算机间的通信规约WW.W_PLCJS_COM-PLC-技.术_网
计算机与PLC间的通信是以“帧”为单位进行的,并且在通信的过程中,计算机具有更高的优先级。首先,计算机向PLC发出命令帧,然后,PLC作出响应,向计算机发送回响应帧。其中命令帧和响应帧的格式如下:WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
(1) 命令帧格式。为了方便计算机和PLC的通讯,CPM1A对在计算机连接通信中交换的命令和响应规定了相应的格式。当计算机发送一个命令时,命令数据主准备格式如图2所示。WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
其中@放在首位,表示以@开始,设备号为上位机识别所连接的PLC的设备号。识别码为命令代码,用来设置用户希望上位机完成的操作,FCS为帧检验代码,一旦通信出错,通过计算FCS可以及时发现。结束符为“*”和CR回车符,表示命令结束。WWW_PL※CJS_COM-PLC-技.术_网
(2) 响应帧格式。由PLC发出的对应于命令格式的响应帧格式如图3所示。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WWW_PLC※JS_COM-PmLC-技.术_网
其中,异常码可以确定计算机发送的命令是否正确执行。其它的与正文中的含义相同。正文仅在有读出数据时有返回。WWW_P※LCJS_COM-PLC-)技.术_网
4 通信程序的设计WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
为了充分利用计算机数据处理的强大功能,我们可以采用计算机有优先权的方式,在计算机上编写程序来实现计算机与PLC的通信, 计算机向PLC发出命令发起通信,PLC自动返回响应。本文中采用VB来编写计算机与PLC间的通讯程序。在VB中提供了通信控件—应用通信控件(MSCOMM),实现通过串行端口传送和接受的功能。WWW_PLCJS@_COM%-PLC-技.术_网
下面介绍MSCOMM控件的属性:WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
*CommPort:设定通信连接端口代号,程序必须指定所要使用的串行端口号,Windows系统使用所设定的端口与外界通信。WWW_P※LCJS_COM-PLC-)技.术_网
*PortOpen:设定通信口状态,若为真,通信端口打开,否则关闭。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
*Settings:设定通信口参数,其格式是"bbbb,p——可——编——程——控-制-器-技——术——门——户
,d,s",其中bbbb为通信速率(波特率),p为通信检查方式(奇偶校验), d 为数据位数,s为停止位数,其设定应与PLC的设定一致。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
*Input:将对方传送至输入缓冲区的字符读入到程序。WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
*Output:将字符写入输出缓冲区。WWW_PLCJS_COM-PLC-技.术_网
*InBufferCount:传回接收缓冲区中的字符数。——可——编——程——控-制-器-技——术——门——户
*OutBufferCount:传回输出缓冲区中的字符数。P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户