pml基础语法简明教程
- 格式:docx
- 大小:26.53 KB
- 文档页数:6
第一部分: 基础知识PML基本概念Programmable Macro Language 可编程宏语言.通常的PML开发包括两部分, 一部分是PML宏,脚本语言; 另一部分是PML2,面向对象的编程语言.1.PML宏(Macro)宏, 就是一系列pml命令的集合.通过$m执行.格式为: $m filename [param1 param2 ….](举例)其中param1为参数, 宏可以参数化.(举例)2.面向对象的PML2PML支持对象(Object),对话框(Form)和菜单(Menu).(举例)一.变量,函数和方法1. 变量的定义及用法在PML2中, 每一个变量都是对象. 变量名以!或者!!开头,例如!weight. !开头的变量为局部变量, !!开头的为全局变量.PML内置了常用的变量类型.(1)Real 实属类型. 提供基本的四则运算操作. 例如!a = 10!b = 10!a = !a + !b$p $!a --输出变量a的值(2)String 字符串类型. 例如!strName = ‘/EQUI-TEST-1’(3)Boolean 用于逻辑表达式. 值只能是true/false(4)Array 数组(5)Position(6)Direction3.变量的创建, 删除, 查看变量可以用赋值来创建. 例如!str = ‘abc’也可以用类型标识来创建.!str= string()!str= ‘abc’删除: !str.delete()查看:通常使用q var!str也可以用$p $!str4.方法(method) 和函数(Function)Method是一个对象的子程序. 只有当对象存在,才可以调用对象的方法. 例如!strNum = ‘123’!num= !strNum.Real()$p $!num以上的代码, 调用的string类型的real()方法, 将字符串转换为数字,并输出.函数的用法与方法类似, 同样有参数和返回值. 但函数是独立存在的,全局的. 在任何地方, 都可以调用.二.程序的结构控制1.循环语句(1)Do循环例如:!sum = 0Do !i From 1 To 100 By 1!sum = !sum + !iEnddo其中!i为循环变量, 初始值为1, 终指为100, 步长为1. 当步长为1是,一般省略.(2)中断Break: 中断并跳出最内层循环(3)跳过Skip. 跳过当此存换. 例如!sum = 0Do !i From 1 To 100 By 1Skip if ( int(!i / 2) eq (!i / 2)) $* 跳过所有的偶数!sum = !sum + !iEnddo2.逻辑控制语句格式为if () then …else…其中括号内的必须是表达式.例如:IF (TYPE OF OWNER EQ ‘BRAN’) THEN$P BRANCH $!!ELSEIF (TYPE EQ ‘BRAN’) THEN$P BRANCH $!!ELSE$P NOT BRANCHENDIF其中elseif /else可选, elseif可多个.3.跳转语句定义标记Label /label1跳转Golabel /gol1不建议使用.三.其他相关语句1.数组字符串长度Length()类型转换Real(),Position(),Boolean()大小写转换LowCase(),UpCase()两端截取After(str2),Before(str2),Substring(index)中间截取Substring(index,nchars)替换Replace(str2,str3)匹配Match(str2)分割(返回数组) Split()修剪Trim()2.字符串元素数量Size()追加元素Append(value)追加数组AppendArray(Array)删除全部元素Clear()倒序Invert()搜索Find(value),FindFirst(value)和并重复项Unique()3.表达式(1)算术运算符+ - * /(2)连接运算符&(3)比较运算符LT GT EQ NEQ(4)逻辑运算符AND OR NOT4.计算函数Sqrt(x)Power(x, e)Int(x)Sin(x)Cos(x)5.注释单行注释用—开头. –之前不可出现空格之外的字符单行注释$*. $*之后的内容为注释. $*之前可出现其他字符段落注释. 用$(和$)将注释内容包括进来.(举例)6.打印$p 打印内容例如$p test line打印多行$p line 1 $Line 2输出内容包括变量$p is $!!其中$为转义字符, 如果要输出$, 则使用$$7.异常处理程序运行中, 可能需要意料之中的可能发生的异常/错误, 例如节点创建失败, 遍历子节点时超过最后一个等等. 这时需要捕捉异常,作出相应的处理.(1)异常捕捉例如Site /TEST_SITEHandle (2, 109) $*$p节点不存在Endhandle其中(2, 109)为错误编号. 也可以使用handle any捕捉任意类型的错误.(2)捕捉多个异常Site /TEST_SITEHandle (2, 109) $*$p节点不存在Elsehandle (2, 108)$p /TEST_SITE节点存在, 但不是SITE类型elsehandle none$p Site /TEST_SITE节点存在endhandle其中handle none表示没有遇到错误的情况.四.用户自定义方法/用自定义函数/自定义对象(1)自定义方法Define method .方法名(参数1 is 类型, 参数2 is 类型…) is 返回值类型其中参数可没有返回值可以没有例如Define method .Sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendmethod(2)自定义函数Define function !!sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendFunction与方法类似. 一个文件里只能定义一个函数,扩展名为pmlfnc, 必须放在指定的文件夹下,并执行pml rehash all(3)自定义对象Define object 对象名endobject五.文件处理(1)读取!file = object FILE(‘d:\abc123.txt')!lines = !file.ReadFile()Qvar!lines(2)写入!arr = array()!arr.append(‘line1’)!arr.append(‘line1’)!file = object FILE('d:\abc.txt')!file.WriteFile('WRITE', !arr) $*将数组!arr写入文件其中’Write’可以换成'OVERWRITE'(覆盖)和'APPEND'(追加)六.对话框及菜单1.系统对话框(1)询问!!alert!confirm = !!alert.confirm('确定要删除吗?')if(!confirm neq 'YES') thenreturnendif(2)警告!!alert.message(‘message’)(3)错误提示!!alert.error(‘error’)2.自定义对话框SETUP FORM !!custumFormTITLE '自定义对话框’Text .text1 ‘点击按钮’Button .okExit这是一个最简单的对话框, 显示一个文本框加上按钮, 但是点击按钮不会有任何反应. (截图)3.对话框调用/初始化Pmlhash allPml reload form !!custumFormShow !!custumForm4.默认构造方法/初始化方法每个form初始化时, 会自动调用与其名字相同的方法. 在刚才的代码中加上Define method .custumForm()!this.text1.tag = ‘初始化完成’Endmethod除此以外, 还可以加上默认的初始化函数在开头加上一行!this.initcall = '!this.init()', 调用构造方法结束,显示之前,会自动调用init()方法5.界面消息的响应界面消息的相应, 例如点击按钮, 选择下拉框等, 用callback关联.SETUP FORM !!custumFormTITLE '自定义对话框’Text .text1 ‘点击按钮’Button .ok ‘OK’ExitDefine method .custumForm()!this.text1.tag = ‘初始化完成’!this.ok.callback = ‘!this.ok()’EndmethodDefine method .ok()!!alert.message(‘OK’)Endmethod此时, 点击按钮, 会弹出对话框. (截图)。
PML永磁起重机操作规程1. 引言本文档旨在规范PML永磁起重机的操作,确保操作人员的安全并提高起重机的运行效率和可靠性。
操作人员应熟悉并遵守本规程的各项指导与要求。
2. 操作人员要求2.1 操作人员应持有相关机械操作证书或经过相关培训。
2.2 操作人员应了解起重机的结构、原理和技术参数,并熟练掌握起重机的操作方法和操作流程。
2.3 操作前应仔细检查起重机的各项安全装置和操作部件,确认无故障后方可进行操作。
3. 操作流程3.1 操作开机准备: - 确保起重机周围无人员或障碍物。
- 检查起重机的电源和紧急停止按钮是否正常。
- 确保操作台及相关仪表清洁且工作正常。
3.2 起重机开机操作: - 操作人员打开起重机的电源开关,待起重机系统启动完成后,观察仪表显示正常后进入下一步。
- 操作人员坐在操作台前,将手放在操作台上,确保身体稳定且手脚不要离开台面。
- 检查启动程序,确保没有错误报警信息。
- 操作人员操作操纵杆,实现起重机的升降、左右移动、前后倾斜等动作。
3.3 起重物装卸操作: - 根据实际工作需求选择合适的吊具,将其连接到起重机上。
- 通过操纵杆将起重物吊起并移动到指定位置。
- 在装卸过程中要保持起重机的稳定,严禁突然改变速度或方向。
3.4 关机操作: - 完成工作任务后,操作人员应将起重物放置稳定,并将操纵杆归位。
- 关闭起重机的电源开关,确保起重机停止运行。
- 仔细检查起重机的各项安全装置,确保无故障。
4. 安全注意事项4.1 禁止在起重机正在运行时进行维修、检修或调整操作。
4.2 禁止操作人员违反操作规程,使用不符合要求的操作方法。
4.3 在起重物装卸过程中,操作人员要注意起重物的重心,防止起重物晃动或倾斜导致危险。
4.4 禁止在操作台上吸烟、吃东西或喝饮料,以免影响操作安全。
4.5 操作人员应随时关注仪表显示和报警信息,遇到异常情况要及时停止操作并报告相关人员。
5. 应急处理与故障排除5.1 发生故障或异常情况时,操作人员应立即停止操作,并报告相关人员处理。
PRO/II培训材料之一PRO/II入门编写人Polyup北京2002年10月目录PRO/II简介 (3)PRO/II使用初步 (11)化工流程模拟的步骤 (11)Example1: Cumene Production Flowsheet (11)Example 2: Benzene Flowsheet Simulation (28)精馏塔的初步设计和详细设计 (30)初步设计 (30)详细设计 (39)物性及热力学模型简介 (44)PRO/II简介PRO/II流程模拟软件是美国科学模拟公司在结合了其前身PROCESS和Aspen软件技术的基础上开发出的当今最完善的化工流程模拟系统它已经成为自90年代以来模拟软件的世界标准PRO/II流程模拟系统广泛地应用各种化学化工过程的严格的质量和能量平衡从基本的闪蒸到复杂的反应精馏从石油炼制中的原有的初始预热到后续的乙烯工业聚合物的生产PRO/II都提供了有效的模拟工具使用它可以在计算机上建立与现场装置吻合的数据模型并通过运算模拟装置的稳态运行为工艺开发工程设计以及优化操作提供理论指导PRO/II拥有应用范围很宽的单元操作模块完善的物性数据库强大的热力学物性计算系统友好的图形用户界面它可以用于流程的稳态模拟物性计算设备设计费用估算/经济评价环保评测以及其他工程计算现已广泛用于油/气加工炼油化学化工聚合物精细化工/制药环保等行业使用PRO/II软件可以降低成本和操作费用提高工厂设计质量增加工厂效益和提高产品质量据国外的统计一个炼油厂采用PRO/II软件模拟优化后每桶可额外增加5到50美分的收益PRO/II能做什么PRO/II是一个化工流程的计算机模拟软件它能容易和有效的完成简单或复杂过程的设计因而在工艺开发工程设计优化操作技术改造以及员工培训中能发挥极大的作用工程设计在工程设计中无论是建立一个新厂或是对老厂进行改造PRO/II都可以用来选择方案研究非设计工况的操作及工厂处理原料范围的灵活性工艺设计模拟研究不仅可以避免工厂设备交付前的费用估算错误还可用模拟模型来优化工艺设计同时通过进行一系列的工况研究来确保工厂能在较大范围的操作条件内良好运行即使是在工程设计的最初阶段也可用这个模型来估计工艺条件变化对整个装置性能的影响优化操作对于老厂由PRO/II建立的模型可作为工程技术人员用来改进工厂操作提高产量的产率以及减少能量消耗的有力工具可用模拟的方法来确定操作条件的变化以适应原料产品要求和环境条件的变化该模型可指导工厂的操作以降低费用提高产率这样的例子在一些流程模拟软件应用较好的化工装置可以举出很多技术改造PRO/II也可用模拟研究工厂合理化方案以消除瓶颈问题或采用先进技术改善工厂状况的可行性如采用改进的催化剂新溶剂或新的工艺过程操作单元员工培训通过PRO/II的模拟计算可以增加员工对过程的理解理解设备是在一个什么状况下工作为什么要如此设置工艺条件如何能工作的更好什么时候应该停车等等从而有效地对员工进行培训提高员工技术素质PRO/II 拥有应用范围很宽的单元操作模块常规单元闪蒸 阀压缩机/膨胀机 泵 管线混合器/分流精馏模型简捷模型 严格模型 液液抽提间歇精馏 反应精馏严格计算采用四种算法Inside/out, Enhanced I/O, SURE, CHEMDIST 算法和四种初值估算器可以进行两相/三相精馏计算可处理电解质蒸馏可进行填料塔/板式塔的尺寸计算与标定 可处理热虹吸换热器换热器模型管壳式换热器简单换热器LNG 换热器 可进行区域分析绘制加热/冷却曲线反应器模型转化率反应器 平衡反应器 平推流反应器 连续搅拌反应釜CSTR Gibbs 自由能反应器 间歇反应器反应动力学方程可用FORTRAN 语句直接书写后直接嵌入 内置有转移和甲烷化反应器具有与KBC Profimatics REFSIM, HTRSIM 和FCCSIM 模型的接口聚合物模型可模拟连续搅拌反应釜和平推流反应器聚合物反应器模型是基于动力学反应机理的模型可模拟链式聚合反应自由基阴离子阳离子等缩聚反应Ziegle-Natta 聚合反应 可模拟脱挥器固体模型结晶器/溶解器 逆流倾析器 离心干燥机 旋转过滤机 干燥机 固体分离器 旋风分离器PRO/II拥有完善的物性数据库组分数据库1750多种纯组分电解质数据库原油评价数据计算生成虚拟组分包含有固体组分性质可从分子结构来计算物性可进行多种原油的混合计算基于Van Krevelen方法的聚合物物性数据可以自定义新组分支持用户数据库混合物数据3000多组VLE二元参数300多组LLE二元参数2200多种二元共沸物数据多个专用的物性数据包酒精脱水天然气的三乙二醇脱水来自GPA的酸水包氨处理硫醇二元交互参数数据库Soave-Redlich-Kwong (SRK)Peng-Robinson (PR)Huron-Vidal mixing rule (for SRK & PR)Panagiotopoulos and Reid mixing rule (for SRK and PR)SIMSCI mixing rule (for SRK) BWRSUNIQUACNRTL-8 coefficient formHenry's Law for non-condensibles 混合热Hayden-O'ConnellHexamerPRO/II拥有强大的热力学物性计算系统包括40多种相平衡K 值计算方法20多种焓计算方法可以处理含有固体电解质聚合物体系炼油/油气/石化模型可采用如下热力学计算方法Soave-Redlich-Kwong (SRK)Peng-RobinsonHuron-Vidal mixing rule for (SRK and PR)Kadabi-Danner mixing rule (for SRK)Temperature-dependent Kij'sLee-KeslerLee-Kelser-PloeckerGrayson-Streed Braun K10Ideal library methodsBWRSChao-SeaderCostaldAPI density methodSingle and multifluid Racket densitiesSteam tablesFree-water decant石化/化学模型可采用如下热力学计算方法UNIFAC (VLE,LLE, and VLLE)UNIFAC-FV (free volume)UNIWAALSUNIQUACNRTL-8 coefficient formWilsonVan LaarMargulesRegular solution modelAcid dimerizationHenry's Law for non-condensibles Henry's Law for dilute aqueoussystemsThree-phase equilibrium (VLLE)Heat of mixingHayden-O'ConnellElectrolyte models (OLI and Chen)Advanced Lattice Model (ALM) for polymersFlory-Huggins with Chi for polymersSAFT EOS for polymersPHSC EOS for polymersPRO/II拥有友好的图形用户界面PRO/II中的PROVISION系统更是为用户提供了一个完全交互的基于Windows的图形用户界面用户可以很方便地建立某个单元操作乃至整个工厂的模拟在图形界面下可以很方便地以多种形式浏览数据和生成报表PROVISION集成了许多Microsoft Windows的数据交换标准如OLE使得用户可以快速地将图表和工艺数据传递给其他的Windows应用程序PROVISION具有强有力的可视程序导航易学易用绘制流程图和输入数据灵活报告功能强大在线帮助丰富用不同颜色指导输入能按HTML格式输出报告能查找单元和流股完善的画图功能对物流上标注的温度压力和流速等标志能动态自动更新PRO/II在石油炼制中的主要功能与应用PRO/II模拟石油炼制过程的强大功能是众所周知的它已是国外炼油厂流程模拟的标准软件十多年来国内的工程公司设计院例如BPEC炼油设计院都是在利用PRO/II 来进行炼油厂的流程模拟与设计PRO/II在石油炼制方面的主要功能各种原油评价数据的表征计算各种中间馏分油和最终产品的API ASTM TBP RVP闪点等物性数据根据RON/MON预测油品的调和性质用Inside/Out和SURE算法对精馏塔进行严格的计算可以模拟原油预热常减压蒸馏FCC重整加氢气体装置等多套装置及全厂工艺流程KBC Profimatics重整反应器和加氢反应器模型已经加入到PRO/II单元操作中此外PRO/II还提供与KBC公司的炼油厂反应器模型Profimatics REFSIM HTRSIM FCCSIM 的接口PRO/II在石油炼制方面的应用PRO/II现已可以模拟整个炼厂从原油评价预热到复杂的反应与分离的所有装置和流程典型的工艺流程包括原油预热常减压蒸馏FCC装置重整加氢烷基化异构化装置酸水的汽提分离结焦气体装置润滑油系统Lubes工艺PRO/II在炼油厂可广泛应用于工厂设计工艺方案比较老装置改造开车指导可行性研究脱瓶颈职工培训等领域PRO/II的推广使用可以达到优化生产装置降低生产成本和操作费用节能降耗等目的PRO/II使用初步化工流程模拟的步骤准备画工艺流程定义组分选择合适的热力学计算方法定义进料物流参数定义工艺条件模拟运行分析与报表Example1: Cumene Production FlowsheetObjects:1 熟悉PRO/II软件的数据输入2 熟悉报表的生成3 熟悉敏感性分析Use the Soave-Redlich-Kwong Property Method$ Generated by PRO/II Keyword Generation System <version 5.6>$ Generated on: Wed Jul 17 17:08:35 2002TITLESEQUENCE SIMSCICOMPONENT DATALIBID 1,BENZENE/2,PROPENE/3,CUMENETHERMODYNAMIC DATAMETHOD SYSTEM=SRK, SET=SRK01, DEFAULTSTREAM DATAPROPERTY STREAM=FEED, TEMPERATURE=220, PRESSURE=36, PHASE=M, & COMPOSITION(M,LBM/H)=1,40/2,40RXDATARXSET ID=CUMENE_REAC, NAME=BENZENE TO CUMENEREACTION ID=REACTION1STOICHIOMETRY 1,-1/2,-1/3,1UNIT OPERATIONSCONREACTOR UID=REACTORFEED FEED,RECYCLEPRODUCT M=REAC-OUTOPERATION ADIABATICRXCALCULATION MODEL=STOICRXSTOIC RXSET=CUMENE_REACREACTION REACTION1BASE COMPONENT=2CONVERSION 0.9HX UID=COOLHOT FEED=REAC-OUT, M=COOL-OUT, DP=0.1OPER HTEMP=130FLASH UID=FLASHFEED COOL-OUTPRODUCT W=PRODUCT, V=RECYCLEADIABATIC PRESSURE=14.696ENDCONVERSION C UMENE1 0.90000 0.905712 0.91000 0.905713 0.92000 0.905714 0.93000 0.905715 0.94000 0.905726 0.95000 0.905717 0.96000 0.923088 0.97000 0.941759 0.98000 0.9607810 0.99000 0.9802011 1.0000 1.0000Example 2: Benzene Flowsheet Simulation精馏塔的初步设计和详细设计初步设计$ Generated by PRO/II Keyword Generation System <version 5.6> $ Generated on: Wed Jul 17 21:08:52 2002 TITLESEQUENCE SIMSCI COMPONENT DATA LIBID 1,PROPANE,,C3/2,IBUTANE,,IC4/3,BUTANE,,NC4/4,IPENTANE,,IC5/ & 5,PENTANE,,NC5/6,HEXANE,,NC6 THERMODYNAMIC DATAMETHOD SYSTEM=PR, SET=PR01, DEFAULT STREAM DATAPROPERTY STREAM=FEED, PRESSURE=64.662, PHASE=L, & COMPOSITION(M,LBM/H)=1,5/2,10/3,30/4,20/5,15/6,20 UNIT OPERATIONS SHORTCUT UID=T1 FEED FEEDPRODUCT STREAM=S2, PRESSURE(ATM)=4.4, &PERCENT =45 PRODUCT STREAM=S3, PRESSURE(ATM)=4.4 SPEC STREAM=S2, COMP=3, FRACTION, V ALUE=0.6613 SPEC STREAM=S2, COMP=4, FRACTION, V ALUE=0.005 CONDENSER TYPE=BUBBLE EV ALUATE MODEL=CONVENTIONAL,& TRIAL=40, KEYL=3, KEYH=4, RRMIN=1.8 END详细设计物性及热力学模型简介Correct choice of physical property models and accurate physical propertydata are essential for obtaining accurate simulation resultsProblem: Acetone RecoveryFeed : 5000 lbmol/hr, 65 C, 1 atm 10 mol% acetone, 90 mol% water Design specifications: 99.5% acetone recovered. ? the stages of the column$ ACETONE.INP$ Generated by PRO/II Keyword Generation System <version 5.6> $ Generated on: Thu Jul 18 00:43:36 2002 TITLEDIMENSION METRIC, PRES=ATM, STDTEMP=0, STDPRES=1 SEQUENCE SIMSCI CALCULATION RVPBASIS=APIN, TVP=37.778 COMPONENT DATA LIBID 1,ACETONE/2,H2O THERMODYNAMIC DATA METHOD SYSTEM=IDEAL, SET=IDEA01 METHOD SYSTEM(VLLE)=NRTL, SET=NRTL01 METHOD SYSTEM(VLLE)=UNIF, SET=UNIF01METHOD SYSTEM(VLLE)=PR, SET=PR01, DEFAULT STREAM DATAPROPERTY STREAM=S1, TEMPERATURE=65, PRESSURE=1, PHASE=M, & RATE(M)=5000, COMPOSITION(M)=1,10/2,90 UNIT OPERATIONS SHORTCUT UID=T1 FEED S1 PRODUCT STREAM=S2, & PERCENT =45 PRODUCT STREAM=S3 SPEC STREAM=S2, COMP=1, RATE, V ALUE=497.5 SPEC STREAM=S2, COMP=2, RATE, V ALUE=22.5 CONDENSER TYPE=BUBBLE EV ALUATE MODEL=CONVENTIONAL,& TRIAL=40, KEYL=1, KEYH=2, RRMIN=1.2 METHOD SET=IDEA01 END。
Q abore ------查询元件的公称直径Q aod ------查询元件的外径Q P1 bore ------查询元件P1点的直径,包括设备上的NozzleQ P3 bore ------查询元件P3点的直径,包括设备上的NozzleMark ce ------为当前元素做标记,可以是Pipe,Branch,members, Equipment 等,标记的内容是它本身的名称。
Mark with 'RPE1567' ce ------对当前元素标记’RPE1567’, 引号里面可以是任意内容Q Att ------查询当前元素的参数Q :ims-qcl ------查询Pipe或Branch的等级,当前元素要放在Pipe或Branch层上, Q name ------查询名称,如果知道这个名称,直接敲入命令行就可以找到改元素。
Q lastmodif ------查询最后修改时间Q usermod ------查询最后修改的用户Q usermod :ims-qcl ------查询最后修改:ims-qcl这个参数的用户Q var !!ce.ppos[0].wrt(world) ------查询阀门的设计重心Q var !!ce.ppos[999].wrt(world) ------查询阀门的设计者自己定义的重心Q var !!ce.gcof.wrt(world) ------查询阀门的重心(不考虑负体积如挖孔等)Q var !!ce.ncof.wrt(world) ------查询阀门真正的重心(这是PDMS自带的功能)q var !!ce.poss.wrt(world)Q var !!ce.hstub.attribute(':ep') ------查询branch头部的壁厚,当前元素放在branch上Q var !!ce.lstub.attribute(':ep') ------查询选定元件下面管子的壁厚Q var !!ce.spref.attribute(':ep') 或 Q :ep of spref ------查询所选元件的壁厚上边的:ep可以换成其他的参数,如:de(外径)Q cllength ------查询branch的长度Q var !!ce.spref.attribute(':matiere')[1].name ------查询管道的材料Q spref ------查询元素的制造规格,比如,对于支吊架来说,得出的结果就可能是 spref /MDP/PR09-100Q :mtoarea ------查询安装分区信息Q p1 pos wrt world ------查询元件P1点坐标,例如预埋板Q pos wrt world ------查询元件在世界中的坐标Q poss wrt world ------查询Beam的头部的中心点坐标Q pose wrt world ------查询Beam的尾部的中心点坐标Q :mdsancref ------查询ATTA、STRU以及Anchor plate之间的链接关系Q :prop desc ------查询Beam截面信息Q Dtxr ------查询元件的catalogue详细参数Q Prop code ------查询支吊架的详细类型Q angle/radius ------查询弯头和三通的角度和半径Enhance ce col red ------对当前元素着色,也可以是green,pink , cyan等其他颜色Enhance ce transl >5 ------改透明度Add all within vol ce ------添加当前元素空间内的所有元素Add all STRU within vol ce 300 Col 4 ------添加当前元素周围300空间内的所有 STRU并以yellow显示,其中的STRU、 300和col 4是可变的参数Add ce auto ce ------添加当前元素并居中显示Add href cref ------添加branch头部和尾部相连的管道Add cref ------添加三通相连的管道Add all bran with :ims-ssno eq 'HRA_RPE_03' ------添加具有相同属性的管道,其中的:ims-ssno和HRA_RPE_03是可变参数Add all bran with matchw(:ims-ssno,'HRA_RPE_03') ------添加具有相同属性的管道add all bran with matchwild(:ims-ssno,'HRA_PTR_53') and Hbore gt 50 ------Aid text num 2 (name of owner) at at hpos of owner ------辅助标记,其中的num 2、name of owner和hpos of owner是可变参数,比如改成num 3、TSN、ce/p0等都可以。
Mplus 6、1 使用示例Mplus简介及实例应用Mplus结构方程模型步骤(入门)1数据格式转换因为Mplus只能打开ASCII格式的文件(、dat与、txt文件),所以常规的SPSS数据库的数据不能被读取,所以数据分析之前先要将sav格式另存为dat格式。
另存为选项里有两类dat格式,一般可选用“以制表符分隔”,当数据量较大时,可选“固定ASCII格式”。
这两类并没有明显特异的使用条件。
选择某种dat格式后,“将变量名写入表格”这一项不要勾选。
然后保存。
一般将该数据文件与mplus语句文件放在一个文件夹。
2 打开mplus程序,建立新文件,即点击“new”。
当然,新打开Mplus程序也会默认这个界面。
3 编辑命令。
这就是Mplus分析数据最核心的步骤3、1 首先我们可以给该分析起个名字(该步骤可有可无),例如: TITLE: example3、2 然后表明我们引用的数据库来自于哪里,也就就是刚刚那个DAT文件。
命令为: DATA: C:\Users\dell\Desktop\MPLUS结构方程模型教程\数据库、dat;这里面需要注意的就是: DATA: (或者DATA: FILE=)就是固定句式,就是必要的。
之后“C:\Users\dell\Desktop\MPLUS结构方程模型教程\数据库、dat”这就是DAT文件的保存路径。
一般情况下,如果mplus语句文件与dat文件在同一个文件夹中,只需要DATA: 数据库、dat; 但实际上很多情况下,两者即使在同一个文件中,也很可能读不出来,所以必要的话,可将该DAT文件的保存路径写全,这样肯定就是没错的。
另外,一个命令结束后,必须必须加上“;”即英文格式下的分号(除外TITLE)。
3、3 写出数据库中所有的变量名称以及本次分析需要的变量名称。
这需要按照spss数据库中变量名称顺序来写。
VARIABLE: NAMES ARE a1 a2 a3 a4 a5 a6 a7 a8 a9 b1 b2 b3 b4 c1 c2 c3 c4; USEVARIABLES ARES ARE a1 a2 a3 a4 a5 a6 a7 a8 a9 b1 b2 b3 b4 c1 c2 c3 c4;当然这就是最基本繁琐写法,可直接写为:VARIABLE: NAMES ARE a1-a9 b1-b4 c1-c4; USEVARIABLES ARES ARE a1-a9 b1-b4 c1-c4;不同变量间有空格。
第一部分: 基础知识PML基本概念Programmable Macro Language 可编程宏语言.通常的PML开发包括两部分, 一部分是PML宏,脚本语言; 另一部分是PML2,面向对象的编程语言.1.PML宏(Macro)宏, 就是一系列pml命令的集合.通过$m执行.格式为: $m filename [param1 param2 ….](举例)其中param1为参数, 宏可以参数化.(举例)2.面向对象的PML2PML支持对象(Object),对话框(Form)和菜单(Menu).(举例)一.变量,函数和方法1. 变量的定义及用法在PML2中, 每一个变量都是对象. 变量名以!或者!!开头,例如!weight. !开头的变量为局部变量, !!开头的为全局变量.PML内置了常用的变量类型.(1)Real 实属类型. 提供基本的四则运算操作. 例如!a = 10!b = 10!a = !a + !b$p $!a --输出变量a的值(2)String 字符串类型. 例如!strName = ‘/EQUI-TEST-1’(3)Boolean 用于逻辑表达式. 值只能是true/false(4)Array 数组(5)Position(6)Direction3.变量的创建, 删除, 查看变量可以用赋值来创建. 例如!str = ‘abc’也可以用类型标识来创建.!str= string()!str= ‘abc’删除: !str.delete()查看:通常使用q var!str也可以用$p $!str4.方法(method) 和函数(Function)Method是一个对象的子程序. 只有当对象存在,才可以调用对象的方法. 例如!strNum = ‘123’!num= !strNum.Real()$p $!num以上的代码, 调用的string类型的real()方法, 将字符串转换为数字,并输出.函数的用法与方法类似, 同样有参数和返回值. 但函数是独立存在的,全局的. 在任何地方, 都可以调用.二.程序的结构控制1.循环语句(1)Do循环例如:!sum = 0Do !i From 1 To 100 By 1!sum = !sum + !iEnddo其中!i为循环变量, 初始值为1, 终指为100, 步长为1. 当步长为1是,一般省略.(2)中断Break: 中断并跳出最内层循环(3)跳过Skip. 跳过当此存换. 例如!sum = 0Do !i From 1 To 100 By 1Skip if ( int(!i / 2) eq (!i / 2)) $* 跳过所有的偶数!sum = !sum + !iEnddo2.逻辑控制语句格式为if () then …else…其中括号内的必须是表达式.例如:IF (TYPE OF OWNER EQ ‘BRAN’) THEN$P BRANCH $!!ELSEIF (TYPE EQ ‘BRAN’) THEN$P BRANCH $!!ELSE$P NOT BRANCHENDIF其中elseif /else可选, elseif可多个.3.跳转语句定义标记Label /label1跳转Golabel /gol1不建议使用.三.其他相关语句1.数组字符串长度Length()类型转换Real(),Position(),Boolean()大小写转换LowCase(),UpCase()两端截取After(str2),Before(str2),Substring(index)中间截取Substring(index,nchars)替换Replace(str2,str3)匹配Match(str2)分割(返回数组) Split()修剪Trim()2.字符串元素数量Size()追加元素Append(value)追加数组AppendArray(Array)删除全部元素Clear()倒序Invert()搜索Find(value),FindFirst(value)和并重复项Unique()3.表达式(1)算术运算符+ - * /(2)连接运算符&(3)比较运算符LT GT EQ NEQ(4)逻辑运算符AND OR NOT4.计算函数Sqrt(x)Power(x, e)Int(x)Sin(x)Cos(x)5.注释单行注释用—开头. –之前不可出现空格之外的字符单行注释$*. $*之后的内容为注释. $*之前可出现其他字符段落注释. 用$(和$)将注释内容包括进来.(举例)6.打印$p 打印内容例如$p test line打印多行$p line 1 $Line 2输出内容包括变量$p is $!!其中$为转义字符, 如果要输出$, 则使用$$7.异常处理程序运行中, 可能需要意料之中的可能发生的异常/错误, 例如节点创建失败, 遍历子节点时超过最后一个等等. 这时需要捕捉异常,作出相应的处理.(1)异常捕捉例如Site /TEST_SITEHandle (2, 109) $*$p节点不存在Endhandle其中(2, 109)为错误编号. 也可以使用handle any捕捉任意类型的错误.(2)捕捉多个异常Site /TEST_SITEHandle (2, 109) $*$p节点不存在Elsehandle (2, 108)$p /TEST_SITE节点存在, 但不是SITE类型elsehandle none$p Site /TEST_SITE节点存在endhandle其中handle none表示没有遇到错误的情况.四.用户自定义方法/用自定义函数/自定义对象(1)自定义方法Define method .方法名(参数1 is 类型, 参数2 is 类型…) is 返回值类型其中参数可没有返回值可以没有例如Define method .Sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendmethod(2)自定义函数Define function !!sum(!a is real, !b is real) is real!sum = !a + !bReturn !numendFunction与方法类似. 一个文件里只能定义一个函数,扩展名为pmlfnc, 必须放在指定的文件夹下,并执行pml rehash all(3)自定义对象Define object 对象名endobject五.文件处理(1)读取!file = object FILE(‘d:\abc123.txt')!lines = !file.ReadFile()Qvar!lines(2)写入!arr = array()!arr.append(‘line1’)!arr.append(‘line1’)!file = object FILE('d:\abc.txt')!file.WriteFile('WRITE', !arr) $*将数组!arr写入文件其中’Write’可以换成'OVERWRITE'(覆盖)和'APPEND'(追加)六.对话框及菜单1.系统对话框(1)询问!!alert!confirm = !!alert.confirm('确定要删除吗?')if(!confirm neq 'YES') thenreturnendif(2)警告!!alert.message(‘message’)(3)错误提示!!alert.error(‘error’)2.自定义对话框SETUP FORM !!custumFormTITLE '自定义对话框’Text .text1 ‘点击按钮’Button .okExit这是一个最简单的对话框, 显示一个文本框加上按钮, 但是点击按钮不会有任何反应. (截图)3.对话框调用/初始化Pmlhash allPml reload form !!custumFormShow !!custumForm4.默认构造方法/初始化方法每个form初始化时, 会自动调用与其名字相同的方法. 在刚才的代码中加上Define method .custumForm()!this.text1.tag = ‘初始化完成’Endmethod除此以外, 还可以加上默认的初始化函数在开头加上一行!this.initcall = '!this.init()', 调用构造方法结束,显示之前,会自动调用init()方法5.界面消息的响应界面消息的相应, 例如点击按钮, 选择下拉框等, 用callback关联.SETUP FORM !!custumFormTITLE '自定义对话框’Text .text1 ‘点击按钮’Button .ok ‘OK’ExitDefine method .custumForm()!this.text1.tag = ‘初始化完成’!this.ok.callback = ‘!this.ok()’EndmethodDefine method .ok()!!alert.message(‘OK’)Endmethod此时, 点击按钮, 会弹出对话框. (截图)。