MCGS系统内部函数参考手册.docx
MCGS系统内部函数参考手册MCGS系统内部函数 MCGS内部为用户提供了一些常用的数学函数和对MCGS内部对象操作的函数。组态时,可在表达式中或用户脚本程序中直接使用这些函数。为了与其它名称相区别,系统内部函数的名称一律以“!”符号开头。下面分别介绍各个函数的用途和使用方法。 运行环境操作函数 !CallBackSvr(DatName) 函数意义:调用后台对象 返 回 值:数值型,后台对象的值 参 数:DatName,对象名,数值型 实 例:X=!CallBackSvr,调用后台数值型对象X 注 意:本函数在新版本MCGS系统内部,已经无效。为了保留与旧版本的兼容性,暂时保留。 !ChangeLoopStgy(StgyName,n) 函数意义:改变循环策略的循环时间 返 回 值:数值型。返回值=0:调用正常;<>0:调用不正常。 参 数:StgyName,策略名;n,数值型,以毫秒数表示循环策略的循环时间 实 例:!ChangeLoopStgy(报警策略,5000),将报警策略的循环时间改为为5秒 !CloseAllWindow(WndName) 函数意义:关闭所有窗口,如果在字符串”WndName”中指定了一个窗口,则打开这个窗口,关闭其他窗口。如果”WndName”为空串,则关闭所有窗口。 返 回 值:数值型。返回值:=0:调用正常;<>0:调用不正常。 参 数:WndName, 用户窗口名,字符型。 实 例:!CloseAllWindow(“工况图”),关闭除了用户窗口“工况图”以外的其他窗口,若“工况图”窗口没有打开,则在关闭其他窗口的同时打开该窗口 !CloseAllWindow(“”),关闭所有窗口。 !EnableStgy(StgyName,n) 函数意义:打开或关闭某个策略,如报警策略或循环策略等。 返 回 值:数值型。返回值=0:调用正常;<>0:调用不正常。 参 数:StgyName,策略名; n,数值型,为1时表示打开此策略,为0时表示关闭此策略。 实 例:!EnableStgy(报警策略,1), 打开报警策略; 1 !EnableStgy(报警策略,0), 关闭报警策略,使报警策略无效 !GetDeviceName(Index) 函数意义:按设备顺序取到设备的名字。 返 回 值:字符型。调用成功返回设备名,调用失败时返回空字符串。 参 数:Index,数值型。 实 例:!GetDeviceName(0) ,取0号设备构件的名称。 !GetDeviceState(DevName) 函数意义:按设备名查询设备的状态。 返 回 值:数值型。 =-1调用不正常。 =1 设备处于正常的工作状态。 =2 设备正在工作,但设备不正常。 =3 设备处于停止工作状态,且设备正常。 =4 设备处于停止状态,且设备有错。 参 数:DevName,设备名,字符型。 实 例:!GetDeviceState( OmronPLC),读取设备构件“OmronPLC”的当前工作状态。 !GetStgyName(Index) 函数意义:按运行策略的顺序获得各策略块的名字。 返 回 值:字符型。 参 数:Index,数值型。 实 例:!GetStgyName(0),取0号运行策略的名称。 !GetWindowName(Index) 函数意义:按用户窗口的顺序获得用户窗口的名字。 返 回 值:字符型。 参 数:Index, 数值型。 实 例:!GetWindowName(0) ,读取0号用户窗口的名称。 !GetWindowState(WndName) 函数意义:按照名字取得用户窗口的状态。 返 回 值:数值型。 返回0:用户窗口处于关闭状态。 返回1:用户窗口处于打开状态。 返回2:用户窗口处于隐藏状态。 参 数:WndName,用户窗口名称,字符型。 2 实 例:!GetWindowState(工况图),获得用户窗口“工况图”的状态 !SetActiveX(Activename,n,str) 函数意义:操作指定的动画构件, 向窗口中的ActiveX控件发出控件命令 返 回 值:无 参 数:Activename,字符型,控件名称,用“.”分割窗口名和控件名,如:窗口0.控件1表示在用户窗口“窗口0”中的名为“控件1”的控件。 n,数值型,命令类型,请填1; str,字符型,命令字符串,具体含义请参照控件帮助。 实 例:!SetActiveX(“窗口0.控件0”,1,”start”),启动窗口0的控件0开始工作。 !SetDevice(DevName,DevOp,CmdStr) 函数意义:按照设备名字对设备进行操作。 返 回 值:数值型。返回值:=0:调用正常;<>0:调用不正常。 参 数:DevName,设备名,字符型; DevOp,设备操作码,数值型; CmdStr,设备命令字符串,只有当DevOp=6时CmdStr才有意义。 DevOp取值范围及相应含义: 1:启动设备开始工作。 2:停止设备的工作使其处于停止状态。 3:测试设备的工作状态。 4:启动设备工作一次。 5:改变设备的工作周期,CmdStr中包含新的工作周期,单位为ms。 6:执行指定的设备命令,CmdStr中包含指定命令的格式。 实 例:!SetDevice(OmronPLC,1," " ),启动设备构件“OmronPLC”开始工作。 !SetStgy(StgyName) 函数意义:执行StgyName指定的运行策略。 返 回 值:数值型。返回值=0:调用正常;<>0:调用不正常。 参 数:StgyName,策略名,字符型。 实 例:!SetStgy(阀门关闭),执行一次运行策略“阀门关闭”。 !SetWindow(WndName,Op) 函数意义:按照名字操作用户窗口,如打开、关闭、打印。 返 回 值:数值型。返回值:=0:调用正常;<>0:调用不正常。 参 数:WndName, 用户窗口名, 字符型。 Op: 操作用户窗口的方法,数值型。 3 Op=1:打开窗口并使其可见。Op=2:打开窗口并使其不可见。 Op=3:关闭窗口。Op=4:打印窗口。Op=5:刷新窗口。 实 例:!SetWindow(工况图,1),打开用户窗口“工况图”,并使其可见。 !SysWindow 函数意义:执行该函数后,打开用户窗口管理窗口,在管理窗口中可以选择打开或关闭指定的用户窗口。 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:无。 实 例:!SysWindow !DisableCtrlAltDel 函数意义:屏蔽热键Ctrl+Alt+Del的功能。无法打开任务管理器窗口或执行锁定计算机注销关机密码修改等操作。 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:无。 实 例:!DisableCtrlAltDel 注 意此函数在网络版客户端和WIN98操作系统下无效。 !EnableCtrlAltDel 函数意义:恢复热键Ctrl+Alt+Del的功能。使用任务管理器关闭不响应的程序或执行锁定计算机注销关机修改密码等,为了维护系统安全的操作。 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:无。 实 例:!EnableCtrlAltDel 注 意:1. 不要把这两个脚本函数同时使用,否则,看不到任何效果,没有任何意义; 2. 不要把这两个函数放到循环中使用; 3. 在使用这2个脚本函数时,最好与登录密码同时使用,以达到真正的热键屏蔽效果。 4. 此函数在网络版客户端和WIN98操作系统下无效。 !RestartProject 函数意义:当检查组态工程在运行过程中出现非正常状态,可以调用该函数重新启动运行环境。该功能必须在加密狗生效时方可工作。 返 回 值:无。 参 数:无。 实 例:!RestartProject 4 数据对象操作函数 !AnswerAlm(DatName) 函数意义:应答数据对象DatName所产生的报警。如对应的数据对象没有报警产生或已经应答,则本函数无效。 返 回 值:数值型,=0为操作成功;<>0为操作失败。 参 数:DatName,数据对象名; 实 例:!AnswerAlm(电机温度),应答数据对象“电机温度”所产生的报警。 !ChangeDataSave(Datname,n) 函数意义:改变数据对象Datname存盘的周期。 返 回 值:数值型,=0为操作成功;<>0为操作失败。 参 数:Datname,数据对象名; n,数值型,以秒表示的存盘间隔时间 实 例:ChangeDataSave(温度,5), 温度的存盘间隔时间为5秒 !ChangeSaveDat(DatName,Num1,Num2) 函数意义:改变数据对象DatName所对应存盘数据的存盘间隔,把Num1小时以前的存盘数据的存盘间隔改为Num2秒。本操作只对组对象有效,对单个的数据对象无效。当DataName =空字符,或Num1=0或Num2=0时,本操作无效。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:DatName:数据对象名。 Num1:数值型时间量,单位:小时。本函数用Num1<0的一些数值来表示一些特殊意义的操作: =-1 改变当天对应数据对象所有存盘数据的存盘间隔; =-2 改变昨天对应数据对象所有存盘数据的存盘间隔; =-3 改变本星期对应数据对象所有存盘数据的存盘间隔; =-4 改变上星期对应数据对象所有存盘数据的存盘间隔; =-5 改变本月对应数据对象所有存盘数据的存盘间隔; =-6 改变上个月对应数据对象所有存盘数据的存盘间隔; Num2:数值型时间量,新的存盘间隔,单位:秒。 实 例:! ChangeSaveDat(电机1, -2, 5),把组对象“电机1”对应的存盘数据中昨天的存盘数据的存盘间隔改为5秒钟。 !CopySaveDat(Tdb,Sdb,TabName,TimeField,Flag ) 函数意义:拷贝数据库中数据表的数据 返 回 值:开关型,返回值=0:调用正常;返回值<>0:调用不正常。 5 参 数:Tdb,目标数据库名;Sdb,源数据库名;TabName,数据表名; TimeField,定义的时间字段名;Flag,拷贝方式,0:覆盖拷贝;1:添加拷贝。 实 例: !CopySaveDat,将数据库Sdb中表TabName中的数据拷贝到数据库Tdb中,表名仍是TabName,定义的时间字段为TimeField,拷贝方式为覆盖拷贝。 !DelAllSaveDat(DatName) 函数意义:删除数据对象DatName对应的所有存盘数据。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:DatName,数据对象名。 实 例:! DelAllSaveDat(电机温度) ,删除数据对象“电机温度”对应的所有存盘数据。 !DelAllAlmDat 函数意义:删除数据对象DataName对应的所有报警存盘数据。注意,此函数不能用来删除组对象所对应的报警存盘数据。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:DatName:数据对象名; 实 例:!DelAllAlmDat,删除数据对象“电机温度”对应的所有报警存盘数据 !DelAlmDat(DatName,Num) 函数意义:删除数据对象DataName对应的报警存储数据中最早Num小时内的报警存储数据,如Num<=0或DatName=空字符,则该函数无效。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:DatName:数据对象名; Num:数值型时间值,单位:小时。 实 例:! DelAlmDat(电机温度,1),删除数据对象“电机温度”对应的报警存盘数据中最早1小时内的数据。 !DelSaveDat(DatName,Num) 函数意义:删除数据对象DataName对应的存盘数据中最早Num小时内的存盘数据,如Num<=0或DatName=空字符,则该函数无效。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:DatName:数据对象名; Num:数值型时间值,单位:小时。 实 例:! DelSaveDat(电机温度,12) ,删除数据对象“电机温度”对应的存盘数据中最早12小时内的数据。 6 !EnableAlm(name,n) 函数意义:打开/关闭数据对象的报警功能。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:name,变量名; n,数值型,1表示打开报警,0表示关闭报警 实 例:!EnableAlm(电机温度,1), 打开电机温度的报警功能 !EnableDataSave(name,n) 函数意义:打开/关闭数据对象的定时存盘功能。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:name,数据对象名; n,数值型,1表示打开定时存盘,0表示关闭定时存盘 实 例:!EnableDataSave(温度,1), 打开温度的定时存盘 !GetAlmValue(DatName,Value,Flag) 函数意义:读取数据对象DatName报警限值,只有在数据对象DatName的“允许进行报警处理”属性选项被选中后,本函数的操作才有意义。对组对象、字符型数据对象、事件型数据对象本函数无效。对数值型数据对象,用Flag来标识读取何种报警限值。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:DatName:数据对象名。 Value:DataName的当前的报警限值,数值型。 Flag:数值型,标志要读取何种限值,具体意义如下: =1下下限报警值; =2 下限报警值; =3 上限报警值; =4 上上限报警值; =5 下偏差报警限值; =6 上偏差报警限值; =7 偏差报警基准值; 实 例:! GetAlmValue(电机温度, Value, 3),读取数据对象“电机温度”的报警上限值,放入数值型数据对象Value中。 !GetEventDT(EvName) 函数意义:返回当前事件和上一次事件之间的时间差,单位为秒。 返 回 值:数值型。返回的时间差 参 数:EvName,事件变量名,事件型。 7 实 例:!GetEventDT(EvName),取事件变量EvName当前事件和上一次事件之间的时间差,单位为秒。 !GetEventP(EvName) 函数意义:取到当前事件的附加说明字符串。 返 回 值:字符型。返回的附加说明字符串。 参 数:EvName,事件变量名,事件型。 实 例:!GetEventP(EvName) ,取事件型变量EvName的当前事件的附加说明字符串。 !GetEventT(EvName) 函数意义:取到当前事件产生的时间,以秒为单位,相对于XX年以来的秒数。如没有事件产生,返回-1。 返 回 值:数值型。 参 数:EvName,事件变量名,事件型。 实 例:!GetEventT(EvName),取事件型变量EvName的当前事件产生时刻。 !MoveAlmDat(DatName,FileName,Num1,Num2,Flag) 函数意义:把数据对象DatName所对应的报警存盘信息中的第Num1小时到Num1+Num2小时内的报警存盘信息提取出来,转存到FileName所指定的数据库文件中。当DatName=空字符,或FileName=空字符,或Num2<0时,本函数无效。删除数据对象DatName对应的所有报警存储数据。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:DatName:数据对象名。 FileName:新的报警存盘文件名(包括路径),字符型。 Num1:数值型时间量,单位:小时。本函数用Num1<0的一些数值来表示一些特殊意义的操作: =-1 转存当天的所有报警信息存盘数据; =-2 转存昨天的所有报警信息存盘数据; =-3 转存本星期的所有报警信息存盘数据; =-4 转存上星期的所有报警信息存盘数据; =-5 转存本月的所有报警信息存盘数据; =-6 转存上个月的所有报警信息存盘数据; Num2:数值型时间量,单位:小时。 Flag:转存标志,数值型。 8 Flag=0时,创建一个新文件(如原文件已存在,则把原文件改名为*.BK1);Flag=1时,在原有的基础上增加新的数据。 实 例:!MoveAlmDat(电机温度, "D:Tempttt.mdb",-6,0,1),把数据对象“电机温度”对应的报警存盘数据中的上个月的所有报警信息存盘数据转存添加到数据库文件"D:Tempttt.mdb"中。 !MoveSaveDat(DatName,FileName,Num1,Num2,Flag) 函数意义:把数据对象DatName所对应的存盘数据中的第Num1小时到Num1+Num2小时内的存盘数据提取出来,转存到FileName所指定的数据库文件中。当DatName=空字符,或FileName=空字符,或Num2<0时,本函数无效。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:DatName:数据对象名。 FileName:新的存盘数据文件名(包括路径),字符型。 Num1:数值型时间量,单位:小时。 本函数用Num1<0的一些数值来表示一些特殊意义的操作: =-1 转存当天对应数据对象的所有存盘数据; =-2 转存昨天对应数据对象的所有存盘数据; =-3 转存本星期对应数据对象的所有存盘数据; =-4 转存上星期对应数据对象的所有存盘数据; =-5 转存本月对应数据对象的所有存盘数据; =-6 转存上个月对应数据对象的所有存盘数据; Num2:数值型时间量,单位:小时。 Flag:转存标志,数值型。 Flag=0时,创建一个新文件(如原文件已存在,则把原文件改名为*.BK1);Flag=1时,在原有的基础上增加新的数据。 实 例:! MoveSaveDat(电机温度, "D:Tempttt.mdb",-6,0,1) 把数据对象“电机温度”对应的存盘数据中的上个月的所有存盘数据转存添加到数据库文件“D:Tempttt.mdb”中。 !SaveData(DatName) 函数意义:把数据对象DataName对应的当前值存入存盘数据库中。本函数的操作使对应的数据对象的值存盘一次。此数据对象必须具有存盘属性,且存盘时间需设为0秒。否则会操作失败。 返 回 值:数值型,=0为操作成功;<>0为操作失败。 参 数:DatName,数据对象名。 9 实 例:! SaveData(电机1),把组对象“电机1”的所有成员对应的当前值存盘一次。 !SaveDataInit 函数意义:本操作把设置有“退出时自动保存数据对象的当前值作为初始值”属性的数据对象的当前值存入组态结果数据中作为初始值,防止突然断电而无法保存,以便MCGS下次启动时这些数据对象能自动恢复其值。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:无。 实 例:! SaveDataInit !SaveDataOnTime(Time,TimeMS,DataName) 函数意义:使用指定时间保存数据。本函数通常用于指定时间来保存数据,实现与通常机制不一样的存盘方法。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:Time,整型,使用时间函数转换出的时间量。时间精度到秒。 TimeMS,整型,指定存盘时间的毫秒数。 DataName, 数据对象名。 实 例:t = !TimeStr2I(“XX年x月x日3时2分3秒”) !SaveDataOnTime (t,0,DataGroup), 按照指定时间保存数据对象 !SaveSingleDataInit(Name) 函数意义:本操作把数据对象的当前值设置为初始值,防止突然断电而无法保存,以便MCGS下次启动时这些数据对象能自动恢复其值。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:Name,数据对象名。 实 例:!SaveSingleDataInit(温度),把温度的当前值设置成初始值。 !SetAlmValue(DatName,Value,Flag) 函数意义:设置数据对象DatName对应的报警限值,只有在数据对象DatName“允许进行报警处理”的属性被选中后,本函数的操作才有意义。对组对象、字符型数据对象、事件型数据对象本函数无效。对数值型数据对象,用Flag来标识改变何种报警限值。 返 回 值:数值型,返回值=0:调用正常;<>0:调用不正常。 参 数:DatName:数据对象名。 Value:新的报警值,数值型。 Flag:数值型,标志要操作何种限值,具体意义如下: 10 =1下下限报警值; =2下限报警值; =3上限报警值; =4上上限报警值; =5下偏差报警限值; =6上偏差报警限值; =7偏差报警基准值; 实 例:! SetAlmValue(电机温度, 200, 3),把数据对象“电机温度”的报警上限值设为200 用户登录操作函数 !ChangePassword 函数意义:弹出密码修改窗口,供当前登录的用户修改密码。 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:无。 实 例:!ChangePassword !CheckUserGroup(strUserGroup) 函数意义:检查当前登录的用户是否属于strUserGroup用户组的成员。 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:strUserGroup,字符型,用户组的名称。 实 例:! CheckUserGroup("管理员组") !Editusers 函数意义:弹出用户管理窗口,供管理员组的操作者配置用户。 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:无。 实 例:!Editusers !EnableExitLogon(n) 函数意义:打开/关闭退出时的权限检查 返 回 值:无 参 数:n,数值型,为1时表示在退出时进行权限检查,当权限不足时,会进行提示。为0则退出时不进行权限检查。 实 例:!EnableExitLogon(1), 在退出时进行权限检查 !EnableExitPrompt (n) 函数意义:打开/关闭退出时的提示信息 11 返 回 值:无 参 数:n,数值型,为1时表示在退出时弹出提示信息对话框。为0则退出时不出现信息对话框。 实 例:!EnableExitLogon(1), 在退出时弹出提示信息对话框 !GetCurrentGroup 函数意义:读取当前登录用户的所在用户组名。 返 回 值:字符型,当前登录用户组名,如没有登录返回空。 参 数:无。 实 例:!GetCurrentGroup !GetCurrentUser 函数意义:读取当前登录用户的用户名。 返 回 值:字符型,当前登录用户的用户名,如没有登录返回空。 参 数:无。 实 例:!GetCurrentUser !LogOff 函数意义:注销当前用户。 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:无。 实 例:!LogOff !LogOn 函数意义:弹出登录对话框。 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:无。 实 例:!LogOn !GetUserNameByIndex 函数意义:按索引号取得当前用户名。 返 回 值:字符型。与索引号相对应的当前用户名。 参 数:索引号值。 实 例:!GetUserNameByIndex(0) ,索引为0的用户名称。 !GetGroupNameByIndex 函数意义:按索引号取得当前用户组名。 返 回 值:字符型。与索引号相对应的当前用户组名。 参 数:索引号值。 实 例:!GetGroupNameByIndex(0) ,索引为0的用户组名称。 12 !GetProjectTotalUsers 函数意义:取得当前工程用户总数。 返 回 值:开关型。当前工程用户总数。 参 数:无 实 例: !GetProjectTotalUsers,激活该函数,取得当前工程的用户总数。 字符串操作函数 !Ascii2I(s) 函数意义:返回字符串s的首字母的Ascii值。 返 回 值:开关型。 参 数:s, 字符型。 实 例:!Ascii2I(“Afd”) =65 !Bin2I(s) 函数意义:把二进制字符串转换为数值。 返 回 值:开关型。 参 数:s, 字符型。 实 例:!Bin2I(“101”) =5 !Format(n,str) 函数意义:格式化数值型数据对象 返 回 值:字符型。 参 数:n,数值型,要格式化的数值; str,字符型,格式化数值的格式。表示为0.00样式。小数点后的0的个数表示需要格式化出的小数位数。小数点前的0为一个时,表示小数点前根据实际数值显示。当小数点前没有0时,表示为.xx式样,当小数点前的0不止一个时,使用0来填充不够的位数。 实 例:!Format(1.236,"0.00") = "1.24";!Format(1.236,".00") = ".24"; !Format(1.236,"00.00") = "01.24"; !Hex2I(s) 函数意义:把16进制字符串转换为数值。 返 回 值:开关型。 参 数:s, 字符型。 实 例:!Hex2I (“11”) =17 13 !I2Ascii(s) 函数意义:返回指定Ascii值的字符。 返 回 值:字符型。 参 数:s, 开关型。 实 例:!I2Ascii(65) =”A” !I2Bin(s) 函数意义:把数值转换为二进制字符串。 返 回 值:字符型。 参 数:s,开关型。 实 例:!I2Bin (5) =“101” !I2Hex(s) 函数意义:把数值转换为16进制字符串。 返 回 值:字符型。 参 数:s,开关型。 实 例:!I2Hex (17) =“11” !I2Oct(s) 函数意义:把数值转换为8进制字符串。 返 回 值:字符型。 参 数:s,开关型。 实 例:!I2Oct (9) =“11” !InStr(n,str1,str2) 函数意义:查找一字符串在另一字符串中最先出现的位置 返 回 值:数值型。 参 数:n,数值型,开始搜索的位置; str1,字符串,被搜索的字符串; str2,字符串,要搜索的字符串 实 例:!InStr(3,"sdlkfjwe","we") = 7 实 例:!InStr(1,"wesdlkfjwe","we") = 1,表示从str1字符串的第一个字符位置搜索str2字符串,返回最先出现的位置 !Lcase(str) 函数意义:把字符型数据对象str的所有字符转换成小写。 返 回 值:字符型。 参 数:str, 字符型。 实 例:!LCase("sedERT") = "sedert" 14 !Left(str,n) 函数意义:字符型数据对象str左边起,取n个字符。 返 回 值:字符型。 参 数:str:字符型,源字符串;n,数值型,取字符个数。 实 例:!Left("ABCDEFG",2) ="AB" !Len(Str) 函数意义:求字符型数据对象str的字符串长度。 返 回 值:数值型。 参 数:str, 字符型。 实 例:!Len("ABCDEFG") = 7 !Ltrim(str) 函数意义:把字符型数据对象str中最左边的空格剔除。 返 回 值:字符型。 参 数:str, 字符型。 实 例:!LTrim(" dsfk ") = "dsfk " !lVal(str) 函数意义:将数值类字符串转化为长整型数值 返 回 值:开关型,转换出的数值。 参 数:str,字符型。要求待转换的字符串为数值类字符串 实 例:!lVal(“12345678”)=12345678 !Mid(str,n,k) 函数意义:从字符型数据对象str左边第n个字符起,取k个字符。 返 回 值:字符型。 参 数:str, 字符型,源字符串; n, 数值型,起始位置; k, 数值型,取字符数。 实 例:!Mid("ABCDEFG",3,2) = "CD" !Oct2I(s) 函数意义:把8进制字符串转换为数值。 返 回 值:开关型。 参 数:s, 字符型。 实 例:!Oct2I (“11”) =9 !Right(str,n) 函数意义:从字符型数据对象str右边起,取n个字符。 15 返 回 值:字符型。 参 数:str,字符型,源字符串;n,数值型,取字符个数。 实 例:!Right("ABCDEFG",2) ="FG" !Rtrim(str) 函数意义:把字符型数据对象str中最右边的空格剔除。 返 回 值:字符型。 参 数:str, 字符型。 实 例:!LTrim(" dsfk ") =" dsfk" !Str(x) 函数意义:将数值型数据对象x的值转换成字符串。 返 回 值:字符型。 参 数:x, 数值型。 实 例:!Str(0.712) ="0.712" !StrComp(str1,str2) 函数意义:比较字符型数据对象str1和str2是否相等,返回值为0时相等,否则不相等。不区分大小写字母。 返 回 值:数值型。 参 数:str1, 字符型; str2, 字符型。 实 例:!StrComp("ABC","abc") = 0 !StrFormat(FormatStr,任意个数变量) 函数意义:格式化字符串,可以格式化任意多个数值。使用方法为!StrFormat(“%d”,23)或!StrFormat(“%g-%g-%g”,2.3,2.1,2.2)等,类似C语言中的Printf的语法。 返 回 值:字符型。 参 数:FormatStr,字符型,格式化字符串,如:“%d”、 “%g”。后面的参数可以任意多个。 实 例:!StrFormat("%g-%g",12,12.34)= "12-12.34" 注 意:输出多个数值时,可以使用在多个格式化字符串之间,添加分格符的方法,区别任意个数的输出变量。如:"%g-%g"、"%g-%g-%g"。 !Trim(str) 函数意义:把字符型数据对象str中左右两端的空格剔除。 返 回 值:字符型。 参 数:str, 字符型。 16 实 例:!Trim(" dsfk ") ="dsfk" !Ucase(str) 函数意义:把字符型数据对象str的所有字符转换成大写。 返 回 值:字符型。 参 数:str, 字符型。 实 例:!UCase("sedERT") ="SEDERT" !Val(str) 函数意义:把数值类字符型数据对象str的值转换成数值。 返 回 值:数值型。 参 数:str, 字符型。 实 例:!Val("0.712") = 0.712 注 意:使用表签控件显示输出时,必需设置"小数位数"的个数;否则系统将以四舍五入的规则,显示输出整数数值。 定时器操作函数 定时器号:系统定时器的序号1127,MCGS系统内嵌127个系统定时器。系统定时器以秒为定时单位。 !TimerClearOutput(定时器号) 函数意义: 断开定时器的数据输出连接 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:定时器号。 实 例:!TimerClearOutput(1),断开1号定时器的数据输出连接 !TimerRun(定时器号) 函数意义:启动定时器开始工作 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:定时器号 实 例:!TimerRun(1),启动1号定时器工作。 !TimerStop(定时器号) 函数意义:停止定时器工作 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:定时器号 实 例:!TimerStop(1 ),停止1号定时器工作。 !TimerSkip(定时器号,步长值) 函数意义:在计时器当前时间数上加/减指定值 17 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:定时器号;步长值 实 例:!TimerSkip(1,3),1号定时器当前值+3 !TimerReset(定时器号,数值) 函数意义:设置定时器的当前值,由第二个参数设定,第二个参数可以是MCGS变量 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:定时器号;数值 实 例:!TimerReset(1,12),设置1号定时器的值为12 !TimerValue(定时器号,0) 函数意义:取定时器的当前值 返 回 值:将定时器的值以数值型的方式输出 参 数:定时器号 实 例:Data3=!TimerValue(1,0),取定时器1的值给Data3 !TimerStr(定时器号,转换类型) 函数意义:以时间类字符串的形式返回当前定时器的值 返 回 值:字符型变量, 将定时器的值以字符型的方式输出 参 数:定时器号 转换类型值:开关型 = 0:取定时器的值以“00:00”形式输出; = 1:取定时器的值以“00:00:00”形式输出; = 2:取定时器的值以“0 00:00:00”形式输出; = 3:取定时器的值以“0 00:00:00.000”形式输出; 实 例:Time=!TimerStr(1,1),取定时器的值以“00:00:00”形式输出给Time !TimerState(定时器号) 函数意义:取定时器的工作状态 返 回 值:数值型变量,0 - 定时器停止,1 - 定时器运行 参 数:定时器号 实 例:data1=!TimerState(1),取定时器1的工作状态给data1 !TimerSetLimit(定时器号,上限值,参数3) 函数意义:设置定时器的最大值,即设置定时器的上限 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:定时器号;上限值;参数3,1 - 表示运行到60后停止;0 - 表示运行到60后重新循环运行 18 实 例:!TimerSetLimit(1,60,1),设置1号定时器的上限为60,运行到60后停止。 !TimerSetOutput(定时器号,数值型变量) 函数意义:设置定时器的值输出连接的数值型变量 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:定时器号;数值型变量,定时器的值输出连接的数值型变量 实 例:!TimerSetOutput(1,Data0),将1号定时器的数据连接到Data0 !TimerWaitFor(定时器号,数值