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

1.4 上位机与下位机通信

随着工业控制技术的迅速发展,上位机的角色已经超越了单纯的监视和控制功能,逐渐演变为实现复杂业务逻辑、报警管理、报表处理等高级功能的核心组成部分。此外,上位机还需要与多个其他系统进行无缝对接,包括不同厂家的上位机、上层的制造执行系统、仓储管理系统、企业资源计划系统和企业应用集成等。

从广义上讲,我们通常将制造执行系统、企业资源计划系统、监控与数据采集系统、人机界面和配置软件等都归类为上位机的范畴。上位机与下位机是相对的概念,它们通过通信方式实现数据交换:上位机从下位机获取数据,并对数据进行处理以满足特定需求,二者共同构建完整的控制系统。

因此,通信是上位机与下位机之间的关键桥梁。上位机利用各种不同的通信方式和协议从下位机中获取数据,这些数据随后被用于显示、业务处理和决策支持。在上位机开发中,常见的通信方式包括串口通信(如RS-232、RS-485)和以太网通信(如TCP/IP协议),具体选择取决于系统需求和硬件环境。

1.4.1 串口通信

串口通信是一种用于数据传输和通信的方式,通常被应用于计算机及其他设备之间的点对点传输。在工业控制领域,串口通信非常普遍,各种仪器仪表、各种品牌的PLC以及计算机都直接或间接地支持串口通信。

1.传输方式

根据一次性传输数据的多少,串口通信可以分为串行通信和并行通信。

(1)串行通信:通信双方通过一条或两条数据信号线连接。在任意时刻,只有一个比特位的信号可以传输。数据按顺序逐位传输,通常使用单根数据线或一对差分线来进行数据传输。

(2)并行通信:与串行通信相比,并行通信以字节或多个字节为单位进行传输。它利用多条传输线同时传输多个字节,从而可以一次性传输更多数据。然而,由于成本高且对信号线路要求高,一般用于快速设备之间的近距离传输,如CPU与存储设备、主机与打印机之间的通信。

串行通信虽然传输效率较低,但对信号线路要求低、抗干扰能力强,且成本相对较低。综合考虑串行通信的优缺点以及工业应用场景的需求,大部分情况下工业领域更倾向于采用串行通信。

2.传输方向

根据数据传输的方向,串口通信分为以下三种类型。

(1)单工通信:数据只能单向传输,发送端和接收端的身份固定。发送端只能发送信息,接收端只能接收信息。数据信号只能从一端传送到另一端,即信息流是单向的。例如,遥控器就是一种典型的单工通信设备,信号只能由发送端到接收端。

(2)半双工通信:数据可以沿两个方向传送,但同一时刻一个信道只允许单向传输,因此又被称为双向交替通信。半双工方式要求收发两端都有发送和接收装置,通过软件控制的电子开关来实现数据传输方向的切换。尽管效率较低,但可以节约传输线路,适用于终端与终端之间的会话式通信。例如,无线对讲机就是一种典型的半双工通信设备。

(3)全双工通信:数据可以沿两个方向同时传输,发送端和接收端都配置有发送器和接收器。在全双工通信中,通信系统能够同时控制数据在两个方向上传送,无须进行方向切换操作,因此效率较高。例如,电话机是一种典型的全双工通信设备,通话期间双方可以同时进行对话。

3.传输参数

串口通信的通信格式如图1-10所示,常用的参数如下。

图1-10 串口通信的通信格式

(1)波特率(Baud Rate):波特率指的是每秒传输的数据位数,通常用于衡量数据传输的速率。常见的波特率包括9600、19200、38400、115200等。发送和接收方必须使用相同的波特率进行通信,否则可能导致数据错误或丢失。

(2)数据位(Data Bits):数据位表示每个数据字节中包含的位数,通常为8位。较少的数据位会限制可传输的字符集,而较多的数据位则可以提高数据传输的效率和灵活性。

(3)校验位(Parity):校验位是一种用于检测数据传输中错误的额外位。常见的校验方式包括奇校验、偶校验或无校验。校验位有助于检测数据传输中的错误,但无法纠正错误。

(4)停止位(Stop Bits):数据字节通常以起始位和停止位包围。起始位表示数据的开始,而停止位则表示数据的结束。通常情况下,数据字节的格式为1个起始位、8个数据位、1个校验位和1~2个停止位。

(5)流控制(Flow Control):在串口通信中,可以使用硬件或软件流控制来管理数据传输。流控制用于控制发送方和接收方之间的数据流速率,以防止数据溢出或丢失。

4.传输接口

串口通信的接口标准很多,如RS-232C、RS-232、RS-422、RS-485等。其中,RS-232C是对RS-232的改进,它们的原理是一样的;RS-485是对RS-422的一种改进。在实际工业应用中,我们常用的传输接口标准主要是RS-232和RS-485。

1)RS-232C和RS-232

