用户中心

贝加莱自动化社区

+加入社区 社区登录 成员注册

施耐德电气工业社区

+加入社区 社区登录 成员注册

您的位置:控制工程网 -贝加莱自动化社区

基于PCC的变频器的串行通信协议

作者:作者:王世畅,程耕国,武汉科技大学信息科学与工程学院 发布时间:2009-02-14

摘要: 文章以西门子Micro Mastomation 变频器的USS 通信协议为例,提出了PCC 对多台变频器进行网络控制的实现方案,并且给出了用B&R Automation Basic 开发的串行通信程序。利用该方法,可以方便地实现对多台变频器的协调控制和运行参数的在线监测。

  1、开发背景
  随着自动化程度日益提高,对单台变频器的控制在许多场合已经不能满足生产的要求,必须对多台变频器进行协调控制,因此变频调速技术也逐渐朝着网络化的方向发展。为适应这一发展方向的需要,各大公司相继推出了带有标准通讯接口的通用变频器,为用户设计满足工业现场需求的控制系统带来了极大的方便。但是只有极少数公司的变频器支持标准的通信协议<例如:PROFIBUC、 CANBUS 等),实际控制系统有时会要求与不支持标准通信协议的变频器通信,普通的PLC 也不具备与第三方产品通信的能力,造成系统集成的巨大困难。让开发人员从底层开发通信协议是一项复杂且工作量相当大的工作,而且系统的可靠性也难以得到保证。基于上述问题,贝加莱2005系列 PCC(可编程计算机控制器)产品除了支持标准的通信协议之外, 还向用户提供了用于与第三方产品通信的协议开发工具---帧驱动器,用户只需要了解第三方产品的通信协议细节<包括信息帧格式的组成等>,并用帧驱动器写出与第三方产品通信协议一样的通信规约,就可方便地实现PCC与第三方产品之间的通信。
  本文利用PCC的帧驱动器,成功地实现了PCC 对多台变频器的网络控制,并且PCC 可以作为上层网络的一个节点,以实现全厂的网络化和自动化。Driveframe 是一个运行在PLC 里面的函数库,系统的串行通信程序是用B&R Automation StudioTM下的Automation Basic来开发的,作为完整的任务模块可以添加到任何其它复杂项目中,不仅能提高系统的可靠性,而且可以提高代码的可重用性,缩短项目的开发周期,使项目开发人员能够方便进行系统集成。为了扩大串行通信的有效传输距离,提高通信传输速率,增强抗干扰能力,采用RS-422/485 串行总线通信标准。
  2、系统的总体设计
  变频器采用西门子的Micro Master变频器,PCC采用贝加莱的B&R2003。PCC 通过RS-485网络与多个变频器相连接,最多可达32 台,波特率为10Mb/s时,通信距离为15m;波特率为100Kb/s 时,通信距离可达1200m。每台变频器被赋予各自独立的地址码用以识别身份,这样,PCC 便能通过RS-485接口,对挂在总线的所有变频器进行控制操作。
  3、利用PCC控制变频器
  3.1变频器的串行通讯协议
  西门子Micro Master 变频器在远程通讯时,遵循西门子的USS 通信协议。USS 通信协议由一个双向信息表组成;接受来自远程主机发送的控制信息,并反馈信息给主机作为已接收信息后的应答。其报文结构包含了参数数据和过程数据,前者用于改变变频器的参数,后者用于快速刷新变频器的过程数据,如启动停止、速度给定、力矩给定等。USS 协议的数据报文由14 个字节组成。每个字节采用2 位16 进制数的形式,遵循UART 格式:1 个起始位,8 个数据位,1 个偶校验位和1个停止位。变频器接收数据的通信协议如下:

基于PCC的变频器的串行通信协议如图


  STX 为起始字符,02H;LGE为发送字节数, 对于Micro Master为0CH(12)个字节;ADR 为变频器的地址码,取值范围为0~31 (bit0-4位),bit5 为1 时为广播发送;PKE 为16 位的字,用来控制变频器的运行参数设置。各bit 的含义如下:

基于PCC的变频器的串行通信协议如图


  对于Micro Master 变频器,控制位为0001 时,读变频器的参数,控制位为0010 时,写参数到变频器的RAM和EEPROM,Bit11未用,置为0:IND为16 位的字,未用,置为0:VAL为16位的变频器参数值,与PKE 一起将运行参数写入到变频器中;STW 为16位的字,用来控制变频器的运行动作;HSW 为16 位的字, 用来控制变频器的输出频率, 满频时的值为16384(4000H)对应100%的输出频率,最大值为32767(8000H)对应200%的输出频率,当取值为:32768~65535 时,表示反向的输出频率从0~200%变化,电机反转;BCC 为校验字节,是前面所有字节的异或和。
  同时,变频器也向PCC 回送数据报文,其通信协议如下:

