数据是指对数字、字母以及组合意义的一种表达。在SCADA系统中,通信数据与监控系统的各种信息紧密相关,如用数字1表示电机处于工作状态,用数字0表示电机处于停止状态;而对于温度、压力、物位、流量、电流、电压等变量可以用一定数值范围的数字来描述。
数据通信系统是指以计算机为中心,通过数据传输信道将分布在各处的数据终端设备连接起来,以实现数据通信为目的的系统。实际的数据通信系统是千差万别的。例如,可以是两台计算机点对点近距离数据传输,可以是工业现场智能设备与控制器之间的数据通信,也可以是分布在各地的数百台甚至更多的计算机互相传送数据。
数据通信系统是由数据信息的发送设备、接收设备、传输介质、传输报文、通信协议等组成。图2.1所示为香农定义的广义通信系统模型。其中信源为待传输数据信息的产生者。发送器将信息变换为适合于信道上传输的信号,而信宿的作用与之相反。信道指发送器与接收器之间用于传输信号的物理介质,又称传输介质。经过传输,在接收器处收到的信号在接收器处变为信息。通信传输过程会受到噪声的干扰,而噪声往往会影响接收者正确地接收和理解所收到的信息。为了把接收到的信息还原为原有信息,并为接收者所理解,需要一套实现约定的协议。协议是数据通信规则的集合,如果没有协议,两台设备即使连接也无法通信。
图2.1 广义通信系统模型
发送设备、接收设备和传输介质是通信系统的硬件。发送设备用于匹配信息源和传输介质,即将信息源产生的数据经过编码变换为信号形式,送往传输介质;接收设备则需要完成发送设备的反变换,即从带有干扰的信号中正确恢复出原有信号,并进行解码、解密等操作。
SCADA系统中,由于越来越多的设备变得智能化和数字化,数字通信能力越来越强大,因此,依赖不同时刻设备的作用,许多设备既是发送设备也是接收设备。如下位机设备与上位机通信时,当下位机向上位机传送现场仪表参数时,下位机是发送设备,上位机是接收设备;而当下位机接收上位机的控制指令,如开启某台设备,或修改下位机参数时,下位机是接收设备,而上位机是发送设备。
传输信道可以是简单的两条导线,也可以是由传输介质、数据中继、交换、存储、管理设备构成的网络。传输信道是为收发两地的数据流提供传输的信道,传输信道由两部分组成:一部分是传输介质,另一部分是其他数据处理设备。传输介质分为有线介质和无线介质两种,有线介质有双绞线、同轴电缆和光纤等,无线介质则为空气。传输手段为微波、红外线、激光等,由光纤、同轴电缆、双绞线等有线介质构成有线线路,而由微波接力或卫星中继等方式通过大气层传输则构成无线通信。有线通信具有性能稳定,受外界干扰少,维护方便,保密性强等优点,但其敷设工程量大,一次性投资也大。而无线通信利用无线电磁波在空气中传输信号,无需敷设有形介质,一次性投资相对较少,通信建立较灵活,但受空气环境影响较大,保密性较差。
1.数据传输模式
1)传输模式
数据传输模式是指数据在信道上传输所采取的方式。在计算机内部各个部件之间,计算机与各种外部设备之间,计算机与计算机之间,计算机与智能控制设备之间,智能控制设备与智能控制设备之间,都以通信的方式传递交换数据信息。数据传输模式可以分为不同的类型,如果按数据代码传输的顺序,可以分为两种基本方式:即并行传输与串行传输;按数据传输的同步方式,可以分为同步传输与异步传输;按数据传输的流向和时间关系,可以分为单工、半双工与全双工数据传输;按照数据信号特点,可以分为基带传输、频带传输和数字数据传输。
2)同步技术
在数据通信系统中,通信系统的接收设备与发送设备的数据序列在时间上必须取得同步,以准确地接收发来的每位数据。在通信过程中收发两端工作的协调一致性是实现信息传输的关键,要求接收设备按照发送设备所发送的每个码元的重复频率及起止时间来接收数据,而且接收时还要不断校准时间和频率,这一过程称为同步过程。在数据通信系统中主要有载波同步、位(码元)同步和群(码组、帧)同步。
载波同步、位同步是数据通信系统接收数据码元的需要。位同步是使接收端对每一位数据都要和发送端保持同步,可分为外同步法和自同步法。最典型的自同步法就是曼彻斯特编码。另外,在数据传输系统中为了有效地传递数据报文,通常还要对传输的信息分成若干组或打包,这样接收端要准确地恢复这些数据报文,就需要组同步、帧同步或信息包同步,这类同步称为群同步。
对数据通信系统来说,最基本的同步是收发两端的时钟同步,这是所有同步的基础。为了保证数据准确地传递,要求系统定时信号满足以下两点:
(1)接收端的定时信号频率与发送端定时信号频率相同。
(2)定时信号与数据信号间保持固定的相位关系。
3)基带传输、频带传输和数字数据传输
基带传输是指原始信号不经调制,直接在信道上传输,即直接将计算机(或终端)输出的二进制“1”或“0”的电压(或电流)基带信号送到电路进行传输。基带传输比较简单,广泛用于短距离的数据传输,传输电路为双绞线、对称电缆等。目前大部分计算机局域网都采用基带传输。SCADA系统中,上位机系统、下位机之间及下位机与智能设备之间多采用基带传输。
频带传输指把代表二进制“1”或“0”的信号,通过调制解调器变换成具有一定频带范围的模拟信号进行传输。到达接收端后,再把接收信号解调成原来的数字信号。数字调制技术可分为两种类型:一种是利用模拟的方法去实现数字调制,即将数字信号视为特殊的模拟信号来处理;另一种是利用数字信号的离散和有限取值的特点,用基带脉冲对载波波形的某些参量进行控制,使这些参量随基带脉冲变化,从而达到调制的目的。由于大多数的数字数据通信系统都采用正弦波信号作为载波,而正弦信号只有振幅、频率和相位3个关键参数。因此,正弦波数字信号调制就有3种基本方法:幅键控法(ASK)、频移键控法(FSK)、相移键控法(PSK)。频带传输可分为窄带传输(只传输一路信号)和宽带传输(同时传输多路信号)。SCADA系统中,上、下位机之间的通信多采用频带传输。频带传输可以实现多路复用,提高了传输信道的利用率。
数字数据传输是利用数字话路传输数据信号的一种方式,这种方式效率高,传输质量较好。
4)通信线路工作方式
单工通信是指通信只在一个方向上进行,在发送方和接收方之间有明确的方向性。如计算机向显示器传输数据就是采用单工方式。
半双工通信指通信可以在两个方向上进行,但不能同时进行传输,必须轮流进行。
全双工通信指通信可以在两个方向上同时进行。当设备在一条线路上发送数据时,它也可以接收到其他数据。全双工通信时,收发两端都要安装调制解调器。
2. 数字数据传输
在线路上传输的二进制数据可以采用并行模式传输或串行模式传输。在并行模式下,每一个时钟脉冲有多位数据被传送;而在串行模式下,每一个时钟脉冲只发送一位数据。而且,发送并行数据仅仅只有一种方式,而对于串行传输则有两种方式—同步传输和异步传输。
1)并行传输
并行传输(Parallel Transmission)是将由“1”和“0”组成的二进制数,n位组成一组,在发送时n位同时发送,即数据以成组的方式在两条以上的并行信道上同时传输。传输过程中,使用n根线路同时发送n位,每一位都有自己独立的线路,并且一组中的所有n位都能够在同一个时钟脉冲从一个设备传送到另一个设备上。例如,采用8条导线并行传输一个字节的8个数据位,另外用一条“选通”线通知接收者接收该字节,接收方可对并行通道上各条导线的数据位信号并行取样。最常见的并行传输的例子是计算机和外围设备之间的通信,CPU、存储器和设备控制器之间的通信。虽然并行传输具有速度快的优点,但由于其通信成本较高,不适合长距离的数据传输。
2)串行传输
串行传输(Serial Transmission)是使数据流以串行方式在一条信道一位接一位地传输。串行传输仅需要一根通信线路就可以在两个通信设备之间进行数据传输,方法简单,易于实现,而且成本较低。通常情况下,采用串行传输的线路,在设备内部都采用并行通信方式,这就需要在发送方和通信线路之间以及通信线路和接收方之间的接口进行转换。串行传输的缺点是需外加同步措施,同时每次只能传输一位数据,所以速度较慢。
在串行传输时,接收端为从串行数据码流中正确地划分出发送的一个个字符所采取的措施,称为字符同步。根据实现字符同步方式的不同,串行数据传输分为异步传输和同步传输。
虽然串行通信传输速度慢,但它抗干扰能力强,传输距离远,因此许多监控设备一般都配置有串行通信接口,在SCADA系统中也广泛使用串行通信方式进行监控与数据采集。
3. 同步传输与异步传输
同步传输是以一定时钟节拍来发送数据信号的。这个时钟可以是由参与通信的那些设备或器件中的一台产生的,也可以是由外部时钟信号源提供的。时钟可以有固定的频率,也可以间隔一个不规则的周期进行转换。所有传输的数据位都和这个时钟信号同步。在同步传输时,它不是独立地发送每个字符,而是连续地发送位流,并且不需要每个字符都有自己的开始位和停止位,而是把它们组合起来一起发送,这些组合称为数据帧,或者简称为帧。
异步传输中,每个节点有有自己的时钟信号,每个通信节点必须在时钟频率上保持一致,并且所有的时钟必须在一定误差范围内相吻合。异步传输中,并不要求在传送信号的每一数据位时收发两端都同步。例如在单个字符的异步方式中,在传输字符前设置一个启动用的起始位,预告字符信息代码即将开始;在信息代码和校验信号结束后,也设置一个或多个停止位,表示该字符已结束。在起始位和停止位之间,形成一个需要传送的字符。起始位对该字符内的各数据位起同步作用。
同步传输通常要比异步传输快,传输效率较高。异步传输实现起来比较容易,对线路和收发器要求较低,实现字符同步也比较简单,收发双方的时钟信号不需要精确地同步。缺点是多传输了用于同步目的的字符,降低了传输效率。
在数据通信过程中,由于各种干扰及传输线路本身的因素,在传输过程中会不可避免地发生错误,特别是随着无线通信应用的增多,因为无线通信差错率要远高于有线通信。因此,为了提高通信系统的传输质量而采取的检测与校正方法就是差错控制。在计算机网络中,差错控制通常是在数据链路层进行的。通过差错控制,可以减少通信过程中的传输错误。差错检查是让报文分组中包含使接收端发现差错的冗余信息,但它不能确定是哪一位出错,也不能纠正传输中的差错;而差错纠正是让报文中每个传输的报文分组中带有足够的冗余信息,使得接收端能发现并自动纠正传输错误。差错纠正在功能上优于差错检测,但实现复杂,造价高。差错检测原理简单,容易实现,编码与解码速度快,应用广泛。
1. 差错控制的工作方式
差错控制的工作方式有两类:一类是接收端检测到接收的数据有差错时,接收端自动纠正差错;另一类是接收端检测出错误后不是自动纠错,而是反馈给发送端一个表示错误的应答信号,要求重发,直到正确接收为止。目前常用的差错控制方式有以下3种。
1)反馈纠错
反馈纠错指发送端发送的码字具有检错能力,接收端根据协议对所接收的码字检测是否有错误,然后通过反馈信道把判决结果反馈给发送端,要求发送端重传出错信息,直到正确接收为止。这种方法的优点是:检错码简单,易于实现,冗余编码少,可以适应多种不同的信道,特别是对突发差错更为有效。
2)前向纠错
前向纠错指发送端将信息码元按照一定规则加上监督信息,构成纠错码,纠错码的纠错能力有限。当接收的码字中有差错且在该码字的纠错能力之内时,接收端会自动纠错。与反馈纠错方式相比,前向纠错不需要反馈信道,可以进行单向通信,译码实时性好,控制电路简单;但所需的编译码设备复杂,冗余位多,编码效率低,当错误超过码字的纠错能力时无法纠错。
3)混合纠错
混合纠错是反馈纠错与前向纠错两种方式的结合。当接收端收到码字后首先判断有无差错,如果差错在编码的纠错能力之内,则自动纠错;如果超过编码的纠错能力,则通过反馈信道命令发送端重发以纠正错误,直到正确为止。
2. 常用的差错检测方法
差错检测就是监视收到的数据并判别是否发生了传输错误。差错检测仅仅识别出错现象而不识别错误在哪个或哪几位。差错检测常用的方法有以下两种。
1)奇偶校验码
奇偶校验码是一种最简单实用的检错码,指通过增加冗余位来使得码字某些位中“1”的个数保持为偶数或奇数的编码方式。异步通信系统中使用偶校验或奇校验这两种方法。在奇偶校验中,一个单独的位(奇偶校验位)被加在每个字符上,以使一个字符中“1”的总数要么是奇数(奇校验),要么是偶数(偶校验)。奇偶校验可能漏掉大量的错误,但是应用起来很简单。
2)循环码(Cyclic Redundancy Check,CRC)
纠错码虽然能纠正数据的错误,但是纠错码的冗余位比检错码多得多,也就是说,它的编码效率比检错码低得多,会使网络传输效率降低。而CRC码是一种检错率高、编码效率高的检错码。
CRC码的原理是,任何一个由二进制数位串成的代码,都可以和一个只有“1”和“0”为系数的多项式建立一一对应关系。例如,如果要发送的信息M(x)的二进制代码为1110101,则 。
由此可见,k位要发送的信息位,可对应于一个k-1次多项式。如果传送的码字总长为n,则n=k+r,r是冗余位的位数。在数据传输过程中,某一个生成多项式G(x),当G(x) 为n位时,其冗余位最多为n-1位,对应一个n-1次多项式R(x)。在校验时,发送方和接收方根据 的原理,在发送方将M(x)与R(x)一起发送,则接收端满足 ,所以接收端只要满足余数为零即可。
假设接收方收到的数据位串是100100001,其生成的多项式所对应的位串是1101,接收方进行如下校验:用100100001除以1101,余数为0,说明该数据传输正确,若余数不为0,则表示传输有差错。所以接收端的校验过程就是用G(x)来除接收到的码字多项式的过程。
CRC校验码检错能力很强,它除了能检查出离散错外,还能检查出突发错。其检错能力如下:
(1)能检查出全部单个错。
(2)能检查出全部离散的二位错。
(3)能检查出全部奇数个数。
(4)能检查出全部长度小于或等于k位的突发错。
(5)能以 的概率检查出长度为k+1位的突发错。