文档视界 最新最全的文档下载
当前位置:文档视界 › 控制理论(Control Theory)

控制理论(Control Theory)

控制理论(Control Theory)
控制理论(Control Theory)

ControlNet网络故障检测程序开发及应用

企业技术开发2012年11月摘 要:文章通过研究ControlNet 网络传输信号的特点,根据发生故障时,接收方信号保持不变的特征,开发一段故障检 测程序,用于判断ControlNet 网络运行是否正常,并在发生故障时能及时报警提示、自动停机,确保加香加料精度在工艺 标准允许的范围内,把故障影响程度降到最低,避免发生质量事故。关键词:ControlNet ;PLC ;网络故障中图分类号:TQ172文献标识码:A 文章编号:1006-8937(2012)31-0006-02 The development and application of ControlNet network fault detection program WANGJian-sheng,HUANGFu-jian,WUYong (ChinaTobaccoGuangxiIndustrialCO.,Ltd.,LiuzhouCigaretteFactory,Liuzhou,Guangxi545006,China )Abstract:ThroughthestudyofControlNetnetworktransmissionsignalcharacteristic,thispaperdevelopsonefaultdetectionprogramac-cordingtothefeaturethatthesignalremainsthesameduringfailure,usedtojudgetheControlNetNetworkrunningwhethernormallorfault,afaultoccurscanbetimelyalarm,automaticstop,ensureaccuracyintheprocessofflavoringstandardsallowedrange,thefaultin-fluencedegreedroptoaminimum,avoidtheoccurrenceofqualityaccidents.Keywords :ControlNet;PLC;networkfault ControlNet 网络故障检测程序开发及应用 王建生,黄富建,巫勇 (广西中烟工业有限责任公司柳州卷烟厂,广西柳州545006) 收稿日期:2012-09-22 作者简介:王建生(1971—),男,广西柳州人,大学本科,工程师,主要 从事制丝设备电气维修、设备管理、设备技改相关工作。 企业技术开发TECHNOLOGICAL DEVELOPMENT OF ENTERPRISE 第31卷第31期Vol.31No.31 2012年11月 Nov.2012 制丝线各控制段采用A-B 公司ControlLogix5555处理器为主控制器,各控制段PLC 与香料厨房PLC 的信息交换,各控制段PLC 间的运行连锁关系全部是通过ControlNet 进行传输,生产过程中一旦出现ControlNet 网络故障(如某一电柜意外停电造成网络不通),PLC 间的连锁信号将失去有效控制,接收方收到的信号会保持网络故障前一时刻的状态,造成香料厨房PLC 按固定流量继续施加料液(因接收到电子秤流量信号保持不变),因系统本身无网络状态检测、 无故障报警、无自动停机功能,若操作人员发现不及时或者采取措施不果断、有效,很容易导致加香、加料精度超标,甚至出现整批烟质量事故的严重后果。为此,有必要编制一段故障检测程序来表征ControlNet 网络运行状态,时刻侦测网络运行状态,一旦发生故障时,能准确判断、及时停机,保证加香加料精度在工艺标准允许的范围内,把故障影响程度降到最低,避免发生质量事故。 1 ControlNet 网络概述 1.1 ControlNet 网络的通信模式 ControlNet 是一种高速确定性网络, 用于对时间有苛刻要求的应用场合的信息传输,网络总线速率为5Mbps ,同一链路上允许有多个控制器同时存在,网络上节点居于对等地位,可以从任意节点实现网络存取。采用生产 者/消费者通信模式,允许网络上的所有节点同时从同一个数据源存取相同的数据,数据一旦产生,便与客户的数量无关,从而使网络通信效率更高。生产者/消费者模式还采用广播式信息发送方式,各个节点客户可以在同一时间接收到生产者所发送的数据,节点之间接收信息精确同步。总线拓扑结构可以是星型、树型、总线型或是它们之间的任意组合,使用中继器可延长网络的传输距离,中继器数量只受到系统延迟时间的限制,整个网络支持冗余结构。1.2 制丝线网络结构 系统中PLC 采用美国A-B 公司的ControlLogix 系列产品,主要配置有:1756-L55M24、1756-PA75、1756-A13、1756-CNBR 、1756-DNB 、1756-IB32、1756-OB32等。 为了保证系统的可靠性,ControlNet 网络采用了双冗余模式,网络总长度超过1000m ,采用了中继器进行扩展。上位监控机一方面通过1784-PCIC 卡直接与底层PLC 通讯,另一方面通过以太网卡与管理系统进行数据交换。制丝线网络结构图,如图1所示。1.3 故障检测原理 为保证传输时间准确,采用生产者/消费者模式进行信号传输,根据ControlNet 网发生故障时,接收端收到信号保持不变的特性(保持网络中断前接收的信号),我们在发送端定时发送变化有规律且一个周期内不会有重复的特定信号,在接收端对本次收到的信号和上次收到的信号进行比较,若两者不一致,则网络正常;反之,网络故障。网络故障检测原理图,如图2所示。

系泊系统的设计和探究

赛区评阅编号(由赛区组委会填写): 2016年高教社杯全国大学生数学建模竞赛 承诺书 我们仔细阅读了《全国大学生数学建模竞赛章程》和《全国大学生数学建模竞赛参赛规则》(以下简称为“竞赛章程和参赛规则”,可从全国大学生数学建模竞赛网站下载)。 料 我们的报名参赛队号(12位数字全国统一编号): 参赛学校(完整的学校全称,不含院系名): 参赛队员 (打印并签名) :1. 2.

