1.引言
本文所研究的通讯系统是1.5MW风力发电并网控制系统的重要组成部分之一,该系统采用风速风向传感器、可编程逻辑控制器、无线传输模块等设备实现向风力发电机组主控站实时传递风速、风向信息的功能。在风力发电系统中,并网装置的控制系统必须满足能在较宽的风速变化范围内实时追踪风能的最大功率点,以获得最大的发电效率,这就客观上要求主控系统须实时掌握风速和风向信息以便及时做出相应的调整,提高传动系统的柔性,使功率输出更加平稳。
2.通讯系统组成
图1 通讯系统框图
图1为该通讯系统的结构简图,其中风速风向传感器和控制主站的通讯是通过通讯子站来实现的,通讯子站是由CPU224以及一个无线传输模块SC-107组成,该无线传输模块与主站的无线模块分别通过通讯子站以及控制主站的COM2口与其连接。
3. 通讯系统的设计
3.1格雷码转换二进制
通讯子站按照功能可以分为三个部分:格雷码与二进制之间的转换、PLC的自由口通讯和CRC校验。格雷码与二进制转换单元用于将风速传感器传过来的格雷码转换成CPU能够识别的二进制,自由口通讯单元用于实现通讯子站与控制总站之间的通讯,CRC校验单元用于实现信息帧的实时校验,以保证系统通信的准确性和可靠性。
在随动位置控制系统和位移检测中,系统要控制的量有线位移或角位移,如在风电系统中风速风向传感器要进行旋转物体角位移的测量,旋转编码器是必不可少的,它能将角位移转换成数字信号,根据其结构特点,为了减少输出数字信号的错误几率,一般采用格雷码形式输出。
格雷码是一种无权码,采用绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,反射、自补特性使得数据求反非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式,因为在某些情况下,例如从十进制的3转换成4时,二进制码的每一位都要变,使数字电路产生很大的尖峰电流脉冲。而格雷码是一种数字排序系统,它在任意两个相邻的数之间转换时,只有一个数位发生变化,另外由于最大数与最小数之间也仅有一位数不同,故又叫格雷反射码或循环码。
由于在数字系统中只能识别0和1,各种数据要转换为二进制代码才能进行处理,所以要把风速传感器输出的二进制格雷码转换成二进制码。其转换法则是保留格雷码的最高位作为自然二进制码的最高位,而次高位自然二进制码为最高位自然二进制码与次高位格雷码相异或而得到,而自然二进制码的其余各位与次高位自然二进制码的求法相类似。格雷码转换为二进制码程序流程图如图2所示。
图2 格雷码转换为二进制码程序流程图
3.2 自由口通讯
在1.5MW垂直轴风力发电系统中,由于风速传感器位于转动的垂直轴顶端,在运行时是随垂直轴一起转动的,与位于地面的控制主站控制箱无法用传输线连接。所以要把风向风速信息通过通讯子站实时的传送到控制主站,必须把通讯子站放置于旋转的杆塔内部,采用无线传输模块实现通讯子站和控制主站之间的通讯。
本系统采用无线模块SC-107,它共有三种可用接口方式:TTL串口方式/RS232方式/RS485方式。本系统选择RS485为接口方式,该无线模块具有完善的通讯协议,传输距离远,在天线高度大于3米的情况下,可靠传输距离大于2500米,完全满足通信系统的要求。
S7-200系列PLC内部集成了RS-485串行通讯口,可在PPI(point to point)、MPI(multi-point)和自由口(free point)3种通讯方式下工作,PPI和MPI方式只适用于SIEMENS SIMATIC 工控产品之间用传输线的通讯,这种方式是利用其内部的编程指令实现通讯的,无法与第三方厂商的工控产品进行通讯。
自由口通讯方式是S7-200 PLC一个很有特色的功能,它使S7-200可以与任何具有串行口且通讯协议公开的智能设备进行通讯,自由口通讯在物理接口上要求双方都使用RS485接口,其通讯协议完全由用户程序控制。鉴于本文通讯子站是通过无线模块实现和控制主站进行通讯的,故本文选择自由口通讯方式。
本测控系统所采用的CPU224有两个串行RS-485通讯口,每个串行口都可以通过用户编程来选择不同的通讯协议。SMB30和SMB130分别用来配置通讯端口0和通讯端口1的工作模式,通讯端口控制字节设置如图3所示。
3.2.1通讯协议确定
通讯协议是指通讯双方就如何交换信息所建立的一些规定和过程,它是通讯网络的灵魂。由于S7-200系列PLC只有工作在自由口通讯方式下才需要用户自己定制协议,因此,本系统无线模块和PLC之间的通讯协议制定如下:
(1)串行通讯波特率为9600bps,毎字符8位,字节校验采用无校验方式。
(2)通讯采用中断方式进行,连接中断0到接收结束事件,中段1到为10ms定时中断,中断2到发送结束事件。
(3)一个完整的数据帧至少包括4个字节:第一个字节为起始字节,表示通讯开始;第二个字节为状态字节(或命令字节),用于说明通讯的目的或内容;中间字节为传送的数据,(如果为命令字节,则中间字节没有内容);最后还有一个校验字节和一个通讯结束标志字节。
(4)设定信息结束字符为16#A0。
图3 通讯端口控制字
3.2.2通讯程序的设计
通讯程序的设计需要遵循一定的约定,如中断通讯处理程序要短小精悍、要避免在同一端口XMT与RCV指令的同时执行等,本文所编写的通讯流程图如图4所示。
图4自由口程序流程图
3.3CRC校验
在通信过程中,由于信道上存在各种复杂因素(例如:冲击噪声和热噪声等)的影响,信号将受到不同程度的干扰,严重时会造成误码甚至阻断通信、所以应对接收的数据进行校验,保证数据通信的准确可靠,其中循环冗余校验码(CRC校验)是目前计算机网络通信器应用最为广泛的一种校验编码方法,是一种强有力的检测手段,该技术被用于各种数据通信系统中。
PLC是适合工业现场使用的控制器,它的编程语言和方法与计算机有较大的不同,所以,要把高可靠性的CRC校验算法应用于PLC,必须在CRC基本原理的基础上在进行变形处理,根据CRC校验的原理推论,任何一个为8的倍数的数据序列的校验码,都可以简化为三字节数据求余,因此计算数据序列的校验码可归结为如何实现三字节数据序列求余。
在利用计算机进行CRC计算时,为了简化运算,通常把求余算法转换为双字节运算,而CRC-16的生成多项式G(X)=X16+X15+X2+1为17位,以16进制表示为18005H,因此需做变换,即把最高位去掉,为8005H。
仍以上述三字节数据序列D123=[d1,d2,d3]为例,其计算思想为:取第一字节d1,低字节补零,则为双字节d10,左移8次,当移出位为1时,对生成多项式进行模2减法运算,得到余数;取第二字节d2,低字节补零,则为双字节d20,与前面余数模2进行加法运算,重复前述移位和计算过程,得到新的余数;对第三字节同样处理,最终得到三字节序列的余数。
对多字节数据序列的求余,在前三字节数据序列求余的基础上类推即可。
该软件为可以计算任何字节个数的通用程序,设计过程中主要考虑以下环节:
(1)CRC程序作为一个子程序供主程序调用,由于使用的是不带参数的调用指令,所以要处理好输入数据的存储地址设计(指针地址)。
(2)子程序中使用了双循环结构,外层循环为输入数据的字节个数,内层循环对每个字节中每一位进行处理。
(3)编程时采取字节顺序右移的方式,当溢出1时,与生成多项式进行“异或”运算(对多项式进行编码时,多项式各幂次的系数总在模2域内做运算,这时加法和减法皆为“异或”运算)。
(4)对求CRC校验码的字节序列的首字节,设定了一个初始化因子,这对程序很重要,在解码过程中,也要使用相同的初始化因子。图5所示为实现本算法的PLC软件流程简图。
图5 CRC校验程序流程图
5. 实验结果分析
将该通讯系统应用于许继集团研发的1.5MW垂直轴风力发电控制系统中,采用本文所写的程序,对通讯系统进行了实验, 实验结果如下所示:
图6 CPU224内存单元数据
图6为STEP7-Micro/WIN开发环境对CPU224部分内存数据的监视界面,其中VD0中的内存数据显示的是由风向风速传感器传过来的格雷码,QD0内存中的数据显示的是由CPU224把传感器传过来的格雷码转换成的二进制数的十六进制表示形式。
为了检验该通讯分站的通讯程序能否正常可靠运行,程序编制好之后,可以利用支持串口调试的软件工具(如SSCOM3.2)进行软件通讯测试,就可确定程序是否可靠。
由图7串口调试软件的显示界面可以看到,串口返回的数据显示子站CPU224向主站发送和从主站返回的的数据均为为 99223377,所得的CRC校验码为DA64。
图7 串口测试软件的界面
由图8 CRC校验软件的显示内容可知:由CRC校验专用软件得到的校验值可知,所得到的CRC校验值是正确的.
图8 CRC校验软件的界面
6. 结论
本系统已经成功应用于许继集团研发的1.5MW垂直轴风力发电机控制系统中的通讯系统中,试运行表明,通讯系统硬件设计正确,程序编写合理,数据传输实时准确。
本系统的设计思路是根据垂直轴风力发电现场的实际控制要求提出的,这种通讯模式,尤其是通过无线传输模块进行PLC之间的通讯是一种新尝试,具有较高的工程应用价值,它不仅充分利用了无线传输模块和PLC各自的优点,提高了控制性能,满足了现场要求,适用于工作环境恶劣、干扰强但又要求较高控制精度的实时工业控制系统中。
(摘编自《电气技术》,原文标题为“基于PLC控制的垂直轴风力发电控制系统中通讯系统的研究”,作者为王全胜、宋建成、姚为正。)