基于Delphi70的上位机与PLC的通信

基于Delphi7.0的上位机与PLC的通信
安宪军1 , 黄尔烈1 , 贾少锐1 , 张常全2
(1.河北工程大学信息与电气工程学院, 河北邯郸 056038  2.邯郸职业技术学院, 河北
邯郸  056001)
摘要:本文介绍在将计算机与PLC结合起来,组成高性能价格比的小型集散控制系统―热电厂循环水过程控制系统中,在基于Delphi7.0上位机监控软件开发
境中如何实现上位机与S7-200系列PLC之间通信。
关键词:上位机;  S7-200 PLC; 串行通信;  Delphi7.0
中图分类号:TP273      文献标识码: B
1、引言
随着微电子技术、计算机技术以及自动控制技术的迅猛发展,PLC(Programmable Logic Controller)作为新一代工业控制器,以其高性能价格比在工业测控系统中获得了广泛的应用。在由PLC构成的小型集散
控制系统中,PLC具有使用简单方便,故障率低,对现场环境要求不高等优点;但它也有一些缺点,即数据的计算处理与管理能力较弱,特别是不能提供良好的人机界面。将计算机与PLC结合起来,可使两者优势互补,既可以充分利用PLC的高可靠性、开发周期短、编程容易等特点;又可充分利用计算机友好的人机界面,实现人机对话和监控功能,并可进行一定的辅助决策,组成高性能价格比的控制系统。实现计算机与PLC结合的控制系统的关键之一是二者之间的通信。本文以热电厂循环水过程控制的监控系统为基础,详细介绍了基于Delphi7.0的监控软件开发环境中上位机与S7-200系列PLC之间通信的实现。
2、S7-200系列PLC与PC的通信及通信协议
2.1、S7-200系列PLC的通信协议
S7-200系列PLC的通信协议有以下四种。
⑴、PPI(点到点接口)协议:该通信协议是一个主/从协议,是西门子公司专为S7-200系列PLC开发的一个通信协议,用于PLC与其编程器或其它西门子公司的人机接口产品之间的通信,一般不对外公开。
⑵、MPI(多点接口)协议:MPI协议是集成在西门子公司的PLC、操作面板和编程器上的集成通信接
口协议,用于建立小型的通信网络。在MPI网络中,S7-200系列PLC可以与S7-300/S7-400 PLC进行通信,但S7-200 PLC之间不能通信。
篮子鱼
⑶、PROFIBUS协议:PROFIBUS协议用于分布式I/O设备(远程I/O)的高速通信。PLC 可通过Profibus的DP通信接口接入Profibus现场总线网络,从而扩大PLC的使用范围。
⑷、自由口通信协议(用户定义协议):对用户完全开放,用户通过编程定义通信协议。采用自由通信口协议,不需要增加投资,PLC可以与任何有串行接口的外设进行通信,特别适合中、小规模的集散控制系统。
在热电厂循环水过程控制的监控系统中采用了西门子S7-200紧凑型PLC、CPU模块为SM226,利用PLC自由口通信协议实现上位机与PLC的通信。
2.2、S7-200系列PLC与PC的物理连接及通信
S7-200系列PLC的通信口是RS485串行接口,而计算机是RS232串行接口,由于PLC 与计算机在串行接口上的不同,计算机与PLC的通信电缆中必须有RS485/RS232转换器,一般采用西门子公司的PC/PPI电缆,就可以实现S7-200系列PLC与PC的物理连接。S7-200系列PLC与PC的物理连接如图1所示。
在自由口通信方式中,用户在程序中就可控制通信口的操作。在进行自由口通信之前,需要对通信口初始化。S7-200系列PLC处于RUN模式时才能进行自由口通信;当处于STOP 模式时,自由口通信停止,通信口转换成PPI通信。自由口通信采用主/从方式,以计算机
作为主机发起通信,从站PLC始终处于被动状态,随时准备响应计算机的通信请求。PLC 的通信以“接受命令→发送命令”为一个通信循环,每次循环将中断服务程序连接到串口中断事件。当PLC接收到信息后;PLC程序应能识别其信息内容,这就需要根据通信要求编制PLC接收的信息帧的格式和定义,即定义通信协议。在自由口模式下,通信协议完全由用户程序控制。下面将介绍上位机与S7-200系列PLC通信编程。
图1  S7-200系列PLC与PC的物理连接
3、S7-200系列PLC的通信编程
在自由口通信模式下,PLC的通信编程首先是对串口初始化。对S7—200系列PLC的初始化是通过对特殊标志位SMB30写入通信控制字,设置通信的波特率、奇偶校验位、停止位和字符长度。本系统设
定值为9600bps,无校验位,8位数据位,1位停止位。这些设定必须与PC机设定值相一致。S7-200系列PLC在通信程序中通过使用接收中断、发送中断、发送指令(XMT)和接收指令(RCV)控制串口通信操作。发送指令格式为:XMT TABLE  PORT。PORT为通信端口,本系统设为端口0,TABLE为发送数据的数据缓冲区,其第一个字节为发送字符的个数,最大为255。接收指令格式为:RCV TABLE  PORT。其中TABLE 和PORT 的含义与XMT一致。在自由口模式下,通信协议完全有程序控制。PLC与上位机的数据通信的程序如下:
NETWORK 1      //NETWORK TITLE (single line) 串口初始化
LD SM0.1
MOVB  16#09, SMB30
MOVB  16#B0, SMB87
MOVB  16#0A, SMB89
MOVW  +5, SMW90
MOVB  100, SMB94
ATCH  INT_0, 23
ATCH  INT_2, 9
MOVD  +0, VD100
ENI
RCV    VB99, 0
微计算机信息
MOVW  +30, VW510
... ...
由于篇幅所限,程序其它的部分,不再列出。
4、上位机的通信编程
在Delphi7.0下开发上位机数据通信程序的方法主要有:利用串口通信控件TMSComm;利用Windows API函数;自己设计开发串口通信组件等。利用Windows API 函数开发串行通信程序是Windows下数据通信的基本方法,但是在Windows API函数中与串行通信相关的函数约有20个,利用Windows API何新
函数实现串口通信比较繁琐;自己设计开发串口通信组件也是在Windows API函数的基础上实现的。MSComm(Microsoft Communication Control)控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它通过封装API,为应用程序提供了通过串口收发数据的简便方法。在Delphi7.0下使用TMSComm控件编程,就象使用Delphi7.0常用控件一样可以方便地使用该控件完成对串口的读写工作。由于其它方法比较繁琐,因此在Delphi7.0下开发与工业PLC通信的软件,采用通信控件TMSComm来完成上位
计算机的通信编程。
4、1  TMSComm控件的安装
图2  安装TMSComm控件的Import Activex对话框
在Delphi7.0中使用TMSComm控件需要安装。安装TMSComm控件,首先在Delphi7.0版的主菜单中选择“组件->导入ActiveX控件”菜单命令,紧接着弹出“Import  ActiveX”对话框(如图2所示);然后在“Import  ActiveX”标签选择框中选择“Microsoft Common Control 6.0[Version1.1]”选项,最后用鼠标单击“Install”命令按钮,即可开始安装该控件。安装完成后,TMSComm控件就被添加到组件面板的ActiveX标签下。使用TMSComm控件时,在组件面板的ActiveX标签下到该控件,然后把这个控件插入到工程之中,就可使用TMSComm控件进行上位机的串口通信程序设计了。
4、2 上位机的串口通信编程
PC机通过RS232串行通信口与PLC进行通信,通信控件TMSComm提供了使用RS232串行通信口开发串行通信软件的细则,使用事件驱动或查询方式来解决开发通信软件中遇到的问题。事件驱动方式对事件发生的跟踪和处理可利用TMSComm控件的OnComm事件来实现,它包括检测和处理通信错误等;查询方式设计者通过读取CommEvent值,并判断发生何种事件,再进行处理。本文采用事件驱动方式处理TMSComm控件通信。该控件主要属性有:CommPort:设置并返回通信端口号。每个使用的TMSComm控件对应一个串行端口,若应用程序要访问多个串行端口,则必须使用多个TMSComm控件。
Settings:以字符串形式设置并返回串行通信协议,由波特率、奇偶校验、数据位、停止位四个设置值组成。一般情况下的设置为“9600,N,8,1”,它的含义是波特率为9600bps,无校验位,8个数据位,一个停止位。它的设置必须和PLC的设置完全一致。航嘉暗夜h507
PortOpen:设置并返回通信端口的状态。将PortOpen属性设置为True打开端口,将PortOpen属性设置为False关闭端口。
Output:向发送缓冲区写入数据。
Input:从接收缓冲区获取数据,并将保存在接收缓冲的数据删除。如果将Input属性设置为零,在使用Input属性时,TMSComm控件将读取接收缓冲区的所有内容。
InBufferSize:设置接收缓冲区大小。
OutBufferSize:设置发送缓冲区大小。
InputLen:设定从接收缓冲区读取的字符数。
822uu
InputMode:指定接收数据的类型。
Rthreshold和Sthreshold:设定OnComm事件发生前,接收和发送缓冲区中可以存放的字节数。
RTSEnable:设置RTS的有效性。
DTREnable:设置DTR的有效性。
灵石二中其他属性采用默认值即可。
在向PLC发送命令时,按自己定义的命令帧格式,用ASCII码传送,然后等待PLC的应答,并从应答中摘取相应的字符,以判断通信是否成功。
计算机接收字符时和向PLC发送命令是一样的,不同的是计算机此时根据TMSComm 控件的InBufferCount去判断接收到的字符数,然后从PLC应答中摘取有用信息。
开发上位机的通信软件只需上述几个重要属性设置好通信口,就可在Delphi7.0中编写上位机通信程序,并按特定的数据格式实现上位机和PLC之间数据通信。
5、结束语
本系统根据PC机和PLC的特点,通过利用PLC的自由口通信协议,上位机利用Delphi7.0开发工具,开发出PC和PLC通信的应用软件,实现了对热电厂循环水过程控制系统的监控。实践证明这种方法结构简单,开发周期短,节约投资,对小规模的集散控制系统极其具现实意义;经现场运行表明,系统具有可靠性高,操作方便等优点。
本文作者创新点:(1)、本文在Delphi7.0开发环境中利用ActiveX组件提供的TMSComm控件进行了上位机串口通信程序的设计,并应用到热电厂循环水过程控制的监控系统中上位机和S7-200 PLC之间的串行通信,取得了良好的通信与监控效果。(2)、利用Delphi7.0进行了上位机串口通信程序的设计,不仅可以清楚上位机串口的通信机制,而且可以节约成本,根据需要随时升级上位机串口通信程序。
参考文献
[1] SIEMENS.SIMATIC S7-200可编程序控制器系统手册北京:西门子(中国)有限公司2000.11
[2] 惠鸿忠. 利用VC++6.0实现上位机与PLC的串行通信微计算机信息.2006年第6-1期第55-57页
[3] 崔建华,郭瑞军. Delphi 串口通信工程开发实例导航北京:人民邮电出版社.2003
Communication between PLC and host computer based on Delphi 7.0
AN Xian-jun1,HUANG Er-lie1,JIA Shao-rui1,ZHANG Chang-quan2
(1.College of Information and Electrical Engineering,Hebei University of Engineering, Handan 056038,China;2.Handan V ocational and Technical College,Handan 056001,China)Abstract: This p
aper introduces the realization of communication between S7-200 PLC and host computer based on Delphi 7.0 in the high ratio of capability and price DCS syste which is the process control system about the reuse of circulating cooling water from power plants and which is builded by the combining of host computer and S7-200 PLC。.
Key words: Host Computer; S7-200 PLC; Delphi7.0; Serial Communication
作者简介:安宪军(1970-),男(汉族),河北邯郸人,河北工程大学信息与电气工程学院讲师,工学硕士,主要从事计算机应用和过程控制等方面的研究.
Author brief introduction:AN Xian-jun,Born in 1970,Male,Lecture,Engage in the process control system and the application of computer.
通信地址:邯郸河北工程大学信息与电气工程学院邮编056038
(College of Information and Electrical Engineering,Hebei University of Engineering Handan 056038,China,)AN Xian-jun
email:xianjunan@163

本文发布于:2024-09-20 14:42:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/698043.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:控件   串口   上位   开发   使用
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议