购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 通用串行通信

几乎所有的仪表、控制设备都配置有串行接口。在SCADA系统中,串行通信广泛存在于许多现场控制设备与上位机之间,因此,了解串行通信是十分必要的。

串行接口通信接口中有两个重要的概念,即数据终端设备(Data Terminal Equipment,DTE)和数据电路终端设备(Data Circuit-terminating Equipment,DCE)目前最常用的有关DTE和DCE之间的接口标准是EIA和ITU-T制定的标准。其中EIA(美国电子工业协会,Electrical Industrial Association)标准有EIA-232、EIA-442和EIA-449等;ITU-T标准称为Ⅴ系列和X系列。数据通信接口标准主要用来定义数据通信的接口和信号方式,在通信线路的两端都要有DTE和DCE,如图2.2所示。DTE产生数据并且传输到DCE,而DCE将此信号转换成适当的形式在传输线路上进行传输。在物理层,DTE可以是计算机、打印机、传真机或其他终端设备,但是一定要有一个转接设备才可以通信。DCE是指可以通过网络传输或接收模拟数据或数字数据的任意一个设备,最常用的设备就是调制解调器。

图2.2 DTE和DCE设备的连接

2.3.1 串行通信参数

在串行通信中,交换数据的双方利用传输在线路上的电压变化来达到数据交换的目的,但是如何从不断改变的电压状态中解析出其中的信息,就需要双方共同决定才行,即需要说明通信双方是如何发送数据和命令的。因此,双方为了进行通信,必须要遵守一定的通信规则,这个通信的规则就体现在对通信端口的初始化的参数上。利用通信端口的初始化实现对以下4项的设置。

1)数据的传输速度

RS-232常用于异步通信,通信双方没有可供参考的同步时钟作为基准,此时双方发送的高、低电平到底代表几个位就不得而知了。要使双方的数据读取正常,就要考虑到传输速率——波特率(Baud Rate),其代表的意义是每秒所能产生的最大电压状态改变率。由于原始信号经过不同的波特率取样后,所得的结果完全不一样,因此通信双方采用相同的通信速度非常重要。如在仪器仪表中,常选用的传输速度是9.6Kbps。

2)数据的发送单位

一般串行通信端口所发送的数据是字符型的,这时一般采用ASCII码或JIS(日本工业标准)码。ASCII码中8个位形成一个字符,而JIS码则以7个位形成一个字符。若用来传输文件,则会使用二进制的数据类型。欧美的设备多使用8个位的数据组,而日本的设备则使用7个位作为一个数据组。

3)起始位及停止位

由于异步串行传输中没有使用同步时钟脉冲作为基准,故接收端完全不知道发送端何时将进行数据的发送。为了解决这个问题,就在发送端要开始发送数据时,将传输在线路的电压由低电位提升至高电位(逻辑0),而当发送结束后,再将高电位降至低电位(逻辑1)。接收端会因起始位的触发而开始接收数据,并因停止位的通知而确知数据的字符信号已经结束。起始位固定为1个位,而停止位则有1、1.5及2个位等多种选择。

4)校验位的检查

为了预防错误的产生,使用了校验位作为检查的机制。校验位是用来检查所发送数据正确性的一种校验码,又分为奇校验(Odd Parity)和偶校验(Even Parity),分别检查字符码中“1”的数目是奇数个还是偶数个。在串行通信中,可根据实际需要选择奇校验、偶校验或无校验。

2.3.2 流量控制

在串行通信中,当数据要由A设备发送到B设备前,数据会先被送到A设备的数据输出缓冲区,接着再由此缓冲区将数据由线路发送到B设备;同样,当数据利用硬件线路发送到B设备时,数据会先发送到B设备的接收缓冲区,而B设备的处理器再到接收缓冲区将数据读取并进行处理。

所谓的流量控制,是为了保证传输双方都能正确地发送和接收数据而不会漏失。如果发送的速度大于接收的速度,而接收端的处理器来不及处理,则接收缓冲区在一定时间后会溢出,造成以后发送来的数据无法进入缓冲区而漏失。解决这个问题的方法是让接收方通知发送端何时发送,以及何时停止发送。流量控制又称为握手(Hand Shaking),常用的方式有硬件握手和软件握手两种。

