PLC与上位机的高速通信实现

发布者:mu22最新更新时间:2014-11-05 来源: ofweek关键字:PLC  上位机  高速通信  RS-485 手机看文章 扫描二维码
随时随地手机看文章

0、引言

  工业控制领域中PLC作为一种高效、灵活、可靠的控制器,有着广泛的应用。以PLC控制器为核心,上位PC机为实时监控体的控制系统已成为工业自动化PLC控制系统的一个发展方向。实现PLC与PC的通信可以实现向上级提供诸如工艺流程图、动态数据画面、报表显示等多种窗口技术,使PLC控制系统具有良好的人机界面,通过上位机对PLC数据的读写监控实现现场数据的采集、传送以及生产过程调度的自动化和信息化,其应用前景十分广阔。常用的各种PLC网络有差异,但表现在 PLC 通信程序、系统联结和系统配置等方面,通信机理有统一性。目前市场上通信组态系统结构复杂,价格昂贵,应用繁琐,不适应用户使用。针对上述问题笔者以西门子公司的S7-200系列的PLC为研究对象,提出了一种用VC实现上位机与PLC的高速可靠的通信方法。

1、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层通信结构。

2、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机互联。

4、通信程序设计

  (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 :通信流程图

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

  (2) 从站PLC程序

  S72200系列PLC选择了自由口通信方式后,在程序中就可以使用接收中断、发送中断、接收指令(RCV)、发送指令(XMT)来控制通信操作,当处于自由口模式时通信协议完全由用户程序指令控制。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程序分为主程序和中断程序。主程序完成初始化通信口、开中断、判断、发送数据等功能,中断程序完成接收和发送数据的功能。

 

5、高速通信设计及检验

  (1) 高速接口设计

  PC机采用400MHz的CPU以及256M的RAM,应用VC++6.0开发软件和Sicmcns SIMATIC Microcomputing软件进行开发设计。使用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写数据时间

  

6、结束语

  本系统通过现场调试实验,功能达到设计要求。试验结果表明,当数据传输速率为916kbit/s时误码率《 ,能够实现现场网络的在线监控、调试及数据修改。由于程序中采用了以16进制ASCII码描述数据传输格式,因此一条指令中的数据字节和控制字节不可能发生混淆,通信更加可靠。同时采用了PROFIBUS-Universal协议,实现了上位机和PLC之间的高速通信,并用实验证实了该协议的优越性。对于其它品牌的PLC,尽管通信规范及初始化有所不同,可以参照本系统方法进行编程,稍做修改即可应用。本系统的成功研制将对工业控制系统的自动化、智能化、网络化的发展提供有益的借鉴。

关键字:PLC  上位机  高速通信  RS-485 引用地址:PLC与上位机的高速通信实现

上一篇:PLC在机械手远程控制系统中的应用
下一篇:使用通讯方式改变变频器参数方法浅谈

推荐阅读最新更新时间:2024-05-02 23:16

西门子S7-200PLC编程的一些小技巧
本文给出一种可以避免使用这些指令的小技巧,使你的代码看起来更简洁,也缩程序的扫描周期。 就是在计算机编程中做算法设计时典型的以空间换时间的思想。比如一个字变量,在计算中经常要向双字变量转换,则我们在定义符号时让该变量占据双字的内存空间,将不用的字清零,则可同时以字型或双字型访问该变量而不需要进行专门的转换。 西门子S7-200plc的内存格式与我们常用的PC机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。 如我们定义符号时将字变量定义在VW2,同时保持VW0的值为零。则程序中可以用VW2以字型访问该变量,同时也可以VD0以双字
[嵌入式]
三菱PLC高速计数器、电机应用案例
案例1 电机测速应用 如何测量下面电机的速度(编码器的分辨率为400个脉冲每转)(单位:转/分钟)。 这个编码器属于NPN输出的,输出低电平,AB相输出接入到plc的X0和X1,plc的公共端接入24V。 本案例只需要测量速度,没有测量距离的要求,因此可以不用高速计数器,只需要使用SPD指令(脉冲密度测量),第一个参数指定X0作为测量电,规定时间为1000ms,即1s,把每1s接收到的脉冲数读取到DO里。 通过FLT指令把D0的数据类型转换成浮点数,正常的转速度定位是转/分钟,把秒转换成分钟,要乘以60,编码器分辨率是400个脉冲每转,因此需要除以400,因此D0的结果需要乘以60除以400,也就是乘以0.15,得到的结果
[嵌入式]
三菱<font color='red'>PLC</font>高速计数器、电机应用案例
VB 上位机与单片机
转速测量系统 通过单片机采集转速数据,通过USB口发送到PC,并产生曲线图。 单片机程序: //---------------------串口初始化---------------------------- void initSerial() { TMOD=0x20; //定时器1置为方式2 TH1=0xfd; TL1=0xfd; //设置波特率位9600 SCON = 0x50; // 设定串行口工作方式 PCON &= 0x00; // 波特率不倍增 TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; } //----------
[单片机]
PLC编程需要养成良好的编程习惯
  每个人编程都会有不同的习惯和特点,不能强求一致。但是一些好的习惯还是应该为大多数人所遵循。一是理顺逻辑关系、时序关系,编制程序框图;二是合理分配主程序、子程序和中断程序;三是合理分配寄存器,编制寄存器符号表。   plc编程更接近于单片机,或者说PLC就是模块化的单片机。因此PLC的很多操作都是直接针对寄存器的,如果在程序中出现不合理的寄存器地址重叠,一定会出现不可预想的后果。编制寄存器符号表不仅可以避免上述问题(MicroWin会有问题提示),而且可以使程序具备更好的可读性。这和VB中定义变量有异曲同工之处。   VB编程中关注的是事件,不强调主程序和子程序的观念,因为VB主程序的工作是由PC的操作系统完成的。PLC
[嵌入式]
SCADA与DCS、PLC之间的区别
远程数据采集和监控为主要功能的SCADA系统和DCS、PLC一样,是工业过程自动化和信息化不可或缺的基本系统。 SCADA系统 SCADA是SupervisoryControI And Data AcquiSition System (数据采集与监视控制系统)的缩写,SCADA系统是对分布距离远,生产单位分散的生产系统的一种数据采集、监视和控制系统。 它应用领域很广,可以应用于电力、冶金、石油、化工等领域的数据采集与监视控制以及过程控制等诸多领域,其中在电力系统中的应用更为广泛,发展技术也最为成熟。它在远动系统中占重要地位,可以对现场的运行设备进行监视和控制,以实现数据采集、设备控制、测量、参数调节以及各类信号报警等各项功
[嵌入式]
SCADA与DCS、<font color='red'>PLC</font>之间的区别
一种基于FPGA的高速通信系统研究与设计
   0 引言   远程通信系统和远程监控系统对信号传输有两方面的要求:一方面要求接口灵活且有较高的数据传输带宽;另一方面要求系统的传输距离远。传统接口如UART,USB,以太网等在传输带宽和传输距离上均无法满足要求。   低压差分信号(LVDS)是一种低摆幅的差分信号技术。LVDS的恒流源模式及低摆幅输出使传输速度可以从数百Mb/s到2 Gb/s以上。差分传输方式使LVDS信号对共模输入噪声有更强的抵抗能力。LVDS技术功耗低,100Ω的负载电阻功耗仅有1.2 mW。这些特点使得LVDS技术广泛应用在许多要求高速度与低功耗的领域。   随着半导体工艺进步,现场可编程逻辑阵列(FPGA)的性能和集成度在不断提高,同时成本在下
[嵌入式]
一种基于FPGA的<font color='red'>高速通信</font>系统研究与设计
S7-200 PLC与组态王在变频器节能项目上的应用
导读: 该系统采用上、下位机主从式结构,plc作为下位机通过modbus通信方式,完成工业现场数据的实时采集;上位机采用工业控制计算机,与plc之间通过工业以态网通讯方式,实现高压变频器在运行过程中的实时数据显示、故障报警等各项功能。   1 引 言   近几年来,可编程序控制器(以下简称plc)因其可靠性高、编程简单、抗干扰能力强等优点,在工业控制领域得到了广泛应用。但plc在人机交互性能方面较弱,然而工控组态软件(如组态王)具有良好的人机界面及控制决策能力。因此,将二者结合起来可有效实现整个生产过程的综合监控。东方日立(成都)电控设备有限公司生产的高压大功率变频器有机地将二者结合起来,实现变频器在昆钢自备发电厂高炉煤气发
[嵌入式]
ADSP-21535 Blackfin的Mem DMA高速通信
  ADSP-21535 Blackfin 是美国AD公司和Intel 公司于2001年底联合推出的一款定点DSP, RISC指令结构,运作高效,具有十分优异的性能。该DSP具有300MHz的主频,2个40bit的MAC(乘加器)和2个32bit的ALU(算术逻辑单元),4个8bit的视频处理单元,16个地址寻址单元。该DSP内部集成了308KB的RAM,并具有丰富的外部接口,如PCI、USB、SPI、同步和异步串口等。同时,芯片内部设计了看门狗和多种定时器,充分满足软件工程稳定性的设计要求。值得一提的是,21535可以动态地控制电压输入,调整运行频率,减少芯片功耗,十分适用于移动产品的设计。   2002年底,AD公司在中国
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved