讲述SCADA通讯系统(第四部分)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章 SCADA 通讯系统
3.1. 概述
SCADA 中通讯系统显得非常的重要,可以看成SCADA 系统的神经系统。

而通讯实际是单独的一门学科,想在这里用一个章节讲清楚基本是不太可能的。

这里只能给出一个粗略的说明,详细内容可以参考有关通讯系统和原理的书籍。

通信系统的基本模型见图3-1。

图31-1中发送端的信息源把消息m 转换成信号g(t)。

为了使信号适合于在信道中传送,由发送设备将它变换为s(t)后再送人信道。

信道是指传输信号的通道。

图3-1中噪声源是信道中的噪声以及通信系统中其它各处噪声的集中表示。

由于噪声的干扰,接收端收到的信号r(t)可能不同于s(t)。

接收设备把以r(t)转换为输出信号g’(t),它是g(t)的近似或估计值,最后受信者将g’(t)转换成对应的消息m’(t)。

图3-1 通信系统的基本模型
由g(t)到s(t)称为信道编码,一般调制方式有ASK,FSK,PSK,QAM,TCM 等等。

信道编码经常用在有线和无线通信。

随着DSP 计算能力的提高,AD 、DA 速度和精度的提高,以及数学信息源 发送设备 信 道 接收设备 受信者 g(t) s(t) r(t) g ′(t) m ’(t
噪声源 发送端 接收端
方法的发展,现在信道编码的能力越来越接近香农信息论的理论值,在电话线上,香农信息论的理论值在64K以下,而实际的调制解调器可以达到33.6K甚至56K的速度。

正弦振荡的载波信号可以用Asin(2*π*ω*t +φ),各种调制方式可以用下面的数学公式加以描述。

ASK 信号s(t)= Asin(2*π*ω*t +φ) g(t)=1
s(t)= 0 g(t)=0
FSK 信号s(t)= Asin(2*π*ω1*t +φ) g(t)=1
s(t)=Asin(2*π*ω2*t+φ)g(t)=0
PSK 信号s(t)=Asin(2*π*ω1*t +π) g(t)=1
s(t)=Asin(2*π*ω1*t +0) g(t)=0
PSK和FSK还有很多变型的方式,如DPSK,MSK等。

QAM和TCM过于复杂,在这里不便赘述,请参考有关书籍。

由于通讯过程中存在噪声干扰,就有可能出现差错,那么就要进行差错控制,差错控制的方法就是编码。

通讯编码的数学理论基础是《近世代数》,里面研究群环域的概念,详细内容可以参考相关书籍,而编码解码、检错和纠错是通信与编码学科研究的范畴,国内典型的教材是西安电子科技大学王新梅老师编写的教材,其缺点过于深奥,不太好懂。

而在SCADA系统中经常用的是检错,纠错除了特殊的场合很少使用,检错主要是两种编码方式校验和和CRC校验。

和校验原理非常简单,就是对信息进行加法运算或者模2加法运
算,接收后对信息进行同样的运算,比较运算结果和传输来的校验是
否一致,如果一致认为是正确的,否则认为错误。

这个算法实现起来
非常简单,也得到了广泛的应用,但是其基本原理存在着出现差错检
不出的可能,适合于信道质量比较好的场合。

CRC校验方法可以检出的错误远远超过了和校验,适合比较恶
劣的通讯场合。

CRC校验比较复杂一些,它有一个生成多项式g(x),信息可以看
成一个i(x),设校验位为16位,则校验多项式r(x)=x↑16 *i(x) / g(x)。

则整个发送序列多项式为t(x)= x↑16 *i(x) / g(x) + r(x)。

接收时,如
果没有差错则用t(x)/g(x)=0, 如果有差错就不是0。

这样就可以知道
差错了。

人们已经找到很多的标准生成多项式,比如
CRC-16 g(x)= x↑16+ x↑15+ x↑2+1
CRC –CCITT g(x)= x↑16+ x↑12+ x↑5+1
而CRC的计算需要进行移位和模2加运算,计算机除非有专门的
硬件设备,否则计算起来很慢,为了提高计算速度,一般采用查表计
算的方法,把运算转换成查表和字节运算,这样使得运算速度大大提
高。

下面的一段程序是MODBUS CRC校验的计算方法,体现了上述
的思想。

const unsigned char auchCRCHi[] = {
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1,
0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40
} ;
const unsigned char auchCRCLo[] = {
0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xF A, 0x3A,0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE,0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,0x40
} ;
unsigned short crc(unsigned char *puchMsg , unsigned short usDataLen) {
unsigned char uchCRCHi = 0xFF ; /* high byte of CRC initialized */
unsigned char uchCRCLo = 0xFF ; /* low byte of CRC initialized */
unsigned uIndex ; /* will index into CRC lookup table */
while (usDataLen--)/* pass through message buffer */
{
uIndex = uchCRCHi ^ *puchMsg++ ; /* calculate the CRC */
uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex];
uchCRCLo = auchCRCLo[uIndex] ;
}
return (uchCRCHi << 8 | uchCRCLo) ;
}
当然,还可以用编码解码的方法纠正错误,但是实现起来比较复杂,一般只有在信道非常昂贵的时候才使用如卫星通道和深空通讯。