3. 指导教师或指导教师组负责人 (打印并签名): (指导教师签名意味着对参赛队的行为和论文的真实性负责) 日期:年月日 送全国评阅统一编号(赛区组委会填写): 全国评阅随机编号(全国组委会填写): (请勿改动此页内容和格式。此编号专用页仅供赛区和全国评阅使用,参赛队打印后装订到纸质论文的第二页上。注意电子版论文中不得出现此页。)

系泊系统的设计和探究 摘要 本文利用牛顿力学定律,力矩平衡原理、非线性规划、循环遍历法等方法对系泊系统进行了设计与探究。通过对系泊系统各组件和浮标运用牛顿经典力学体系进行分析,得到了各个情况下的钢桶倾斜角度、锚链状态、浮标吃水深度和游动区域。 ?, 。当风 对于第二问,求解当海面风速为36m/s时,浮标的吃水深度和游动区域、钢桶以及钢管的倾斜角度和锚链形态。利用第一问中的力学方程和程序,求得钢桶的倾角为19.5951?和四节钢管的倾斜角度依次为19.756?、19.755?、19.916?、20.076?。浮标的游动区域为以锚在海面上的投影为圆心,半径为18.8828m的圆。由于部分数据与问题二中钢桶的倾斜角度不超过5?,锚链在锚点与海床的夹角不超过16?的要求不符,所以通过调节重物球的质量使钢桶的倾斜角度和锚链在锚点与海床的夹角处在要求的范围之内。借助MATLAB程序中的循环遍历法,可以求得重物球的质量3770kg。

usb驱动程序教程

编写Windows https://www.docsj.com/doc/021178163.html,的usb驱动程序教程 Windows https://www.docsj.com/doc/021178163.html, 是微软推出的功能强大的嵌入式操作系统,国内采用此操作系统的厂商已经很多了,本文就以windows https://www.docsj.com/doc/021178163.html,为例,简单介绍一下如何开发windows https://www.docsj.com/doc/021178163.html, 下的USB驱动程序。 Windows https://www.docsj.com/doc/021178163.html, 的USB系统软件分为两层: USB Client设备驱动程序和底层的Windows CE实现的函数层。USB设备驱动程序主要负责利用系统提供的底层接口配置设备,和设备进行通讯。底层的函数提本身又由两部分组成,通用串行总线驱动程序(USBD)模块和较低的主控制器驱动程序(HCD)模块。HCD负责最最底层的处理,USBD模块实现较高的USBD函数接口。USB设备驱动主要利用 USBD接口函数和他们的外围设备打交道。 USB设备驱动程序主要和USBD打交道,所以我们必须详细的了解USBD提供的函数。 主要的传输函数有: abourttransfer issuecontroltransfer closetransfer issuein te rruptransfer getisochresult issueisochtransfer gettransferstatus istransfercomplete issuebulktransfer issuevendortransfer 主要的用于打开和关闭usbd和usb设备之间的通信通道的函数有: abortpipetransfers closepipe isdefaultpipehalted ispipehalted openpipe resetdefaultpipe resetpipe 相应的打包函数接口有: getframelength getframenumber releaseframelengthcontrol setframelength takeframelengthcontrol 取得设置设备配置函数: clearfeature setdescriptor getdescriptor setfeature

教你写cue,简单教程