以RS-232来说,硬件握手使用DSR、CTS、DTR和RTS四条硬件线路。其中DTR和RTS指的是计算机上的RS-232端;而DSR和CTS则是指带有RS-232接口的智能设备。通过4条线的交互作用,计算机主控端与被控的设备端可以进行数据的交流,而在数据传输太快而无法处理时,可以通过这4条握手线的高低电位的变化来控制数据是继续发送还是暂停发送。图2.3描述了计算机向设备传输数据时的硬件流量控制。

软件握手采用数据线上的数据信号来代替实际的硬件线路。软件握手中常用的就是XON/XOFF协议。在XON/XOFF协议中,若接收端想使发送端暂停数据的发送时,它便向发送端送出一个ASCII码13H;而若恢复发送时,便向发送端送出ASCII码11H,两个字符的交互使用,便可控制发送端的发送操作,其操作流程与硬件握手类似。

图2.3 设备端要求的握手程序

2.3.3 RS-232C接口特性与串行通信

1.RS-232C接口特性

以EIA-232为例,主要介绍RS-232C接口标准。该标准是EIA于1973年提出的串行通信接口标准,主要用于模拟信道传输数字信号的场合。RS(Recommeded Standard)代表推荐标准,232是标识号,C代表RS-232的最新一次修改,在这之前有RS-232B、RS-232A。RS-232C是用于数字终端设备DTE与数字电路终端设备DCE之间的接口标准。RS-232C接口标准所定义的内容属于国际标准化组织ISO所制定的开放式系统互连参考模型中的最低层——物理层所定义的内容。RS-232C接口规范的内容包括连接电缆和机械特性、电气特性、功能特性和规程特性4个方面。

1)机械特性

RS-232C接口规范并没有对机械接口做出严格规定。RS-232C的机械接口一般有9针、15针和25针3种类型。标准的RS-232C接口使用25针的DB连接器(插头、插座)。RS-232C在DTE设备上用作接口时一般采用DB25M插头(针式)结构;而在DCE(如Modem)设备上用做接口时采用DB25F插座(孔式)结构。特别要注意的是,在针式结构和孔式结构的插头插座中引脚号的排列顺序(顶视)是不同的,使用时要务必小心。

2)电气特性

DTE/DCE接口标准的电气特性主要规定了发送端驱动器与接收端驱动器的信号电平、负载容限、传输速率及传输距离。RS-232C接口使用负逻辑,即逻辑“1”用负电平(范围为-5~-15V)表示,逻辑“0”用正电平(范围为+5~+15V)表示,-3~+3V为过渡区,逻辑状态不确定(实际上这一区域电平在应用中是禁止使用的),如图2.4所示。RS-232C的噪声容限是2V。RS-232C的主要电气特性如表2.1所示。

表2.1 串行通信电气参数

图2.4 RS-232C接口电路

3)功能特性

RS-232C接口连线的功能特性,主要是对接口各引脚的功能和连接关系做出定义。RS-232C接口规定了21条信号线和25芯的连接器,其中最常用的是引脚号为1~8和20的这9条信号线。实际上,RS-232C的25条引线中有许多是很少使用的,在计算机与终端通信中一般只使用3~9条引线。RS-232C最常用的9条引线的信号内容见表2.2。RS-232C接口在不同的应用场合所用到的信号线是不同的。例如,在异步传输时,不需要定时信号线;在非交换应用中则不需要某些控制信号;在不使用备用信道操作时,则可省去5个反向信号线。

表2.2 串行通信接口电路的名称和方向

4)规程特性

规程特性是指数据终端设备与数据通信设备之间控制信号与数据信号的发送时序、应答关系及操作过程。该标准规定按照以下规则和时序进行,即首先建立物理连接,然后进行数据传输,最后释放物理连接。

2.RS-232C串行通信

RS-232C被定义为一种在低速率串行通信中增加通信距离的单端标准。RS-232C采取不平衡传输方式,即单端通信。收、发端的数据信号是相对于信号的,如从DTE设备发出的数据在使用DB25连接器时是2脚相对7脚(信号地)的电平。典型的RS-232C信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15Ⅴ,负电平在-5~-15Ⅴ。当无数据传输时,线上为 TTL,从开始传送数据到结束,线上电平从 TTL 电平到 RS-232C电平再返回TTL电平。接收器典型的工作电平在+3~+12Ⅴ与-3~-12Ⅴ。由于发送电平与接收电平的差仅为2~3Ⅴ,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15m,最高速率为20Kbps。RS-232C是为点对点(即只用一对收发设备)通信而设计的,其驱动器负载为3~7kΩ。所以RS-232适合本地设备之间的通信。

