搜索
您的当前位置:首页正文

MES数据电文通讯设计与实施

来源:知库网


数据电文通讯设计与实施 MES1. 数据电文通讯规约

协议

一台计算机通过 TCP/IP 协议与网络中的其它计算机通信。网络协议遵守 OSI 模型的物 理和数据链路层的 IEEE802.标准。

接收和发送的电文使用两种逻辑连接。逻辑连接也被成为回线,每个逻辑连接运用

Server/Client 模式。

在 TCP/IP 的 socket 接口中,Server/Client 模式是十分流行的。

Server/Client 模式决定如何建立逻辑连接,但在建立连接后并不确定通信规约。在规约 中,发送数据的主动方和接收数据的被动方都是提前确定的。

主动方类似 Server/Client 模式中的 client 端,直到逻辑连接建立后,主动方总是发起通信 连接。

被动方类似 Server/Client 模式中的 Server 端,直到通信连接建立后,被动方等待来自主 动方的电文,并且发送确认(应答)电文。

XCOM

客户端

通信方

服务端 (Port Y) 服务端 (Port X) 客户端

图 1 服务端,客户端连接示意图

在该协议下,此处建立的两条回线必须都是静态 socket。即通信双方建立的 session 一 直保持连接的状态,直到通信程序被关闭或异常情况发生。

2.3

1)

电文格式 以下规约用于计算机

间传送的电文:

以下是 ASCII 文本域的右/左填补: 数字数据:则在不满位数时左补 0: 例如:421:

-421:

“00421”在 5 位数字值的情况下 “-0421”

字符串数据:则在不够长度时右补空格 例如:TSB:

“TSB”在 7 位字符串值的情况

1) 电文包括头部和实体部分。实体部分有数据内容和结束符。

电文头部 数据内容 结束符 第 1 页 / 共 17

上海宝信软件股份有限公司 页

(40 bytes) (max 4055 bytes)

2) 电文基于电文号基础进行处理。 3) 如下是三种类型的电文:

 普通电文:用于应用程序通信  确认电文:用于协议层的确认

 心跳电文:用于网络的周期性检查

上海宝信软件股份有限公司

页 (1 bytes) 第 2 页 / 共 17

每种类型的电文被分成头部和实体部分。所有的电文均有相同结构的头部,头部还用于 检

2.3.1 电文头部

查电文的有效性。电文头部大小是 40 字节。

表格 1 电文头部格式

No Field Description 整个电文的长度,包括电文头,电文内 容,结束符 Type C4 Example Note 1 电文长度 “1024”, “0066” “AA01”, ”0011”,”kknd” YYYYMMDD

2 电文号 用户定义的电文标识,用于区分同一种 用C4 途的电文,长度为 4 字符的字符串 , 不能含有空格或串结束符。 3 日期 电文发送的日期,8 位的数字,依次为 年、月、日。 C8 4 时间 电文发送的时间,6 位的数字,依次为 小时、分钟、秒钟,小时数为 24 小时 制的。 C6 HHMMSS 5 发送端 DC 发送端主机的描述码,是个 2 字符的字 符串,不能含有空格或结束符。 C2 “L4” 6 接收端 DC 接收端主机的描述码,是个 2 字符的字 符串,不能含有空格或结束符。 C2 “L3” 7 序列号 该字段用来区分在相同时间内传输的 不同电文,应用可以通过该字段加 C4 “0001” 0000 -9999 上时 间,日期来唯一的确定某条电文。该字 段为 4 位的数字,从 0000 到 9999,可 以不连续 8 Block or 该字段不再使用,这里必须为”00” C2 “00” Function 留作将来备用,这里是 8 个空格

9 保留字段 C8 C 代表 char 型,C4 代表长度为 4 个字节的字符数组,下面皆同 注:

2.3.2 普通电文 普通电文用于应用程序间的通信。它的格

式如下:

电文头部 数据内容 结束符 (40 bytes) (max 4055 bytes) (1 bytes) 上海宝信软件股份有限公司

第 3 页 / 共 17

普通电文由 40 字节的电文头,最大 4055 字节的数据内容以及结束符号 0x03 组成; 电文数据内容总长度不大于 4055,必须确保一个电文代号对应一种电文格式。

表格 2 普通电文格式

No Field Description 整个电文的长度,包括电文头,电文内 容,结束符 Type C4 Example Note 1 电文长度 “1024”, “0066” “AA01”, ”0011”,”kknd” YYYYMMDD