首先我来举例 这是一个71分钟的整轨音乐 当写完cue目录以后 整轨还是整轨,但是可以直接读取音乐为分轨 我看了很多网上的教程,我自己感觉很复杂。我来简化一下,那些可写可不写的就不写出来了,就比如怎么写流派,作者,压制人神马的我就布写了。 步骤: 1、建TXT文件,文件名字为整轨音乐的名字。例如: 2、来看一段代码: FILE "神思者(S.E.N.S).-.[Sound.Earth.Nature.Spirit.vol.EARTH].专辑.(APE).ape" WAVE (这里相当于地址代码,将你的整轨音乐的全部名称,包括后缀名一起写到””中,注意所有代码全部是英文格式,包括标点符号都是英文格式。后面的wave不需要改动。

TRACK 01 AUDIO(表示第一支音乐) TITLE "Wish"(第一支音乐的名字) PERFORMER "S.E.N.S."(第一支音乐的作者) INDEX 01 00:00:00(这里不要改动了,第一支音乐的时间不需要改动) TRACK 02 AUDIO(表示第二支音乐) TITLE "陽光"(第二支音乐的名字) PERFORMER "S.E.N.S."(第二支音乐的作者,我用的都是一个专辑,全部是神者思的音乐,所以作者都一样。) INDEX 00 05:27:47(是上一支音乐的结束时间,不写也可以) INDEX 01 05:28:51(这是第二支音乐开始时间) TRACK 03UDIO(表示该第三支音乐了) ……以此类推 然后讲TXT格式改写成cue格式就完成了。注意一下,请将你的cue文件和音乐文件放在同一文件夹内。

ControlNet网络上ControlLogix与PanelView的通信

实验二ControlNet网络上ControlLogix与 PanelView的通信 在完成了1771 I/O到打包机的集成之后,你被告知需要升级操作员面板。操作员面板是一块带有大量按钮和指示灯的面板。指示灯总是烧坏,面板也难于保持清洁。而且,面板与经理办公室离得很近,它看起来又旧又破。你觉得这是采用新型PanelView终端的理想场合。触摸屏式的PanelView易于保持清洁,也可以免去指示灯烧坏的问题。并且,比起现有的操作员面板来说,PanelView能够组态,可以方便地连接到ControlNet网络。 维护经理表达了对于网络性能的一些担心。他说,ControlNet网络上有很多信息传送活动,而他需要在点动一个特定电动机的时候有更好的精度。你说没问题,我们可以将电动机点动信息放在预定带宽(Scheduled Bandwidth)中。 在本实验中,我们将使用PanelBuilder32软件为PanelView创建一个项目,将它能够与ControlNet网络上的ControlLogix系统进行通信。 本实验的主题: ●使用PanelBuilder32软件创建PanelView应用程序 ●组态PanelView在ControlNet网络上使用非预定信息(Unscheduled Messages) ●组态PanelView在ControlNet网络上使用预定信息(Scheduled Messages) 我们将利用以下实验设备进行工作:

组态PanelView的第一步是直接在PanelView上设置通信组态(Communication Configuration)。 1.在PanelView上,选择Communication Setup,按回车。 2.设定节点地址为12,Interscan Delay为100ms(触摸当前节点地址,调出一个按键窗 口,改变地址)。 3.按触摸屏的“Restart Terminal”区域。 4.在终端重新启动之后,通过RSLinx的RSWho窗口,检查你是否正在通过ControlNet 网络与PanelView进行通信。 5.通过选择Start → Programs → PanelBuilder32 → PanelBuilder32启动PanelBuilder32软 件。 6.选中“Create New Application”,并按OK,创建一个新的应用程序。 7.将应用程序的名字设为“Boxing Machine”。 8.按照下图,设定PanelView终端类型为PV1000 Color、Touch,通信协议为ControlNet 1.5。 9.点击“Catalog & Revision Numbers”按钮,选择FRN 3.30-3.xx。 10.按OK,接受组态情况,出现PanelView屏幕与相匹配的空白屏幕。 11.从主菜单选择“Application”,打开Terminal Setup对话框,然后从下拉菜单选择 “Settings”。 12.点击“Comms Setup”按钮,打开通信设置画面。 13.设定PanelView的节点地址为12,Interscan Delay为100ms。 14.在Node Name这一列选择“End of Node List”,然后右击鼠标,选择“Insert Node”, 按如下画面设置参数。

2016数学建模A题系泊系统设计

系泊系统的设计 摘要 对于问题一,建立模型一,已知题目给出的锚链长度与其单位长度的质量,得到悬链共210环。对各节锚链,钢桶,四节钢管受力分析得出静力平衡方程,使用分段外推法,可以得到静力平衡下的迭代方程。其中锚对锚链的拉力大小方向为输入变量,迭代的输出变量为浮标的位置和对钢管的拉力,在给定的风速下,输入和输出满足关系2)2(25.1cos 水v h T -=α,αθcos cos 11T T =,通过多层搜索算法得出最符合的输入输出值,即可得到给定风速下浮标的吃水深度,浮标拉力、锚链与海床夹角。利用MATLAB 软件编程求解模型得到:风力12m/s 时,钢桶与竖直方向上的角度1.9863度,从下往上四节钢管与竖直方向夹角为1.9652度、1.9592度、1.9532度、1.9472度,浮标吃水0.7173m ,以锚为圆心浮标的游动区域16.5125m ,锚链末端切线与海床的夹角3.8268度。风力24m/s 时,锚链形状,钢桶与竖直方向上的夹角3.9835度,从下往上四节钢管与竖直方向夹角为3.9420度、3.9301度、3.9183度、3.9066度,浮标吃水0.7244m ,以锚为圆心浮标的游动区域18.3175m 。锚链末端切线与海床夹角15.9175度。 对于问题二的第一小问,使用模型一求解,当风速36m/s 时,锚链末端切线与海床夹角26.3339度,浮标吃水0.7482m ,浮标游动区域为以锚为圆心半径为18.9578m 的圆形区域,从下往上四节钢管与竖直方向倾斜角度为8.4463度、8.4225度、8.3989度、8.3753度,钢桶与竖直方向倾斜角度为8.5294度。为满足问题二的要求,在模型一的基础上把重物球质量作为变量,建立模型二,将钢桶倾斜角小于5度和锚链前端夹角小于16度当做两个约束条件,通过MATLAB 编程求解得到满足约束条件要求的重物球质量取值范围为3700kg 到5320kg 。 对于问题三,首先取不同水深、水速、风速三种情况,建立模型三,即在模型一的基础上增加水流对系统产生的影响。在三种情况下,找到合适的锚链型号、锚链长度,重物球质量,对吃水深度、游动区域、钢桶的倾斜角三个目标进行优化达到最小。通过MATLAB 编程实现该模型三得到结果:选用Ⅲ型锚链,锚链长度为27.24m ,重物球质量为2580kg 。 关键词:平面静力系分析 多层搜索算法 遗传算法 逐步外推法 多目标优化

USB驱动程序编写

USB驱动程序编写 linux下usb驱动编写(内核2.4)——2.6与此接口有区别2006-09-15 14:57我们知道了在Linux 下如何去使用一些最常见的USB设备。但对于做系统设计的程序员来说,这是远远不够的,我们还需要具有驱动程序的阅读、修改和开发能力。在此下篇中,就是要通过简单的USB驱动的例子,随您一起进入USB驱动开发的世界。 USB骨架程序(usb-skeleton),是USB驱动程序的基础,通过对它源码的学习和理解,可以使我们迅速地了解USB驱动架构,迅速地开发我们自己的USB硬件的驱动。 USB驱动开发 在掌握了USB设备的配置后,对于程序员,我们就可以尝试进行一些简单的USB驱动的修改和开发了。这一段落,我们会讲解一个最基础USB框架的基础上,做两个小的USB驱动的例子。 USB骨架 在Linux kernel源码目录中driver/usb/usb-skeleton.c为我们提供了一个最基础的USB驱动程序。我们称为USB骨架。通过它我们仅需要修改极少的部分,就可以完成一个USB设备的驱动。我们的USB驱动开发也是从她开始的。 那些linux下不支持的USB设备几乎都是生产厂商特定的产品。如果生产厂商在他们的产品中使用自己定义的协议,他们就需要为此设备创建特定的驱动程序。当然我们知道,有些生产厂商公开他们的USB协议,并帮助Linux驱动程序的开发,然而有些生产厂商却根本不公开他们的USB协议。因为每一个不同的协议都会产生一个新的驱动程序,所以就有了这个通用的USB驱动骨架程序,它是以pci 骨架为模板的。 如果你准备写一个linux驱动程序,首先要熟悉USB协议规范。USB主页上有它的帮助。一些比较典型的驱动可以在上面发现,同时还介绍了USB urbs的概念,而这个是usb驱动程序中最基本的。 Linux USB 驱动程序需要做的第一件事情就是在Linux USB 子系统里注册,并提供一些相关信息,例如这个驱动程序支持那种设备,当被支持的设备从系统插入或拔出时,会有哪些动作。所有这些信息都传送到USB 子系统中,在usb骨架驱动程序中是这样来表示的: static struct usb_driver skel_driver = { name: skeleton, probe: skel_probe, disconnect: skel_disconnect, fops: &skel_fops, minor: USB_SKEL_MINOR_BASE, id_table: skel_table,

整轨Ape+Cue刻录CD教程

整轨Ape+Cue刻录CD教程 (直接用nero刻录ape或者flac) http://www.6666.so/article/teach/nero-ape-flac.htm 由于手头有很多不错的Ape音乐,不忍心删除,于是乎,买了几张啄木鸟的黑胶音乐碟…进行音乐刻录~想想的确是这样子的~一张正版发烧音乐的价格可是上百元的高价…网络资源的丰富….不得不感慨感慨… 以下是我刻录的光盘(啄木鸟黑胶音乐盘),拍了几张~

以下开始我的演示:第二页[pagebreak] 首先我们的音频源, 由于网上下载的很多整轨ape是附带cue的,如下:

因此第一步需要将ape还原成wav,这里采用Monkey's Audio 4.05(版本无所谓),将工作模式改为解压缩(Decompress): 然后点击添加(Add Files) 再之后点击一下Decompress即可完成解压缩~ [pagebreak] 第二步是对cue文件进行修改:

用记事本打开cue文件,然后将file“”引号之间的路径改成转换完成的*.wav~ PS:请务必将wav文件改成英文,在cue文件也填写相同的英文名,否则有些刻录软件无法识别~ [pagebreak] 第三部是刻录: 这里我用的是:Nero Burning ROM,很多光驱会附带的!! 点击打开,选择cue文件,

然后在刻录界面设置如下参数: 这里面说明几点: 1.模拟的勾建议打上,当然如果你实在不愿意的话不用打钩,直接刻录~

2.写入速度请不要设置太快~ 之后点击刻录即可~ 包装一下就有一张极品音乐光盘了,如果做成光雕盘,送给朋友可是一份很不错的礼物

DEVICENET与 CONTROLNET区别

网络系统结构 在一个开放式自动化系统结构中,通常包含有三个网络层:即设备层、控制层以及信息层。 设备层:将低层的设备直接联接到车间控制器上这种联接无需通过I/O模块。即用方便而快速的链路采集各种各样的、来自不同厂家、距离远近不同的现场设备(如传感器、驱动器)的数据,对其进行配置和监视 控制网:各个PLC之间及其与各智能化控制设备之间,进行控制数据的交换、控制的协调、网上编程和程序维护、远程设备配置和查、排错误,也可以联接各种人机界面产品进行监控。 信息网:提供上层计算机系统,以便通过以太网访问车间级的数据,主要为了全厂范围控制系统的数据汇集和监视。数据量大而实用性要求不高,它的开放性协议使各种主计算机和不同厂家的PLC可以互连。在必要时也可以进行一些控制和协调。这一层采用符合公共标准TCP/IP协议的以太网。 DEVICENET与 CONTROLNET区别 DeviceNet是由Allen-Bradley公司(Rockwell自动化)发的一种基于CAN的开放的现场总线标准。DeviceNet作为一种高性能的协议,DeviceNet协议设计简单,实现成本较为低廉,但对于采用最底层的现场总线的系统(例如,由传感器、制动器以及相应的控制器构成的网络)来说,却是性能极高的。

DeviceNet设备涉及的范围从简单的光电开关一直到复杂的半导体制造业中的用到的 真空泵。就像其他的协议一样,DeviceNet协议最基本的功能是在设备及其 相应的控制器之间进行数据交换。因此,这种通信是基于 面向连接的(点对点或多点传送)通讯模型建 立的。这样,DeviceNet既可以工作在主从模式,也可以工作在多主模式。一 个DeviceNet网络工作在125k、250k和500k的波特率下最多可以支持64个节点。设备可以使用自身的电源,也可以通过DeviceNet总线供电。和CANopen协议相比较后可以看出,两种协议可以实现相类似的功能,但DeviceNet更强调不同的优先权。例如,在DeviceNet 网络中,网络管理功能存在于每一个独立的节点之中,这样,个节点都可以监控其他节点。而在CANopen网络中,则采用了中心授权机制,通过一个NMT-Master对网络进行管理。CANopen的通信机制更加简单,从而可以降低设备的复杂程度。使用DeviceNet可以提供更高的安全性,。 ControlNet是于生产者/消费者模式(Producer/Consumer Model)的网络。ControlNet 允许在同一链路上有多个控制器共存,支持输入数据或端到端的多路发送,这就大大的减少了网络上的交通量,提高了网络效率和网络性能。ControlNet是高度确定性、可重复性的网络。ControlNet能预见数据何时能够可靠传输到目标的能力,同时数据的传输时间不受网络节点添加/删除情况或网络繁忙状况而保持恒定的能力。在实际应用中,通过网络组态时选择性设定有计划I/O分组或互锁时间,这些要求能得到更进一步的保证。生产者/消费者模式允许网络中所有的节点同时获取来自同一数据源的数 据。最终,该模式提高了效率,因 为数据只发送一次,而与数据使用 者(Consumer)的数量无关,并且具有精确的同步性。因为数据将同时到达每一个节点。生产者-消费者模式的优点在于:多个节点可以同时消费(Consume,即读取)来自同一个生产省(Producer,即数据源)所提供的数据。节点间易于同步,可以获得更为精确的系统性能,设备可以实现自主通信,无需系统主站。ControlNet提供了简单、高度确定而且灵活的传输数据方式。ControlNet在执行操作、数据实时监控时不会影响到I/O控制的性能。因此,ControlNet非常适用于一些控制关系有复杂关联、要求控制控制信息同步、协调实时控制、数据传输速度要求较高的应用场合。 ControlNet的明显优点是:同一链路上满足I/O数据、实时互锁、端到端报文传输和 编程/组态等信息应用的多样要求;是确定性、可重复性的控制网络,适合离散控制和过程控制;同一链路上允许有多个控制器同时共存;输入数据和端到端信息的多路发送支持;可选的介质冗余和本征安全;安装和维护的简单性;网络上节点居于对等地位,可以从任意节点实现网络存取;灵活的拓扑结构(总线型、树型、星型等)和介质选择(同轴电缆、光纤和其它)。 区别 1.Controlnet 和Devicenet 组网方式不同,需要rsnetworx for contronet & rsnetworx for devicenet,C网比较好组,D网有些难度。

USB设备驱动程序设计

USB设备驱动程序设计 引言 USB 总线是1995 年微软、IBM 等公司推出的一种新型通信标准总线, 特点是速度快、价格低、独立供电、支持热插拔等,其版本从早期的1.0、1.1 已经发展到目前的2.0 版本,2.0 版本的最高数据传输速度达到480Mbit/s,能 满足包括视频在内的多种高速外部设备的数据传输要求,由于其众多的优点,USB 总线越来越多的被应用到计算机与外设的接口中,芯片厂家也提供了多种USB 接口芯片供设计者使用,为了开发出功能强大的USB 设备,设计者往往 需要自己开发USB 设备驱动程序,驱动程序开发一直是Windows 开发中较难 的一个方面,但是通过使用专门的驱动程序开发包能减小开发的难度,提高工 作效率,本文使用Compuware Numega 公司的DriverStudio3.2 开发包,开发了基于NXP 公司USB2.0 控制芯片ISP1581 的USB 设备驱动程序。 USB 设备驱动程序的模型 USB 设备驱动程序是一种典型的WDM(Windows Driver Model)驱动程序,其程序模型如图1 所示。用户应用程序工作在Windows 操作系统的用户模式层,它不能直接访问USB 设备,当需要访问时,通过调用操作系统的 API(Application programming interface)函数生成I/O 请求信息包(IRP),IRP 被传输到工作于内核模式层的设备驱动程序,并通过驱动程序完成与UBS 外设通 信。设备驱动程序包括两层:函数驱动程序层和总线驱动程序层,函数驱动程 序一方面通过IRP 及API 函数与应用程序通信,另一方面调用相应的总线驱动 程序,总线驱动程序完成和外设硬件通信。USB 总线驱动程序已经由操作系统 提供,驱动程序开发的重点是函数驱动程序。 USB 设备驱动程序的设计

如何自己动手制作cue文件

如何自己动手制作cue文件? (cue什么意思?就是音乐目录清单,用作cd音乐分轨用的、如果要刻录成CD就是必须的!所以这一步是重点,必须学会!) 有许多朋友都为cue文件而苦恼,甚至好多已经把没有cue文件的ape都删除掉啦,辛辛苦苦下载回来的好东西就这样灰飞烟灭啦,很可惜!本人经过长时间的对比分析,找到了比较简单的制作cue的方法,我选择一张《雨果发烧碟十》来作示范讲解,这是一个标准的cue 格式文件,你用记事本打开这个cue文件,里面就是以下内容: PERFORMER "雨果" TITLE "发烧碟十" FILE "雨果.-.[发烧碟10CDImage].[https://www.docsj.com/doc/021178163.html,].ape" WA VE TRACK 01 AUDIO TITLE "奈何" PERFORMER "雨果" INDEX 01 00:00:00 TRACK 02 AUDIO TITLE "原乡情浓[客家语版]" PERFORMER "雨果" INDEX 00 04:24:48 INDEX 01 04:29:14 TRACK 03 AUDIO TITLE "我是一只画眉鸟" PERFORMER "雨果" INDEX 00 09:01:42 INDEX 01 09:05:70 TRACK 04 AUDIO TITLE "深深的海洋[2002新视野艺术节《俄琴妙韵神州情》音乐会实况]" PERFORMER "雨果" INDEX 00 13:09:29 INDEX 01 13:12:66 TRACK 05 AUDIO TITLE "山楂树[2002新视野艺术节《俄琴妙韵神州情》音乐会实况]" PERFORMER "雨果" INDEX 00 16:21:69 INDEX 01 16:25:58 TRACK 06 AUDIO TITLE "月光曲[2002新视野艺术节《俄琴妙韵神州情》音乐会实况]" PERFORMER "雨果" INDEX 00 19:56:03 INDEX 01 20:00:56 TRACK 07 AUDIO TITLE "香巴拉并不遥远" PERFORMER "雨果"

ControlNet实验

4.2 ControlNet 网络组态 1.作为当今最先进的网络,ControlNet具备诸多特点。实时I/O、控制器互锁、对等报文传输(Peer-to-Peer Messsaging)以及编程操作都可以在同一条ControlNet链路上实现。ControlNet本质的确定性可以确保数据何时发送,其可重复的性能确保网络传输时间不会随网络设备的添加或删除而改变。 2.Controlnet的主要技术特点: 网络功能:统一链路支持控制信息、I/O数据、编程数据 网络拓补:线形、星形、树形、以及以上的任何拓扑结构的混合 网络速度:5Mbits/s(最大) 单段网长度:(同轴电缆)1000m带个2节点,250m带48个节点。(光纤)3000m 中继器数目:(串行)最大支持5个中继器,连接6个网段。(并行)最大支持48个中继器,连接48个网段。 中继器类型:AC&DC高压型和DC低压型 设备供电:设备采用外部供电 网络模型:生产者/客户模式 连接器:标准同轴电缆BNC 物理层介质:RG6同轴电缆、光纤 网络节点数:99个最大可变址节点,不带中继器的网段最多48个节点 带中继器最大拓扑结构:(同轴电缆)5000m,(光纤)30Km 应用层界面:面向对象层设计,包括设备对象模型,类/实例/属性,设备规范(Profile) 网络刷新时间:可组态2-100ms 数据分组大小:可变长0~510个字节 网络和系统属性:可带电插拔,确定性和可重复性,可选本质安全,网络重复节点检测,报文分段传送(块传送) 4.2.1 ControlNet用于I/O实时控制 本实验中,Logix5555控制器通过ControlNet网络控制由1794-ACNR15适配器连接的远程I/O模块。 实验步骤: 1. 打开RSLinx软件,添加Ethernet驱动,通过ControlLogix背板网关功能,访问ControlNet网络,如图4-18所示;也可以直接添加1784-PCICS ControlNet网卡的驱动。 图4-18 访问ControlNet网络

系泊系统的设计和探究

系泊系统的设计和探究 This model paper was revised by the Standardization Office on December 10, 2020

赛区评阅编号(由赛区组委会填写): 2016年高教社杯全国大学生数学建模竞赛 承诺书 我们仔细阅读了《全国大学生数学建模竞赛章程》和《全国大学生数学建模竞赛参赛规则》(以下简称为“竞赛章程和参赛规则”,可从全国大学生数学建模竞赛网站下载)。 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛章程和参赛规则的,如果引用别人的成果或资料(包括网上资料),必须按照规定的参考文献的表述方式列出,并在正文引用处予以标注。在网上交流和下载他人的论文是严重违规违纪行为。 我们以中国大学生名誉和诚信郑重承诺,严格遵守竞赛章程和参赛规则,以保证竞赛的公正、公平性。如有违反竞赛章程和参赛规则的行为,我们将受到严肃处理。 我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开展示(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等)。 我们参赛选择的题号(从A/B/C/D中选择一项填写): 我们的报名参赛队号(12位数字全国统一编号): 参赛学校(完整的学校全称,不含院系名): 参赛队员 (打印并签名) :1.

2. 3. 指导教师或指导教师组负责人 (打印并签名): (指导教师签名意味着对参赛队的行为和论文的真实性负责) 日期:年月日 (请勿改动此页内容和格式。此承诺书打印签名后作为纸质论文的封面,注意电子版论文中不得出现此页。以上内容请仔细核对,如填写错误,论文可能被取消评奖资格。) 赛区评阅编号(由赛区组委会填写): 2016年高教社杯全国大学生数学建模竞赛 编号专用页 赛区评阅记录(可供赛区评阅时使用): 送全国评阅统一编号(赛区组委会填写): 全国评阅随机编号(全国组委会填写):

最新开发usb驱动程序的方法连载一

最新开发usb驱动程序的方法连载一 开发usb驱动程序的方法(连载二) NT还有更多其他的对象,例如中断对象、Controller对象、定时器对象等等,但在我们开发的驱动程序中并没有用到,因此在这里不做介绍。 I/O缓冲策略 很明显的,驱动程序和客户应用程序经常需要进行数据交换,但我们知道驱动程序和客户应用程序可能不在同一个地址空间,因此操作系统必须解决两者之间的数据交换。这就就设计到设备的I/O缓冲策略。 读写请求的I/O缓冲策略 前面说到通过设置Device对象的Flag可以选择控制处理读写请求的I/O缓冲策略。下面对这些缓冲策略分别做一介绍。 1、缓冲I/O(DO_BUFFERED_IO) 在读写请求的一开始,I/O管理器检查用户缓冲区的可访问性,然后分配与调用者的缓冲区一样大的非分页池,并把它的地址放在IRP的AssociatedIrp.SystemBuffer域中。驱动程序就利用这个域来进行实际数据的传输。 对于IRP_MJ_READ读请求,I/O管理器还把IRP的UserBuffer域设置成调用者缓冲区的用户空间地址。当请求完成时,I/O管理器利用这个地址将数据从驱动程序的系统空间拷贝回调用者的缓冲区。对于IRP_MJ_WRITE写请求,UserBuffer被设置为NULL,并把用户缓冲区的数据拷贝到系统缓冲区中。 2、直接I/O(DO_DIRECT_IO) I/O管理器首先检查用户缓冲区的可访问性,并在物理内存中锁定它。然后它为该缓冲区创建一个内存描述表(MDL),并把MDL的地址存放在IRP的MdlAddress域中。AssociatedIrp.SystemBuffer和 UserBuffer 都被设置为NULL。驱动程序可以调用函数 MmGetSystemAddressForMdl得到用户缓冲区的系统空间地址,从而进行数据操作。这个函数将调用者的缓冲区映射到非份页的地址空间。驱动程序完成I/O请求后,系统自动从系统空间解除缓冲区的映射。 3、这两种方法都不是 这种情况比较少用,因为这需要驱动程序自己来处理缓冲问题。 I/O管理器仅把调用者缓冲区的用户空间地址放到IRP的UserBuffer 域中。我们并不推荐这种方式。 IOCTL缓冲区的缓冲策略 IOCTL请求涉及来自调用者的输入缓冲区和返回到调用者的输出缓冲区。为了理解IOCTL请求,我们先来看看WIN32 API DeviceIoControl函数的原型。 BOOL DeviceIoControl ( HANDLE hDevice, // 设备句柄 DWORD dwIoControlCode, // IOCTL请求操作代码 LPVOID lpInBuffer, // 输入缓冲区地址 DWORD nInBufferSize, // 输入缓冲区大小 LPVOID lpOutBuffer, // 输出缓冲区地址 DWORD nOutBufferSize, // 输出缓冲区大小 LPDWORD lpBytesReturned, // 存放返回字节数的指针

cue文件制作和修改方法简易教程

cue 文件的修改及制作方法(简易教程) 经常遇到下载的无损音乐因cue错误或者没有cue而不能欣赏,下面,我来教大家完成cue的修改及制作过程,体验亲手得到美妙音乐的乐趣。按如下步骤就可轻松完成(确实很简单的): 如果原ape(或flac、wav)带有cue文件只是它有错误不能播放的话,先别删它,直接用它来编辑就最简单了(因为其中的时间点信息基本上都是正确的,而制作cue最麻烦的就是找时间点了)。 下面分两种情况,一种是有cue但错误,一种是根本没有cue文件。 就算你是在连错误cue都没有的情况下要做一个新的cue,也要先看第一部分再看第二部分。 第一种情况,有cue但错误时: 用记事本打开一个正确的cue文件,会得到类似如下的内容,我会挨个说明每一行的作用,注意看各个红色的注释: PERFORMER "Lara Fabian" ------ 1 TITLE "《9》" ---------------- 2 FILE "CDImage.ape" WAVE ----- 3 TRACK 01 AUDIO ------------ 4 TITLE "La lettre" ------- 5 PERFORMER "Lara Fabian" -- 6 INDEX 01 00:00:00 -------- 7 TRACK 02 AUDIO ------------ 8 TITLE "Un ave maria" ----- 9 PERFORMER "Lara Fabian" -- 10 INDEX 00 03:52:57 -------- 11 INDEX 01 03:52:99 -------- 12 TRACK 03 AUDIO TITLE "Si tu n'as pas d'amour" PERFORMER "Lara Fabian" INDEX 00 08:50:49 INDEX 01 08:50:65 TRACK 04 AUDIO TITLE "Il ne manquait que toi" PERFORMER "Lara Fabian" INDEX 00 12:36:17 INDEX 01 12:40:19 TRACK 05 AUDIO TITLE "Ne lui parlez plus d'elle" PERFORMER "Lara Fabian"

Devicenet与Controlnet区别

DEVICENET与CONTROLNET的区别 DeviceNet是由Allen-Bradley公司(Rockwell自动化)开发的一种基于CAN的开放的现场总线标准。DeviceNet作为一种高性能的协议,目前在美国和亚洲的市场上处于领导地位,其系统解决方案在欧洲也取得了显著的业绩增长。ODVA( DeviceNet用户组织)负责发布DeviceNet规范以及对DeviceNet标准进行维护,另外,ODVA也负责DeviceNet在世界范围内的推广。现在,最新版本的DeviceNet 2.0标准提供了更多的功能并修正了旧版本中的一些错误。 DeviceNet是一个开放性的协议,每个 ODVA成员都有资格发行基于 DeviceNet标准开发的后续产品。除了加入ODVA组织须交纳的会员费以及实际购买规范的费用外,使用DeviceNet是免版税的。现在已经有超过300家的公司注册成为ODVA的成员。全世界共有超过500家的公司提供DeviceNet产品。 DeviceNet协议设计简单,实现成本较为低廉,但对于采用最底层的现场总线的系统(例如,由传感器、制动器以及相应的控制器构成的网络)来说,却是性能极高的。DeviceNet 设备涉及的范围从简单的光电开关一直到复杂的半导体制造业中的用到的真空泵。就像其他的协议一样,DeviceNet 协议最基本的功能是在设备及其相应的控制器之间进行数据交换。因此,这种通信是基于面向连接的(点对点或多点传送)通讯模型建立的。这样,DeviceNet 既可以工作在主从模式,也可以工作在多主模式。 DeviceNet的报文主要分为高优先级的进程报文(I/O报文)和低优先级的管理报文(直接报文)。两种类型的报文都可以通过分段模式来传输不限长度的数据。 所谓的"预定义主/从连接集"适用于简单的DeviceNet从站设备。作为DeviceNet协议的子集,它支持从主站到从站传送的直接报文,轮询I/O报文,位选通I/O报文以及由从站向主站传送的状态变化/循环I/O报文。 "非连接报文管理端口(UCMM)"以及动态生成"直接及I/O连接"则适用于从站比较复杂的情况,这些从站可支持多个主站并能与其他设备维持点到点互联。设备启动报文和设备关闭报文是特别为安全相关系统设计的"离线连接设置"则简化了对非常规组件的配置工作。 DeviceNet的通信和应用都是基于对象模型的。预先定义好的对象简化了不同厂商的不同设备间的数据交换。通过建立不同设备的子集,用户可以从进一步的规范化中获益。

开发usb驱动程序的方法(连载一)

开发usb驱动程序的方法(连载一) 开始驱动程序设计 下面的文字是从Microsoft的DDK帮助中节选出来的,它让我们明白在开始设计驱动程序应该注意些什么问题,这些都是具有普遍意义的开发准则。应该支持哪些I/O请求在开始写任何代码之前,应该首先确定我们的驱动程序应该处理哪些IRP例程。 如果你在设计一个设备驱动程序,你应该支持和其他相同类型设备的NT驱动程序相同的IRP_MJ_XXX 和IOCTL请求代码。 如果你是在设计一个中间层NT驱动程序,应该首先确认你下层驱动程序所管理的设备,因为一个高层的驱动程序必须具有低层驱动程序绝大多数IRP_MJ_XXX例程入口。高层驱动程序在接到I/O 请求时,在确定自身IRP当前堆栈单元参数有效的前提下,设置好IRP中下一个低层驱动程序的堆栈单元,然后再调用IoCallDriver 将请求传递给下层驱动程序处理。 一旦决定好了你的驱动程序应该处理哪些IRP_MJ_XXX,就可以开始确定驱动程序应该有多少个Dispatch例程。当然也可以考虑把某些 RP_MJ_XXX处理的例程合并为同一例程处理。例如在ChangerDisk 和 VDisk里,对IRP_MJ_CREATE和IRP_MJ_CLOSE处理的例程就是同一函数。对IRP_MJ_READ和IRP_MJ_WRITE处理的例程也是同一个函数。 应该有多少个Device对象? 一个驱动程序必须为它所管理的每个可能成为I/O请求的目标的物理和逻辑设备创建一个命名Device对象。一些低层的驱动程序还可能要创建一些不确定数目的Device对象。例如一个硬盘驱动程序必须为每一个物理硬盘创建一个Device对象,同时还必须为每个物理磁盘上的每个逻辑分区创建一个Device对象。一个高层驱动驱动程序必须为它所代表的虚拟设备创建一个Device 对象,这样更高层的驱动程序才能连接它们的Device对象到这个驱动程序的Device对象。另外,一个高层驱动程序通常为它低层驱动程序所创建的Device对象创建一系列的虚拟或逻辑Device对象。 尽管你可以分阶段来设计你的驱动程序,因此一个处在开发阶段的驱动程序不必一开始就创建出所有它将要处理的所有Device对象。但从一开始就确定好你最终要创建的所有Device对象将有助于设计者所要解决的任何同步问题。另外,确定所要创建的Device对象还有助于你定义Device对象的Device Extension 的内容和数据结构。 开始驱动程序开发 驱动程序的开发是一个从粗到细逐步求精的过程。NT DDK的src\ 目录下有一个庞大的样板代码,几乎覆盖了所有类型的设备驱动程序、高层驱动程序和过滤器驱动程序。在开始开发你的驱动程序之前,你应该在这个样板库下面寻找是否有和你所要开发的类似类型的例程。例如我们所开发的驱动程序,虽然DDK 对USB描述得不是很详细,我们还是可以在src\storage\class目录发现很多和USB设备有关的驱动程序。下面我们来看开发驱动程序的基本步骤。 最简的驱动程序框架 1、写一个DriverEntry例程,在里面调用IoCreateDevice创建一个Device对象。 2、写一个处理IRP_MJ_CREA TE请求的Dispatch例程的基本框架 (参见DDK Kernel-Mode Drivers 4.4.3描述的一个DispatchCreate 例程所要完成的最基本工作。当然写了DispatchCreate例程后,要在DriverEntry 例程为IRP_MJ_CREA TE初始化例程入口)。如果驱动程序创建了多于一个Device对象,则必须为IRP_MJ_CLOSE 请求写一个例程,该例程通常情况下可以和DispatchCreate共用一个例程,参见参见DDK Kernel-Mode Drivers 4.4.3。 3、编译连接你的驱动程序。

相关文档
相关文档 最新文档