基于PCC的变频器的串行通信协议如图


  与PCC向变频器发送的数据报文相比,变频器回送的数据报文只是以ZSW 代替了STW,HIW 代替了HSW,其余字节的含义是一样的。ZSW 是16 位的状态字,用来表示变频器的当前运行状态;HIW 也是16 位的字,代表变频器的输出频率,其意义与HSW 是一样的。
  3.2 PCC 帧驱动器的配置
  PCC 是贝加莱公司于1994 年推出的新一代硬件平台,它是集计算机技术、通讯技术和控制技术(3C技术)于一体的新型控制装置。PCC 的一个显著特点是其具有强大的网络通信能力,除了标准的网络通信协议外,通过帧驱动器可以很容易地制作任意第三家的串行通信协议。利用帧驱动器编写串行通信程序比传统的通信编程方法要容易得多, 它的命令包括如下。FRM-xopen:初始化接口,为帧驱动器分配缓存,安装相关的中断处理程序。FRN-read:读数据并将其放在读缓存区。FRM-RBUF:释放读缓存区。FRM-GBUF:申请写缓存区。FRM-WRITE:将数据写入写缓存区。FRM-ROBUF:释放写缓存区。FRM-CLOSE:接口通信结束。FRM-ctrl:接口控制。串口在使用前必须初始化,设置串口操作所需要的参数, 这样在程序初始化部分需要使用FRM-xopen(enable,adr(device),adr(mode),adr(config),status,ident)函数来初始化串口。参数mode, 是用来定义接口参数的字符串地址,其字符串格式为:
  "[(TYPE)],[(BAUD)],[(PARITY)],[(DATABIT)],[(STOPBIT)],[(OPTION)]"TYPE为通信接口的类型,BAUD为波特率,PARITY 为校验类型,DATABIT为数据位个数,STOPBIT为停止位个数,OPTION 为可定义硬件握手。
  3.3 程序实现
  PCC的软件可分为系统软件和应用软件两大类。PCC 的操作系统是系统软件的核心,是一个分时多任务的操作系统。一个完整的复杂项目可分成多个独立的任务来完成,每个任务都是独立的程序,有各自的循环时间,可以完成各种不同的功能,真正实现了软件的模块化设计。此外PCC 还提供了大量系统模块和应用函数,系统模块可以在需要的时候方便地加载至操作系统中,应用函数可以根据用户及应用程序的需要,模块式地添加到PCC 的软件系统中。应用软件是指用户的应用程序。PCC以PC机作为在线编程开发工具,其编程语言不仅可以采用常规PLC的梯形图(LAD)和指令表(STL),而且还可采用面向控制的结构化高级语言(例如B&R Automation Basic 、C语言)。
  本系统采用B&R Automation Basic 作为编程语言,系统采用2 个任务层来完成通信功能。负责通信的任务(任务1)工作在标准任务层TC#4,扫描周期为100ms;负责循环设置各变频器参数和频率的任务(任务2)工作在标准任务层TC#1,扫描周期为10ms,优先级高于任务1。在运行程序之前,须将模块"dvframe.br"下载到CC,以实现对帧驱动器的管理。
  3.3.1 初始化接口
  串口初始化程序必须放在程序的初始化部分,即仅在首次扫描时运行初始化程序。本例设置串口参数为:RS-485 接口,波特率9600b/s,1 个偶校验位,8 个数据位,1 个停止位。设置
  如下:(* initprogram*) myconfig.ldle=2;最大字节间隔时间;设置串口初始化参数FRM-xopen(1, "SS2.IF2", "RS485,9600,E,8,1",adr(my-config),status,ident)enable=1
  3.3.2 向变频器写数据
  串口初始化成功后,就可以通过帧驱动器的写命令向串口写数据,以实现对变频器的控制和监测。程序如下:
  If(status=0)and(enable=1)then:// 串口初始化成功
  FRM-gbuf(enable,ident,g-stst,buffer,buflng)://获得写缓冲区
  If(g-stat=0)then enable="0"  write="1":// 允许写操作
  endif endif outbufaccessbuffer://  获得指向写缓冲区的指针;向写缓冲区写数据,其中(ADR~HSW1)为全局变量
  outbuf[0]=$02:// 起始字符
  outbuf[1]=$0c://数据长度字符outbuf[2]=ADR://  变频器地址outbuf[3]=PKEh:// 变频器参数
  outbuf[4]=PKElotbuf[5]=$00outbuf[6]= $00outbuf[7]=VALh]:// 变频器参数值outbuf[8] =VALloutbuf[9] =STWh:// 变频器运行参数
  outbuf[10] =STWloutbuf[11] =HSWh:// 变频器输出频率
  outbuf[12]=HSWl://计算效验和
  bcc=02 loop j="1" 12 do
  bcc=bcc×oroutbuf[j]loopoutbuf[13] =bccoing=14:// 定义写缓冲区的长度
  if(write=1)then FRM-write(1,ident,adr(outbul),olng,w-stat) ://向串口写数据
  write=0
  if(w-stat<>0)then  FRM-write(1,ident,adr(outbul),olng,rostat):// 释放写缓冲区
  endif
  endif
  3.3.3从变频器读数据
  由于USS 通信协议由一个双向信息表组成,在向变频器写完数据后,须通过帧驱动器的读指令来读取变频器的返回报文。程序如下:
  FRM-read(1,ident,r-stat,r-buf,rbuflng)://从串口读数据
  If(r-stat=0)then memcpy(adr(mybuf),r-buf,rbuflng)://保存读缓冲区中的数据FRM-rbuf(1,ident,r-buf,rbuflng,rbstat)://释放读缓冲区
  4  结束语
  本文利用PCC的帧驱动器和Micro Master 变频器的串行通信功能,实现了PCC对多台变频器的网络控制,并能实时监测各变频器的运行状态,从根本上增强了系统可靠性,提高了生产效益。采用B&R Automation Basic 开发的串行通信程序,并在实践中取得良好的运行效果。该程序具有通用性,针对不同的通信协议,只需做简单的修改,就可以模块式地添加到其它复杂项目中,既可提高系统的可靠性,又可缩短项目的开发周期。将该方法与新型控制理论相结合,可实现高精度的同步传动和多电机协调控制。
  参考文献
  1  齐荣,等新一代可编程计算机控制器技术[M].西北工业大学出版社,2000
  2   刘计讯,现代可编程计算机控制PCC 及其应用[J].集成电路应用,2000(3):68~69

