二.SuperIO架构和组成部分

1.1 架构结构图1.1.1 层次示意图

1.1.2 模型对象示意图

1.2 IO管理器

IO管理器是对串口和网络通讯链路的管理、调度。针对串口和网络通讯链路的特点,在IO管理器接口的基础上派生出串口管理和网络管理。

1.2.1 串口管理

串口管理对创建串口IO实例、串口IO的打开、串口IO的关闭以及释放资源作出及时响应,以及IO操作实例的管理。

1.2.2 网络管理

当设备采用网络通讯模式的时候,设备的工作模式分为:Tcp Server和TcpClient。

当工作模式为TcpServer时,通讯平台会监听网络连接,客户端连接到服务器端,,会把连接实例以IO接口的形式放到IO管理器。

当工作模式为TcpClient时,通讯平台会主动连接远程服务器,当连接成功后,会把连接实例以IO接口的形式放到IO管理器。

针对所有网络连接实例定时进行心跳检测,对于假连接、死连接、远程断开、硬件链路断开等现象做出响应,主动释放网络连接实例的资源。

网络IO管理器针对接收数据、发送数据、连接操作、断开操作等事件作出及时反应。

1.3 设备管理器

设备管理器主要的职责是对串口设备、网络设备、虚拟设备进行统一管理,以及提供对外可操作设备的接口。主要实现功能,如下图:

1.3.1 设备主要接口

设备有统一的接口,在通讯平台运行过程中以此接口作为可操作的实例。接口包括:事件类接口、函数类接口、属性类接口。如下图:

以下介绍设备主要组成部分的功能,以及功能的职责。

1.3.1.1 命令缓存

每一个设备都有一个命令缓存,可以把设备要发送的指令放到命令缓存里,当通讯平台是轮询通讯模式或并发通讯模式时,会主动调用获得指令数据接口,并判断当前命令缓存是否有数据信息,当命令缓冲有数据的时候,会发送命令缓存的数据,否则调用获得实时数据指令接口,发送实时数据指令。如下图:

1.3.1.2 协议驱动

协议驱动分为:发送数据协议驱动和接收数据协议驱动,在设备实例中作为两个必备的属性,以便通讯平台进行调用。

发送数据协议驱动通过获得命令接口驱动不同的功能函数,打包命令数据,然后通过IO接口发送数据。

接收数据协议驱动通过解析命令接口驱动不同的功能函数,按命令状态字解析数据信息,并返回可操作的对象,进行业务处理。

1.3.1.3 数据保持

数据保持分为两种类型数据:实时数据、参数数据。两种类型数据都是通过序列化接口保存成XML文件格式。

当设备初始化时加载XML文件,反序列化成实例对象,并作为设备的属性接口,以便通讯平台对设备的参数、实时数据进行必要的操作。

另外,二次开发者也可以继承序列化接口,自定义数据持久处理方式,例如:以数据库为载体,避免实时性过高导致文件损坏。

1.3.1.4 虚拟设备接口

可以对同一类型的设备可以开发相应的虚拟设备,对虚拟设备设置虚拟公式,对同一类型的多台设备的相应数据进行业务逻辑处理。

1.3.1.5 运行授权

每一个设备都有一个授权属性,对于非授权的设备不对IO接口进行操作,设备也无法进行有效的通讯。在二次开发过程中,开发者可以进行授权设置。

1.3.1.6 视频接口

每一个设备都有一个视频属性操作接口,针对现场的设备可以选择配置视频服务器,在服务器端对文件数据和视频数据进行融合展示。

1.3.1.7 通道监视

可以监视设备IO发送数据和接收数据情况,数据以16进制显示,并对16进制的源始数据进行保存,方便设备的调试。

1.3.1.8 优先级别

优先级别为了两种类型:高级别和普通级别,可以针对设备和命令分别设置优先级别,在IO控制管理器进行优先级调度设备和命令。

1.4 控制管理器

IO控制管理器主要是对通讯机制进行调度,串口和网络通讯机制不一样,

所以控制管理器也不一样,但是对于通讯平台的接口是统一的。

1.4.1 串口控制

IO控制管理器里有多个串口控制器,每个串口控制器里有一个单独的线程,负责是对设置该串口的设备进行轮询通讯机制调度。如下图:

1.4.2 网络控制

IO控制管理器里只有一个网络控制器,网络控制器里有一个单独的线程,负责对所有网络设备进行轮询、并发、自控模式通讯调度,以及对IO通道进行数据异步监听,把接收到的数据分发给相应的设备驱动。如下图:

1.5 模块调试1.5.1 调试接口

调试接口定义了调试设备、调试界面视图、调试数据导出、调试应用服务等接口,可以通过这些接口对二次开发的程序模块进行调试工作。

调试接口的定义:

void DebugDevice(IRunDevice dev);

void DebugGraphicsShow(IGraphicsShow show);

void DebugExportData(IExportData export);

void DebugAppService(IAppService appService);

1.5.2 调试方式1.5.2.1 界面方式调试多看书,看好书。

二.SuperIO架构和组成部分

相关文章:

你感兴趣的文章:

标签云: