当前位置:首页>>基于VB的S7-200 PLC与上位机的串行通讯及应用

基于VB的S7-200 PLC与上位机的串行通讯及应用

发布时间:2017-08-29作者:Doris

  随着工业自动化控制技术的不断发展,可编程逻辑控制器(PLC)与上位机之间通讯的应用越来越广泛。在PLC与上位机组成的集散控制系统中,PLC作为下位机完成现场各种信号和数据的采集、运算和控制,上位机则可提供人机交互界面,实现数据的处理以及现场数据的实时显示等监视和远程控制等功能,这样不仅提高了PLC的控制功能,扩大了它的控制范围,而且能够使PLC之间的资源共享,便于实现集中控制和网络化管理。由此可见,要实现这一功能,PLC和上位机间的数据通讯是一关键环节。该文采用VisualBasic 6.0,以普通工控机为上位机实现了和SIEMENS SIMATIC S7—200系列可编程逻辑控制器间的通讯,并在某自动卸胎机械手的控制系统中得到了成功的应用。

1 S7—200 PLC的自由端口通讯

  1.1 自由端口通讯的方式

  SIMATIC S7—200 PLC内部集成的PPI接口为用户提供了强大的通讯功能。PPI接口的物理特性为RS485,可在PPI(pOint to pOint)、MPI(multi—pOint)和自由端口(free port)三种通讯方式下工作。PPI用于S7—200系列PLC之间进行通讯,而MPI则用于在S7。400系列、S7—300系列和S7。200系列PLC之间进行通讯。此外,S7。200系列PLC还可通过增加EM277 PROFIBUSDP扩展模块以支持PROFIBUSDP工业以太网的通讯。以上几种通讯方式使用起来方便、灵活,但只适用于SIEMENS SIMATIC工控产品之间的通讯,无法满足与其它厂商的工控产品进行通讯的需求,因此SIMATIC S7—200提供了一种自由端口通讯方式。自由端口通讯方式是S7—200系列PLC一个很有特色的功能,它使s7—200可以与任何具有串行接口和通讯协议公开的智能设备进行通讯(如变频器、单片机和MODEM等),使通讯范围扩大、控制系统配置更加灵活。自由端口通讯在物理接口上要求双方都使用RS485接口。程序可以使用接受中断、发送中断、发送指令(xMT)和接受指令(RCV)来控制通讯操作。只有CPU处于RUN模式时才能进行自由端口通讯,当CPU处于STOP模式时自由端口通讯被停止。自由端口虽然为标准RS485接口,但西门子公司提供的PC印PI电缆带有RS。232/485电平转换器,因此在不增加任何硬件的情况下,可以很方便地将PLC和上位机互联。

  1.2 自由端口通讯模式的初始化

  S7-200 PLC自由端口通讯模式的初始化是通过对特殊存储字节SMB30(端口0)写入通讯控制字来设置通讯的波特率、奇偶校验、停止位和数据位数。

  1)发送数据指令XMT其命令格式为XMT Table,Port。可以用XMT指令方便地发送数据,XMT指令激活发送缓冲区(Table)中的数据。数据缓冲区的第一个数据指明了要发送的字节数,Port指明了用于发送的端口,可以发送一个或多个字符,最多有255个字符的缓冲区。

  2)接收数据指令RCV

其命令格式为RCV Table,Port。可以用RCV指令方便地接收信息,RCV指令可以接收一个或多个字符,最多有255个字符,这些字符存储在缓冲区中。

2 通讯程序的设计

  2.1 自由端口通信程序设计

  自由端口通讯程序由主程序、初始化子程序、读子程序、写子程序、接收中断子程序、发送中断子程序和校验子程序等组成。其工作流程如图所示。上述各功能块说明如下:

图自由端口通讯程序工作流程

  1)主程序调用各个子程序并启动通讯端口。

  2)初始化子程序

当PLC首次扫描,SM0。1有效时,由主程序调用,以便初始化自由通讯端口相关特殊寄存器、中断向量、PLC站点ID及接收、发送数据缓冲区等。

  3)读子程序

  当接收中断产生、验证无异常、收到报文读数据指令时,由主程序调用,实现接收完整报文、关闭接收中断、判断数据起始地址、判断数据长度、获取相关数据及发送反馈报文等功能。

  4)写子程序

  当接收中断产生、验证无异常、收到报文写数据指令时,由主程序调用,实现接收完整报文、关闭接收中断、判断数据起始地址、判断数据长度、获取相关数据及发送反馈报文等功能。

  5)接收中断服务子程序

