KMDF示例
- 格式:pdf
- 大小:294.52 KB
- 文档页数:18
迅投QMT-VBA模型编辑使用手册北京睿智融科控股股份有限公司二〇一八年二月迅投QMT-VBA模型编辑使用手册文 档 信 息文档名称 迅投QMT-VBA模型编辑使用手册20180212标题 迅投QMT-VBA模型编辑使用手册类别 操作手册摘要当前版本 20180212日期 20180212作者 模型组修改记录版本号 拟制人/修改人 拟制/修改日期 修改理由 主要修改内容 20180209 晋锦 2018.02.12目 录1. 概述 (1)2. 详述 (1)2.1. 模型的编写规则 (1)2.1.1. 数据的引用 (3)2.1.2. 特殊数据引用 (3)2.1.3. 公式体构成结构 (5)2.2. 迅投模型客户端的控制语句 (7)2.2.1. 序列变量与数组 (7)2.2.2. 循环语句 (9)2.2.3. 条件语句 (13)2.3. 序列模式和逐K线模式 (16)2.3.1. 控制语句在两种不同模式下的运行特点 (16)2.3.2. 关于模型运行时这两种模式的选择 (18)2.4. 交易系统函数 (19)2.4.1. 下单函数 (19)2.4.2. 监控函数 (22)2.4.3. 控制函数 (23)2.4.4. 线型描述 (23)2.4.5. 逻辑函数 (25)2.4.6. 动态行情 (28)2.4.7. 绘图函数 (28)2.4.8. 字符串函数 (31)2.4.9. 引用函数 (36)2.4.10. 控制函数 (45)2.4.11. 指标函数 (48)2.4.12. 统计函数 (48)2.4.13. 时间函数 (57)2.4.14. 数学函数 (61)2.4.15. 行情函数 (65)2.4.16. 扩展数据 (69)2.4.17. 组合模型 (70)2.4.18. 交易函数 (74)2.4.19. 系统函数 (86)2.4.20. 附加函数 (89)1.概述本教程主要介绍迅投模型客户端的公式编写系统,重点介绍模公式系统的编写规则、序列模式和逐K线模式下的运行原理及特点。
风云卫星数据和产品应用手册第1章概述1.1 FY-3A卫星概况风云三号A气象卫星(简称FY-3A)是我国的第二代太阳同步极轨气象卫星。
风云三号气象卫星将实现全球、全天候、多光谱、三维、定量对地观测。
风云三号星发射总质量为2450kg,发射尺寸:4.38m×2m×2m,卫星长期功耗1130W。
卫星本体由服务舱、推进舱与有效载荷舱组成。
服务舱采用中心承力筒和隔板结构,主要安装电源、测控、数管及姿轨控分系统的部件和设备、推进舱采用中心承筒和隔板结构,主要安装推进系统设备以及蓄电池组和放电调节器。
有效载荷舱隔板和构架结构,主要安装探测仪器的探测头部,舱内主要安装探测仪器的电子设备等。
风云三号A卫星有十一台遥感探测仪器。
遥感数据通过两个实时传输信道(HRPT和MPT)和一个延时传输信道(DPT)进行传输。
风云三号A卫星设计寿命为3年。
1.2 主要技术指标1.2.1 卫星轨道⑴轨道类型:近极地太阳同步轨道⑵轨道标称高度:831公里⑶轨道倾角:98.81°⑷入轨精度:半长轴偏差: |Δa|≤5公里轨道倾角偏差:|Δi|≤0.1°轨道偏心率≤0.003⑸标称轨道回归周期为5.79天⑹轨道保持偏心率:≤0.00013⑺交点地方时漂移:2年小于15分钟⑻卫星发射窗口:降交点地方时10:051.2.2 卫星姿态⑴姿态稳定方式:三轴稳定⑵三轴指向精度:≤0.3°⑶三轴测量精度:≤0.05°⑷三轴姿态稳定度:≤4×10-3 °/s1.2.3 太阳帆板对日定向跟踪1.2.4 星上记时⑴记时方式:J2000日计数和日毫秒计数⑵记时单位:1毫秒⑶时间精度(星地总精度):小于20毫秒1.2.5 遥感探测仪器性能指标1.2.5.1 可见光红外扫描辐射计(VIRR)(1)通道数、各通道波段范围、灵敏度见表1-1。
(2)空间分辨率:星下点分辨率1.1Km(3)扫描范围:±55.4°(4)扫描器转速:6线/秒(5)每条扫描线采样点数:2048(6)MTF≥0.3(7)通道配准:飞行方向/扫描方向星下点配准精度<0.5个像元(8)扫描抖动:<0.8个IFOV(9)通道信号衰减:<15%/2年(10)量化等级:10比特(11)定标精度:可见光和近红外通道:CH1、2、7、8、9 7%(反射率)CH6、10 10%(反射率)红外通道:1k(270k)。
K O L L M O R G E N | A K o l l m o r g e n C O M PA N Y欢迎来到科尔摩根官方微信科尔摩根3目录u AKM ™ 同步伺服电机4u AKD ™ 伺服驱动器8u AKM ™ 各种选件12u AKM ™ 防水型和食品级防水型电机13u AKM ™ 系统综述14u AKM ™ 图纸和性能数据AKM1x 16AKM2x 20AKM3x24AKM4x 28AKM5x 34AKM6x 40AKM7x 44AKM8x48u L 10 轴承疲劳寿命和轴负载53u 反馈选件56u 抱闸选件60u 伺服电机连接器选件61u 型号命名67u MOTIONEERING ® Online71科尔摩根A K M 同步伺服电机选型指南克服设计、采购和时间障碍科尔摩根明白:帮助原始设备制造商的工程师克服障碍,可以显著提高其工作成效。
因而,我们主要通过如下三种方式来提供帮助:集成标准和定制产品在很多情况下,理想方案都不是一成不变的。
我们拥有专业应用知识,可以根据全面的产品组合来修改标准产品或开发全定制解决方案,从而为设计奠定良好的基础。
提供运动控制解决方案而不仅仅是部件在各公司减少供应商数量和工程人力的过程中,他们需要一家能够提供多种集成解决方案的全系统供应商。
科尔摩根就采用了全面响应模式,为客户提供全套解决方案,这些方案将编程软件、工程服务以及同类优秀的运动控制部件结合起来。
覆盖全球我们在美洲、欧洲、中东和亚洲拥有众多直销、工程支持单位、生产工厂以及分销商,临近全球各地的原始设备制造商。
这种便利优势可以加速我们的供货过程,根据客户需要随时随地供货。
财务和运营稳定性科尔摩根隶属于Fortive 公司。
Fortive 业务系统是推动Fortive 各部门发展的一个关键力量。
该系统采用“不断改善”(Kaizen )原理。
由高素质人才构成的多学科团队使用世界级的工具对过程进行评估,并制定相关计划以达到卓越的性能。
CATIA中阶入门篇讲解——UDF篇目录一、UDF介绍 (1)二、UDF实例应用 (1)1.UDF图标的调用 (1)2.举例讲解——把拉伸线框为实体 (2)三、UDF调用 (5)1.在零件文件内调用——调用UDF生成拉伸文件 (5)2.在零件文件外调用——调用UDF生成拉伸文件 (7)一、UDF介绍UDF(User Defined Feature):用户自定义特征图标为:是指零件内部的某些几何特征的创建过程记录下来,如曲面特征,实体特征等,这些几何特征依附在某一零件的文件(CATPart)中。
二、UDF实例应用1.UDF图标的调用1.1在【创成式外形设计】里—【工具】—【自定义】—【工具栏】—【新建】1.2【新建】—【新工具栏】—【CATPKTPKTWorkbenchWkb】—【Templates Creation Toolbar】即可找到并把图标调出到【工具栏】上1.3点击图标进入UDF界面如下:2.举例讲解——把拉伸线框为实体1.1选择一个平面绘制草图,并拉伸成曲面,再封闭拉伸的曲面为实体-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------以下为重点-----------------------------------------1.2点击图标进入【定义用户特征】界面,按建模顺序选择所有元素,系统就会默认第一个元素的输入为原始输入,如下图:———————————//☆开始定义用户特征☆1.3在右侧【选定部件】栏里单击选中【草图.1】,草图.1会进入左侧【部件输入】栏,在【名称】中命名,可以使用中文1.4【定义用户特征】—【输入】可以查看输入元素/【参数】可以查看并发布参数/【输出】可以查看输入元素后输出是什么/【类型】可以生成【.CATGScript文件】1.5发布【参数】(发布的参数会在树中体现)/生成【.CATGScript文件】,文件地址默认为安装地址下\Dassault Systemes\B20\win_b64\resources\knowledge\knowledgeTypesCustom中。
第一章前处理第1例 关键点和线的创建实例—正弦曲线FINISH/CLEAR, NOSTART /PREP7K,100,0,0,0CIRCLE,100,1,,,90 CSYS,1KFILL,2,1,4,3,1K,7,1+3.1415926/2,0,0 CSYS,0KFILL,7,1,4,8,1 KGEN,2,7,11,1,,1 LSTR,8,13 LSTR,9,14 LSTR,10,15 LSTR,11,16 LANG,5,6,90,,0 LANG,4,5,90,,0 LANG,3,4,90,,0 LANG,2,3,90,,0BSPLIN,1,17,18,19,20,12 LSEL,U,,,14LDELE,ALL LSEL,ALL KWPAVE,12 CSYS,4LSYMM,X,14NUMMRG,KP,,,,LOWLCOMB,ALL,,0FINISH/CLEAR, NOSTART /PREP7 PI=3.14159 J=0*DO,I,0,PI,PI/10.0 J=J+1 X=IY=SIN(I) I=I+1 K,J,X,Y *ENDDOBSPLIN,1,2,3,4,5,6 BSPLIN,6,7,8,9,10,11 csys,4 KWPAVE,11LSYMM,y,1,2,,,,0 KWPAVE,11LSYMM,x,3,4,,,,1以上程序有意没算到2 为了使用几个命令第2例工作平面的应用实例—相交圆柱体[本例提示]通过相交圆柱体的创建,本例主要介绍了工作平面的使用方法。
通过本例,读者可以了解并掌握工作平面与所创建体的位置、方向的关系,学习工作平面的设置、偏移、旋转和激活为当前坐标系的方法。
FINISH/CLEAR,NOSTART/PREP7CYLIND,0.015,0,0,0.08,0,360CYLIND,0.03,0,0,0.08,0,360/VIEW,1,1,1,1/PNUM,VOLU,1WPOFF,0,0.05,0.03WPROT,0,60CYLIND,0.012,0,0,0.055,0,360CYLIND,0.006,0,0,0.055,0,360VSEL,S,,,2,3,1CM,VV1,VOLUVSEL,INVECM,VV2,VOLUVSEL,ALLVSBV,VV1,VV2BLOCK,-0.002,0.002,-0.013,-0.009,0,0.008WPSTYLE,,,,,,1CSYS,4VGEN,3,1,,,,120VSBV,5,1VSBV,4,2VSBV,1,3WPROT,0,0,90VSBW,ALLVDELE,1,4,3VADD,ALLVPLOT/REPLOT第3例复杂形状实体的创建实例—螺栓[本例提示]在使用ANSYS软件进行结构分析时,建立实体模型是最复杂最难以掌握的一个过程。
Motor-CAD 使用导入的DXF几何模型来进行电磁计算(2015)1.内容简介在Motor-CAD软件中,除其自带的标准几何结构外,还允许用户进行自定义DXF格式文件模型的导入。
本案例中将通过实例介绍外部导入电机几何模型的方法。
2.导入几何模型简介Motor-CAD中的电磁计算是通过将电机几何模型导入到电磁场有限元计算器中。
当使用DXF文件导入功能时,标准的几何模型被导入模型代替。
然而,此时电机重要几何尺寸则由Motor-CAD来主要确定,例如:气隙长度、叠片长度、铁心直径等。
Motor-CAD电磁计算所用模型可为1/n周期模型(默认),也可为全模型。
3.DXF Geometry 要求为使用导入的DXF模型,该模型必须符合以下要求:1.电机旋转轴心必须在原点 (0, 0).2.定、转子铁心的几何模型要保证定子齿中心及转子极间中心线与x轴线重合。
3.气隙几何线必须为同心圆或弧线且应平滑连续,这使得所有槽开口都应由弧线闭合。
4.每个槽面域应当分成两部分,以使得电流密度能正确赋值。
下图为由一槽及一极表示的电机几何模型。
4.准备Motor-CAD 模型加载 Motor-CAD并设置 Model 为E- Magnetic.设置主要尺寸参数:1.槽数及极对数2.定子内外直径3.气隙长度注意: 在本步中,若不知气隙长度的精确值,可给定一个近似值,但这会对结果造成一定影响。
若有需要,还需调整机壳直径以使几何模型的图形显示更准确。
5.导入 DXF 几何模型在主菜单中选择File > Geometry Import 或者点击 Ctrl + I.在DXF输入对话框中选择目标文件,确保“Auto Centre”为灰值,且 x以及y offsets的值为0.6.单槽/极输入下图中将导入几何模型与标准径向横截面模型进行对比,以比较两者的差别及确定标准模型所需调整的参数,从而使所有含材料面域可被计入到电磁计算过程中。
摘要本文档描述了如何用KMDF(Windows系列OS下WDF驱动开发环境的组件)开发驱动的简单示例,用于指导已熟悉KMDF的开发人员来编写第一个内核模式的驱动。
本文通过几个内核模式驱动的示例来阐明WDF驱动的结构以及如何实现驱动的通用功能。
从结构组织上,本文在简单回顾KMDF的基础上,在第4章讲述如何编写基于KMDF 的最小Function驱动,在第5章讲述如何编写基于KMDF的纯软件驱动,在第6章讲述如何编写基于KMDF的硬件设备驱动。
由于译者水平有限,错误在所难免,请见谅。
xjtusdbzh目录1 简介 (4)2 WDF示例代码 (4)2.1 按名称分类 (4)2.2 按设备分类 (4)2.3 KMDF和WDM示例的区别 (5)2.4使用宏 (5)3 结构和概念 (5)3.1 对象创建 (6)3.2 上下文区 (6)3.3 IO队列 (6)3.4 IO请求 (7)4 KMDF最小驱动 (7)4.1 DriverEntry (7)4.2 AddDevice (8)4.2.1 设备对象和上下文区 (8)4.2.2 设备接口 (8)4.2.3 默认IO队列 (9)4.3 读、写和IOCTL (9)5 KMDF无硬件驱动 (9)5.1文件打开关闭 (9)5.2另外的属性 (10)5.2.1同步Scope (10)5.2.2 IRQL (10)5.2.3 CleanUp (10)5.2.4 设定设备对象属性 (10)5.3 PnP和电源 (10)5.3.1 注册回调 (11)5.3.2 电源策略管理 (11)5.3.3 上电和下电的回调 (12)5.3.4 Wake信号的回调 (12)5.4 WMI (12)5.4.1 初始化WMI (12)5.4.2 WMI实例事件的回调 (12)5.4.3 触发WMI回调 (12)6 KMDF硬件驱动 (13)6.1 支持中断 (13)6.1.1 创建中断对象 (13)6.1.2 中断使能和禁用 (13)6.1.3 中断使能后和禁用前 (13)6.1.4 处理中断 (14)6.1.5 中断的延期处理 (14)6.2 映射资源 (14)6.3 多IO队列处理IO (15)6.3.1 创建和配置队列 (15)6.3.2 处理并发请求 (15)6.3.3 处理BufferIO (16)6.3.4 转发到其他队列 (16)6.3.5从手动队列获得请求 (16)6.4 注册表相关 (16)6.5 自管理IO的WatchDog定时器 (16)6.5.1 设备启动和重启时的自管理IO (17)6.5.2 设备下电和被移除的自管理IO (17)6.5.3 实现Watchdog定时器 (17)1 简介WDF是微软基于Windows系列OS的下一代驱动开发模型,同时支持Kernel模式和User模式驱动开发,两者基于独立但功能类似的驱动框架(分别是KMDF和UMDF)。
KMDF的设计目的是提高开发效率、鼓励更多工程师进行驱动开发,使用它我们可以迅速建立驱动的框架结构(能加载和运行),在此之上,我们可以添加更复杂的或硬件特定的功能。
本文讲解如何用KMDF写WDF驱动,重点关注WDF附带的示例代码细节,包括Sample Toaster、Featured Toaster和PCIDRV,两个Toaster用于了解WDF开发的一般步骤(不含硬件的驱动一个是最小驱动,一个是纯软件驱动),而PCIDRV用于示范硬件的驱动开发方法。
阅读本文,需要了解:Kernel编程的基础(例如IRQL和锁),WDF的设计目的、KMDF 对象模型以及IO模型,请参考《Architecture of the Kernel-Mode Driver Framework》,对应我翻译过的《WDK之内核模式驱动框架KMDF简介.doc》,以及《Architecture of the Windows Driver Foundation》。
2 WDF示例代码WDF安装后有几个内核驱动示例代码,位于Src\Kmdf子目录中,您可以参考其驱动基本框架的编写以及特定功能的实现技巧。
本节从名称、设备功能列出主要示例,关于驱动特性表请查英文原文档。
2.1 按名称分类驱动名称描述Echo 不控制任何硬件,示范如何使用串行IO对列莱完成读写,如何取消请求FakeModem 无控制器Modem驱动Firefly HID设备过滤驱动NdisEdge 上沿是NDIS,下沿是USB、1394以及串口等Ramdisk RAM磁盘驱动,示范如何在内存中创建虚拟磁盘Serial 串口驱动2.2 按设备分类驱动名称设备模型描述Serial 串口、并口、IDE控制器、PS/2控制器硬件支持端口映射IO,支持中断(用户通知输入到达或其他异步事件)Toaster bus driver 不符合PCI规范的多功能PCI设备,多端口串口卡,多端口(Port)网卡硬件有多个功能,支持多个设备或者驱动支持虚拟总线Toaster filter driver 键盘、鼠标过滤驱动、存储类过滤驱动、串口设备改变IO请求或者提供上层应用程序直接访问的过滤驱动或者改变硬件资源的过滤驱动NdisEdge 上沿是NDIS,下沿是USB、1394以及串口等Ramdisk RAM磁盘驱动,示范如何在内存中创建虚拟磁盘Serial 串口驱动2.3 KMDF和WDM示例的区别KMDF示例基本沿用WDM的示例的名称,如果不特别声明,两者甚至实现同样的功能,对两者进行对比分析将使您非常有收获。
基于KMDF的驱动代码更少、更简单,原因是KMDF完成了大部分WDM的细节,这样避免了重复编写所有驱动都需要的通用功能,只要为必须要处理的事件定义并实现回调函数即可。
例如,WDM驱动和KMDF驱动都需要支持电源管理和PnP,WDM驱动要成千行代码来确保驱动必须处理所有设备状态和所有IO请求(IRP),甚至必须处理驱动不支持的IRP。
而基于KMDF的驱动不需要实现PnP和电源管理,也不需要处理自己不感兴趣的IRP,只需要处理设备硬件支持的功能和IO请求,其开发过程一般是先写一个简单的框架,再添加一点功能,测试没有问题后,再加其他更复杂的功能。
您可对比最简单的例子来验证这一点,例如WDM的src/general/toaster/func/incomplete1和KMDF的src/kmdf/toaster/func/simple。
2.4使用宏KMDF中使用宏PAGED_CODE和UNREFERENCED_PARAMETER,这两个宏都定义于ntddk.h中。
PAGED_CODE,checked版本有效,若IRQL不小于DISPATCH_LEVEL则产生断言。
UNREFERENCED_PARAMETER禁止编译器对没有使用的参数产生警告。
3 结构和概念KMDF驱动是基于对象、靠事件驱动,并在运行时动态和KMDF框架连接起来,本节是KMDF基本概念的描述。
KMDF定义了驱动的通用结构的对象类型,每个对象有方法、属性、事件(通过回调触发),驱动要对设备需要的、而KMDF默认处理又不适合的事件设定回调函数,总之,基于KMDF的驱动包括:DriverEntry、多个回调函数以及若干功能函数。
KMDF驱动一般有一个驱动对象,多个设备对象,若干个队列对象,分别为:WDFDRIVER,WDFDEVICE,WDFQUEUE。
KMDF对象以树型结构来组织,WDFDRIVER是根,对象的生命周期为,当父对象被删除后,子对象自动被删除。
所有KMDF对象的创建方式都一样,包括初始化、创建两个步骤,对象可以有一个或多个上下文区,用于保存特定的数据。
本节描述对象和上下文区的创建、IO队列和IO请求,这些对KMDF非常重要。
3.1 对象创建对象创建分三步:初始化配置、初始化属性、创建实例,分别使用WDF_Object_CONFIG_INIT,WDF_OBJECT_ATTRIBUTES和Wdf Object Create。
其中配置对各对象不一样的,保存了各事件的回调函数指针,在创建的时候传给KMDF,由KMDF框架在必要的时候调用,而属性结构是各对象一样的,包括cleanup、destruction 回调、同步、执行的IRQL(指明对并发的支持程度、允许的最高IRQL)和上下文区信息(指针、类型、大小)。
另外,如果不定义上下文区,那么属性一般使用默认值。
3.2 上下文区对象实例可以有多个上下文区,用于存储数据,例如驱动分配的事件等,类似WDM的Extension(不懂什么情况下需要多个上下文区)。
驱动创建对象的时候指定该区的大小和类型,后续,KMDF创建该对象的时候,分配该区的内存(nonpaged),并初始化之,当KMDF删除该对象时候,上下文区被KMDF删除和释放。
上下文区被认为是对象的一部分,对驱动透明,因此驱动必须使用存取函数来获得该区的指针,KMDF提供宏来创建该存取函数(用宏来建立存取函数名真是Wonderful Idea)。
驱动分多个步骤定义和初始化上下文区,首先,定义代表该区的结构(头文件中),其次,声明上下文的类型(有名和无名,可在头文件中),指出Context的类型就是该结构类型,并创建存取函数名,最后,驱动把该区和对象实例关联起来。
上下文区是对象属性结构的一部分,其他部分包括同步Scope,执行级别IRQL,最后,驱动创建对象实例的时候把它传给KMDF框架。
3.3 IO队列KMDF用IO队列管理发给驱动的请求,每个队列支持若干请求类型,所有队列可单独进行配置,KMDF和驱动本身都可以对IO请求排队。
队列的最重要的特性包括它接收请求的类型、分发请求的方式以及是否由KMDF负责它的电源管理。
单个队列可处理多种类型的请求,例如,驱动可能有一个同时处理读写请求的队列和一个只接收IO控制请求的队列。
分发方式决定了同一时间驱动处理该类型请求的个数,例如串行、并行和手动三种不同的方式,串行就是同一时间只分发一个请求,等驱动处理完了再分发下一个,并行就是只要请求来了,就分发,手动是KMDF不主动分发,直到驱动主动调用函数去分发(在驱动准备好处理的时候)。
默认情况下,KMDF的IO队列是自动电源管理的,就是说,KMDF根据电源状态(系统和设备)控制队列的启动和停止,另外,KMDF使用空队列来提示开始计算设备的idle 时间。
驱动用WDF_IO_QUEUE_CONFIG来配置队列,同时指定:接收请求的类型,队列分发请求的方式,IO请求处理的回调函数,是否让KMDF管理队列的电源,队列是否接收buffer 大小为0的请求等等。
和其他对象一样,队列也有自己的属性(通常使用默认),有时会更改,例如:需要创建若干对象特定的上下文区用于保存数据;指定队列被删除时候触发的回调函数;指定队列的父对象(默认是设备对象)3.4 IO请求WDFREQUEST对象代表了应用程序发送的IRP,KMDF负责管理它,驱动甚至不直接接触IRP本身。