【图】vc实现上位机与plc通信的例子

作者:老电工时间:2019-12-10 09:19:15

有关vc实现上位机与plc通信的方法,以西门子公司的s7-200系列的plc为对象,提出一种用vc实现上位机与plc的高速可靠的通信方法,S7-200系列PLC通信方式。

vc实现上位机与plc通信方法

实现plc与pc的通信可以实现向上级提供诸如工艺流程图、动态数据画面、报表显示等多种窗口技术,使plc控制系统具有良好的人机界面,通过上位机对plc数据的读写监控实现现场数据的采集、传送以及生产过程调度的自动化和信息化,其应用前景十分广阔。

常用的各种plc网络有差异,但表现在 plc 通信程序、系统联结和系统配置等方面,通信机理有统一性。目前市场上通信组态系统结构复杂,价格昂贵,应用繁琐,不适应用户使用。

以西门子公司的s7-200系列的plc为研究对象,提出了一种用vc实现上位机与plc的高速可靠的通信方法。

一、s7-200系列plc通信方式

西门子s7-200系列性能优良,性价比较高,适用范围很广,因此电工之家主要讨论西门子7-200系列与计算机之间的通信。s7-200系列通信方式有三种:

1、点对点ppi方式与上位机通信:用于与西门子公司的plc编程器或其他该公司人机接口产品的通信。

该种通信方式采用的是mscomm activcx控件。ppi是主/从协议,网络上的s7-200均为从站,其他cpu、simatic编程器或td200为主站。

如果在用户程序中允许ppi主站模式,一些s7-200cpu在run模式下可以作主站,它们可以用网络读和网络写指令读写其他cpu中的数据。ppi没有限制可以有多少个主站与一个从站通信,但是在网络中最多只能有32个从站。ppi通信协议是不公开的;

2、freeport方式与上位机通信:freeport方式具有与外围设备通信方便、自由,易于微机开发等特点,因此使用自由口方式实现与上位机通信的控制方案较多。但在该通信方式下,上位机与plc的最大通信能力为128bit/s,这无法满足高速通信的需要;

3、profibus-dp方式与上位机通信:profibus协议用于几分布式i/o设备的高速通信。s7-200cpu需通过em277。profibus-dp模块接入profibus网络,网络通常有一个主站和几个i/o从站。这种方式使得plc可以通过profibus的dp通信接口接入profibus现场总线网络,从而扩大plc的使用范围。ppi协议和profibus协议的结构模型都是基于开放系统互连参考模型的7层通信结构。

二、plc网络通信标准简介

1、rs-232c标准

通信的连接接口与连接电缆的相互兼容是通信得以保证的前提。它的实现方法发展迅速,型式较多。其中rs-232c就是实际应用较多的标准之一,它是计算机或终端与调制解调器之间的标准接口。rs-232c功能规范定义了电路之间的连接,以及它的含义。rs-232c的规程规范定义的是协议,即事件出现的正确顺序。rs-232c的缺点是数据传输率低传输距离短。

2、rs-485标准

在许多工业环境中,要求用最少的信号连线来完成通信任务。日前广泛应用的是rs-485串行接口总线,rs-485支持半双工通信,分时使用一对双绞信号线进行发送或接收。rs-485用于多站互联时实现简单,节省材料,可以满足高速远距离传送,构成分布式网络控制系统十分方便。

3、通信网络接口的设计

在本工程中,采用的plc为cpu224型,该可编程控制器的通信端口为rs-485接口,由于pc机的串行端口为rs-232接口,且远离控制现场(plc位置),因此pc机的rs-232接口必须通过rs-232/rs-485转换器转换后才能与plc通信端口连接,这种通信方式可以实现最远1.2krn的远程通信。

pc机的标准串口为rs232。s7-200系列cpu226提供2个串口,其中一个端口portl作为dp口,另一个端口port0为自由口,自由口为标准rs485串口。西门子公司提供的pc/ppi电缆带有rs232/rs485电平转换器,因此在不增加任何硬件的情况下,可以很方便地将plc和pc机互联。

三、通信程序设计

1、上位机部分程序

单命令把mscomm控件加入到工程中。mscomm控件通信功能的实现实际上是调用了api函数。而api函数是由comm.drv解释并传递给设备驱动程序进行的。即mscomm控件的属性提供了通信接口的参数设置,能实现串行通信。mscomm控件有关属性如下:

CommPort:设置并返回通信端口号。Window系统将会利用该端口与外界通信;

Setings:设置并返回初始化参数。其组成格式为“BBBB。P。D。S”。BBBB为数据速率。P为奇偶校验。D为数据比特。S为停止位;