RS-232是最早引入的串行通信标准,起源于19世纪60年代,定义了基本的串行通信协议。1969年,美国电子工业联合会(EIA)与BELL等公司共同开发了RS-232C通信标准,也称为RS-232 Rev.C。RS-232C是对RS-232标准的修订和扩展,以提高通信的可靠性和性能,具体表现如下。

(1)接口规范:RS-232C引入了更具体和一致的机械接口规范,包括25针D型连接器(DB-25)和9针D型连接器(DB-9),确保了不同设备间的物理连接一致性,使连接更容易和可靠。

(2)控制信号:RS-232C扩展了控制信号的定义,支持更多选项,包括数据终端就绪(DTR)、数据终端就绪(DSR)、请求发送(RTS)、清除发送(CTS)、响铃(RING)和数据终端准备(RLSD)等,允许设备之间进行复杂的流量控制和通信协商。

(3)电气特性:RS-232C保持了与RS-232相同的电气特性,包括电压级别和信号波特率。通过规范化接口和扩展控制信号增强了通信的灵活性。

(4)数据速率:RS-232C标准支持多种数据速率,包括标准的串行通信波特率,如9600、19200、38400等,允许设备在不同速率下进行通信。但由于电气特性限制,传输距离一般最多只能达到15m。

2)RS-422和RS-485

RS-422作为苹果的Macintosh计算机的串口连接标准,采用全双工通信方式,配备4根信号线,且收发信号线分离,可同时进行数据接收和发送。其最大传输距离为4000英尺(约1219米),最大传输速率为10Mbit/s。RS-422使用差分信号传输,即使用两根线分别发送和接收信号。相比RS-232,它能更好地抵抗噪声并且有更远的传输距离,在工业环境尤为适用。

RS-485对RS-422又进行了改进,增加了支持设备的数量。RS-485允许多个设备在同一通信线上工作,具有以下通信特点。

(1)差分信号传输:RS-485采用平衡的差分信号传输,其中一条线传输正向数据,另一条线传输反向数据。这种传输方式对抗电磁干扰和噪声非常有效,使其适用于恶劣环境下的通信。

(2)长距离通信:RS-485可覆盖较长的距离,通常可达几千英尺(数百米)甚至更远。这使其成为工业控制系统、楼宇自动化、远程传感器和监控系统等需要远距离通信的理想选择。

(3)多点连接:RS-485支持多个设备在同一通信线上工作,通过设备的站地址来区分它们。这使其适用于需要多个设备之间进行通信的场合,如控制系统中的传感器和执行器。

3)RS-232、RS-422及RS-485性能比较

RS-232、RS-422及RS-485这三种通信方式各有优缺点,大家可以根据自己的实际使用场景来进行选择,它们之间的性能比较如表1-1所示。

表1-1 RS-232、RS-422及RS-485性能比较

串口通信广泛应用于各种领域,如嵌入式系统、远程传感器、打印机、GPS接收器、模块化通信等。它提供了一种可靠的数据传输方式,尤其适用于需要长距离通信、低功耗和简单硬件接口的场景。不同类型的串口通信,如RS-232、RS-485、UART等,可以根据具体的应用需求选择。

1.4.2 以太网通信

在当今数字化时代,以太网通信技术已成为全球连接的关键数字基础设施。通过结合物理层和数据链路层协议,以太网使得计算机和设备能够在局域网(LAN)中以高效、可靠的方式进行数据交换和通信。

以太网通信的核心思想是将数据划分为数据帧,并通过网络传输这些数据帧,以实现设备之间的信息交流。

1.以太网参考模型

如图1-11所示是以太网通信的一个参考模型。从图中可以看出,TCP/IP分层模型,相较于OSI参考模型,将应用层、表示层、会话层合并成了一个应用层,将数据链路层和物理层合并成了网络接口层。在计算机网络和通信领域,OSI(Open Systems Interconnection)参考模型为理解、设计、管理和维护网络系统的复杂性提供了一个有组织的框架。该模型将网络通信划分为七个独立的层次,每个层次负责特定的任务和功能。

图1-11 以太网通信的两种参考模型

(1)应用层(Application Layer):这一层的主要目的是为应用程序和最终用户提供服务,处理各种与应用相关的功能,如文件传输、电子邮件和虚拟终端等。

(2)表示层(Presentation Layer):这一层主要处理数据表示和格式化,确保数据在发送和接收时能够被正确解释和处理,可能涉及数据的加密、压缩和格式转换等功能。

(3)会话层(Session Layer):负责建立、管理和终止会话或连接;确保数据在发送和接收时能够正确分组、排序和同步。

(4)传输层(Transport Layer):提供端到端的通信服务;确保数据在传输过程中能够可靠、有序和无误地到达目的地;提供了TCP和UDP两种协议。

(5)网络层(Network Layer):将数据包从一个网络节点传输到另一个网络节点;包括路径选择和逻辑地址寻址等功能;IP协议是这一层工作的核心协议。

(6)数据链路层(Data Link Layer):负责将数据包从一个节点传输到相邻的节点;使用物理地址(如MAC地址)来确保数据包的正确传输;常见的协议包括以太网(Ethernet)和点对点协议(PPP)。