当自由端口接收中断允许、接收完整报文结束时,完成获取操作指令及标志读、写子程序调用允许。

  6)发送中断服务子程序

  当自由端口发送中断允许、发送完整报文结束时,完成开启接收中断及相关参数复位。

  2.2 上位机的通讯程序设计

  上位机通讯软件是在Visual B商c环境下开发的,因VB具有强大的图形显示功能,可以很容易地开发出界面良好、满足用户需求的WIND(弼蛋标准风格的图形界面。同时VB还提供了方便灵活的串行通讯控件——MSComm。在利用该控件时,只需设置、监视其属性和事件,即可完成对串行端口的初始化和数据的传输工作。用Ⅶ编制的可实现串行通讯的部分程序如下:

  窗体加载时,打开通讯端口。

  Private Sub Fbm Load()  Camml。PortOpen=True  End Sub

  使用按钮控件“CmdReceive”,接收由通讯端口发送过来的字符串,并进行判断。  Private Sub CmdReceive C1ick()  Dim buf As String  Buf=Trim(Comml。Input) 将缓冲区内的数据读人buf变量中  If Len(buf)=0 Then判断其中是否存  txtReceive。Text=“无数据”  Else  txtReceive。Text=buf  End If  End Sub

  使用按钮控件“CmdSend”,将数据由通讯端口发送出去

  Private Sub CmdSend Click()  Comm 1。Output=Trim(txtSend。Text)  End Sub  使用按钮控件“CmdExit,’,以关闭通讯端口,结束系统。  Private Sub CmdExit Click()  Comml。Portopen=False  End  F=nfl S1Jh

3 自动卸胎机械手控制系统的实现

  在某轮胎厂的自动卸胎机械手的研制过程中,应用了基于Visual Basic的西门子S7—200PLC与上位机之间的串行通讯设计,以实现实时监视和远程控制等功能。其中机械手运动到末位接近开关位置时,PLC得到信号,数据通过串行通讯端口传到上位机,上位机通过后台的程序处理,控制界面“末位接近开关状态”发生变化,使操作者可以直观地得知设备现在的状态。操作者也可以在上位机上对“运动电机”和“下料电机”进行直接的操作,以实现远程控制的功能。

4 结论

  可编程逻辑控制器与上位机之间通讯的应用,可以有效地提高控制系统的整体自动化程度。利用Visual Basic等计算机语言,可以方便地开发出PLC和上位机通讯应用软件,PLC完成对现场开/关量、模拟输入偷出量的控制处理,上位机实现对过程参数的监控、分析、统计、修改等。实践证明,该应用方案投资少、开发周期短、运行稳定可靠,对小规模的系统极具现实意义。

公司简介

宜科(天津)电子有限公司是中国工业自动化的领军企业,于2003年在天津投资成立,销售和服务网络覆盖全国。作为中国本土工业自动化产品的提供商和智能制造解决方案的供应商,宜科在汽车、汽车零部件、工程机械、机器人、食品制药、印刷包装、纺织机械、物流设备、电子制造等诸多领域占据领先地位。宜科为智慧工厂的整体规划实施提供自系统层、控制层、网络层到执行层自上而下的全系列服务,产品及解决方案涵盖但不局限于云平台、MES制造执行系统、工业现场总线、工业以太网、工业无线通讯、机器人及智能设备组成的自动化生产线、自动化电气控制系统集成、智能物流仓储系统等,以实现真正智能化的生产制造,从而带来生产力和生产效率的大幅提升,以及对生产灵活性和生产复杂性的管理能力的大幅提升。多年来,宜科以创新的技术、卓越的解决方案和产品坚持不懈地为中国制造业的发展提供全面支持,并以出众的品质和令人信赖的可靠性、领先的技术成就、不懈的创新追求,在业界独树一帜。帮助中国制造业转型升级,加速智能制造进程,成为中国工业4.0智慧工厂解决方案当之无愧的践行者。

更多详情>>

联系我们

  • 联系人:章清涛
  • 热线:18611695135
  • 电话:
  • 传真:
  • 邮箱:18210150532@139.com

Copyright © 2015 ilinki.net Inc. All rights reserved. 智汇工业版权所有

电话:010-62314658 邮箱:service@ilinki.net

主办单位:智汇万联(北京)信息技术有限公司

京ICP备15030148号-1