PortOpen:设置并返回通信端口的状态。也可以打开和关闭端口;

Ouptut:向传输缓冲区写1B的数据;

Input:将传送到输入缓冲区的字符读到程序里;

RThreshold:设置在产生OnComm之前要接受的字符数;

InputLen:设置并返回Input属性从接收缓冲区读取的字符数;

InBbuffersize:设置或返回输入缓冲区的大小;

InBufferCount:返回输入缓冲区内等待读区的字节个数。可通过设置该属性值为0来清除接收缓冲区;

InputMode:设置或返回传输数据的类型;

CommEvent:传回OnComm事件发生时的数值码;

软件通信流程图如图1 。

软件通信流程图

图1 :通信流程图

在实际应用中,从站被动的接收上位机发出的指令后做出响应,然后将信息传回上位机,由于上位机在整个通信的过程中不能被中断,因此上位机在接收与发送数据过程中采用了不可中断的方法。

2、从站plc程序

s72200系列plc选择了自由口通信方式后,在程序中就可以使用接收中断、发送中断、接收指令(rcv)、发送指令(xmt)来控制通信操作,当处于自由口模式时通信协议完全由用户程序指令控制。smb30被用于选择比特率和校验类型,各个位的配置为:

smb30的位配置

图2:smb30的位配置

pp,校验选择:00为不校验,01为偶校验,10为不校验,11为奇校验;

d,每个字符的数据位数:0,每个数字符8位;1,每个数字符7位。

bbb,自由口比特率,kbit/s:000为3814,001为1912,010为916,011为418,100为214,101为112,110为11512,111为5716。

mm,协议选择:00,ppi/从站模式;01,自由口模式;10,ppi/从站模式;11,保留。

接收指令(rcv)启动或终止接收信息功能,必须为接收操作指定开始和结束条件。发送指令(xmt)在自由口模式下依靠通讯口发送数据。

plc程序分为主程序和中断程序。主程序完成初始化通信口、开中断、判断、发送数据等功能,中断程序完成接收和发送数据的功能。

四、高速通信设计及检验

1、高速接口设计

pc机采用400mhz的cpu以及256m的ram,应用vc++6.0开发软件和sicmcns simatic microcomputing软件进行开发设计。(电工技术之家 www.dgjs123.com)使用pc/ppi电缆可实现计算机的rs232接口与plc通信。但该方式下只能使用ppi协议或自山通信。要使用profibus协议通信。上位机应有profibus dp模块。同时s7- 200 plc应连接通信模块。这里上位机使用的是cp5611 profibus dp模块。安装的是sicmcnssimatic micro computing软件;下位机使用的是em277 profibus dp模块和s7-200 224plc组建的通信网络。

2、速度仿真与检测

siemens simatic microcomputing软件使用activex技术提供对数据的访问控制。 microcomputing软件由2部分组成:第一部分,一系列的simatic activex控件,用于对plc的数据操作,主要包括数据控件!按钮控件!编辑控件!标签控件和滑块控件;另一部分,一个容器,用于创建使用activex控件的处理界面[7-8]。

上位机用micro computing configuration设定通信协议和波特率。 siemens micro computing提供ppi, mpi, profibus-i办议支持data control与plc通信。ppi协议支持的最高通信速率为187.5kbpsmpi和profibus都支持9.6kbps-12mbps的速率通信。profibus包含profibus-dp协议、profibus-standard协议、profibus-user-defined协议和profibus-universal协议(该协议只支持9.6kbps-1.5mbps的通信)。用micro computing configuration设定相应的应用程序接口点和协议。检测实验中表示应用程序接口点为cp5611协议为profibus基木实现流程图如4所示。 

检测实验流程图

图3:检测实验流程图

对plc数据的读写。data control提供了4个函数:write variable(对单存储单元写),write multi variable(对多存储单元写),read variable(对单存储单元读),read multi variable(对多存储单元读)。

表1是在win2000系统下,针对profibus的不同协议,data control使用自动连接,自动超时设为100ms,用write multi variable函数对一个s7- 200plc的v存储区10个存储单元进行20个字节写1000次的测试数据见表1。从表1数据可知,profibus-dp协议,profi-bus-standard协议、profibus-user-defined协议和profibus-universal协议在1.5 m的波特率下,其写操作时间最短的是profibus-universal协议,时间为31.61ms。

表1:不同协议下对plc写数据时间

不同协议下对plc写数据时间

猜你喜欢

相关文章

plc基础教程排行