【工业串口和网络软件通讯平台(SuperIO)教程】八.SuperIO通讯机制与设备驱动对接的说明
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf
1.1 通讯机制说明
通讯的总体机制采用呼叫应答方式,就是上位机软件主动发送请求数据命令,下位机终端接收到命令后,并校验成功,返回相应的数据。
(1)串口通讯机制包括:轮询模式。
串口总线涉及到一对一的通讯、一对多的通讯,为了避免总线上数据的冲突问题以及环境干扰的问题,在保障通讯稳定性的前提下,只采用轮询通讯机制。一个设备发送、接收完成数据后,才进行下一个设备的通讯。但是这种通讯效率比较低,如果要提高通讯效率,可以增加串口服务器,在SuperIO平台上实现一个串口对应多台现场设备进行通讯,也就是把现场的所有设备平衡负载到不同的串口上。
(2)网络通讯机制包括:轮询模式、并发模式和自控模式。
轮询模式与串口通讯机制中的轮询模式相同,但是对于网络通讯时,这个操作模式的效率是非常低,不能体现网络通讯的优势。基于这样的考虑,在轮询模式的基础上,增加了并发模式和自控模式。
并发模式,由SuperIO的内部来协调实现,通过调用IRunDevice设备接口的GetSendBytes函数获得发送的命令包,集中发送所有设备的数据。接收数据部分采用异步监听方式,接收相应设备的数据。并发模式的通讯周期由SuperIO平台统一进行调度,不能自主控制请求数据的周期,在此基础上增加了自控模式。
自控模式,二次开发者在开发设备驱动时,可以定时通过OnSendDataHandler发送请求数据命令,接收数据部分采用异步监听方式,接收相应设备的数据,做到即时请求即时响应。
另外一种情况,现场硬件终端会主动发送状态字数据给上位机软件,这时候就需要能够主动监听接收数据事件,这是轮询模式做不到的。遇到这类情况,建议使用自控模式进行通讯。
1.2 通讯机制与设备驱动对接
SuperIO包括两大部分:通讯部分和设备驱动部分。
(1) 通讯部分如何与设备驱动协调工作?两部分主要是通过IRunDevice接口实现两部分之间的协调工作,线程、异步、同步等机制由SuperIO内部来完成。
(2) 通讯部分接收到数据后如何传输到相应的设备上?轮询模式不存在这个问题,主要涉及到并发模式和自控模式,因为这两部分采用的是异步监听数据的方式。解决这个问题有两种方式:第一种、通过接收协议驱动获得设备ID来识别相应的设备。第二种、通过设备设置的IP地址来识别相应的设备。现在的SuperIO平台采用的是第二种方式。
(3) 并发模式和自控模式如何实现通讯中断状态?在链路不通的情况下,发送请求命令,没有返回相应的数据,也不过触发运行设备的接口,所以通讯状态也不会改变,也不会做出任何反应。解决这个问题的方式是,发送请求数据命令超过3次,每次都没有返回相应的数据,就会触发运行设备接口,来完成运行设备的整个流程。
作者QQ:504547114
交流QQ群:54256083
官方网址:http://www.bmpj.net
源文章地址:http://www.bmpj.net/index.php?m=article&f=view&id=8
【工业串口和网络软件通讯平台(SuperIO)教程】八.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相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 统一的IO接口 开发一套设备驱动同时具备串口和网络通讯能力,通讯接口在逻辑上是统一的,在此基础 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】一.通讯机制
1.1 应用场景 通讯平台的交互对象包括两方面:第一.与硬件产品交互.第二.与软件产品交互.基本这两方面考虑,通讯平台一般会应用在两个场景: 1)通讯平台应用在PC机上 主要应用在自动站的工控机 ...
- 【发布】工业串口和网络软件通讯平台(SuperIO v2.2.4)
SuperIO 下载:本站下载 百度网盘 更新说明: 1.修复无法把数据输出给IAppService的问题,以及无法触发删除操作事件. 2.侦听端口,可以设置. 3.设备接口,增加Object属性,方 ...
- 工业串口和网络软件通讯平台(SuperIO 2.0)发布
下载:SuperIO 2.0(开发手册.Demo.组件包) 官网:进入 交流群:54256083 SuperIO 2.0版本正式发布.把SCL正式更改名称为SuperIO. 一.此次升级主要包括两个方 ...
随机推荐
- Golang与C#之switch区别
Golang与C#之switch区别 Go是Google开发的一种编译型,可并行化,并具有垃圾回收功能的编程语言. C#是微软公司发布的一种面向对象的.运行于.NET Framework之上的高级程序 ...
- LeetCode Note 1st,practice makes perfect
1. Two Sum Given an array of integers, return indices of the two numbers such that they add up to a ...
- 为CentOS7(文字界面操作)系统安装gnome图形界面程序
1.安装gnome sudo yum groupinstall "GNOME Desktop" "Graphical Administration Tools" ...
- 学习SpringMVC——从HelloWorld开始
前言: 时隔十二年,中国女排最终过关斩将,用3:1的成绩证明了自己的实力,霸气夺冠,为中国赢得了一枚意义非常的金牌.这是一次全民的狂欢,一场视听盛宴,带给我们不仅是熠熠生辉的金牌,更传递出的是一种女排 ...
- 蓄水池(Reservoir_sampling)抽样算法简记
摘要 1.适用场合 2.算法简介 3.代码例子 4.Spark RangePartitioner 中的应用(待补充) 内容 1.适用场合:从包含n个项目的集合S中选取k个样本,其中n为一很大或未知的数 ...
- struts2+spring+hibernate 实现分页
在这里要感谢下这位博友发表的博文 http://www.blogjava.net/rongxh7/archive/2008/11/29/243456.html 通过对他代码的阅读,从而自己实现了网页分 ...
- salesforce 零基础学习(四十三)运算取余
工作中遇到一个简单的小问题,判断两个数是否整除,如果不整除,获取相关的余数. 习惯java的我毫不犹豫的写下了代码 public Boolean isDivisibility(Integer divi ...
- Java基础-输入输出-3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc。
3.编写BinIoDemo.java的Java应用程序,程序完成的功能是:完成1.doc文件的复制,复制以后的文件的名称为自己的学号姓名.doc. try { FileInputStream in = ...
- JS原生第八篇 (帅哥)
1.1 复习 1. clientX clientWidth 可视区域的宽度 clientWidth width + padding offsetWidth ...
- Security2:Create User
User 用于访问DB Users based on logins in master (This is the most common type of user.) User based on a ...