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)教程】一.通讯机制的更多相关文章

  1. 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    服务接口的作用 围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务.数 ...

  2. 【工业串口和网络软件通讯平台(SuperIO)教程】六.二次开发导出数据驱动

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    导出数据接口的作用 在数据集成系统项目中,要么是自已集成其他厂家的设备,要么是其他厂家集成自己 ...

  3. 【工业串口和网络软件通讯平台(SuperIO)教程】五.二次开发图形显示界面

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    图形显示接口的作用 用于显示采集终端设备的数据,可以把不同类型设备的数据以多种形式集成显示在不 ...

  4. 【工业串口和网络软件通讯平台(SuperIO)教程】四.开发设备驱动

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    开发准备 把“开发包”内的所有文件复制到项目的“bin”目录下,或项目下的专用生成目录.开发包 ...

  5. 【工业串口和网络软件通讯平台(SuperIO)教程】二.架构和组成部分

    1.1    架构结构图 1.1.1    层次示意图 1.1.2    模型对象示意图 1.2    IO管理器 IO管理器是对串口和网络通讯链路的管理.调度.针对串口和网络通讯链路的特点,在IO管 ...

  6. 【工业串口和网络软件通讯平台(SuperIO)教程】八.SuperIO通讯机制与设备驱动对接的说明

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    通讯机制说明 通讯的总体机制采用呼叫应答方式,就是上位机软件主动发送请求数据命令,下位机终端接 ...

  7. 【工业串口和网络软件通讯平台(SuperIO)教程】九.重写通讯接口函数,实现特殊通讯方式

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    统一的IO接口 开发一套设备驱动同时具备串口和网络通讯能力,通讯接口在逻辑上是统一的,在此基础 ...

  8. 【工业串口和网络软件通讯平台(SuperIO)教程】三.二次开发流程

    1.1    二次开发流程图 1.2    引用相关组件 找到“开发包”,引用里边的相关组件.如下图: 1.3    开发设备驱动模块 1.3.1    开发发送协议驱动 继承SuperIO.Devi ...

  9. 工业串口和网络软件通讯平台(SuperIO 2.0)发布

    下载:SuperIO 2.0(开发手册.Demo.组件包) 官网:进入 交流群:54256083 SuperIO 2.0版本正式发布.把SCL正式更改名称为SuperIO. 一.此次升级主要包括两个方 ...

随机推荐

  1. Jmeter 使用Jmeter与Badboy进行压力测试

    1. 介绍 Badboy是一个录制请求的工具,这里用它来生成文件给JMeter用. JMeter是一个用java写的开源的性能测试工具,用于模拟在服务器.网络或者其他对象上附加高负载以测试他们提供服务 ...

  2. layout

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString

    JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString 如下示例: 直接写的a1就是一个Json对象,a2 就是一个Json对象字符串; 通 ...

  4. Android—自定义Dialog

    在 Android 日常的开发中,Dialog 使用是比较广泛的.无论是提示一个提示语,还是确认信息,还是有一定交互的(弹出验证码,输入账号密码登录等等)对话框. 而我们去看一下原生的对话框,虽然随着 ...

  5. iOS----- Crash 分析(文三)- 符号化崩溃日志

    未符号化的崩溃日志就象一本天书,看不懂,更别谈分析崩溃原因了.所以我们在分析日志之前,要把日志翻译成我们可以看得懂的文字.这一步我们称之为符号化. 在iOS Crash分析(文一)中已经提到过符号化的 ...

  6. Java面试(1)-- Java逻辑运算符

    class Demo04{ public static void main(String[] args){ //逻辑运算符 //例1 System.out.println(true | false & ...

  7. jquery颜色选择器

    本站下载 第二种:纯JAVASCRIPT: <html> <head> <meta http-equiv="Content-Type" content ...

  8. .Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译

    apk(android package)就是我们安卓系统的安装文件,可以在模拟器和手机中直接打开安装,从项目中打包apk有几种方式可取 一.最简单的方法(类似我们的winfrom) 只要我们调试或者运 ...

  9. IOS数据存储之归档/解档

    前言: 前天学习了NSUserDefaults,我们知道NSUserDefaults不能保存自定义对象,所以我们今天来认识一下归档(NSKeyedArchiver)和解档(NSKeyedUnarchi ...

  10. .NET使用OpenSSL生成的pem密钥文件[1024位]

    using System; using System.Text; using System.Security.Cryptography; using System.Web; using System. ...