2 电文号 用户定义的电文标识,用于区分同一种 用C4 途的电文,长度为 4 字符的字符串 , 不能含有空格或串结束符。 3 日期 电文发送的日期,8 位的数字,依次为 年、月、日。 C8 4 时间 电文发送的时间,6 位的数字,依次为 小时、分钟、秒钟,小时数为 24 小时 制的。 C6 HHMMSS 5 发送端 DC 发送端主机的描述码,是个 2 字符的字 符串,不能含有空格或结束符。 C2 “L4” 6 接收端 DC 接收端主机的描述码,是个 2 字符的字 符串,不能含有空格或结束符。 C2 “L3” 7 序列号 该字段用来区分在相同时间内传输的 不同电文,应用可以通过该字段加 C4 “0001” 0000 -9999 上时 间,日期来唯一的确定某条电文。该字 段为 4 位数字,从 0000 到 9999,可以 不连续 8 Block or 该字段不再使用,这里必须为”00” C2 “00” Function 留作将来备用,这里是 8 个空格 9 保留字段 10 数据内容 应用数据内容,最大 4055 字节 标记电 文结 束 ,在 ASCII 码表中是 C8 C4055 C1 \\03 11 结束符 Ctrl+C,十六进制值是 0x03,是不可显 2.3.3 确认电文

该电文用于协议层的确认。当一个接收进程收到另一个进程的普通电文,它必须从相

上海宝信软件股份有限公司

第 4 页 / 共 17

同的回线 session 中返回确认电文给发送方。

注意:此处确认电文长度指定为”0042”,电文号确定为”9998”。

图 2 返回确认电文

No Field 表格 3 确认电文格

式 n Descriptio确认电文的长度,指定为”0041” Type C4 C4 Example “0042” “9998” Note

1 电文长度 2 电文号 区别确认电文与其它电文的标志,指定 为 “9998” 3 日期 电文发送的日期,8 位数字,依次为年 月、日。 C8 YYYYMMDD

、 4 时间 电文发送的时间,6 位数字,依次为小时 分钟、秒钟,采用 24 小时制。 C6 HHMMSS 、 5 发送端 DC 发送端主机的描述码,是个 2 字符的字 C2 符串,不能含有空格或结束符。 “L4” 6 接收端 DC 接收端主机的描述码,是个 2 字符的字 C2 符串,不能含有空格或结束符。 “L3” 7 序列号 8 Block 此处指定为“0000” C4 C2 “0000” “00” 0000 or 该字段不再使用,这里必须为”00” Function 上海宝信软件股份有限公司

第 5 页 / 共 17

9 保留字段 留作将来备用,这里是 8 个空格 10 确认电文内容 “1”表示正应答电文; C8 C1 “1” “2”表示负应答电文 11 结束符 标记电文结 束,在 ASCII 码表中是 C1 \\03 Ctrl+C,十六进制值是 0x03,是不可显

2.3.4 (A

心跳电文

心跳电文用于计算机间的心跳确认。心跳电文的接收方不会给发送方回送确认电文

。在静态链路模式中,一定的时间间隔内,如果一直没有数据电文发送,则需要向 对方发送

是否发送心跳电文和心跳电文的时间间隔在 XCOM 中是可配置的。 注心跳电文以检测通信链路是否畅通,如果发送心跳电文失败,则说明静态链路存在 问题。

意:此处心跳电文长度指定为”0041”,电文号确定为”9999”。

图 3 发送心跳电文

上海宝信软件股份有限公司 页

第 6 页 / 共 17

No

表格 4 心跳电文格式

Field

Description 心跳电文的长度,指定为”0041” Type C4 C4 Example “0041” “9999” Note 1 电文长度 2 电文号 区别心跳电文与其它电文的标志,指定 为 “9999” 3 日期 电文发送的日期,8 位数字,依次为年、 C8 月、日。 YYYYMMDD

4 时间 电文发送的时间,6 位数字,依次为小时 、 C6 分钟、秒钟,采用 24 小时制。 HHMMSS 5 发送端 DC 发送端主机的描述码,是个 2 字符的字 C2 符串,不能含有空格或结束符。 “L4” 6 接收端 DC 接收端主机的描述码,是个 2 字符的字 C2 符串,不能含有空格或结束符。 “L3” 7 序列号 8 Block 此处指定为“0000” C4 C2 “0000” “00” or 该字段不再使用,这里必须为”00” Function 留作将来备用,这里是 8 个空格 9 保留字段 10 结束符 标记电文结 束,在 ASCII 码表中是 C8 C1 \\03 Ctrl+C,十六进制值是 0x03,是不可显 上海宝信软件股份有限公司

第 7 页 / 共 17

3 处 理

回线(session)有以下特点:  通信握手规约  监视数据发送超时  心跳确认

这部分解释了通信的处理过程

3.1

连接建

一个程

发)送

系被统

