MCGS系统内部函数参考手册.docx
《MCGS系统内部函数参考手册.docx》由会员分享,可在线阅读,更多相关《MCGS系统内部函数参考手册.docx(24页珍藏版)》请在冰豆网上搜索。
MCGS系统内部函数参考手册
MCGS系统内部函数
欧阳光明(2021.03.07)
MCGS内部为用户提供了一些常用的数学函数和对MCGS内部对象操作的函数。
组态时,可在表达式中或用户脚本程序中直接使用这些函数。
为了与其它名称相区别,系统内部函数的名称一律以“!
”符号开头。
下面分别介绍各个函数的用途和使用方法。
运行环境操作函数
!
CallBackSvr(DatName)
函数意义:
调用后台对象
返回值:
数值型,后台对象的值
参数:
DatName,对象名,数值型
实例:
X=!
CallBackSvr(X),调用后台数值型对象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),打开报警策略;
!
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,用户窗口名称,字符型。
实例:
!
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:
操作用户窗口的方法,数值型。
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()
数据对象操作函数
!
AnswerAlm(DatName)
函数意义:
应答数据对象DatName所产生的报警。
如对应的数据对象没有报警产生或已经应答,则本函数无效。
返回值:
数值型,=0为操作成功;<>0为操作失败。
参数:
DatName,数据对象名;
实例:
!
AnswerAlm(电机温度),应答数据对象“电机温度”所产生的报警。
!
ChangeDataSave(Datname,n)
函数意义:
改变数据对象Datname存盘的周期。
返回值:
数值型,=0为操作成功;<>0为操作失败。
参数:
Datname,数据对象名;
n,数值型,以秒表示的存盘间隔时间
实例:
ChangeDataSave(温度,5),温度的存盘间隔时间为5秒
!
ChangeSaveDat(DatName,Num1,Num2)
函数意义:
改变数据对象DatName所对应存盘数据的存盘间隔,把Num1小时以前的存盘数据(以当前时间为0点)的存盘间隔改为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:
调用不正常。
参数:
Tdb,目标数据库名;Sdb,源数据库名;TabName,数据表名;
TimeField,定义的时间字段名;Flag,拷贝方式,0:
覆盖拷贝;1:
添加拷贝。
实例:
!
CopySaveDat(Tdb,Sdb,TabName,TimeField,0),将数据库Sdb中表TabName中的数据拷贝到数据库Tdb中,表名仍是TabName,定义的时间字段为TimeField,拷贝方式为覆盖拷贝。
!
DelAllSaveDat(DatName)
函数意义:
删除数据对象DatName对应的所有存盘数据。
返回值:
数值型,返回值=0:
调用正常;<>0:
调用不正常。
参数:
DatName,数据对象名。
实例:
!
DelAllSaveDat(电机温度),删除数据对象“电机温度”对应的所有存盘数据。
!
DelAllAlmDat(DatName)
函数意义:
删除数据对象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小时内的数据。
!
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,事件变量名,事件型。
实例:
!
GetEventDT(EvName),取事件变量EvName当前事件和上一次事件之间的时间差,单位为秒。
!
GetEventP(EvName)
函数意义:
取到当前事件的附加说明字符串。
返回值:
字符型。
返回的附加说明字符串。
参数:
EvName,事件变量名,事件型。
实例:
!
GetEventP(EvName),取事件型变量EvName的当前事件的附加说明字符串。
!
GetEventT(EvName)
函数意义:
取到当前事件产生的时间,以秒为单位,相对于1980年以来的秒数。
如没有事件产生,返回-1。
返回值:
数值型。
参数:
EvName,事件变量名,事件型。
实例:
!
GetEventT(EvName),取事件型变量EvName的当前事件产生时刻。
!
MoveAlmDat(DatName,FileName,Num1,Num2,Flag)
函数意义:
把数据对象DatName所对应的报警存盘信息中的第Num1小时到Num1+Num2小时内(以当前时间为0点)的报警存盘信息提取出来,转存到FileName所指定的数据库文件中(Access数据库)。
当DatName=空字符,或FileName=空字符,或Num2<0时,本函数无效。
删除数据对象DatName对应的所有报警存储数据。
返回值:
数值型,返回值=0:
调用正常;<>0:
调用不正常。
参数:
DatName:
数据对象名。
FileName:
新的报警存盘文件名(包括路径),字符型。
Num1:
数值型时间量,单位:
小时。
本函数用Num1<0的一些数值来表示一些特殊意义的操作(此时Num2无效):
=-1转存当天的所有报警信息存盘数据;
=-2转存昨天的所有报警信息存盘数据;
=-3转存本星期的所有报警信息存盘数据;
=-4转存上星期的所有报警信息存盘数据;
=-5转存本月的所有报警信息存盘数据;
=-6转存上个月的所有报警信息存盘数据;
Num2:
数值型时间量,单位:
小时。
Flag:
转存标志,数值型。
Flag=0时,创建一个新文件(如原文件已存在,则把原文件改名为***.BK1);Flag=1时,在原有的基础上增加新的数据。
实例:
!
MoveAlmDat(电机温度,"D:
\Temp\ttt.mdb",-6,0,1),把数据对象“电机温度”对应的报警存盘数据中的上个月的所有报警信息存盘数据转存添加到数据库文件"D:
\Temp\ttt.mdb"中。
!
MoveSaveDat(DatName,FileName,Num1,Num2,Flag)
函数意义:
把数据对象DatName所对应的存盘数据中的第Num1小时到Num1+Num2小时内(以当前时间为0点)的存盘数据提取出来,转存到FileName所指定的数据库文件中(Access数据库)。
当DatName=空字符,或FileName=空字符,或Num2<0时,本函数无效。
返回值:
数值型,返回值=0:
调用正常;<>0:
调用不正常。
参数:
DatName:
数据对象名。
FileName:
新的存盘数据文件名(包括路径),字符型。
Num1:
数值型时间量,单位:
小时。
本函数用Num1<0的一些数值来表示一些特殊意义的操作(此时Num2无效):
=-1转存当天对应数据对象的所有存盘数据;
=-2转存昨天对应数据对象的所有存盘数据;
=-3转存本星期对应数据对象的所有存盘数据;
=-4转存上星期对应数据对象的所有存盘数据;
=-5转存本月对应数据对象的所有存盘数据;
=-6转存上个月对应数据对象的所有存盘数据;
Num2:
数值型时间量,单位:
小时。
Flag:
转存标志,数值型。
Flag=0时,创建一个新文件(如原文件已存在,则把原文件改名为***.BK1);Flag=1时,在原有的基础上增加新的数据。
实例:
!
MoveSaveDat(电机温度,"D:
\Temp\ttt.mdb",-6,0,1)把数据对象“电机温度”对应的存盘数据中的上个月的所有存盘数据转存添加到数据库文件“D:
\Temp\ttt.mdb”中。
!
SaveData(DatName)
函数意义:
把数据对象DataName对应的当前值存入存盘数据库中。
本函数的操作使对应的数据对象的值存盘一次。
此数据对象必须具有存盘属性,且存盘时间需设为0秒。
否则会操作失败。
返回值:
数值型,=0为操作成功;<>0为操作失败。
参数:
DatName,数据对象名。
实例:
!
SaveData(电机1),把组对象“电机1”的所有成员对应的当前值存盘一次。
!
SaveDataInit()
函数意义:
本操作把设置有“退出时自动保存数据对象的当前值作为初始值”属性的数据对象的当前值存入组态结果数据中作为初始值,防止突然断电而无法保存,以便MCGS下次启动时这些数据对象能自动恢复其值。
返回值:
数值型,返回值=0:
调用正常;<>0:
调用不正常。
参数:
无。
实例:
!
SaveDataInit()
!
SaveDataOnTime(Time,TimeMS,DataName)
函数意义:
使用指定时间保存数据。
本函数通常用于指定时间来保存数据,实现与通常机制不一样的存盘方法。
返回值:
数值型,返回值=0:
调用正常;<>0:
调用不正常。
参数:
Time,整型,使用时间函数转换出的时间量。
时间精度到秒。
TimeMS,整型,指定存盘时间的毫秒数。
DataName,数据对象名。
实例:
t=!
TimeStr2I(“2001年2月21日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:
数值型,标志要操作何种限值,具体意义如下:
=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)
函数意义:
打开/关闭退出时的提示信息
返回值:
无
参数:
n,数值型,为1时表示在退出时弹出提示信息对话框。
为0则退出时不出现信息对话框。
实例:
!
EnableExitLogon
(1),在退出时弹出提示信息对话框
!
GetCurrentGroup()
函数意义:
读取当前登录用户的所在用户组名。
返回值:
字符型,当前登录用户组名,如没有登录返回空。
参数:
无。
实例:
!
GetCurrentGroup()
!
GetCurrentUser()
函数意义:
读取当前登录用户的用户名。
返回值:
字符型,当前登录用户的用户名,如没有登录返回空。
参数:
无。
实例:
!
GetCurrentUser()
!
LogOff()
函数意义:
注销当前用户。
返回值:
数值型。
返回值=0:
调用成功;<>0:
调用失败。
参数:
无