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

来源:万方数据 作者:胡俊宏 杨振巍

点击:1504

A+ A-

所属频道:新闻中心

关键词:PLC 上位机 机械手

      随着工业自动化控制技术的不断发展,可编程逻辑控制器(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所示。

    图1上位机-PLC连接图

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

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

      1.3 自由端口通信模式下收发数据

      配置自由端口通讯模式后,就可以进行数据的收发了。

      1)发送数据指令XMT

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

      2)接收数据指令RCV

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

    2 通讯程序的设计

      2.1 自由端口通信程序设计

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

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

      1)主程序

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

      2)初始化子程序

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

      3)读子程序

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

      4)写子程序

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

      5)接收中断服务子程序

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

      6)发送中断服务子程序

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

    2.2上位机的通讯程序设计

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

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

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

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

    图4卸胎机械手运动控制界面

    4 结论

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

    (审核编辑: 沧海一土)

    声明:除特别说明之外,新闻内容及图片均来自网络及各大主流媒体。版权归原作者所有。如认为内容侵权,请联系我们删除。