MGCS命令函数Microsoft Word 文档(6)

更新时间:2023-10-31 14:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

运行环境操作函数

!ChangeLoopStgy(StgyName,n)

函数意义:改变循环策略的循环时间。

返 回 值:数值型。返回值=0:调用正常,<>0:调用不正常。 参 数:StgyName,策略名;

n,数值型,以毫秒数表示循环策略的循环时间。

实 例:!ChangeLoopStgy(报警策略,5000),将报警策略的循环时间改为5秒。

!CloseAllWindow(WndName)

函数意义:关闭所有窗口,如果在字符串”WndName”中指定了一个窗口,则打开这

个窗口,关闭其他窗口。如果”WndName”为空串,则关闭所有窗口。

返 回 值:数值型。返回值:=0:调用正常。<>0:调用不正常。 参 数:WndName, 用户窗口名,字符型。

实 例:!CloseAllWindow(\工况图\,关闭除了用户窗口“工况图”以外的其他

窗口,若“工况图”窗口没有打开,则在关闭其他窗口的同时打开该窗口;

!CloseAllWindow(\,关闭所有窗口。

!CloseAllSubWnd()

函数意义:关闭窗口中的所有子窗口。 返 回 值:浮点型,=0为操作。

实 例:!CloseAllSubWnd() ,关闭当前窗口的所有子窗口。

!CloseSubWnd(WndName)

函数意义:关闭子窗口。

返 回 值:浮点型,=1为操作成功,<>1为操作失败。 参 数 值:WndName:子窗口的名字。

实 例:!CloseSubWnd(窗口1),关闭子窗口“窗口1”。

!EnableStgy(StgyName,n)

函数意义:打开或关闭某个策略,如报警策略或循环策略等。

返 回 值:数值型。返回值=0:调用正常,<>0:调用不正常。 参 数:SstgyName,策略名;

n,数值型,为1时表示打开此策略,为0时表示关闭此策略。

实 例:!EnableStgy(报警策略,1), 打开报警策略;

!EnableStgy(报警策略,0), 关闭报警策略,使报警策略无效。

!GetDeviceName(Index)

函数意义:按设备顺序取到设备的名字。

返 回 值:字符型。调用成功返回设备名,调用失败时返回空字符串。 参 数:Index,数值型。

实 例:!GetDeviceName(0) ,取0号设备构件的名称。

!GetDeviceState(DevName)

函数意义:按设备名查询设备的状态。 返 回 值:数值型。

=-1调用不正常。

=1 设备处于正常的工作状态。 =2 设备正在工作,但设备不正常。 =3 设备处于停止工作状态,且设备正常。 =4 设备处于停止状态,且设备有错。

参 数:DevName,设备名,字符型。

实 例:!GetDeviceState(OmronPLC),读取设备构件“OmronPLC”的当前工作状态。 注 意:设备名称是在设备构件基本属性页中设置的。

!GetLastMouseActionTime()

函数意义:获取最后一次鼠标的动作发生的时间。

返 回 值:开关型。返回为time_t类型的时间值,可以在时间操作脚本函数中使用。 参 数:无。

实 例:在画面,系统对话框上的鼠标事件中添加!GetLastMouseActionTime(),

获取鼠标最后动作时间。

!GetStgyName(Index)

函数意义:按运行策略的顺序获得各策略块的名字。 返 回 值:字符型。 参 数:Index,数值型。

实 例:!GetStgyName(0),取0号运行策略的名称。

!GetWindowName(Index)

函数意义:按用户窗口的顺序获得用户窗口的名字。 返 回 值:字符型。 参 数:Index, 数值型。

实 例:!GetWindowName(0) ,读取0号用户窗口的名称。

!GetWindowState(WndName)

函数意义:按照名字取得用户窗口的状态。 返 回 值:数值型。

返回0:用户窗口处于关闭状态。 返回1:用户窗口处于打开状态。 返回2:用户窗口处于隐藏状态。

参 数:WndName,用户窗口名称,字符型。

实 例:!GetWindowState(工况图),获得用户窗口“工况图”的状态。

!OpenSubWnd(参数1,参数2,参数3,参数4,参数5,参数6)

函数意义:显示子窗口。

返 回 值:字符型,如成功就返回子窗口n,n表示打开的第n个子窗口。 参 数 值:参数1:要打开的子窗口名。

参数2:整型,打开子窗口相对于本窗口的X坐标。 参数3:整型,打开子窗口相对于本窗口的Y坐标。 参数4:整型,打开子窗口的宽度。 参数5:整型,打开子窗口的高度。 参数6:整型,打开子窗口的类型。

0位:是否模式打开,使用此功能,必须在此窗口中使用CloseSubWnd来关闭本子窗口,子窗口外别的构件对鼠标操作不响应

1位:是否菜单模式,使用此功能,一旦在子窗口之外按下按钮,则子窗口关闭。

2位:是否显示水平滚动条,使用此功能,可以显示水平滚动条 3位:是否垂直显示滚动条,使用此功能,可以显示垂直滚动条 4位:是否显示边框,选择此功能,在子窗口周围显示细黑线边框 5位:是否自动跟踪显示子窗口,选择此功能,在当前鼠标位置上显示子窗口。此功能用于鼠标打开的子窗口,选用此功能则忽略iLeft,iTop的值,如果此时鼠标位于窗口之外,则在窗口对中显示子窗口

6位:是否自动调整子窗口的宽度和高度为缺省值,使用此功能则忽略iWidth和iHeight的值。

子窗口的关闭办法:

使用关闭窗口直接关闭,则把整个系统中使用到的此子窗口完全关闭 使用指定窗口的CloseSubWnd关闭,可以使用OpenSubWnd返回的控件名,也可以直接指定子窗口关闭,此时只能关闭此窗口下的子窗口。

!SetActiveX()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!CallBackSvr()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!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”开始工作。

!SetMousePace(开关型)

函数意义:设置鼠标灵敏度。

参 数:开关型参数为每次按键消息需要设置的鼠标移动间隔,一般情况下请输

入正整数,如果输入0值表示禁止该功能

实 例:!SetMousePace(1);

默认情况下该功能为关闭状态,鼠标灵敏度为0,如果想启用该功能在启动策略中调用!SetMousePace脚本函数指定步长值。

!SetNumPanelSize(Type,Size)

函数意义:根据需要和显示屏的大小调整软键盘的大小。 返 回 值:开关型。

返回值=0:修改成功。新设置将在下一次打开输入键盘时生效。 返回值=1:修改失败,参数错误。(可能是没有匹配的type ,或者size参数超出范围)。

参 数:Type,键盘类型,数值型;

1:代表修改数值输入键盘。 2:代表修改字符输入键盘;。 3:代表修改用户登录对话框。

Size,键盘大小,数值型;数值范围:200像素~1024像素;

实 例:!SetNumPanelSize(1,500),将数值输入键盘改为500*500大小,该正方形

相对于屏幕居中。所有修改将在下一次打开输入框时生效,运行环境退出后,将自动保留上次输入框的大小。

注意事项:键盘放大缩小功能在重新下载工程时没有删除配置文件,换工程后设置

仍然有效,除非重新进行了设置。如果要去掉原来的设置则需要手工删除panelSize.ini文件,该文件位于\\harddisk\\mcgsbin目录下。

!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()。

!SetStyMode(StgyName)

函数意义:通过脚本函数(位于系统函数-运行环境类)实现函数调用方式的策略调

用。

返回 值:开关型,返回值恒为0。 参 数:StgyName,策略名,字符型。

实 例:!SetStgyMode(阀门关闭),执行一次运行策略“阀门关闭”,“阀门关闭”

策略执行完毕后,才返回调用者,调用者继续执行以下程序。

!GetCurrentLanguageIndex( )

函数意义:用于获取当前使用的语言的索引值。

返 回 值:开关型。返回值为语言项索引值。 索引值按照组态下拉框依次排序0,1,2?

参 数: 无。

实 例:N=!GetCurrentLanguageIndex( ) ,其中N为开关型变量 。

!SetCurrentLanguageIndex ( 开关型 )

函数意义:通过索引项设定当前语言环境

返 回 值:开关型。返回值为0表示执行成功,否则表示失败。

参 数:开关型。语言索引值。如果索引参数值超出当前选择语言范围,那么函数不生效。

实 例:!SetCurrentLanguageIndex(1),表示设置当前语言为英文(选择语言为CH,EN)。

!GetLocalLanguageStr( 开关型 )

函数意义:获得指定自定义ID对应的当前语言的内容。 返 回 值:字符型。

参 数:开关型。自定义ID索引值。如果无当前ID对应自定义文本,则返回空值。

实 例:!GetLocalLanguageStr(2),前提是有ID为2的自定义文本内容,如果当前语言为英文,则返回ID为2的自定义文本记录的英文内容。

!GetLanguageNameByIndex(开关型)

函数意义:根据语言索引值返回语言名称,返回值为字符型。 返 回 值:字符型,当前语言的名称。

参 数:开关型。语言的索引值。如果当前索引值无对应语言,则返回空值。 实 例:!GetLanguageNameByIndex(1) ,假如当前语言为中文、英文,则返回值为English。

数据对象操作函数

!AnswerAlm(DatName)

函数意义:应答数据对象DatName所产生的报警。如对应的数据对象没有报警产

生或已经应答,则本函数无效。

返 回 值:数值型,=0为操作成功,<>0为操作失败。 参 数:DatName,数据对象名。

实 例:!AnswerAlm(电机温度),应答数据对象“电机温度”所产生的报警。

!ChangeDataSave(Datname,n)

函数意义:改变数据对象Datname存盘的周期。 返 回 值:数值型,=0为操作成功,<>0为操作失败。

参 数:Datname,数据对象名;n,数值型,以秒表示的存盘间隔时间。 实 例:!ChangeDataSave(温度,5), 温度的存盘间隔时间为5秒。

!ChangeSaveData(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:数值型时间量,新的存盘间隔,单位:秒。

实 例:!ChangeSaveData(电机1,-2,5),把组对象“电机1”对应的存盘数据中昨天

的存盘数据的存盘间隔改为5秒钟。

!FlushDataInitValueToDisk()

函数意义:把所有数据对象的初始值写入磁盘。

返 回 值:数值型,返回值=0:调用正常,<>0:调用不正常。 参 数:无。

!CopySaveDat()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!DelSaveDat(DatName,Num)

函数意义:删除组对象DatName对应的存盘数据中最早Num小时内的存盘数据,

如果 Num <= 0 ,那么就是删除该组对象全部的存盘数据。如果 Num > 0, 就删除以当前时间为基点Num个小时之前的内容,删除时是按文件删除的,如果数据不足一个存盘文件,是不会被删除的。

返 回 值:数值型,返回值=0:调用正常,<>0:调用不正常。 参 数:DatName,组对象名。 Num , 参数名。

实 例:!DelSaveDat(电机温度,12) ,删除组对象“电机温度”对应的存盘数据中

以当前时间为基点倒推12个小时之前的数据。但从当前时间至倒推的12个小时之内的内容会被保存。

注 意:该函数只对组对象操作有效。

!DelAllSaveDat()

函数意义:删除组对象DataName对应的所有存盘数据。注意,此函数不能用来删

除组对象所对应的报警存盘数据。

返 回 值:数值型,返回值=0:调用正常,<>0:调用不正常。 参 数:DatName:组对象名;

实 例:!DelAllSaveDat(电机温度),删除组对象“电机温度”对应的所有存盘数

注 意:该函数只对组对象操作有效。

!EnableDataSave(name,n)

函数意义:打开/关闭数据对象的定时存盘功能。

返 回 值:数值型,返回值=0:调用正常,<>0:调用不正常。 参 数:name,数据对象名;

n,数值型,1表示打开定时存盘,0表示关闭定时存盘。

实 例:!EnableDataSave(温度,1), 打开温度的定时存盘。

!ExportHisDataToCSV(文件名,组对象名,字段名,开始时间,结束时间,最大记录数,导出模式,导出参数,进度指示数据对象名,取消控制数据对象名)

函数意义:

1.导出指定组对象存盘数据,导出的条件包括:开始时间-结束时间,

最大导出总条数;

2.导出字段列表,组对象为MCGS_ALARM则表示导出报警历史数

据;

3.可指定导出文件名和路径,主要是U盘导出,可以追加方式也可覆

盖方式导出;

4.可显示导出过程进度情况; 5.可取消和中止长时间的导出过程;

6.导出格式为csv文件,导出的第一行为字段名字。

返 回 值:开关型。

返回1 指定组对象错误,可能组对象没有保存历史数据或者没有该

组对象

返回2 指定的时间格式错误 返回3 指定的无效的数据对象名 返回4 无效的导出模式

返回5 同时只能支持一个csv导出

参 数:

文件名:字符型,指定导出的文件绝对路径名,指定的第一级目录不能创

建,其子目录如果不存在则可以创建。这样避免U盘不存在时创建U盘目录。注意:第一级目录不能自动创建用户必须保证其存在;

组对象名:导出的组对象名字。

字段名:字符型,用逗号分隔的要导出的字段名,不需要指定时间字段,

默认第一二个字段就为记录时间字段。如果为空字符串则导出所有字段。

开始时间,结束时间:用表示的时间字符串 “YYYY-MM-DD HH:MM:

SS”;

最大记录数:希望导出的最大记录数,超过该记录数就返回,停止导出; 导出模式:“1”表示覆盖现有文件,“2”表示追加到文件最后; 导出参数:暂时为空,保留以后使用;

进度指示数据对象名:开关型数据对象,导出过程中该对象值反映出当前

已导出记录条数,如果导出过程中其他异常结束则通过该对象返回同函数返回错误码;

进度指示错误码:

返回-1------文件不能打开 返回-2------没有可导出的数据 返回-4------文件操作出现错误

控制数据对象名:指定一个开关型数据对象,该对象控制导出执行,启动

导出时会自动设置该变量为0,用户在导出过程中想取消导出则可以设置该值为<0的任何值,导出函数运行结束后会自动设置对象值为1;

进度指示错误码:

返回0------导出成功 返回-1-----导出路径不存在

返回1------指定组对象错误,可能组对象没有保存历史数据或者没有该组对象 返回2------指定的时间格式错误 返回3------指定的无效的数据对象名 返回4------无效的导出模式

返回5------同时只能支持一个csv导出

:

ret=

!ExportHisDataToCSV(\

harddisk\\yang.csv\进度,控制)

!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()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!GetEventP()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!GetEventT()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!MoveSaveDat()

函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

!SaveData(DatName)

函数意义:把数据对象DataName对应的当前值存入存盘数据库中。本函数的操作

使对应的数据对象的值存盘一次。此数据对象必须具有存盘属性,且存盘时间需设为0秒。否则会操作失败。

返 回 值:数值型,=0为操作成功,<>0为操作失败。 参 数:DatName,数据对象名。

实 例:!SaveData(电机1),把组对象“电机1”的所有成员对应的当前值存盘一次。

!SaveDataInit()

函数意义:本操作把设置有“退出时自动保存数据对象的当前值作为初始值”属性的

数据对象的当前值存入组态结果数据中作为初始值,防止突然断电而无法保存,以便MCGS嵌入版下次启动时这些数据对象能自动恢复其值。

返 回 值:数值型,返回值=0:调用正常,<>0:调用不正常。 参 数:无。

实 例:!SaveDataInit()。

注 意:此函数单独使用不起作用,需要和函数!Flushdatainitvaluetodisk()一起使

用。

!SaveDataOnTime(Time,TimeMS,DataName)

函数意义:使用指定时间保存数据。本函数通常用于指定时间来保存数据,实现与

通常机制不一样的存盘方法。

返 回 值:数值型,返回值=0:调用正常,<>0:调用不正常。

参 数:Time,数值型,使用时间函数转换出的时间量。时间精度到秒。

TimeMS,数值型,指定存盘时间的毫秒数。

实 例:t =!TimeStr2I(\年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

!TransToUSB(组对象名,起始时间,结束时间,导出状态,进度指示,转出模式,保留参数)

函数意义:将XXX组对象的存盘数据导出到\目录下,保存为

“XXX.csv”文件,模拟环境则是保存到与可执行文件相同路径下。

返 回 值:开关型。

0:参数没有错误。

1:第一个参数错误。(请检查是否组对象名称,或“MCGS_ALARM”) 2: 时间参数格式错误。

3:状态变量的类型错误。(两个变量都必须是开关量) 5:同时只能支持一个csv导出。

参 数: 组对象名:字符型,要导出的组对象名称(或“MCGS_ALARM”)。

起始时间:字符型,要导出的历史数据的开始时间,格式:YYYY-MM-DD HH:MM:SS。

结束时间:字符型,要导出的历史数据的结束时间,格式:YYYY-MM-DD HH:MM:SS。

导出状态:开关型,进度指示数据对象名(开关量),输出导出状态。 正常导出存盘后输出当前已经导出的记录条数。

当创建导出文件“XXX.csv”失败时输出-1。(请检查下位机是否正常插入了U盘)

当前没有记录可导出时输出-2。(请检查对应的组对象是否有存盘信息,或者开始时间结束时间是否设置正确)

导出过程中出现未知数据类型时输出-3。(不应该出现) 导出过程中出现文件操作异常时输出-4。(请检查U盘容量是否足够)

进度指示:开关量,指定一个数字型或开关型对象,该对象控制导出执行,启动导出时会自动设置该变量为0,用户在导出过程中想取消导出可设置该变量为<0的任何值,导出函数运行结束后会自动设置对象值为1。

注:6.5(01.0010)之前的版本,此参数为原导出状态变量2,显示的是导出

数据总条数。

转出模式:开关型,保留,设置为0。 保留参数:字符型,保留, 设置为空字符串。

实 例:

!TransToUSB(MCGS_ALARM , 2008-12-1 00:00:00 , 2008-12-31 00:00:00 , Switch01 , Switch02 , 0 , \。

注意事项:

该函数最多只能导出30000条记录。当满足导出时间条件的记录数大于30000时,只导出前30000条记录。

!CopyDateFileToDisk(pathName,dataType,copyState)

函数意义: 拷贝当前运行工程的数据到指定的目录pathName中。 返 回 值:

1:在拷贝的过程中,数据对象copyState,由0转变为非0.表示用户不想继续拷贝。

0:表示拷贝成功。

-1:当前工程中,当前运行工程中没有组对象要存盘。 -2:创建目录pathName失败。

-3:创佳索引文件MCGS_DATA.ini失败或者对此文件进行写操作失败。

-4:参数dataType的值,不正确,目前只支持值为0。 -5:磁盘空间不足。

-6:参数copyState不是数据对象类型。

-7:参数copyState是数据对象类型,但不是开关型数据对象。 -8:参数copyState在一开始调用此脚本时,就为非0。

参数说明:

pathName:字符串型.要拷贝数据到此的路径名.例如:在模拟环境可以写\在运行环境可写\。

dataType:开关型.拷贝数据的类型,0表示历史数据,1表示报警数据.目前只支持拷贝历史数据,报警数据还没有处理。

copyState:数据对象型.是否拷贝的标志.当为0表示可以拷贝,为非0表示取消当前的拷贝。

实 例:!CopyDateFileToDisk(\把当前工程中历史数据

拷贝到目录\中(如copyState为0表示拷贝,为非表示取消)。

说 明:一般此脚本要配合组态环境中的一个小程序DataTrans.exe来一起操作.

把拷贝的数据目录,通过U盘或其他方式,导到上位机(PC),通过用程序DataTrans.exe来进行数据的转换

用户登录操作函数

!ChangePassword()

函数意义:弹出密码修改窗口,供当前登录的用户修改密码。 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:无。

实 例:!ChangePassword()。

!CheckUserGroup(strUserGroup)

函数意义:检查当前登录的用户是否属于strUserGroup用户组的成员。 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:strUserGroup,字符型,用户组的名称。 实 例:!CheckUserGroup(\管理员组\。

!Editusers()

函数意义:弹出用户管理窗口,供管理员组的操作者配置用户。 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:无。 实 例:!Editusers()。

!EnableExitLogon(n)

函数意义:打开/关闭退出时的权限检查。

返 回 值:数值型。返回值=1:操作成功;返回值=0:操作失败。

参 数:n,数值型,为1时表示在退出时进行权限检查,当权限不足时,会进行

提示。为0则退出时不进行权限检查。

实 例:!EnableExitLogon(1), 在退出时进行权限检查。

!EnableExitPrompt(n)

函数意义:打开/关闭退出时的提示信息。

返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。

参 数:n,数值型,为1时表示在退出时弹出提示信息对话框。为0则退出时不

出现信息对话框。

实 例:!EnableExitPrompt(1), 在退出时弹出提示信息对话框。

!GetCurrentGroup()

函数意义:读取当前登录用户的所在用户组名。

返 回 值:字符型,当前登录用户组名,如没有登录返回空。 参 数:无。

实 例:!GetCurrentGroup()。

!GetCurrentUser()

函数意义:读取当前登录用户的用户名。

返 回 值:字符型,当前登录用户的用户名,如没有登录返回空。 参 数:无。

实 例:!GetCurrentUser()。

!LogOff()

函数意义:注销当前用户。

返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:无。 实 例:!LogOff()。

!LogOn()

函数意义:弹出登录对话框。

返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:无。 实 例:!LogOn()。

字符串操作函数

!Ascii2I(s)

函数意义:返回字符串s的首字母的Ascii值。 返 回 值:开关型。 参 数:s, 字符型。 实 例:!Ascii2I(\。

!Bin2I(s)

函数意义:把二进制字符串转换为数值。 返 回 值:开关型。

参 数:s, 字符型。 实 例:!Bin2I(\。

!Format(n,str)

函数意义:格式化数值型数据对象。 返 回 值:字符型。

参 数:n,数值型,要格式化的数值;

str,字符型,格式化数值的格式。表示为0.00样式。小数点后的0的个数表示需要格式化出的小数位数。小数点前的0为一个时,表示小数点前根据 实际数值显示。当小数点前没有0时,表示为.xx式样,当小数点前的0不止一个时,使用0来填充不够的位数。

实 例:!Format(1.236,\;!Format(1.236,\;

!Format(1.236,\。

!Hex2I(s)

函数意义:把16进制字符串转换为数值。 返 回 值:开关型。 参 数:s, 字符型。 实 例:!Hex2I(\。

!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,\。

!Lcase(str)

函数意义:把字符型数据对象str的所有字符转换成小写。 返 回 值:字符型。 参 数:str, 字符型。

实 例:!LCase(\。

!Left(str,n)

函数意义:字符型数据对象str左边起,取n个字符。 返 回 值:字符型。

参 数:str:字符型,源字符串;n,数值型,取字符个数。 实 例:!Left(\ =\

!TimeSpanGetHours(iTimeSpan)

函数意义:获取时间差中的小时数;(时间差由TimeGetSpan函数计算得来)。 返 回 值:开关型,时间差中的小时数(0~23)。 参 数:iTimeSpan,开关型,时间差。 实 例:!TimeSpanGetHours(TimeSpan)。 实例说明:获取时间差TimeSpan中的小时数。

!TimeSpanGetMinutes(iTimeSpan)

函数意义:获取时间差中的分钟数;(时间差由TimeGetSpan函数计算得来)。 返 回 值:开关型,时间差中的分钟数(0~59)。 参 数:iTimeSpan,开关型,时间差。 实 例:!TimeSpanGetMinutes(TimeSpan)。 实例说明:获取时间差TimeSpan中的分钟数。

!TimeSpanGetSeconds(iTimeSpan)

函数意义:获取时间差中的秒数;(时间差由TimeGetSpan函数计算得来)。 返 回 值:开关型,时间差中的秒数(0~59)。 参 数:iTimeSpan,开关型,时间差。 实 例:!TimeSpanGetSeconds(TimeSpan)。 实例说明:获取时间差TimeSpan中的秒数。

!TimeSpanGetTotalHours(iTimeSpan)

函数意义:获取时间差中的小时总数;(时间差由TimeGetSpan函数计算得来)。 返 回 值:开关型,时间差中的小时总数。 参 数:iTimeSpan,开关型,时间差。 实 例:!TimeSpanGetTotalHours(TimeSpan)。 实例说明:获取时间差TimeSpan中的小时总数。

!TimeSpanGetTotalMinutes(iTimeSpan)

函数意义:获取时间差中的分钟总数;(时间差由TimeGetSpan函数计算得来)。

返 回 值:开关型,时间差中的分钟总数。 参 数:iTimeSpan,开关型,时间差。 实 例:!TimeSpanGetTotalMinutes(TimeSpan)。 实例说明:获取时间差TimeSpan中的分钟总数。

!TimeSpanGetTotalSeconds(iTimeSpan)

函数意义:获取时间差中的秒总数;(时间差由TimeGetSpan函数计算得来)。 返 回 值:开关型,时间差中的秒总数。 参 数:iTimeSpan,开关型,时间差。 实 例:!TimeSpanGetTotalSeconds(TimeSpan)。 实例说明:获取时间差TimeSpan中的秒总数。

!TimeAdd(iTime,iTimeSpan)

函数意义:向时间iTime中加入由iTimeSpan指定的秒数。 返 回 值:开关型,相加后的时间值。 参 数:iTime,开关型,初始时间值。

iTimeSpan,开关型,要加的秒数。

实 例:!TimeAdd(Time,500)。 实例说明:向时间Time中加上500秒。

嵌入式系统函数

!Outp(参数1,参数2)

函数意义:向端口输出一个字节。

返 回 值:开关型。返回值=0:调用正常,<>0:调用不正常。 参 数:参数1,开关型,端口号;

参数2,开关型,输出的字节。

实 例:!Outp(320,255)。

实例说明:向端口320输出字节255。

!OutpW(参数1,参数2)

函数意义:向端口输出两个字节。

返 回 值:开关型。返回值=0:调用正常,<>0:调用不正常。

参 数:参数1,开关型,端口号;

参数2,开关型,输出的字节。

实 例:!OutpW(320,256)。 实例说明:向端口320输出字节256。

!OutpD(参数1,参数2)

函数意义:向端口输出四个字节。

返 回 值:开关型。返回值=0:调用正常,<>0:调用不正常。 参 数:参数1,开关型,端口号;

参数2,开关型,输出的字节。

实 例:!OutpD(320,65537)。 实例说明:向端口320输出字节65537。

!Inp(参数1)

函数意义:返回从端口输入的一个字节。 返 回 值:开关型。输入的字节。 参 数:参数1,开关型,端口号。 实 例:!Inp(320)。

实例说明:返回从端口320输入的一个字节。

!InpW(参数1)

函数意义:返回从端口输入的两个字节。 返 回 值:开关型。输入的字节。 参 数:参数1,开关型,端口号。 实 例:!InpW(320)。

实例说明:从端口320输入的两个字节。

!InpD(参数1)

函数意义:返回从端口输入的四个字节。 返 回 值:开关型。输入的字节。 参 数:参数1,开关型,端口号。 实 例:!InpD(320)。

实例说明:返回从端口320输入的四个字节。

!WriteMemory(参数1,参数2)

函数意义:向内存写入一个字节。

返 回 值:开关型。返回值=0:调用正常,<>0:调用不正常。

参 数:参数1,开关型,内存地址,如Oxa0000,注意转换为十进制;

参数2,开关型,写入的字节。

实 例:!WriteMemory(320,255)。 实例说明:向地址320写入255。

!WriteMemoryW(参数1,参数2)

函数意义:向内存写入两个字节。

返 回 值:开关型。返回值=0:调用正常,<>0:调用不正常。

参 数:参数1,开关型,内存地址,如Oxa0000,注意转换位十进制;

参数2,开关型,写入的字节。

实 例:!WriteMemoryW(320,256)。 实例说明:向地址320写入256。

!WriteMemoryD(参数1,参数2)

函数意义:向内存写入四个字节。

返 回 值:开关型。返回值=0:调用正常,<>0:调用不正常。

参 数:参数1,开关型,内存地址,如Oxa0000,注意转换位十进制;

参数2,开关型,写入的字节。

实 例:!WriteMemoryD(320,65537)。 实例说明:向地址320写入65537。

!ReadMemory(参数1)

函数意义:从内存读出一个字节。 返 回 值:开关型。读出的字节。

参 数:参数1,开关型,内存地址,如Oxa0000,注意转换位十进制。 实 例:!ReadMemory(320)。 实例说明:从地址320读出一个字节。

!ReadMemoryW(参数1)

函数意义:从内存读出两个字节。 返 回 值:开关型。读出的字节。

参 数:参数1,开关型,内存地址,如Oxa0000,注意转换位十进制。 实 例:!ReadMemoryW(320)。 实例说明:从地址320读出两个字节。

!ReadMemoryD(参数1)

函数意义:从内存读出四个字节。 返 回 值:开关型。读出的字节。

参 数:参数1,开关型,内存地址,如Oxa0000,注意转换位十进制。 实 例:!ReadMemoryD(320)。 实例说明:从地址320读出四个字节。

!SetSerialBaud(参数1,参数2)

函数意义:设置串口的波特率。

返 回 值:开关型。返回值=0:调用正常,<>0:调用不正常。 参 数:参数1,开关型,串口号,从1开始,串口1对应1;

参数2,开关型,波特率,可选值包括:

/*50,75,110,134.5,150,300,600,1200,1800,2400,4800,7200,9600,19200,38400,57600,115200,230400,460800,921600*/。

实 例:!SetSerialBaud(1,57600)。 实例说明:设置串口1的波特率为57600。

!SetSerialDataBit(参数1,参数2)

函数意义:设置串口的数据位。

返 回 值:开关型。返回值=0:调用正常,<>0:调用不正常。 参 数:参数1,开关型,串口号,从1开始,串口1对应1;

参数2,开关型,数据位,0x00 = bit_5;0x01 = bit_6;0x02 = bit_7;0x03 = bit_8。

实 例:!SetSerialDataBit(1,8)。 实例说明:设置串口1的数据位为8位。

!SetSerialStopBit(参数1,参数2)

!Len(str)

函数意义:求字符型数据对象str的字符串长度(字符个数)。 返 回 值:数值型。 参 数:str, 字符型。 实 例:!Len(\。

!Ltrim(str)

函数意义:把字符型数据对象str中最左边的空格剔除。 返 回 值:字符型。 参 数:str, 字符型。

实 例:!LTrim(\ dsfk \ \

!lVal(str)

函数意义:将字符串转化为长数值型数值 返 回 值:开关型,转换出的数值。 参 数:str,字符型。待转换的字符串。 实 例:!lVal(\。

!Mid(str,n,k)

函数意义:从字符型数据对象str左边第n个字符起,取k个字符。数字字符时,从

零开始算起。

返 回 值:字符型。

参 数:str, 字符型,源字符串;

n, 数值型,起始位置; k, 数值型,取字符数。

实 例:!Mid(\,3,2) = \。

!Oct2I(s)

函数意义:把8进制字符串转换为数值。 返 回 值:开关型。

参 数:s, 字符型。 实 例:!Oct2I(\。

!Right(str,n)

函数意义:从字符型数据对象str右边起,取n个字符。 返 回 值:字符型。

参 数:str,字符型,源字符串;n,数值型,取字符个数。 实 例:!Right(\ =\。

!Rtrim(str)

函数意义:把字符型数据对象str中最右边的空格剔除。 返 回 值:字符型。 参 数:str, 字符型。

实 例:!Rtrim(\ dsfk \ dsfk\。

!Str(x)

函数意义:将数值型数据对象x的值转换成字符串。 返 回 值:字符型。 参 数:x, 数值型。 实 例:!Str(0.712) =\。

!StrComp(str1,str2)

函数意义:比较字符型数据对象str1和str2是否相等,返回值为0时相等,否则不

相等。不区分大小写字母。

返 回 值:数值型。 参 数:str1, 字符型;

str2, 字符型。

实 例:!StrComp(\。

!StrFormat(FormatStr,任意个数变量)

函数意义:格式化字符串,可以格式化任意多个数值。使用方法

为!StrFormat(\,或!StrFormat(\等,类似C语言中的 Printf的语法。

返 回 值:字符型。

参 数:FormatStr, 字符型,格式化字符串。后面的参数可以任意多个。 实 例:!StrFormat(\。

!Trim(str)

函数意义:把字符型数据对象str中左右两端的空格剔除。 返 回 值:字符型。 参 数:str, 字符型。

实 例:!Trim(\ dsfk \。

!Ucase(str)

函数意义:把字符型数据对象str的所有字符转换成大写。 返 回 值:字符型。 参 数:str, 字符型。

实 例:!UCase(\。

!Val(str)

函数意义:把字符型数据对象str的值转换成数值。 返 回 值:数值型。 参 数:str, 字符型。 实 例:!Val(\。

定时器操作函数

可用的系统定时器范围为1到127,即系统内嵌127个系统定时器。用户可以随意使用其中的任意一个。

定时器返回时间值为数值型,单位为秒,分,时,但是小数位最多可以表示到毫秒。因为采

用浮点数表示,随着数值增大会略有误差。

!TimerClearOutput(定时器号)

函数意义: 清除定时器的数据输出连接。

返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:定时器号。

实 例:!TimerClearOutput(1),清除1号定时器的数据输出连接。

!TimerRun(定时器号)

函数意义:启动定时器开始工作。

返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:定时器号。

实 例:!TimerRun(1),启动1号定时器工作。

!TimerStop(定时器号)

函数意义:停止定时器工作。

返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:定时器号。

实 例:!TimerStop(1),停止1号定时器工作。

!TimerSkip(定时器号,步长值)

函数意义:在计时器当前时间数上加/减指定值。

返 回 值:数值型。返回值=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(定时器号,1)

函数意义:以字符串的形式返回当前定时器的值。

返回 值:字符型变量, 将定时器的值以字符型的方式输出(时间格式)。 参 数:定时器号。

实 例:Time=!TimerStr(1,1),取定时器的值以“00:00:00”形式输出给Time。

!TimerState(定时器号)

函数意义:取定时器的工作状态。

返 回 值:数值型变量,0 - 定时器停止,1 - 定时器运行。 参 数:定时器号。

实 例:data1=!TimerState(1),取定时器1的工作状态给data1。

!TimerSetLimit(定时器号,上限值,参数3)

函数意义:设置定时器的最大值,即设置定时器的上限。 返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。

参 数:定时器号(1-255);上限值;第三个参数,1 - 表示运行到60后停止;0 -

表示运行到60后重新循环运行。

实 例:!TimerSetLimit(1,60,1),设置1号定时器的上限为60,运行到60后停止。

!TimerSetOutput(定时器号,变量)

函数意义:设置定时器的值输出连接的变量。

返 回 值:数值型。返回值=0:调用成功;<>0:调用失败。 参 数:定时器号;变量,定时器的值输出连接的变量。 实 例:!TimerSetOutput(1,Data0),将定时器数据连接到Data0。

参 数:x,数值型,用弧度表示。 实 例:!Sin(3.14159)=0.0。

!Tan(x)

函数意义:正切函数。 返 回 值:数值型。

参 数:x,数值型,用弧度表示。 实 例:!Tan(3.14159)=0.0。

!Exp(x)

函数意义:指数函数。 返 回 值:数值型。 参 数:x,数值型。

实 例:!Exp(2.3020585093)=10.0。

!Log(x)

函数意义:对数函数。 返 回 值:数值型。 参 数:x,数值型。 实 例:!Log(10)=2.302。

!Sqr(x)

函数意义:平方根函数。 返 回 值:数值型。 参 数:x,数值型。 实 例 :!Sqr(4.0)=2.0。

!Abs(x)

函数意义:绝对值函数。 返 回 值:数值型。 参 数:x,数值型。

实 例 :!Abs(-3.14159)=3.14159。

!Sgn(x)

函数意义:符号函数。 返 回 值:数值型。 参 数:x,数值型。

实 例:!Sgn(-10) = -1;!Sgn(10) = 1;!Sgn(0) = 0。

!BitAnd(x,y)

函数意义:按位与。 返 回 值:开关型。

参 数:x,开关型,y,开关型。 实 例:!BitAnd(3,4) =0。

!BitOr(x,y)

函数意义:按位或。 返 回 值:开关型。

参 数:x,开关型。y,开关型。 实 例:!BitOr(3,4) =7。

!BitXor(x,y)

函数意义:按位异或。 返 回 值:开关型。

参 数:x,开关型。y,开关型。 实 例:!BitXor(3,4) = 7。

!BitClear(x,y)

函数意义:清除指定位,位置从0开始计算。 返 回 值:开关型。

参 数:x,开关型。y,开关型。

实 例:!BitClear(3,1) = 1,把第2位清空。

!BitSet(x,y)

函数意义:设置指定位,位置从0开始计算。 返 回 值:开关型。

参 数:x,开关型。y,开关型。 实 例:!BitSet (3,2) = 7。

!BitNot(x)

函数意义:按位取反。 返 回 值:开关型。 参 数:x,开关型。

实 例:!BitNot(0) = 0xffffffff。

!BitTest(x,y)

函数意义:检测指定位是否为一,位置从0开始计算。 返 回 值:开关型。

参 数:x,开关型。y,开关型。 实 例:!BitTest(3,2) = 0。

!BitLShift(x,y)

函数意义:左移 返 回 值:开关型。

参 数:x,开关型。y,开关型。 实 例:!BitLShift(3,1) = 6。

!BitRShift(x)

函数意义:右移。 返 回 值:开关型。

参 数:x,开关型。y,开关型。 实 例:!BitRShift(3,1) = 1。

!Rand(x,y)

函数意义:生成随机数,随机数的范围在x和y之间。

返 回 值:数值型。

参 数:x,数值型。y, 数值型。 实 例:!Rand(3,4) = 3.1。

文件操作函数

注意:文件操作函数中所涉及到文件的路径均为绝对路径

!FileAppend(strTarget,strSource)

函数意义:将文件strSource中的内容添加到文件strTarget后面,使两文件合并为一

个文件。

返 回 值:开关型。

参 数:strTarget,字符型,目标文件,需要写绝对路径;

strSource,字符型,源文件,需要写绝对路径。

实 例:!FileAppend(\。

实例说明:将D盘下文件b.txt合并到文件a.txt的后面。若a.txt不存在,则会

自动新建一个文件。

!FileCopy(strSource,strTarget)

函数意义:将源文件strSource复制到目标文件strTarget,若目标文件已存在,则将

目标文件覆盖。

返 回 值:开关型;

返回0,操作不成功; 返回非0值,操作成功。

参 数:strSource,字符型,源文件;

strTarget,字符型,目标文件。

实 例:!FileCopy(\a.txt\\\b.txt\。 实例说明:将D盘下文件a.txt复制到b.txt。

!FileDelete(strFilename)

函数意义:将strFilename指定的文件删除。 返 回 值:开关型;

返回0,操作不成功; 返回非0值,操作成功。

参 数:str1,字符型,将被删除的文件。 实 例:!FileDelete(\。 实例说明:删除将D盘下文件a.txt。

!FileFindFirst(strFilename,objName,objSize,objAttrib)

函数意义:查找第一个名字为strFilename的文件或目录。 返 回 值:开关型;

返回-1,操作不成功。

返回其它值:操作成功,返回值为一个句柄,该值为以后的查找提供根据。

参 数:strFilename,字符型,要查找的文件的文件名(文件名中可以包含文件

通配符:*和?);

objName,字符型对象名,函数调用成功后,保存查找结果的名称。 objSize,数值型对象名,函数调用成功后,保存查找结果的大小; objAttrib,数值型对象名,函数调用成功后,保存查找结果的属性: 若objAttrib = 0,则查找结果为一个文件; 若objAttrib = 1,则查找结果为一个目录。

实 例:!FileFindFirst(\。

实例说明:查找D盘下第一个名字为:a*.txt的文件或目录,将查找结果的属性存入

Attrib数值变量中,大小存入Size数值变量中,名字存入Name数值变量中。

!FileFindNext(FindHandle,objAttrib,objSize,objName)

函数意义:根据FindHandle提供的句柄,继续查找下一个文件或目录。 返 回 值:开关型;

返回0:查找不成功; 返回非0值:查找成功。

参 数:FindHandle,开关型,由函数!FileFindFirst返回。

objAttrib,数值型对象名,函数调用成功后,保存查找结果的属性: 若objAttrib = 0,则查找结果为一个文件; 若objAttrib = 1,则查找结果为一个目录。

本文来源:https://www.bwwdw.com/article/vfd2.html

Top