版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PIDataLink基础培训教材山东鲁能软件有限公司目录1. PI-DataLink简介51. 1.1它是如何工作的52. 1.2时间格式63. 1.3PI 菜单71. 1.3.1重新产生队列74. 1.4一个简单的报表72. 1.4.1基本信息83. 1.4.2时间关联数据104. 1.4.3内插值125. 1.5公式复制135. 1.5.1作业136. 1.6压缩后的数据157. 1.7采样数值176. 1.7.1练习198. 1.8计算值197. 1.8.1练习219. 1.9使用过程数据条件过滤数据228. 1.9.1练习2310. 1.10性能公式(Performance Equat
2、ions)239. 1.10.1练习2511. 1.11时间统计(Time Filter)2610. 1.11.1练习2912. 1.12在DataLink中使用曲线图3111. 1.12.1练习题3213. 1.13共享数据341. PI-DataLink简介OSI Software公司的 PI-DataLink 提供了一个 PIUniversal Data Server 与两个流行的电子表格软件的连接。使用 PI-DataLink插件,用户可以直接使用Microsoft Excel 或者 Lotus 1-2-3 与PI系统直接交换信息。这些特性,加上电子表格本身的函数,使 PI-DataL
3、ink 成为一个收集、分析和报告PI数据的易于使用的强有力工具。本课程仅描述 Microsoft Excel的插件。当 PI-DataLink 插件加载后,在 Microsoft Excel 增加了一个PI菜单项。要加载此插件,先找到 PIPC32.xll 文件,通常安装在计算机的 PIPCEXCEL 目录中。注: 也可使用 FileOpen 打开插件,但这样只在本次有效。从Excel菜单中使用 Tools Addins 选项。1.1 它是如何工作的当向Excel电子表格的单元格中插入标签值时,不是把具体数值放入单元格中,而是将PI-DataLink 的对应函数放入单元格中,然后从PI数据库中
4、取回数据。PI-DataLink 中的函数都使用单元格的绝对地址(使用$D$1 而不是 D1)。要复制公式,首先将单元格绝对地址修饰符去掉。要更改一个函数时,必须按 键。 功能键将重新计算整个电子表格,计算单页时,按 键。使用 PICurVal 函数 (实时值)的单元格在电子表格重新计算时计算一次。其它函数仅在此函数改变(或对应的单元格改变)时重新计算一次。这就是为什么说TODAY() 和 NOW() 函数是非常有用的。当使用它们作为起始时间或结束时间时,电子表格更新一次,对应的PI函数也会重新计算一次。请参见用户手册中的 “PI-DataLink Functions” 相关章节。1.2 时间
5、格式当使用时间时,Excel 将计算时间标签, PI-DataLink 就地系统的时间。如果使用PI 系统的时间格式,那么服务器将会解释出多数的时间字符串。如果使用PI 系统的时间标签 (如:*-1h) ,数据不会自动更新。也许显示的始终都是同一个代表PI的 “now” 的缩写值。你必须编辑或修改那个特殊的单元格,使得它能显示正确的当前值。但是如果使用的是 Excel 格式 (用同样的例子的话,就是: now()-1/24),每次打开或刷新该电子表格时,该值就会被更新。下表中列出许多PI 格式和 Excel 格式的时间:PI 时间 (服务器时间)Excel 时间 (客户端时间)*-7HNow(
6、) - 7/24T-1DToday() 1Mon1-Mar-99 7:00:00*7:00:00YMarch 4, 1999 TODAY() 函数可以有多种使用方式。例如:如果现在是2004年2月23日,下列是一些 TODAY()函数的应用:=today ()2/23/2004 0:00=today ()-1 2/22/2004 0:00=today () +(7/24)2/23/2004 7:00=today ()-1+(7/24) 2/22/2004 7:00 NOW 函数也是非常有用的:=now()2/23/2004 12:34=now()-(8/24)2/22/2004 4:341.3
7、 PI 菜单PI 的菜单如下图所示:本课程将讨论这些功能。第一部分是取单个数据的工具。第二部分是取一段数据的工具。1.3.1 重新产生队列当先选择一个电子表格上的结果队列,并且在PI-DataLink 菜单中选择相应的功能菜单时,原先产生这些结果的信息就会显示在各个区域内。这对于当调整某些数值和增加一些数值时是非常有用的。另外,当在结果队列上单击鼠标右键时,在对应菜单的第一项选择相同的功能,选中它,就会出现产生这个队列的结果对话框。1.4 一个简单的报表本节描述如何使用PI数据生成一个报表。本节使用一个新的电子表格。1.4.1 基本信息1. 键入如上图所示的列表头 在描述区域中的 “*” 键不
8、是通配符,将其设置为空时相当于通配符。2. 选择 PITag Search 启动搜索对话框来搜索标签点。在“Tag Mask”区域键入 “SQ*” ,单击 “Search”按钮,将搜索出以 “SQ” 开头的标签点。注: 可以同时搜索多个属性。描述属于子链搜索,不是一个通配搜索。如果仅使用描述或数值进行搜索时,搜索是很慢的。使用标签名搜索是最快的搜索方式。也可以在数值区域重使用非正常值作为搜索条件(如:越低限 “UnderRange,”超上限 “OverRange,” 无数据“No Data,”输入输出超时 “IO Timeout,” 计算错误“Calc Failed,” 新建 点“Pt Cre
9、ated”) 3. 从点列重选择SQ:F100 标签点。单击 OK。注: 在点搜索窗口重单击 Pt. Attr. 按钮可以观察对应点的属性。4. 选择单元格 B6。5. 从菜单中选择 PITag Attribute. ,启动属性对话框。6. 在 Attribute 区域选择 “descriptor.”。 7. 单击OK完成上述操作。 8. 选择单元格 C6。9. 从菜单中PICurrent value. 启动实时数据对话框。注: 如果选择 time at left 选项,则会在每个点的左侧放上时间标签。 由于我们没有在表头上放时间,所以本作业中不要做这项工作。10. 选择标签名区域,单击 A6
10、 单元格选择标签名。11. 单击 按钮,完成本项工作。12. 按 F9 键更新电子表格,将更新实时值(如果有新值存在时)。注: 可以改变显示数值默认的小数点位置。使用 PISettings. 选项来改变显示数值和时间的格式。1.4.2 时间关联数据13. 在单元格 D1 和 D2中键入起始时间和结束时间。使用今天和昨天的时间,不是直接显示的时间。注意使用时间的语法格式,不正确的语法是常见的错误。14. 选中 D6单元格,这里将放置计算结果。15. 从菜单中选择 PICalculated value. ,将启动计算对话框。单击 Tagname (cells) 区域,在电子表格中选择自 A6单元格
11、开始的标签名列。16. 单击 Start time (cell) 区域,在电子表格中选择起始时间单元格 D1 。17. 单击 End time (cell) 区域,在电子表格中选择结束时间单元格 D2。18. 在 Mode 选择 “average.”。19. 不选择 Conv. factor 区域。通常情况下仅仅使用 total 模式。20. 不要选择时间标签,时间在左侧,时间在上部。如果不做累加功能,则不用设置转换因子(Conv. factor)注: 如果你改变开始和结束时间单元格 D1 和D2中的值,那么平均值也会重新计算。21. 单击OK结束本项工作。 1.4.3 内插值22. 选择 E
12、6 单元格。 23. 从菜单中选择 PIArchive value. ,启动文档数据对话框。 24. 在选择 Timestamp (cell) 区域,在电子表格中选择接受时间单元格 D2 。25. 忽略“ no timestamp”, “time at left”, 和“time on top”选项。选择 interpolated 为返回数据模式。exact time 选项是指标签在给定的时刻有一个存档值,例如可以在给定时刻手工输入实验室数据。如果在那个时刻没有数据,系统将返回“No archive entry at given time”.信息。 1.5 公式复制使用上述例子,我们将学习如何
13、利用Excel的拖动和复制方法来复制公式。PI-DataLink 总是使用单元格的绝对引用地址。为了使用拖动和复制方法,我们必须将绝对地址转变为相对地址引用。 关于绝对地址和相对地址引用的详细资料,请参见Excel 的用户手册或帮助文件。选中第一个标签点和描述。在电子表格的上部编辑区域中选择引用单元格,本例中是 $A$6。按 F4 键直到“$”符号消失。重新选择这个单元格,使用右下角的小标签,将单元格的下边拖动至覆盖所有的单元格,然后释放鼠标,那么所有标签点的描述均出现在列中了。对其它标签点重复此项工作。注: 当在列中输入公式时,你可以同时选中多个列来代替单个的列,这样可以缩短操作时间。1.5
14、.1 作业使用 DataLink 从PI 数据库中取得单个数值。参加作业题 “DL_exercise_01_Template.xls” 。答案:1. 先找出单元个A7标签点的属性。单击单元格 B7,从菜单中选择 “Tag attributes” ,在接下来的对话框中填入下列内容:- Tagname : 选择 A7- Attribute : 选择 “descriptor” (默认项) 然后单击“OK”.找出其它标签点的属性 (单元格 A8, A9, A10 and A11),重复上述标签点的步骤。注: 为了节省时间,某些Datalink函数可以通过选中多个单元格来做同样的工作。本例中,实时值(
15、Current Value),历史值( Archive Value)和标签点属性( Tag Attribute)均可以从电子表格中同时选择多个标签点。2. 重复步骤1,在C列中增加工程单位。从标签点属性中选择 “Units” 。3. 在D 和 E列中,显示所有5个标签点的实时值和时间。单击单元格 D7 ,从PI菜单中选择 “Current value”,在“ Tagname”区域中选择 A7,同时选中“Time at left ”选项,然后单击 “OK”。4. 从PI菜单中选择第二项 “Archive value”,将光标放在单元格 B19 中,使用“ interpolated”返回数据方式,
16、在“ tagname”区域中,从电子表格中选择 单元格A19 至 A23 ,单元格 D14 作为时间。最后,选中” time at left“选项,然后单击 “OK”。5. 重复上述第5步,对单元格 D19 和 F19,做同样的工作。6. 在单元格H19中,做PI菜单中 “Archive value” 的工作,但是在返回数据方式中选择“ exact time”方式。选择 H14 作为时间,然后单击 “OK”。在“ exact time”返回数据方式,不会返回时间戳。注意:可以不用对话框来实现 PI-DataLink 函数功能。下列为简单公式举例:Tag attribute: =PITagAtt
17、(tagname,NameOfAttributeYouWant,”PIServer”)e.g.: =PITagAtt($A$7,descriptor,) =PITagAtt(sinusoid,units,)Current Value: =PICurrVal(tagname,Outcode,”PIServer”) =PICurrVal($A$7,1,)Archive value: =PIArcVal(tagname,Date,Outcode,”PIServeur”,”Mode”)Where “Mode” = Interpolated or previous or next=PIArcVal($A
18、$7,$D$13,1,”Interpolated”)Exact Time Value: =PIExTimeVal(tagname,Date,”PIServer”)=PIExTimeVal($A$7,$H$25,)备注:本作业的步骤1中显示了取得某个标签点的某时刻值的功能。为了节省时间可以同时选中多个标签点,如步骤5所示。最后,也可以使用Excel 的复制/粘贴功能,但是在使用前,必须重新编辑公式,并从公式中去掉不必要的 “$” (单元格的绝对参考值) 。应当注意的是,当使用历史值时注意标签点的类型和“step”属性之间的关系。例如,对于离散数字标签点,“ interpolated”与“ pre
19、vious values”数值相同,并且有相同的时间戳,因为在两种状态之间没有中间值。最后,在报告中必须注意工程单位的重要性。如果没有它们,其它人可能无法理解报告中的数值。1.6 压缩后的数据压缩后的数据就是存储在PI系统中的数据。本节将学习如何从系统中取得压缩后的数据。使用PI-DataLink有两种方法从系统中取得压缩后的数据:使用起始时间和点数,使用起始时间和结束时间。本节中使用第一种方法。打开一个新的电子表格,如下图方式键入标签名 (sq:f100),起止时间 和时间间隔。1. 选择 A6单元格放置结果。2. 从菜单中选择 PICompressed data (start time/e
20、nd time). 启动压缩数据对话框。 选中Tagname (cells) 区域,在电子表格中选择单元格 A1中的标签名。 3. 选择 Start time (cell) 区域,在电子表格中选择起始时间单元格B2 。4. 选择 Start time (cell) 区域,在电子表格中选择结束时间单元格 B3 。5. 选择 show timestamps 选项。 如果不选择此项,则只能看到数值,看不到时间。6. 单击OK。注意到显示的数值是平滑增长的,但是,文档中确不是这样存储的。1.7 采样数值PI 系统不是平均时间间隔存储数据的,而是存储压缩数据( “compressed data.”)。
21、在上例的电子表格中,键入标签名和时间如下图所示。你可以采用在PI历史库里面检索出来的等时间间隔的数据进行静态分析.1. 选择单元格 D6. 检索结果将放置于此.2. 在菜单栏选择 PISampled data. 出现对话框后. 点击 Tagname (cells) 域. Highlight the tagname in cell A1. 3. Click on the Start time (cell) field and click on cell A2 to select the start time.4. Click on the End time (cell) field and cl
22、ick on cell A3 to select the end time.5. Click on the Time interval (cell) field and click on cell A4 to select the data sampling interval.6. Fill the show times field. If you do not, you will see only the values without the time stamps of each value.7. Click on the OK button. Notice how there are d
23、ata points in the Sampled column that are not in the Compressed Column.高级练习1. 在D列增加第二个测点,采用测点 CDT158. 检索采样数据取同样的开始时间、结束时间、时间间隔.Note: Excel中的 CORREL 函数用来计算 A 和 C两列数据的相关系数. If you suspect that there is a time lag between two process values that are correlated, you can change the start and end time of
24、one of the tags to see if the correlation coefficient increases as the two arrays of data are offset at different intervals.2. 应用 Excel中的 CORREL函数求出两列的相关系数.3. 创建数据的散点图表,用一列左x轴,另外一列做y轴.Here is a spreadsheet that compares two sets of data using the correlation function (CORREL) and an x-y plot (also r
25、eferred to as a scatter plot). Yours should look similar.1.7.1 练习作为检修负责人,可能更想知道3泵的运行时间比。使用PI插件可以产生如下报表。本练习采用文件 “DL_exercise_03_Template.xls”.答案:1. 从标签点 “BA:Active.1”中取得泵的运行状态,从PI菜单中使用 Compressed data (start time/number) 填充头两列。不要忘记选中“ Show times”选项。2. 要知道泵的总体运行时间,我们先分别找出 “Active” 和 “Inactive”的时间,然后将时
26、间合计起来,为了找到时间的不同,我们采用以下函数:e.g.:=IF(B7=active,A8-A7,0)本表达式应该放在第 8行.上述表达式的意思是如果泵的持续状态为 “active”, 函数应该返回持续时间, 否则返回0.3. 时间累计计算采用 Excel的 Sum()函数. 1.8 计算值在计算一段时间内的流量合计值时,当不是按天统计时,需要一个转换因子。下表列出了时、分、秒的转换因子。从 每天转换到转换因子每时24每分1440每秒86400计算数值和计算函数中的 “average” 模式是一种时间权重的平均值。对于离散数据的平均值,请使用 “mean” 模式。更多的关于PI和平均值的内容
27、,请参加OSI培训网站上的文件 Average.doc 。下面是一组水平数据列的标签点的平均值 (单元格 b5.e5) 在一个新的电子表格重,键入如下图所示的标签名和时间戳。完整的电子表格参见PICBT.XLS 文件的Sheet5。1. 选中单元格 A6。 返回数据结果将放在这个地方。注意到这不是标签点名的正下方,这是因为A列将放置时间戳。2. 从PI菜单中选择 PICalculated data. 函数,将出现“Get calculated data”对话框。单击 “ Tagname(cells) ” 区域,选中B5单元格,用来获取标签名。选择“ Start time (cell) ”字段,
28、单击 E1 单元格,选择起始时间。选择“ End time (cell) ”字段,单击 E2 单元格,选择结束时间。选择“ Time interval (cell) ”字段,单击 E3 单元格,选择计算时间间隔。在本例中,计算结果是24小时内的1小时平均值。在“ Mode ”区域内选择 “average.”。忽略 Conv. factor 选项。通常只有在“ total ”模式下才用它。 选中“ show times ”选项,如果不选中,将只会看到数据而看不到时间戳。本例中,时间将会显示在A列中。1.8.1 练习假设你是产品部经理,要将上周产品汇总成表。要显示上周的产品累计、平均值、最大值、最
29、小值和标准方差值。同时,还要将这些数值按天显示出来。This exercise uses the file “DL_exercise_04_Template.xls” on your workbook disc.答案:1. 首先,填写周报表的累计部分。选择单元格 B16 ,从PI菜单中选择Calculated Data 获得合计值。在对话框中输入下列信息:Tagname: Cell $B$3 / Start time: Cell $B$4 / End time: Cell $B$5时间间隔不需要填写,因为我们需要这个时段的一个结果。注: 对于合计值,必须选择合适的转换因子。模板中显示的单位是
30、GPM (加仑/分)。而PI系统中假设 工程单位/天,因此需要一个1440 分/天 的转换因子。2. 重复步骤1,并修改计算模板,得到平均值,最小值,最大值和周的值的范围。对于最后值范围的计算部分,选中 “show percent good” 选项,来检查整个计算时段内的有效数据。3. 重复步骤1和2 ,得到日生产报表部分,但要设定时间间隔为1天 (选择对应的引用表格)。1.9 使用过程数据条件过滤数据如果要过滤存档数据,可以使用过滤表达式来过滤原始数据。过滤表达式是基于性能公式表达式基础之上的。例如,,只提取运行10小时后的试验结果。或者过滤掉系统启动和关闭时段的数据。下例中, SINUSO
31、ID 点的未过滤的数据和过滤过的数据进行比较。使用的过滤条件是SINUSOID 50。 下面是一个更加复杂的例子。在Sheet6例子中,同时列出了未经过滤和过滤后的CDM158 的数据。使用的过滤表达式是当 CDM158 的前一个存档值为 “auto”时的值。在本例中要找出 CDM158 从“Auto” 转到“Manual” 状态的时刻。仔细检查结果会注意到, 10:51分的 “Manual” 状态被过滤掉了,因为它的前一个状态不是 “Auto”。1.9.1 练习 制作一张显示超出特定参数值的生产过程显示图。生成一张越上限和越下限值的报表。使用 “DL_exercise_05_Template
32、.xls” 。1.10 性能公式(Performance Equations)PI服务器软件支持通过PI-DataLink 调用内部的性能公式( performance equation )计算语言。(性能公式语法的详细内容,请参见PI服务器文件 第一卷的PE-7 部分) 这就意味着,PI-DataLink 可以向PI服务器调用 Excel 内置的函数以外的计算功能。打开一个新的电子表格,在单元个 A1 输入下列公式之一。 timegt(cdt158,*-1d,*,150) Result is in seconds pctgood(cdt158,*-1d,*) timeeq(cdm158,*-
33、1d,*,”manual”)注: 完整的函数列表,请参加PI-DataLink 手册的附录 A ,或者PI数据文档手册的性能公式章节。1. 分别在单元格A2, A3和A4中填入起始时间、结束时间和时间间隔。2. 从PI菜单中选择 PIExpression calculation. 函数,调用表达式计算函数。3. 在“ Expression”, “Start Time”, “End Time”和“Time Interval”字段中分别引用 A1, A2, A3和 A4 单元格。4. 选中 “show times” 选项。 单击 OK 按钮获得数据。可以与Excel的公式结合使用,组合许多不同的表
34、达式,组成复杂的报表。1.10.1 练习使用表达式计算公式来计量敞口混合罐的输入输出平衡,以得到蒸发损耗。输入可以认为是水,计量单位是LB/s,输出的计量单位是 m/h (也认为是水)。 根据下列物理特性,计算出最近8小时内每小时的蒸汽损耗,单位是 mol/h 。Density = 1000 kg/mMolar mass = 18 g/mol练习题 “DL_exercise_07_Template.xls” 答案:1. 计算公式:2. 将上述公式以PI性能公式的语法格式填入到 “Evaporation Expression”区域中,其语法格式为:(SINUSOID*3600*0.454-CDT
35、158*1000)*1000/183. 先填入 “Hourly loss by evaporation” 部分,选中该部分的左上角单元格,从PI菜单中选择 Expression Calculation 函数。4. 在对话框中填入电子表格表头中注明的起始时间、结束时间、蒸发表达式和时间间隔。5. 对于计算 Current Losses,由于表达式计算需要一个时间间隔,我们需要选择一个接近于现在的很小的时间间隔,只允许返回一个值。可以进行如下设置: StartTime = *-1s EndTime = * Interval = 2s1.11 时间统计(Time Filter)PI-DataLink
36、 具有返回满足一定条件的时间总值的功能。例如:机组在一段时间内手动运行方式的小时数或者生产超限的总分钟数。条件( “condition”)的格式按照性能公式( “performance equation”)的格式 (如练习 6所示)。我们将在练习7中看到,性能公式的计算能力是非常强大的。在使用 Time Filter 公式之前,为了得到时间值,需要在服务器上设置性能公式,使用 “TimeEQ” 函数。1. 建立如下电子表格。 如果要找到每小时内机器工作在手动状态下的时间(如分钟数),只要使用如下简单的表达式即可:(cdm158 = “Manual”)从PI 菜单中选择 PI = Time Fi
37、ltered 来建立第一的数据列。计算结果如下图所示:高级练习1: 将表达式改为参数超范围的时间,例如:(sinusoid = 90)高级练习2: 利用Excel 的数据确认(Excel Data Validation function)功能,增加一个下拉框来选择数据的单位,指向不同的时间选择。将如下图所示:1.11.1 练习对于检修工人来讲,他可能想知道一个泵的运行时间,那么就可以使用Time Filtered函数来找出泵在运行状态下的时间。请将此方法与练习3进行相比较。这种方法只要进行一步计算就可以了,不需要Excel 的 IF 函数来判断。使用 “DL_exercise_08_Templ
38、ate.xls” 文件。答案:1. 在条件单元格中键入下列表达式: BA:ACTIVE.1=Active注: 本表达式的第一个符号是两个单引号,不是双引号。2. 选择左上角的单元格作为数据输出单元格。3. 从PI菜单中选择 Timed Filtered。4. 在对话框中填上起始时间、结束时间、计算间隔和统计统计条件。5. 选中显示时间( Show Times)选项。6. 从电子表格中选择报告的时间单位 (本例中单元格 C9的时间单位是小时数)注: 表达式可以包含多个统计条件,使用逻辑运算符 OR 和AND来组合。如下列所示: Ba:active.1=Active and Sinusoid30. 注意下例和上例之间的时间条件区别 Ba:active.1=Active OR Sinusoid30 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 染色体非整倍体无创筛查的孕妇心理压力管理
- 临夏高三英语语法冲刺押题卷
- 甲氨蝶呤治疗异位妊娠的护理查房
- 26年真实世界研究随访规范
- 肾穿刺术后护理远程监护
- 甘肃省定西市2026届九年级下学期中考练习物理试卷(无答案)
- 【试卷】吉林长春市南关区2025-2026学年下学期七年级期中考试语文试题
- 脑梗塞患者泌尿系统护理
- 肺脓肿的影像学检查解读
- 老年人护理团队建设与管理
- 四川省达州市(2026年)辅警招聘公安基础知识考试题库及答案
- 《AQ3067-2026化工和危险化学品重大生产安全事故隐患判定准则》解读
- YDT 5102-2024 通信线路工程技术规范
- 第四种检查器介绍
- GB/T 33610.1-2019纺织品消臭性能的测定第1部分:通则
- 马克思主义基本原理第一章案例
- 马克思主义基本原理概论:5.3 资本主义的历史地位和发展趋势
- 了不起的狐狸爸爸-全文打印
- 全国28个省、直辖市、自治区革命老区县市名单
- 电控高压共轨系统介绍-PowerPoint-Presentation课件
- 身份证标志台帐
评论
0/150
提交评论