2.3.4 RS-422与RS-485串行接口

1.RS-422串行接口

RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为了改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100Kbps时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。RS-422标准全称为“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。典型的RS-422有四线接口,连同一根信号地线,共5根线。由于接收器所采用的高输入阻抗和发送驱动器要比RS-232的驱动能力更强,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Salver),从设备之间不能通信,所以RS-422支持点对多的双向通信。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。RS-422的最大传输距离为4000英尺(约1219m),最大传输速率为10Mbps。其平衡双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100m长的双绞线上所能获得的最大传输速率仅为1Mbps。

2.RS-485串行接口

为扩展RS-422串行通信应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿,如都采用平衡传输方式、都需要在传输线上接终端电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有所改进,无论四线还是二线连接方式,总线上可连接的设备最多不超过32个。RS-485与RS-422的不同还在于其共模输出电压,RS-485在-7~+12V之间,而RS-422在-7~+7V之间。RS-485与RS-422一样,其最大传输距离为4000英尺(约1219m),最大传输速率为10Mbps。平衡双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能使用规定最长的电缆长度。

为了提高RS-485总线通信距离,可以采用增加中继的方法对信号进行放大,最多可以加8个中继,也就是说,理论上RS-485的最大传输距离可以达到9.6km。如果需要更长距离传输,可以采用光纤为传播介质,在收、发两端各加一个光电转换器,多模光纤的传输距离是5~10km,而采用单模光纤可达50km的传播距离。

RS-485总线电缆在一般场合采用普通的双绞线就可以,在要求比较高的环境下可以采用带屏蔽层的同轴电缆。RS-485需要两个终端电阻,其阻值要求等于传输电缆的特性阻抗。在短距离传输时可不需终端电阻,即一般在300m以下不需终端电阻,终端电阻接在传输总线的两端。

由于RS-232、RS-422与RS-485等串行接口标准不涉及通信协议,用户可以在此基础上建立自己的高层通信协议。

2.3.5 RS-485网络的主从式通信

1.主从式协议

主从协议是RS-485网络中常用的通信协议。网段中的一个节点被指定为主节点,其他节点为从节点,由主节点负责控制该网段上的所有通信连接。为保证每个节点都有机会传送数据,主节点通常对从节点依次逐一轮询,形成严格的周期性报文传输。主节点不停地传送报文给从节点,并等待相应从节点的应答报文。

从节点如果收到了一个正确无误的报文,而且报文中的地址与自己的节点地址相同,则需要应答,才能得到报文发送的机会。如果主节点在规定的时间内收到了应答报文,就表明主从节点之间已经建立了连接,可以进行数据传输,由一个主节点对RS-485总线的占用进行管理,任一时刻只允许一个节点向总线发送报文。从节点只有得到主节点许可才可以发送报文,从节点与从节点之间不能直接通信。

许多RS-485总线网络采用主从协议管理网络的控制权。由一个主节点对总线的占用进行管理,任一时刻都只允许一个节点向总线发送报文。RS-485总线上所有从节点只有在得到主节点许可时才能有报文发送的机会。采用主从式协议时从节点之间不能直接通信。

2.通用串行协议

通用串行协议(Universal Serial Protocol)是一种工业控制网络协议,它采用串行通信和主从式介质访问控制方式,实现自控设备间通信。其总线操作过程与PROFIBUS现场总线基本相同。通用串行协议有以下主要特点:

● 采用EIA-485接口,支持多点通信连接,一个网段最多能连接32个节点。

● 采用主从访问技术,构成单主控制网络。

● 报文结构简单、可靠。报文长度可变,也可固定,配置灵活。

● 通信速率可根据实际情况选择9.6Kbps、19.2Kbps、38.4Kbps、93.75Kbps及187.5Kbps。

通用串行协议既可以像其他主从协议那样,由主节点对从节点的轮询组成周期性的报文通信。从节点只有对主节点的轮询做出应答后,才能得到发送报文的机会。通用串行协议一般利用周期性的报文通信传递I/O数据。而服务和诊断等功能一般采用非周期报文的传输来实现。在通用串行协议中规定,对非周期性的报文传输不需要从节点应答。

通用串行协议还支持广播式通信。在广播模式下,主节点给总线上所有从节点发送报文,报文地址域的字段无效,从节点无需对收到的广播报文发应答信息。

通用串行协议的报文由5个部分组成,分别是起始标志、报文长度、地址域、数据域和校验。起始标志字节的值固定为02H,报文长度不包括开始字节和报文长度字节,能表达的报文最大长度为255字节。

