【工业串口和网络软件通讯平台(SuperIO)教程】一.通讯机制
1.1 应用场景
通讯平台的交互对象包括两方面:第一、与硬件产品交互。第二、与软件产品交互。基本这两方面考虑,通讯平台一般会应用在两个场景:
1)通讯平台应用在PC机上
主要应用在自动站的工控机上,通过RS485/RS232、RJ45、4-20mA等方式采集硬件设备的数据信息。同时,通讯平台与服务器端的软件进行交互,负责上传数据信息,以及接收控制命令等。
2)通讯平台应用在服务器端上
终端设备以3G/4G、有线专网、卫星等与通讯平台连接,进行数据交互,终端设备包括:PC机、移动终端(手机)、监测设备等。

1.2 通讯机制概述
对于通讯平台来说,通讯部分始终是软件的核心,要求高实时性、高稳定性。软件架构决定了软件运行的稳定性,以及以后的扩展性,所以需要对通讯机制、控制方式进行良好的设计。
一般采用的通讯机制为呼叫应答方式,或叫主从方式。主机发送请求命令,从机接到命令后进行校验数据的完整性,以及确定是否发给自己的命令,校验成功后,返回指定的数据信息,完成一次完整的通讯。
呼叫应答通讯机制如下图:

1.3 串口、网络的整合
在开发设备驱动或协议驱动的时候,对于同一个驱动模块要同时支持RS485/RS232和RJ45通讯方式,避免因为协议的不同或是通讯方式的不同进行多次重复性的开发。保证业务逻辑统一的情况下,尽量减少工作量。所以,在通讯方式方面要在逻辑上统一接口,以保证整个通讯平台的通用性。
接口设计如下图:

1.4 串口通讯机制
由于串口通讯的特性限制,避免多个硬件设备连接到串口总线出现数据混乱现象,主要采用轮询模式的呼叫应答通迅机制。
(1) 轮询模式
当有多个设备连接到通讯平台时,通讯平台会轮询调度设备进行通讯任务。某一时刻只能有一个设备进行发送请求命令、等待接收返回数据,这个设备完成发送、接收后,下一个设备才进行通讯任务,依次轮询设备。如下图:

1.5 网络通讯机制
轮询通讯机制是保证数据有序的发送、接收,避免并发数据在总线上出现混乱,但是这种通讯机制是以降低性能为代价的,适用于串口通讯,在以太网通讯中显然无法充分利用网络通讯的优势。
以太网是独立信道、可以全双工通讯。为了充分发挥以太网的优势,在轮询通讯机制的基础上增加了并发通讯模式、自控通讯模式通迅机制。一是为了提高通讯的性能,二是为了二次开发有更多自主控制权。
(1) 轮询模式
以太网轮询通讯模式与串口通讯模式一致,如下图:

(2) 并发模式
并发通讯模式是集中发送所有设备的请求指令,硬件设备接收到指令后进行校验,校验成功后返回对应指令的数据,通讯平台监听到数据信息后,进行接收操作,然后再进行数据的分发、处理等。如下图:

(3) 自控模式
自控通讯模式与并发通讯模式类似,区别在于发送指令操作交给设备本身,或者说交给二次开发者,二次开发者可以自主通过事件驱动发送指令。硬件设备接收到指令后进行校验,校验成功后返回对应指令的数据,通讯平台监听到数据信息后,进行接收操作,然后再进行数据的分发、处理等。
自控通讯模式可以为二次开发者提供精确的定时请求实时数据机制,使通讯机制更灵活。也可以利用自控通讯模式,在不发送任何数据的情况下,进行被动接收数据。如下图:

