6ES7214-1AD23-0XB8库存充足
1引言
风力发电技术发展很快,装机容量不断增大,在世界各地都受到了广泛重视。在目前的变速恒频风电系统中,使用双馈感应发电机(DFIG)的双馈型风电系统市场份额大,使用永磁同步发电机(PMSG)的直驱型系统发展很快[1-2]。不管是双馈型还是直驱型风电系统,其整体控制都比较复杂,需要有主控系统来协调变桨、偏航、变流器、测量、保护和监控等多项环节,且风电系统通常运行环境比较恶劣,各执行机构之间可能存在一定的距离,通讯问题至关重要[3-4]。
可编程序控制器(Programmable LogicController,PLC),是一种专为工业环境应用而设计的电子系统,采用可编程序的存储器,在内部存储执行逻辑运算、顺序控制、定时、计数和算术运算操作的指令,并通过数字式和模拟式的输入和输出,控制各种类型的生产过程。PLC具有编程简单,使用方便,抗干扰能力强,在特殊的环境中仍能可靠地工作,故障修复时间短,维护方便,接口功能强等优点[5],非常适合风电系统使用。
本文说明了了风力发电通讯系统结构,选择罗克韦尔自动化的Controllogix作为主控PLC,实现基于PLC的风电通讯系统;基于VC++实现通讯系统上位监控,讨论了VC++实现原理,给出了基于Controllogix的直驱风电通讯系统监控效果。
2风力发电通讯系统结构说明
直接驱动型风电发电系统结构图如图1所示,包括风电机组,永磁同步发电机,背靠背变流器,由DSP为核心构成的变流器控制器,由PLC为核心构成的风力发电主控系统及上位机。通讯系统主要由PLC及上位机构成,PLC还要与变流器控制DSP之间进行通讯,由通讯系统实现对直驱型风电系统的监控,上位机与PLC之间采用串口通讯。PLC作为下位机使用,完成控制、数据采集,以及状态判别等工作;上位机用来完成数据分析、计算、信息存储、状态显示、打印输出等功能,从而实现对风电系统的实时监控。
由图1可以看到,PLC既要与上位机连接,又要与变流器控制DSP连接,图1中变流器采用双DSP控制,其他还有变桨控制器等,可能涉及多个处理器,需要由PLC来进行协调控制,要由中央控制室的上位机进行集中监控,基于PLC的风力发电通讯系统作用非常重要。
图1 直接驱动型风力发电系统结构图
本文选用罗克韦尔自动化的Controllogix作为主控PLC,对直驱型风力发电通讯系统进行初步探索。Controllogix是罗克韦尔公司在1998年推出AB系列的模块化PLC,是目前世界上具有竞争力的控制系统之一,Controllogix将顺序控制、过程控制、传动控制及运动控制、通讯、IO技术集成在一个平台上,可以为各种工业应用提供强有力的支持,适用于各种场合,大的特点是可以使用网络将其相互连接,各个控制站之间能够按照客户的要求进行信息的交换。对于Controllogix,在组建通讯网络时,Ethernet/ip、controlnet是比较常用的通讯协议,Controllogix还支持devicenet、DH+、RS232、DH485等,而RS-232/DF1端口分配器扩展了控制器的通讯能力。Controllogix比较适合用于构建风力发电通讯系统。
3基于VC++实现的通讯系统上位监控
为了更加灵活的监控下位机系统的运行,并方便下位机功能的调试和扩充,本文基于VC++6.0开发了与直驱型风电通讯系统配套的上位机软件CMonitor,可以提供良好的用户界面和工具栏、菜单等多操作途径,并配合形象的位图动画功能来实时显示系统实际状态和拓扑,可以完成对风电系统运行方式和运行参数的控制、修改和监视,完成对历史数据的收集和分析,方便用户对风电系统进行远程监控和调试。
对下位机PLC串口通信模块进行相应初始化后便可以通过PLC的SCIRX和SCITX收发数据,由于PLC接收到的数据除了包含命令字外,可能还有其他的数据信息,针对不同类型的命令字必须有不同的处理方法。定义一个变量cmd来保存当前的命令字信息。
struct {int ID; int counter;} cmd;
其中ID是用来标识当前的命令字,counter则辅助记录当前命令字下总共处理过的数据字节数。利用变量cmd可以有效简化下位机通讯功能的实现过程,提高通信函数的稳定性。如图2所示,在SCI通信服务函数中,程序根据cmd.ID的值进入不同的分支,每个命令字的任务执行完毕后都将cmd.ID赋为0,使空闲时进入0x0分支,不停检测新的指令,功能的修改或扩充只需要对相应分支做修改即可,易于维护。
图2 下位机串口通信函数流程图
图3中列出了几种典型命令字的处理流程,它们均为图2所示流程图的一部分。图3(a)中cmd.ID为0,表示当前无命令字,程序将尝试从串口读取数据,这样一旦有新的命令字,程序便可以马上获知。图3(b)中所示为cmd.ID为0x01时的处理流程,此时表明上位机在测试通信是否正常,如果可以向串口发送数据,则程序在发送完毕表示成功的数据0x01后将cmd.ID重新赋值为0;否则,程序返回,这样cmd.ID未被修改,中断函数在下次运行时仍会处理0x01命令字。图3(c)为处理0x02命令字的流程,根据预先规定0x02对应的指令是禁止PWM输出,当cmd.ID为0x02时,修改相应的寄存器,禁止PWM输出,之后由于要向上位机发送执行成功的信号,也就是发送0x01,后将cmd.ID的值修改为0x01(命令字0x01会在执行完毕后将cmd.ID赋值为0)。这样在下一次执行通信服务函数的时候将会直接进入0x01命令字分支。命令字0x03,0x04,0x05的处理流程与图3(c)相似。
图3 几种典型命令字的处理流程
命令字0x06对应的指令是修改系统的运行参数,包括有功电流参考(2个字节),无功电流参考(2个字节),是否使用载波相移和是否使用SVM(1个字节),共有5个附加数据,其处理流程如图3(d)所示,程序判断串口是否有数据可读,有则读取相应数据并存储,再将计数值加1,之后判断计数值是否已达到5,是则说明5个附加数据已经读取完毕,此时根据读取的数据更新下位机程序中的相应变量,后将cmd.ID改为0x01,向上位机发送执行成功的响应信号。命令字0x07对应的指令是采集直流电压,其处理流程如图3(e)所示。程序判断是否可向串口发送数据,若可以发送,则根据计数值确定发送低位或者高位,计数值加1,之后判断计数值是否为2,是则表明直流电压已经发送完毕,遂将cmd.ID赋值为0,后程序返回。
图3(f)为命令字0x12的处理流程,其相应指令为禁止PLC存储新的数据并从PLC接收存储的数据,数据共有1600个字节。程序判断是否可以向串口发送数据,如果可以发送则根据计数值来发送相应的数据并将计数值加1,之后判断计数值是否达到1600,是则将cmd.ID赋值为0,进入等待新指令环节。
图3中各命令字的处理流程具有典型性,图2中其他命令字的处理流程均可以在图3中找到相对应的一类,其实现过程变得简单、直观,模块化程度很高。
4 实现效果
本节给出了上位机软件CMonitor的界面图形,该软件已经具备了较完善的功能,可以应用于下位机程序开发、优化和对对下位机系统的监控中,并通过实际运行证实了有效性。
4.1 启动及登陆界面
CMonitor的启动和登陆界面如图4所示,启动界面显示了软件的名称(ConverterMonitor,CMonitor)、版本(V1.0)以及单位信息(中国科学院电工研究所)等;登陆后CMonitor自动测试通信是否正确并检测MSI的工作状态,一切正常后才可以使用软件的各项功能,防止对下位机可能出现的误操作等,提高了系统的安全性和稳定性。
图4Cmonitor启动及登陆界面
4.2 控制面板界面
控制面板是对直驱型风电系统系统进行控制的主要面板,主要包括如下三部分。
(1)拓扑控制部分。显示了系统的电气连接,包括永磁同步发电机,电机侧PWM变流器,直流母线,电网侧PWM变流器,脉冲开关,并网电感,并网继电器(3-PhaseBreaker),三相电网等。单击拓扑图的脉冲开关位置,可以打开或者关闭脉冲开关,从而实现对控制脉冲的控制;单击拓扑图的并网继电器位置,可以断开或者闭合三相继电器,实现风电变流器的并网、脱网。脉冲开关和并网继电器的图形会随着实际电路的变化而变化,可以直观的控制和反映系统的实际状态。
(2)参数控制部分。可以修改风电系统在运行中的有功电流(Iq)和无功电流(Id),控制风电系统变流器使用SVM还是SPWM调制方法。
(3)日志记录部分。显示用户在当前面板上的所有操作并给出操作结果,可以回顾用户的各个操作步骤,监视MSI的通信状态并为事故分析提供借鉴和参考。
4.3 数据面板界面
数据面板的功能是对系统运行中的数据进行采集,它提供了两种采集模式:实时数据采集和历史数据采集,均可以对直流电压、电网A相电压、电网B相电压、电网C相电压、调制波A相电压、调制波B相电压、调制波C相电压以及逆变器输出的A相电流、B相电流和C相电流共计十种数据进行采集。
图5所示数据采集面板界面中,左侧为实时数据采集部分,点击相应的采集按钮即会完成采集并显示出来;右侧为历史数据采集部分,点击右上方指示灯下的人形按钮即可以进行历史数据采集并绘制相应的波形。当图5(a)所示的数据采集过程完毕后,虚拟示波器便会将采集到的波形显示出来,如图5(b)所示的数据面板的虚拟示波器界面,用户可以将多达十种变量的波形进行显示、隐藏、移动、放缩等操作,可以用来监视程序运行、验证程序功能,了解程序的工作状态。
图5 数据采集面板界面
4.4 工具面板界面
CMonitor的工具面板界面如图6所示,它可以将Tek示波器波形捕获的波形进行转换,并可以设置虚拟示波器各通道波形的颜色。程序的封面显示了软件的作者和版权等信息,其功能示意图如图6(a)、(b)所示。图6(a)所示为工具面板打开的一个实验波形文件,可以看出该图形底色为黑色,各波形为彩色(明暗程度不同),经过工具面板处理后的波形如图6(b)所示。对比图6(a)和图6(b)可以看出,图6(a)保持了各通道波形与图6(b)相同,但底色却变为了白色,工具面板完成了将示波器波形转化为标准实验波形的功能,方便了对波形的分析。
图6 工具面板界面
5结束语
本文基于罗克韦尔自动化PLC-Controllogix实现了直驱型风力发电通讯系统,主要研究了PLC与上位机之间的串口通讯,基于VC++构建了上位监控软件,可以有效地对风电系统的运行进行监控,显示运行状态,记录历史数据及操作,绘制测试波形,并对实验波形进行处理;可以提供有好的人机界面,通过优化及完善功能,可以为直驱型风电系统的调试、监控提供便利。
仿真自动化控制系统提供了下述功能,“真实的”自动化控制系统不具备这些功能:
仿真的 CPU中正在运行时可以用“Stop”选项中断程序,恢复“运行”时是从程序中断处开始继续处理程序。
与真实的 CPU 一样,仿真软件可以改变 CPU 的操作模式(RUN,RUN-P 和 STOP)。 但与实际 CPU 不同的是仿真的 CPU 切换到 STOP模式并不会改变输出的状态。
仿真软件中在目标视图中变量的每个改变,其存储区对应相关地址的内容会被更新。CPU并不是等到循环周期结束或开始时才更新改变的数据。
使用关于程序处理的选项可以指定 CPU如何执行程序:
选择“By cycles”程序执行一个周期后等待命令再执行下一个循环周期。
选择“Automatic”程序的处理同实际自控系统一样:一旦一个循环周期结束马上执行下一个周期。
仿真定时器可以使用用自动或手动方式处理,自动方式按照程序执行结果,手动方式可以给定特殊值或复位定时器。复位定时器可以复位单独的定时器或一次复位所有定时器。
可以手动触发诊断中断 OB:OB40 到 OB47 (过程中断),OB70 (I/O 冗余错误),OB72 (CPU 冗余错误),OB73(通信冗余错误),OB80 (时间错误),OB82 (诊断警告), OB83 (插拔模块警告),OB85(程序执行错误)和 OB86(机架故障)。
过程映像区和 I/O 区:如果改变一个输入映像区的值,S7-PLCSIM立即将此值复制到输入外设区。这就意味着从输入外设区写到输入过程映像区所需要的值在下一个循环周期开始时不会丢失。同样如果改变了输出映像区的一个值,此值立即被复制到输出外设区。下图所示为循环周期的过程顺序:
图 1: 循环周期的过程顺序
S7-PLCSIM与“实际”的自动化系统还有以下不同:
诊断缓冲区:S7-PLCSIM不能支持所有写入诊断缓冲区的错误消息。例如,关于 CPU 中的电池电量不足的消息或者 EEPROM 错误是不能仿真的。但大部分 I/O和程序错误都是可以仿真的。
在改变操作模式时(比如从 RUN 切换到STOP)输入输出没有“安全”状态。
不支持功能模块(FM)。
不支持 点对点通信(例如同一机架上的两个 S7-400 CPU之间)。
S7-PLCSIM 与 S7 400 CPU 一样支持 4个累加器。在某些情况下 S7-PLCSIM 上运行的程序与真实的只有 2 个累加器S7 300 CPU上运行结果不同。
输入/输出的不同
大多数 S7-300 产品系列的 CPU 可以自动配置输入/输出设备:如果将模块连接到控制器,CPU即自动的识别此模块。对于仿真的自动化系统,这种自识别是不能模拟的。如果把一个自动组态好 I/O的 S7 300 CPU 程序装载到S7-PLCSIM 中,系统数据中将不包含任何 I/O 组态。如果使用 S7-PLCSIM 来仿真 S7 300 的程序 ,为了CPU 能识别所使用的模块必须装载硬件组态。
在 S7-PLCSIM 中 S7-300 CPU 不能自动识别I/O,例如 S7-315-2DP, S7-316-2DP or S7-318-2DP 等 CPU,为了能将硬件组态装载到S7-PLCSIM,需要创建一个项目。拷贝相应的硬件组态到这个项目并装载到 S7-PLCSIM。从任意 S7项目装载程序块,I/O 处理都不会有错误。
S7-PLCSIM 的功能范围
S7-PLCSIM 仿真 S7 控制器并包含下述存储区:
存储区 | 描述 |
计时器 | T0 to T511 |
标志位 | 标志位存储区 131.072 位 (16KB) |
总输入输出地址存储区 | 输入输出存储区 131.072 位 (16KB) |
过程映像区(可调整;每个循环更新) |
大: 131.072 位 (16 KB) |
本地数据 (可调整) | 大: 64 KB |
代码块和数据块 | 2048 功能块 (FB) 和功能 (FC) |
系统功能块(SFBs) | SFB0, SFB1, SFB2, SFB3, SFB4, SFB5,SFB8, SFB9, SFB12, SFB13, SFB14, SFB15, SFB16, SFB19, SFB20, SFB21,SFB22, SFB23, SFB32, SFB33, SFB34, SFB35, SFB36 和SFB37 |
系统功能 (SFCs) | SFC0, SFC1, SFC2, SFC3, SFC4, SFC5,SFC6, SFC7, SFC9, SFC10, SFC11, SFC13, SFC14, SFC15, SFC17, SFC18,SFC19, SFC20, SFC21, SFC22, SFC23, SFC24, SFC25, SFC26, SFC27,SFC28, SFC29, SFC30, SFC31, SFC32, SFC33, SFC34, SFC35,SFC36,SFC37, SFC38, SFC39, SFC40, SFC41, SFC42, SFC43, SFC44,SFC46, SFC47, SFC48, SFC49, SFC50, SFC51, SFC52, SFC54, SFC55,SFC56, SFC57, SFC58, SFC59, SFC60, SFC61, SFC62, SFC64, SFC65,SFC66, SFC67, SFC68, SFC69, SFC79, SFC80, SFC81 对于 SFC26 和 SFC27, 只支持输入参数0。
|
组织块(OBs) | OB1 (主循环),OB10 到 OB17 (时钟中断),OB20 到 OB23 (时间延时中断) ,OB30 到 OB38 (定时中断), OB40到OB47(过程中断) ,OB70 (I/O 冗余错误) ,OB72 (CPU冗余错误) ,OB73 (通讯冗余错误) ,OB80 (时间错误) ,OB82 (诊断中断),OB81 (电源出错) ,OB83 (删除/插入模板中断),OB84 (CPU 硬件故障), OB85 (程序执行优先级故障) ,OB86 (机架出错),OB87 (通讯出错) 。OB90 (后台组织块),OB100 (暖启动) ,OB101 (热启动) ,OB102 (冷启动),OB121 (编程错误) ,OB122 (I/O 访问错误) |
请注意以下SFB,SFC 和 OB 将作为 NOP语句执行(不需操作)。程序中调用的 NOP 不能修改。
SFB12, SFB13, SFB14, SFB15, SFB16,SFB19, SFB20, SFB21, SFB22 和 SFB23
SFC7, SFC11, SFC25, SFC35, SFC36,SFC37, SFC38, SFC48, SFC60, SFC61, SFC62, SFC65, SFC66, SFC67,SFC68, SFC69和SFC81
OB81, OB84, OB87 和 OB90
测控网络技术的应用为实现生产过程的自动化,提高产品质量和安全生产提供了保障,Modbus通信协议具有侦错能力强、数据传输量大、实时性好等特点[1]成为目前自控领域使用非常广泛的通讯协议。通过此协议,不同厂商生产的控制设备可以连成工业网络,进行集中控制和数据共享等。目前国外生产的层绕机自动化程度高,自动排线jingque,主动导开放线,层绕质量高,但价格昂贵。国内研制出的层绕机自动排线不够稳定,且需人工干预,大多数为被动导开放线,缠绕质量不稳定,生产效率低,均未采用网络测控。针对储丝机构料位的控制方案以及基于ModbuS协议的层绕机测控系统,采用总线结构并通过网络实时jingque控制,较好地解决了焊丝恒张力层绕控制和焊丝主动导开的技术难题,实现了焊丝的层绕线速度升降自适应,自动定长停车等功能,提高了焊丝的层绕精度和设备的成功率,且价格低廉。
1测控网络的结构和功能
随着各种钎丝制品(如焊丝、电机和变压器绕组等)需求量猛增,迫切需求高精度和自动化程度高的连续生产缠绕设备,提高生产率和产品质量,加快基于全数字交流伺服的高精度缠绕技术的研究迫在眉睫。
1.1 测控网络的总体结构
基于Modbus协议的层绕机测控系统总体结构如图1所示,包括中央控制单元、收线测控单元、张力测控单元、导开测控单元、直线行走单元和人机交互系统。
1.2 各网络节点的结构和功能
中央控制单元PLC:对各单元所传来的数据进行处理,控制各单元的执行动作。
收线测控单元:利用编码器测出主轴电机速度,由PLC控制收线变频给定值。
张力测控单元:通过监测浮动辊所处位置即料位反映焊丝张力的变化情况,将料位分成9个状态,采用模糊控制对料位跟踪调整,使浮动辊处于佳位置。
导开测控单元:根据张力变化对导开电机进行控制,实现主动导开功能。
直线行走单元:采用台达伺服电机作为执行机构,保持焊丝缠绕角度。
人机交互系统:采用台达触摸屏对各种生产参数进行设置以及监测系统运行状况,发生故障作报警提示,RS一232接口连接方式。
2 通信系统介绍
Mobdus通讯协议广泛应用于工业控制领域,协议结构简单通用,大部分工控系统都支持这种协议。ModbuS标准定义了051模型第7层上的应用层报文传输协议,它还将串行链路上的协议标准化,以便在一个主节点和多个从节点之间进行查询和应答。Modbus串行链路协议是一个主/从协议,该协议位于051模型的第二层。位于051第7层的MOdbus应用协议定义了简单的独立于其下面通信层的协议数据单元(PDU),RS一485总线网络的Modbus协议映射在发起ModbuS事务处理的主节点构造ModbusPDU,添加附加域构造Modbus串行链路通信PDU。Modbus通信总是由主节点发起,主节点向从节点发出查询命令并处理响应,从节点在没有收到主节点的请求时并不主动发送数据,也不与其它子节点互相通信。主节点在同一时刻只会发起一个Modbus事务处理。
2.1 协议格式
Mdobus协议定义两种串行传输模式:RTU模式和ASCl模式,规定了报文域信息位(bits)在线路上串行传送方式,确定了数据信息如何形成报文和报文如何解码。本系统采用RTU模式。在消息中的每个SBit字节包含两个4Bit的十六进制字符,见表1。这种方式的主要优点是:在同样的波特率下,可比ASCll方式传送更多的数据[2] 。
该模式下消息发送至少要以3.5个字符时间的停顿间隔开始。传输过程中,网络设备不断侦测网络总线,包括停顿间隔时间内。当个域(地址域)接收到,相应的设备就对的传输字符进行解码,一旦有至少3.5个字符时间的停顿就表示该消息的结束。
2.2 检查码(CRC)
主机或从机可用校验码进行判别接收信息是否出错。错误检测域包含一16Bits值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循环冗长检测方法得出的。CRC域附加在消息的后,添加时先是低字节是高字节。故CRC的高位字节是发送消息的后一个字节。错误校验采用CRC一16校验方法图。
CRC 校验码计算如下:
2.3 通信程序编制及参数设定
2.3.1 人机交互系统
2.3.1.1 主画面
(1) 在操作面板上设有一个“重量CLR清零”按钮,此按钮按下,则已缠绕焊丝重量清零;
如果保持按下35以上,则累计重量清零(延时功能由PLC实现)。
(2)在主 画面上设有“预置重量、焊丝线径、已绕重量及累计重量”等数据。
(3)设有 “用户参数”(见表4)、“工艺参数”和“机械参数”三个子画面切换按钮。
2.3.1.2 分画面
(1) 机械参数:设置排线中心角输人,排线滞后角输人。
(2)导开变频器给定频率补偿设定:可设置高料位导开频率补偿值、中高料位导开频率补偿值、中低料位导开频率补偿值和低料位导开频率补偿值等。
(3) 角度传感器报警和断丝报警停车。
(4) 焊丝比重设定。
2.3.2 变频器
变频器选用台达VFD一B系列,收线和导开电机各有一台变频器驱动,两台变频器与可编程序控制器遵守ModbuS通讯协议。变频器的参数设置见表5。
2.3.3 可编程序控制器
采用台达DVP一SX机型,该机为01点(4DI+ZDO+ZAI+ZAO)特殊主机,内建2位数的七段显示模块,直接对应内部寄存器。扩展模块为DVP06X一H模拟输人/输出混合模块。可编程控制器与变频器建立通讯程序见图2。
主节点访问从节点的程序流程见图3。
3 结束语
测控系统越来越走向分布式、网络化,基于Modbus的网络测控系统在层绕机上已完全实现,主节点与各从节点之间采用了RS一485串行通信总线,使测控网络的连线简洁,信号传输稳定可靠,并采用模糊控制算法取得了良好的张力控制效果,极大提高了缠绕精度和自动化程度。可用企业局域网对测控网络进行管理,通过网关连接到Internet网实现远程测控功能,生产过程控制系统与信息管理系统结合的管控一体化发展,实现企业综合自动化。设备现场运行良好,工作稳定可靠,便于操作,具有广阔的市场前景。