地址域指明从节点的地址值和报文类型,地址字节的低5位表示从站地址,地址字节的高3位表示报文类型。数据域分为参数区和过程输入区,其长度随控制任务的变化而变化。参数区用来定义控制通信双方传送的机制、参数定义及与参数相关的内容。过程数据区是对从节点读/写的参数值。校验字节是通信报文的校验和。

3.应用案例分析

1)应用背景与系统组成

一氧化碳中—低温变换反应中测量和控制的参数有脱氧槽温度、饱和器温度、恒温槽与反应器间管道温度、中变反应器温度、低变反应器温度、中变和低变反应器中间管道温度、配气流量、中变后引出分析的气体流量、系统内部与外部差压、中变和低变后的二氧化碳气体含量(进而可对其他组分进行物料衡算)。由于系统需要较多的温度控制,且设备又分散,具备分散控制的特点,为此采用两级分布式测控结构,系统硬件结构如图2.5所示。现场总线选用RS-485总线,直接将智能仪表挂接在RS-485总线上,通过RS-232/485转接器与PC串口连接。系统配置了6台智能仪表(宇电AI-808),RS-232/485转换器一块,并为每个节点设备分配一个唯一的地址。温度控制由智能仪表完成,而上位机只对下位机实现远程监控功能,一方面接收现场智能仪表传送来的温度等采集数据,另一方面对现场智能仪表的温度控制设定值和其他参数进行更改。数据的上传下达通过RS-485总线并在通信软件的控制下完成。

图2.5 系统硬件结构图

2)通信程序设计

通信主要是上位机与AI-808系列现场智能仪表的通信,采用主从通信方式,上位机为主节点,其他智能仪表为从节点,从节点的地址是从1~6。宇电AI仪表采用16进制数据格式来表示各种指令代码及数据,仪表指令有读指令和写指令,仅用两条指令能够实现对仪表的所有操作。其读/写指令的格式为:

读指令:仪表地址代码+52H+要读的参数代号+0+0+CRC校验码。

写指令:仪表地址代码+43H+要写的参数代号+写入数低字节+写入数高字节+CRC校验码。

其中仪表地址代码的基数为80H。要读/写的参数种类共有26个,具体包括给定值、上/下限报警、控制方式、小数点位置等,每个参数都有一个代号。无论是读还是写,仪表都返回以下数据:

测量值+给定值+输出值及报警状态+所读/写参数值+CRC校验码

测控软件采用Visual Basic开发。对AI仪表的串口通信采用了MsComm控件,并以查询方式读端口数据。对AI仪表的通信参数设置可选择:波特率9.6Kbps、无奇偶效验、8个数据位、2个停止位。串行通信程序代码如下:

2.3.6 串口服务器

1.串口服务器工作原理

串行通信接口是大量的自动化仪表和控制装置的基本通信接口,在自动化领域仍然广泛使用。然而,计算机的串口数量有限,虽然可以采用串口扩展卡来增加PC的串口数量,但它要占用主机资源,并可能导致系统不稳定,同时连接的终端数目和距离有限。随着企业信息化的要求不断提高及远程监控的需要,将这些串口设备与信息网络连接也变得十分迫切。为了解决众多串行通信设备的联网问题,许多控制设备与通信设备厂家生产了一类串口设备联网产品——串口服务器。通过串口服务器设备制造厂家自带的软件,可以把计算机之外的接口虚拟到计算机上,成为计算机的一个串口,应用程序可以像使用计算机上自带的串口一样使用这些虚拟出来的串口。串口服务器通常带有1个10/100M网络接口和1个或多个异步RS-232/485串行接口。串口服务器内部通常使用高性能的32位ARM处理器,支持多种网络协议,且体积较小、功能齐全,是一种将串行数据和在以太网传送的TCP/IP数据包之间进行相互转换的桥梁,使带有传统的异步串行数据设备的信息可以通过互联网络进行传送或共享。串口服务器不占用主机资源,且具有终端服务器的功能,可将现有的传统的串口设备立即转换成具备网络接口的外设,保障用户原有硬件和软件的投资而不影响设备的任何性能。

2.串口服务器的应用方式