社区公告

贝加莱是一个总部位于奥地利并拥有遍布全球分支机构的创新驱动型自动化企业,2017年7月,贝加莱成为ABB集团的一个业务单元。作为全球工业自动化领域的领导者,贝加莱融合了前沿技术与先进的工程能力,为各个产业客户提供机器与工厂自动化、运动控制、HMI以及集成安全技术的完整解决方案。贝加莱保持持续的创新精神,为客户提供更为简化以及超出预期的工业自动化领域前沿技术与方案。

联系贝加莱

贝加莱工业自动化(中国)有限公司
联系人:王琳
地址:上海市田林路487号宝石园21号楼
邮编:200233
电话:021-54644800
传真:
公司网址:http://www.br-automation.com/zh

扫我吧,即刻关注贝加莱微信公众号
扫我吧,即刻关注贝加莱视频号
扫一扫,进入贝加莱问答社区小程序

网友留言反馈

  • 网友反馈
  • 左旭锋 在2024/7/9 11:33:00留言
  • 留言类型: 我想得到贵公司产品详细资料,我让贵公司技术支持人员联系我,
  • 详细留言: 技术支持
  • 周佳豪 在2024/7/4 9:12:00留言
  • 留言类型: 贵公司产品销售人员联系我,
  • 详细留言: 需要一个这款驱动器80SD100XD.COXX-K01
  • 王亮亮 在2024/6/15 12:26:00留言
  • 留言类型: 我让贵公司技术支持人员联系我,
  • 详细留言: 贝加莱automationstudio中文手册
  • 王燕 在2024/6/12 10:56:00留言
  • 留言类型: 得到贵公司产品的价格信息,
  • 详细留言: 需要咨询两款电源的价格和货期:PS3100/PS3050
  • 卢清秀 在2024/6/7 16:26:00留言
  • 留言类型: 我想得到贵公司产品的价格信息,
  • 详细留言: 计数模块NC150(partno.3NC150.2)1个,询价

更多请进入空间管理中心查看

互动反馈

1、请选择你的需求:


2、请填写详细需求:

  • 姓名:
  • 公司:
  • 电话:
  • 邮箱:

如果您是本站注册会员,请登录后提交反馈。非注册会员,请直接填写以上个人信息。

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