【工业串口和网络软件通讯平台(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. 一.此次升级主要包括两个方 ...
随机推荐
- TODO:小程序开发环境搭建
TODO:小程序开发环境搭建 1.第一步当然是要先注册小程序了 2.登录到小程序 a)完善小程序信息,如名称,图标,描述 3.绑定开发者 4.获取AppID,并设置服务器信息 5.下载并安装开发者工具 ...
- MongoDB学习笔记~根据子集合里某个属性排序
回到目录 这个问题是这样的,有一个实体dog,里面有集合属性DogHistory,它里面有一些自己的属性,其中一个是SortNum,主要用来进行排序,而且这个排序可以影响主对象,即影响dog类,这个在 ...
- 构建基于Chromium的应用程序
chromium是google chrome浏览器所采用的内核,最开始由苹果的webkit发展而出,由于webkit在发展上存在分歧,而google希望在开发上有更大的自由度,2013年google决 ...
- Atitit 深入理解耦合Coupling的原理与attilax总结
Atitit 深入理解耦合Coupling的原理与attilax总结 耦合是指两个或两个以上的电路元件或电网络等的输入与输出之间存在紧密配合与相互影响,并通过相互作用从一侧向另一侧传输能量的现 ...
- WPF DataGrid分页功能实现代码 修改原作者不能实现的部分
这两天需要给Datagrid加个分页,查找了一些相关的文章,发现有一个写了一个控件比较好,地址是 http://blog.csdn.net/zdw_wym/article/details/822189 ...
- PopupWindow底部弹出
说明:从屏幕底部弹出PopupWindow,有弹出隐藏动画效果.背景设置透明度. 效果图如下: 1.MainActivity.java 显示popwindow,宽高跟屏幕大小一样,设置一个透明度背 ...
- gsoap设置超时
1.修改gsoap自动生成的代码才能进行超时设置(我这边访问web service的代码都是gsoap工具自动生成.根据wsdl接口) 2.找到生成的soapwwwsdlBindingProxy.cp ...
- JSP页面静态化
Ps:好久没写博客了,不是我太懒,是因为苦逼的我出差去上海了,天天加班 刚回成都.... 今天说说jsp页面静态化,知道静态化的朋友都不陌生,说白了就是访问后缀是html 而不是jsp. 没听说过静态 ...
- Rust初步(七):格式化
在Rust中,如果要进行屏幕输出,或者写入到文件中,需要对数据进行格式化.这一篇总结一下它所支持的几种格式化方式. 这篇文章参考了以下官方文档,不过,按照我的风格,我还是会突出于C#语言的比较,这样可 ...
- 用CSS3动画,让页面动起来
以前就听说过有个库,叫animate.css,但是自己并没有在实际项目中使用过,这次正好要做个招聘页面,得以利用一下这个库,在经常会卡顿的UC浏览器中也能流畅执行. 扫描下面的二维码,可以看到在线的d ...