(给发送进程发送确认电文。当计算机的 数定接收进程将通过接收普通电文的同一个套接字,进

据传输进程开始时,发送进程将试图与所有要传送数据的计算机建立连接,并且接收进程 会义程

等待来自其它计算机发送进程的连接请求。其它的计算机必须处于合适的状态去等待接收 连为被

定接请求或者发送数据。 接义

或者收一旦连接建立,在正常的操作过程中,它将保持连接状态。然而,当异常情况发生时,为

发送,或者接收,或者所有的进程可能通过发送关闭信号从而执行断开连接过程。 每条回线均可普成

独立地执行发送进程,接收进程,模式控制,状态检查和超时监控进程。对于 这些概念的细节描述,通普

通详见下页。 或或 测 测试

试电

3.2 文断开和重连 在以下情况下,连电的

接将被释放: 系文

对于发送进程 的(

。一个接收系统(进  发送进程监测到超时信号系

 发送进程调用发送系统时失败

对于接收进程 ( 接收到来自发送进程的断开请求(或者接收到 0 字节数据域长度的数据时) 。通常,发送系统负责维持它的 检测到心跳超时 out-going 连接。一个连接被定义为一个 TCP/IP 套接字, 如果遇到上述任何一种情况,通信进程就会主动断开与其它计算机的连接,并且立即执那并且该连接能够被视为一条回线。因而,如 果一个系统给邻居系统发送并接收普通电文,行重新连接对方的操作。 么会建立两个端口,一个端口发送数据,一 个端口接收数据。

上海宝信软件股份有限公司 页

第 8 页 / 共 17

通信握手概要

3.3

当通信的应用程序发送一条电文后,它不能从网络中得到任何结果。因而,我们有必要 对每个通信程序做相关约定: (a) 发送进程 发送进程发

送普通电文

1. 给其它计算机发送一条普通电文

2. 等待一条确认电文(ACK)

(b) 接收进程 接收进程接

收普通电文

1. 接收一条普通电文 2. 检查电文的有效性

3. 返回确认电文(ACK)给发送进程

(c) 检查电文的有效性 当接收进程收到一条电文时,将

检查它的有效性。

1. 电文号和实体数据大小是一致的

2. 数据限制检查(max, min, well-code) 所有以上检查是正常结束,那接收进程就是正确的。

上海宝信软件股份有限公司 页

第 9 页 / 共 17

超时监测

3.4

发送电文成功与否是根据能否收到对方的应答电文来做出判断的。因此,如果对等端计 算机中的接收进程因为异常情况无法对发送进程做出回复的话,那发送进程将永远等待确认 电文。

为避免这种情况,发送进程使用一个定时器,用于生成超时事件。 当发送进程发送一条普通电文时,它会生成超时监控功能。如果发送进程没有在超时阶

段内收到确认电文,它会通告传输错误管理进程。

上海宝信软件股份有限公司 页

第 10 页 / 共 17

3.5

重传

当发送进程发送一条普通电文时,它将等待一条确认电文。 若发送进程在超时时间段内收不到确认电文,它将再次重传一条普通电文。 若接收进程对重传电文不作出应答,则发送进程会通告传输错误管理进程。 一般情况下,重传的次数是可以事先指定的。

上海宝信软件股份有限公司 页

第 11 页 / 共 17

心跳确认

3.6

为了通知对方本地计算机是处于激活状态的,一台计算机会周期地(T1 分钟)给另一 台计算机发送一条心跳电文。心跳电文由发送进程通过 outgoing session 负责发送出去。

另一方面,若对端计算机在 T2(T2=T1*2)分钟内收不到心跳电文,它会判断发送端 计

是不激活的,随即主动断开与对方的连接

上海宝信软件股份有限公司 (页

第 12 页 / 共 17

负责

发送电文缓冲器

3.7

有两种类型的数据发送进程。一种是非缓冲器类型,另一种是缓冲器类型。 3.7.1 非缓冲器类型 非缓冲器类型完成以下功能:

i.

发送电文

在发送进程收不到对等端计算机的确认电文后,会立刻丢弃电文。

ii.

3.7.2 缓冲器类型 缓冲器类

型完成如下功能:

当应用程序请求给对方发送普通电文时,XCOM 会将电文放入该条回线的 OTQ

(Output Text Queue,每条回线都有一个独立的 OTQ)中,接着生成一个发送进程。该发送 进程从 OTQ 取出最先放入该队列的电文,发送给对端计算机。当数据传输失败或数据链路 不激活时,被发送的普通电文将保存在 OTQ 中。

当发送进程从对等端收到一条应答确认电文(ACK)后,发送进程将从 OTQ 中删除该 电文。

当超时监控定时器到期时,XCOM 保留并且重新发送该条电文。 在某条电文没有被删除之前,队列里其它的电文是不会被发送出去的。

上海宝信软件股份有限公司 页

第 13 页 / 共 17

当 OTQ 满时,新到的电文被丢弃,并且输出一条警告电文。在通信回线修复后,缓冲 器内的电文将被发送。操作员能够指定传输的时间和将被传输的电文。

2. 数据电文通讯记录

上海宝信软件股份有限公司 页

第 14 页 / 共 17

因篇幅问题不能全部显示,请点此查看更多更全内容

Top