用户中心

资讯 > PLC与PAC

LabVIEW下多台S7200 PLC自由口通信方法研究

作者:www.cechina.cn2013.05.24阅读 8021

  1  引言
  PLC作为一种稳定可靠、控制程序灵活可变的控制器,在工业控制系统中已经得到了广泛的应用。随着计算机网络技术的发展,传统控制系统不断向多级分布式控制方向发展,要求PLC应具有通信和网络功能。但是由于中小型PLC 的人机接口功能不够完善,无法提供给用户一个美观又易于操作的交互界面。如果将 PLC 与工控PC机结合起来,就能弥补PLC的不足,实现对控制参数的在线调整及系统运动状态的跟踪与监控。本文通过串行通信技术实现单片机与S7-20O系列 PLC之间的自由口通信方法进行了研究,达到了预期的效果。
  2  系统硬件设计
  2.1  系统构成
  系统上位机采用IPC,下位机由9台西门子S7-200PLC和2台进口智能仪表组成,组成结构如图1所示[1]。

  其中PLC部分采用了3台CPU221,1台CPU222和5台CPU224。上位机与 PLC采用两线制的RS-485接口组成控制系统。整个控制系统采用主从方式构成工业监控网络CONTROL ENGINEERING China版权所有,网络中有一个主站和多个从站。各个从站点由唯一的地址码识别。这样,上位机便能通过RS-485通信线对挂在上面的PLC和智能仪表进行控制,避免信息传递的紊乱,确保通信的准确可靠。
  2.2  通信硬件实现
  由于S7-200系列PLC的通信口是RS-485串行接口,而计算机是RS-232串行接口,所以计算机与PLC在通信时采用了MAX485CPA芯片进行RS-485/RS-232转换,并加入光电隔离措施来提高系统的稳定性,转换电路如图2所示。

  3  S7-200PLC自由口通信
  3.1  自由口通信方式
  S7-200 PLC的通信口是标准的RS-485串行通信口,支持PPI协议、 MPI协议、 PROFIBUS 协议和自由口协议,其中最具有特色的自由口协议通过用户程序定义通信端口,实现PLC与任何已知协议的智能仪器设备通信。如打印机、调制解调器、变频器和上位PC机等。
  考虑到在系统中所有的控制信号均为开关量信号,工控PC机作为上位机仅仅实现实时显示数据、存储数据等监视和远程控制等功能,不需要向PLC发送控制指令,因而系统选择在启动通信时,PLC始终具有优先权,PLC作为下位机完成现场各种信号和数据的采集、运算和控制。
  执行过程:PLC通过XMT发送指令,将数据通过COM口发至上位机,然后延时等待上位机反馈信息;上位机接收到数据进行处理后,将反馈信息或修改后的数据通过COM口传送到PLC的PORT0(或PORT1)口。PLC通过RCV接收指令接收数据并返回指令执行的状态信息,至此完成一轮"一问一答"式通信。
  3.2  自由口通讯工作模式的定义
  在S7-200中通信的工作模式是通过通信控制字的组态设定的。自由口通讯在通信之前通过设置特殊存储区SMB30和SMB130,分别对PLC的通信端口0(port0)和端口1(port1)设定通信模式、波特率、校验方式等通信参数,其格式如图3所示[2]。

  其中:
  pp: 00不校验;01偶校验;10不校验;11奇校验
  d: 0代表每个字符8位,1代表每个字符7位
  bbb:000=38400 bit/s;001=19200 bit/s;010=9600 bit/s;011=4800 bit/s
  100=2400 bit/s;101=1200 bit/s;110=115.2k bit/s;111=57.6k bit/s
  mm:00PPI从站模式,01自由口模式,10PPI主站模式
  通信口的工作模式可以在运行过程中由用户程序重复定义的。自由口通信的核心指令是发送(XMT)和接收(RCV)指令。在自由口通信常用的中断有"接收指令结束中断"、"发送指令结束中断",以及通信端口缓冲区接收中断。如果调试时需要在自由口模式与PPI模式之间切换,可以使用SM0.7的状态决定通信口的模式;而SM0.7的状态反映的是CPU运行状态开关的位置(在RUN时SM0.7=?",在STOP时SM0.7="0")。
  3.3  S7-200PLC自由口通信程序设计

  整个程序由主程序,子程序和6个中断程序组成。主程序主要完成初始化操作,调用子程序及其他的逻辑控制;子程序的工作是计算所提供的数据的CRC码,因为系统对通信部分的要求较高,所以通信数据采用CRC码进行校验;所有的中断程序都用来实现通信功能[3],通信程序的流程图如图4所示。图中的中断事件8为每个接收字符到时的中断;中断事件10为时基中断0,即通信线空闲等待时间中断;中断事件9为发送完数据中断。系统通信包括读写两种操作,如果功能码不同,那么数据地址及传递的数据字节数也不同,此处我们选择灵活的自由口通信模式中字符中断控制方式来实现,其中功能码=03时为读命令;功能码=06时为写命令[4]。
  利用SM0.1初始化通讯参数执行过程:
  (1) 定义通讯口接收格式SMB87(口 0)或SMB187(口1)。包括启动信息接收(第7位=1),是否有起始位(第6位),是否有结束位(第5位)以及是否检测空闲状态(第4位)等。
  (2) 设定起始位(SMB88或SMB188)或结束位(SMB89或SMB189)、空闲时间信息(SMB90 或 SMB190)及接收的最大字符数(SMB94 或SMB194)。
  (3) 一般还要利用SMB34 定义一个定时中断,来定时发送数据(一般为50ms,即间隔发送数据的时间)。
  (4) 发送完中断子程序的主要任务是发送完后断开SMB34 定时中断,并利用RCV指令准备接收数据;接收完中断子程序的任务是接收数据完成后重新连接SMB34 的定时中断,准备发送数据。
  下面是部分设计程序[5,6]:
  主程序:
  NETWORK1//初始化
  LD SM0.1
  MOVB 16﹟09,SMB30
  FILL 0,VW100,5
  MOVB 2,VB0//设备地址号
  MOVB 100,SMB34
  MOVB 8,VB99
  MOVB 9,VB300 03
  MOVB VB0,VB301
  MOVB 3,VB302//功能码03,发送PLC输入口信息
  MOVB 4,VB303
  ENI
  ATCH CE2INT6,8
  ATCH CE2INT0www.cechina.cn,10
  CALL EC2SBR0
  MOVB VB470,VB308
  MOVB VB470,VB309//调用子程序后计算出的CRC校验码存放到VB308和VB309
  子程序:
  CE2SBR0//计算CRC校验码
  NETWORK1
  LD SM0.0
  MOVD &VB400,AC1
  MOVB *AC1,VB201
  NETWORK2//计算CRC校验码
  LD SM0.0
  FOR VW450,1,VW455//外层循环为求CRC值的字节个数
  ……
  中断程序:CE2INT3//接收首字符程序
  NETWORK1
  LDB= SMB2,VB0
  MOVB VB0,VB100//设备号是否对
  MOVD &VB101,VD600
  MOVB 6,VB10
  ATCH CE2INT1www.cechina.cn,10//非真正的设备号时到CE2INT1
  ……
  MOVW 8,VW455
  CALL CE2SBR0//调用子程序进行CRC校验
  LDW= VW470,0//CRC校验正确吗
  LPS
  AB= VB101,3//功能码03
  ATCH CE2INT0www.cechina.cn,10
  XMT VB300,0
  LPP
  AB= VB101,6//功能码06
  MOVB VB105,QB0
  MOVB VB104,QB1
  ATCH CE2INT0www.cechina.cn,10
  XMT VB99,0//输出,把上位机发送来的数据回送到上位机
  ……
  4  人机交互界面
  LabVIEW是一种程序开发环境,一个完整的LabVIEW程序主要包括前面板和程序框图。 前面板是交互式图形化用户界面,用于设置输入数值和观察输出;框图是定义VI功能的图形化源代码,可利用图形语言对前面板的控制量和指示量进行控制。LabVIEW将繁琐复杂的文本语言简化成为以菜单提示方式选择功能,为用户提供简明、直观的系统模拟界面[7]。
  本文工控PC机端软件采用LabVIEW图形语言进行编写,实现登陆密码验证、通信设置、设定值、输出值显示和数据历史记录等功能,程序流程图如图5所示,图6和图7分别是程序执行过程中的部分VI程序框图和工控PC机端软件控制界面图[8]。

  执行过程:首先进行密码验证,当密码输入正确时,将执行True帧,并通过通信设置界面确定计算机成功地接收到PLC发送的数据,包括波特率为9600bit/s,I/O口为COM1等;然后对数据进行存储并通过主界面可查看当前值,同时用户也可以进行设定值。系统误差在 0.2%以内。
  5  结束语
  通过实验室实验和在中国石油西南油气田分公司采油和输气控制设备上运行,实际运行表明:该系统的各项指标都达到了预期的效果。系统具有良好的通信和网络功能控制工程网版权所有,控制界面好控制工程网版权所有,实时性强,可靠性稳定性高,克服了PLC的不足,接口功能得到了大大提高,同时智能化程度好,方便地实现了对控制参数的在线调整及系统运动状态的跟踪与监控。
  系统所设计的自由口通信协议和硬件RS232/RS485转换电路,可靠地实现了工控PC机与多台S7-200PLC之间的串行通信,可以提供人机交互界面,实现数据的存储和实时回显等监视功能,只要发送相关的生产过程控制信息, PLC作为下位机可以对被控对象实时监控,完成现场各种开关量和模拟量的采集、运算和控制。
  系统的不足之处是有一定的局限性,对于规模较大的控制系统,采用监控组态软件来实现就更加具有优势。

版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688