在SCADA系统中采用可以纠错的编码的极少。

通讯由于介质的不同大体可以分为如下的三种类型:
有线、无线和网络。

单独把网络拿出来是因为这些年网络技术发展很快,目前网络成了传输SCADA信息的一个很重要的方式。

信道分类也可以分为半双工和全双工的信道,但是有时即使信道是全双工的,而协议是半双工的,系统也工作在半双工状态。

3.2. 有线系统
有线的范畴很广,常用的包括电话线、音频电缆、电力载波、同轴电缆、光纤等待,我们这里的有线指的是要有介质连接而且不经过
网络协议而直接进行SCADA协议的通讯方式。

在有线信道中,除了载波信道,普遍来看传输的速度要高于无线信道,误码率低于无线信道,时延也小,可靠性高于无线信道。

其缺点是建设投资大,周期长,而且在有些特殊场合根本无法建设有线的通讯方式。

有线信道中有的是直接传输的数字信号,比如在双绞线上走RS485/RS422信号,在双绞线上通过长线驱动设备进项传输,在光纤上直接传输的都是数字信号。

RS485可以在100KBPS的速度上传输1.2千米,长线驱动器可以到19.2KBPS的速度,光纤可以到几百K 甚至几百兆的速度,传输距离可以在几百米到几十千米。

有线信道很多要用到调制解调设备,如电话线、音频电缆、载波通道,其信道容量肯定小于香农信息论容量。

电话线中的调制解调器可以达到33.6kbps的速度,而载波通道有的只能到300bps的速度。

3.3. 无线系统
无线信道常用的包括无线电台、微波通讯和卫星通讯等。

GPRS/CDMA通讯方式列入网络通讯的范畴。

无线电台由于收到带宽的限值,其信道一般为25KHZ,无线电管理委员会专门划出几个频段用于无线数据传输,主要包括150MHZ 频段,230MHZ频段和470MHZ频段。

目前的调制解调技术可以做到的速度从600bps到19200bps不等。

目前一般都是采用调制解调器和无线电台做在一起的数传电台。

采用无线电台中心站要复杂一些,为了系统能够更好的通讯,需要建设一个很高的全向天线,有的是安装在楼顶,有的是建设专门的铁塔。

实施前要进行频点干扰测试、遮挡测试、场强测试等。

无线电台受到地形和建筑的影响相当严重,有时会出现本来通讯很好,在中间出现一个高层建筑导致无法通讯。

无线电台有时不适宜于城市应用,也不适宜于山区、高原、丘陵地带使用。

适合于平原农村和水面应用。

无线电台是一个典型的半双工轮询系统,系统如果点数很多,轮询一遍所花的时间可能会长达几分钟甚至更长。

另外必须区分无线电台的接口速率和空中速率,这二者是独立的没有关系的两个概念。

空中速率指的是电台在无线信道的实际数据速率,这个速度越快,说明电台的性能越好,而且单位时间传输的数据越多。

接口速率是电台与RTU设备的速率,这个速率只要不小于空中速率和通讯速度没有太大关系。

无线电台可能会受到干扰的影响,严重影响通信性能,甚至完全无法使用。

主要干扰有:同频干扰、高压输电线路电晕干扰、其它射频设备等。

一般不受天文情况的影响,如太阳黑子,太阳磁暴,电离层等。

微波通讯只有在特别重要的场合才实施,其投资巨大,而且要每大约50KM就要有一个中继站,对于地形复杂的场合,可能为了视距原因可能很近就要有一个中继站。

一般的单位是没有财力建设微波系统的。

国内的电力企业当年倒是有一套从各个大区到中央的微波通讯
系统。

微波通讯还是会收到降水和雾的影响的。

卫星通讯更是万不得已才使用,首先其功率太大,一个小型的卫星基站要上百瓦的功率,需要一个1M口径的抛物天线,需要专门昂贵的设备(通讯设备要人民币几万块),而且通讯费用非常高昂,一个报文,可以承载256BYTE的数据需要0.5圆人民币,只有海上,沙漠等实在无法借助其它通讯手段的时候才采用。

卫星通讯相当可靠,除了太阳耀斑、太阳磁暴、暴雨等情况,一般都不会出现通讯中断现象。