图2.6所示为典型的基于RS-485总线的主从式监控系统结构,在这种方式中,RS-232/485转换器与计算机的距离很短,这制约了这种结构的系统应用范围。利用串口服务器,将图2.6所示的系统结构改造成图2.7(a)所示。在图2.7(a)所示的系统中,计算机与串口服务器是通过以太网连接的,因此,它们之间的距离可以很长,实现了串口设备联网的目的,而串口服务器的RS-485总线上挂接串口设备。然而,由于RS-485总线距离最大是1200m,因而采用这种方法时串口设备之间距离以及串口设备与串口服务器之间的距离受总线距离的限制。为此,可以把图2.7(a)所示的系统结构改成图2.7(b)所示。这里,对于每个串口设备都配置一个串口服务器,将串口设备与串口服务器的串行接口连接,而串口服务器的以太网口通过交换机与计算机连接。不过,在这种方式中,每个串口服务器都需要一个单独的IP地址。

图2.6 基于RS-485总线串口设备与计算机连接

图2.7 串口设备联网方式

3.串口服务器的配置与使用实例

以泓格科技的I-7188E3串口服务器产品为例,介绍串口服务器的使用。该产品有3个串行端口,分别是2个RS-232和1个RS-485口,1个支持10Base-T标准以太网接口。串口支持泓格的“Self Tuner”自适应技术,可以自动切换RS-485网络中的波特率及数据格式,这样可以在单一的RS-485网络中连接波特率及数据格式都不相同的串行设备,如PLC、RS-485设备、RS-232设备及PC等。

在安装虚拟串口服务器驱动程序前,用厂商提供的工具软件配置与检查串口服务器的设置,如IP地址等。

串口服务器的安装过程如下,首先启动VxComm Utility,出现如图2.8所示的窗口。在该窗口中,设置I-7188E3的IP地址。CMP与Timeout可以使用默认值。

图2.8 虚拟串口驱动主程序

然后单击“Add Server”,注意要取消“Check Server”前的选择。这时会弹出如图2.9所示的设备选择窗口,选择所使用的设备。这里选择7188E3,然后单击“OK”按钮退出。这时VxComm Utility窗口显示如图2.10所示。

图2.9 选择嵌入式控制器

图2.10 添加了设备的VxComm Utility窗口

为了确认计算机与串口服务器连接是正确的,可以选择菜单“TOOLS→DEVICE INFORMATION”,会弹出如图2.11所示的窗口,若连接正确,会显示“Status:OK”,并且还会显示串口服务器的设备信息及网络信息。若连接不正确,将不会显示以上信息,此时,要进行软、硬件的检查,以消除错误。

图2.11 串口服务器设备信息窗口

接下来就要把I-7188E3不同的端口(Port)映射到计算机的串口上。单击图2.10窗口右面第一行的Port,会弹出如图2.12所示的端口设置窗口。首先选中“Assign following COM number sequentially”。然后在“Select COM”中选择串口,注意这里显示的COM从COM1到COM255。应该选择计算机上没有使用的串口,如选COM10。设置完成后,单击“OK”按钮退出。这时,VxComm Utility窗口内容如图2.13所示。可以看到,I-7188E3的端口已经按照顺序被映射到计算机上的串口。假设Port2是连接了一台RS-485设备,在启动了虚拟串口服务器后,计算机上的应用软件可以通过COM12与该设备通信。写程序时,和常规的读/写串口一样。

图2.12 端口设置

图2.13 虚拟串口服务器安装完成

还可以从工具菜单来查看虚拟串口服务器的信息,如图2.14所示。

图2.14 虚拟串口服务器的信息

为了检验串口服务器工作是否正常,还可以用泓格科技提供的调试软件SendTCP来调试虚拟串口服务器,如图2.15所示。该工具一方面可以与7188控制器通信,对该控制器进行参数设置和读取相关的信息,此时在“Send Command To 7188E”下面的文本框输入命令。也可以控制与该控制器串口连接的7K和8K系列I/O模块,此时要根据不同的串口选择端口(Select Port)。命令后要加“回车”(Send Data with CR),因为不同的命令其长度不同,为了让I/O设备知道命令的结束,所以要加“回车”。在测试前,一定要首先设置好控制器的IP地址,然后单击“Connect”。连接成功后,在窗口的右面会显示网络状态和7188E的信息,如COM口设置和MiniOs的信息等。也可以在这里修改控制器网络参数。

图2.15 用SendTCP工具检查虚拟串口服务器 x5rAgGKsEmEdioixA0wyMOQDJHaaUkVK+6VHf3vkXPk4eSmDT98ygI8qTU8EeXkq

点击中间区域
呼出菜单
上一章
目录
下一章
×