作者QQ:504547114
交流QQ群:54256083
官方网址:http://www.bmpj.net
源网址:http://www.bmpj.net/index.php?m=article&f=view&id=1
【工业串口和网络软件通讯平台(SuperIO)教程】一.通讯机制的更多相关文章
- 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 服务接口的作用 围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务.数 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】六.二次开发导出数据驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 导出数据接口的作用 在数据集成系统项目中,要么是自已集成其他厂家的设备,要么是其他厂家集成自己 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】五.二次开发图形显示界面
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 图形显示接口的作用 用于显示采集终端设备的数据,可以把不同类型设备的数据以多种形式集成显示在不 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】四.开发设备驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 开发准备 把“开发包”内的所有文件复制到项目的“bin”目录下,或项目下的专用生成目录.开发包 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】二.架构和组成部分
1.1 架构结构图 1.1.1 层次示意图 1.1.2 模型对象示意图 1.2 IO管理器 IO管理器是对串口和网络通讯链路的管理.调度.针对串口和网络通讯链路的特点,在IO管 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】八.SuperIO通讯机制与设备驱动对接的说明
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 通讯机制说明 通讯的总体机制采用呼叫应答方式,就是上位机软件主动发送请求数据命令,下位机终端接 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】九.重写通讯接口函数,实现特殊通讯方式
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 统一的IO接口 开发一套设备驱动同时具备串口和网络通讯能力,通讯接口在逻辑上是统一的,在此基础 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】三.二次开发流程
1.1 二次开发流程图 1.2 引用相关组件 找到“开发包”,引用里边的相关组件.如下图: 1.3 开发设备驱动模块 1.3.1 开发发送协议驱动 继承SuperIO.Devi ...
- 工业串口和网络软件通讯平台(SuperIO 2.0)发布
下载:SuperIO 2.0(开发手册.Demo.组件包) 官网:进入 交流群:54256083 SuperIO 2.0版本正式发布.把SCL正式更改名称为SuperIO. 一.此次升级主要包括两个方 ...
随机推荐
- [大数据之Spark]——Transformations转换入门经典实例
Spark相比于Mapreduce的一大优势就是提供了很多的方法,可以直接使用:另一个优势就是执行速度快,这要得益于DAG的调度,想要理解这个调度规则,还要理解函数之间的依赖关系. 本篇就着重描述下S ...
- 编译异常 Caused by: java.lang.UnsupportedClassVersionError:
Caused by: java.lang.UnsupportedClassVersionError: com/sumingk/platform/service/impl/ServiceSysPerso ...
- 替代jquery1.9版本以前的toggle事件函数(开关)
以上文章为转载自http://blog.sina.com.cn/s/blog_50042fab0101c7a9.html var flag=1; $(".selector").cl ...
- PHP的性能演进(从PHP5.0到PHP7.1的性能全评测)
本文是最初是来自国外的这篇:PHP Performance Evolution 2016, 感谢高可用架构公众号翻译成了中文版, 此处是转载的高可用架构翻译后的文章从PHP 5到PHP 7性能全评测( ...
- 用电脑给手机安装App
每一个账号密码只允许同时授权5台电脑,当授权满后还想授权其他的就必须删除以前的授权.
- Security1:Create Login
Login 用于登陆SQL Server,语法是 -- Syntax for SQL Server CREATE LOGIN login_name { WITH <option_list1> ...
- .Net 转战 Android 4.4 日常笔记(2)--HelloWorld入门程序
我不知道人们为什么那么喜欢用HelloWorld来做为自己的第一个程序入门,为什么不是hello **其他的东西或者hi. 一.打开ADT 的Eclipse开发工具新建一个Android项目 New- ...
- 浅谈requireJS
项目中大都使用模块化开发,requireJS作为AMD模块开发的典范,所以有必要学习下.通过一步步利用requireJS编写demo,从而学习requireJS的一个整体开发流程以及自我使用requi ...
- WinForm最小化到托盘以及托盘右键菜单
首先,先拖一个NotifyIcon到主窗体,然后设置NotifyIcon的图标,不然等下最小化后,都找不到那个程序了,还有那个Text也是,不写名字,就默认是NotifyIcon了..如下图: 然后双 ...
- DotNet中几种常用的加密算法
在.NET项目中,我们较多的使用到加密这个操作.因为在现代的项目中,对信息安全的要求越来越高,那么多信息的加密就变得至关重要.现在提供几种常用的加密/解密算法. 1.用于文本和Base64编码文本的互 ...