太阳耀斑、太阳磁暴会影响卫星的通信,还存在所谓的星蚀效应,就是通信卫星和太阳在同一个方向上,由于太阳是一个很大的干扰源,导致卫星通信中断。

不过中断时间只有几分钟的时间。

3.4. 网络系统
网络通讯方式在无线方式上常用的包括GPRS/CDMA, ZIGBEE, 无线以太网等。

有线方式常用的包括以太网、ADSL、CABLE MODEM 等。

网络通讯方式的优点在于借用现有的网络资源,真正打破了地域的限制,可以构架分布全球的SCADA系统,对于很多全球生产的企业非常有利。

由于网络构建于公共网络之上,在出现突发事件时而且要求SCADA系统在突发事件进行应急处理时,这样的方式可能会因为公众通讯的信息量大增,导致通讯设备瘫痪或者阻塞,而无法应对这样
的应用。

这种通讯阻塞的情况完全有可能出现,所以在构建SCADA 系统的时候,一定要评估这个风险,否则就是一套在紧急情况下不能使用的系统,这个系统可能就没有建设的必要。

对于这种系统一定要采用生存能力强的独立系统,比如无线电台。

在网络通讯上,由于GPRS/CDMA,ADSL等设备都是构建在PPP 协议或者PPPOE协议之上的,其地址分配可能是动态的,也可能是静态的。

而主站的地址可能是静态的也可能是动态的,所以二者可能存在互不知道IP地址的可能,如果没有专门的机制是无法通讯的。

为了保证RTU能和主站通讯就需要做专门的处理。

就TCP/IP通讯而言,双方必须知道对方IP地址和端口号才能通信,而且一般的通讯模型是客户机/服务器模型,而且一般主站作为服务器使用,所以主站系统不能放在防火墙的后面,如果放在防火期后面,防火墙至少要开放几个端口,而且把主机的IP地址通过NAT 的方式映射到公网上,否则RTU不可能和主站通讯。

如果主站地址是静态的,RTU端设置通讯设备时,把主站的IP地址设为主机IP地址。

这样上电后,RTU的通讯设备DTU就可以根据设定的IP地址和端口号及通讯方式(TCP/UDP)找到主站进行通讯。

如果主站是动态地址(比如采用电话拨号上网或者ADSL拨号上网),由于主机地址是动态的,RTU的通讯设备DTU的IP地址也是动态的,双方不可能直接找到对方。

就需要申请一个动态域名解析业务以区别于静态域名解析服务,比如动态域名为,在主站端安装动态域名解析软件,
主站只要开机就登陆到动态域名服务器,比如花生壳,注册自己的IP 地址,告知的地址是XX.XX.XX.XX。

RTU端的DTU 设备设置时其通讯的主机不能设为IP地址,而应该设为,在DTU设备上电后,首先向DNS服务器请求解析的IP地址,DNS服务器根据动态域名解析软件注册的IP地址,告诉DTU,的IP地址是XX.XX.XX.XX,这样DTU知道了主站的IP地址和双方约定的端口号和通讯方式(TCP/UDP)就可以通讯了。

另外,由于通讯是TCP/IP通讯,主站和RTU端的端口号和通讯方式(TCP/UDP)要设成一致。

GPRS/CDMA的应用是无线通讯,几乎没有数传电台的缺点,其构架于无线通讯运营商的网络之上,只要手机能够通话就能工作,缺点是按照流量收费,费用可能略微嫌高。

另外收到网络能力限制,同时能够发起的认证连接数和同时能够维持的连接数有限,对于大规模的应用可能是一个相当大的制约。

一般来看CDMA的通讯速度要高于GPRS,而实际应用中,SCADA系统应用的速度要远远低于其标称速率。

GPRS/CDMA还有一个重要的问题是网络延时问题,从用户发出一个报文到收到响应报文,可能需要3秒甚至更长的时间,对于有些苛刻的应用无法满足。

无线以太网是一个非常有前途的通讯方式,其价格越来越便宜,而且带宽很宽,最高可以到54M,可以在上面承载语言业务、图形监控业务和SCADA业务,非常有发展潜力。

而且可以在无线以太网上
构建自组织网络(MASH网),这样无论网络是固定的还是移动的,都能正常通信;即使出现个别设备的损坏,都能通过网络的再组织,保证正常的通信。

无线以太网采用全向天线时,其通讯距离受到很大的限制,只有几百米,而采用定向高增益天线,距离可以到几到几十公里。

ADSL/CABLE MODEM都是大家耳目能详的日常上网方式,其优点缺点想必大家都很清楚,值得一提的是很少有RTU设备可以直接支持PPPOE协议,这可能需要进行配置或者增加网络设备实现,倒是一个限制。

相关文档
最新文档