(7)物理层(Physical Layer):OSI参考模型的最底层,负责实际传输比特流;定义了电气、机械和定时接口的特性,以确保数据能够在物理媒体上正确传输。

TCP/IP模型是在OSI参考模型的基础上简化而成的四层模型。在层次关系上,两者均采用分层体系结构,实现对等的层间通信。不同之处在于TCP/IP模型更为简洁明了,而功能上两者差别不大,都致力于实现两个或多个终端之间的通信。OSI与TCP/IP参考模型之间的比较如表1-2所示。

表1-2 OSI与TCP/IP参考模型之间的比较

总结:不难看出,TCP/IP与OSI在分层模块上稍有区别。OSI参考模型注重“通信协议必要的功能是什么”,而TCP/IP则更强调“在计算机上实现协议应该开发哪种程序”。

2.以太网通信过程

每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层所需的信息,如目标地址和协议信息。通常,为协议提供的信息为包首部,所要发送的内容为数据。从下一层的角度来看,从上一层接收到的包都被视为本层的数据。以太网数据的组成如图1-12所示。

图1-12 以太网数据的组成

网络中传输的数据包由两部分组成:协议需要的首部和上一层传递的数据。在数据包的首部中清晰地标明了协议应该如何读取数据。因此,通过查看首部,就能了解该协议所需的信息以及需要处理的数据。以太网的数据传输过程如图1-13所示。

图1-13 以太网的数据传输过程

①应用程序处理:首先,应用程序对数据进行编码处理,类似于OSI模型的表示层功能;编码转化后,邮件不一定马上被发送出去,这种何时建立通信连接何时发送数据的管理功能,相当于OSI的会话层功能。

②TCP模块的处理:TCP根据应用的指示,负责建立连接、发送数据和断开连接。它提供可靠的数据传输,将应用层发来的数据顺利发送至对端。为了实现这一功能,需要在应用层数据的前端附加一个TCP首部。

③IP模块的处理:IP将TCP传过来的TCP首部和TCP数据组合起来当作自己的数据,并在TCP首部的前端加上自己的IP首部。IP包生成后,参考路由控制表决定接收此IP包的路由或主机。

④网络接口(以太网驱动)的处理:从IP传过来的IP包对于以太网来说就是数据。给这些数据附加上以太网首部并进行发送处理,生成的以太网数据包将通过物理层传输给接收端。

⑤网络接口(以太网驱动)的处理:主机收到以太网包后,首先从以太网包首部找到MAC地址判断是否为发送给自己的包,若不是则丢弃数据。如果是发送给自己的包,则从以太网包首部中的类型确定数据类型,再传给相应的模块,如IP、ARP等。这里则以IP模块为例。

⑥IP模块的处理:IP模块接收到数据后也做类似的处理。从包首部中判断此IP地址是否与自己的IP地址匹配。如果匹配,则根据首部的协议类型将数据发送给对应的模块,如TCP、UDP。这里的则以TCP模块为例。另外,对于有路由器的情况,接收端的地址往往不是自己的地址,此时,需要借助路由控制表,在调查应该送往的主机或路由器之后再转发数据。

⑦TCP模块的处理:在TCP模块中,首先会计算一下校验和,判断数据是否被破坏。然后检查是否在按照序号接收数据。检查端口号,确定具体的应用程序。数据被完整地接收以后,会传给由端口号识别的应用程序。

⑧应用程序的处理:接收端应用程序会直接接收发送端发送的数据。通过解析数据,展示相应的内容。

3.以太网通信开发

对于开发者来说,不需要经常关心网络层和物理层的细节,因为这些层通常由专业的网络和硬件工程师负责管理。开发者的主要焦点通常集中在传输层和应用层,因为这两层直接与应用程序的开发和功能相关。

(1)传输层(Transport Layer):传输层是开发者在构建应用程序时需要关注的一个重要层次。在传输层,开发者可以选择使用不同的传输协议,如TCP(传输控制协议)或UDP(用户数据报协议),以满足应用程序的需求。TCP提供了可靠的、面向连接的通信,适用于需要确保数据完整性和可靠性的应用,如Web浏览器和文件传输工具。而UDP则提供了快速的、不可靠的通信,适用于需要快速数据传输但可以容忍少量数据丢失的应用,如实时视频流和在线游戏。

(2)应用层(Application Layer):应用层是开发者编写应用程序的地方,它包括各种协议和服务,如HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、DNS(域名系统)等。开发者在应用层负责实现特定的应用逻辑和功能,以满足用户需求。这是开发者可以创造各种各样应用程序的地方,包括Web应用、社交媒体平台、电子邮件客户端等。

传输层主要使用的两种协议,即TCP和UDP,在网络通信中扮演不同的角色,适用于不同类型的应用和场景。具体两者的区别和实现过程将在后续的章节中进行详细讲解。 ffeTr1TKLtxKkyr9LFszpHfmUEpFeLo2Io1D93PZEUDJP8pPxMPjTVxopF6WQWJS

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