MCGS嵌入版运行环境操作函数

更新时间:2024-05-16 21:28:01 阅读量: 综合文库 文档下载

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

MCGS内部函数

运行环境操作函数

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

!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(\ =\

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

文件操作函数

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

!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,则查找结果为一个目录。

objSize,数值型对象名,函数调用成功后,保存查找结果的大小; objName,字符型对象名,函数调用成功后,保存查找结果的名称。

实 例:!FileFindNext(aa,Attrib,Size,Name)。

实例说明:根据句柄aa,继续查找下一个文件或目录,其中,aa由函数!FileFindFirst

的返回值提供。

注 意:!FileFindFirst()必须与!FileFindNext()在同一个脚本块中编写才有效。

!FileIniReadValue(strIniFilename,strSection,strItem,objResult)

函数意义:从配置文件(.ini文件)中读取一个值。 返 回 值:开关型。

参 数:strIniFilename,字符型,配置文件的文件名;

strSection,字符型,要读取数据所在的节的名称; strItem,字符型,要读取数据的项名;

objResult,数值型、字符型对象名,用于保存读到的数据;

实 例:!FileIniReadValue(\。

实例说明:从配置文件a.ini中的system节中读取memory项的值,并将该值放入result

数据对象中。

!FileIniWriteValue(strIniFilename,strSection,strItem,objResult)

函数意义:向配置文件(.ini文件)中写入一个值。 返 回 值:开关型。

参 数:strIniFilename,字符型,配置文件的文件名;

strSection,字符型,要写入数据所在的节的名称; strItem,字符型,要读写入据的项名;

objResult,数值型、字符型对象名,用于保存写入的数据;

实 例:!FileIniWriteValue(\。

实例说明:将数据对象result的值写入到配置文件a.ini中的system节中memory项中。

!FileIniWriteNoFlush(strIniFilename,strSection,strItem,objResult)

函数意义:!FileIniWriteNoFlush(strIniFilename,strSection,strItem,objResult) 函数

和!FileIniWriteValue接口和功能基本一致,只是写完后不刷新磁盘;

返 回 值:开关型。

参 数:strIniFilename,字符型,配置文件的文件名;

strSection,字符型,要写入数据所在的节的名称; strItem,字符型,要读写入据的项名;

objResult,数值型、字符型对象名,用于保存写入的数据;

实 例:!FileIniNoFlush(\。

实例说明:将数据对象result的值写入到配置文件a.ini中的system节中memory项中。

此时值被写入内存,磁盘未被刷新,磁盘文件不保存。

!FileIniFlush(strIniFilename)

函数意义:!FileIniWriteFlush(strIniFilename) 函数将内存中的ini文件更新到磁盘上,

与!FileIniWriteFlush(strIniFilename,strSection,strItem,objResult) 函数 配合使用

返 回 值:开关型。成功返回0,否则返回1。 参 数:strIniFilename,字符型,配置文件的文件名; 实 例:!FileIniFlush(\。

实例说明:将内存中数据对象result的值更新到磁盘配置文件a.ini中的system节中

memory项中,并显示磁盘文件。

!FileMove(strSource,strTarget)

函数意义:将文件strSource移动并改名为strTarget。 返 回 值:开关型;

返回0:操作失败; 返回非0值:操作成功。

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

strTarget,字符型,目标文件。

实 例:!Filemove(\。

实例说明:将D盘下文件a.txt移至同一目录下,并改名为b.txt。 注 意:如果目标文件已存在,直接返回0,操作失败。

!FileReadFields(strFilename,lPosition,任意个数变量)

函数意义:从strFilename指定的文件中读出CSV(逗号分隔变量)记录。 返 回 值:开关型。

参 数:strFilename,字符型,文件名;

lPosition,数值型,数据开始位置;

实 例:!FileReadFields(\。

实例说明:从文件a.csv中的第200个字节开始,读取4个数据,分别存入变量:

var1,var2,var3,var4中。

!FileReadStr(strFilename,lPosition,lLength,objResult)

函数意义:从strFilename指定文件(需为.dat文件)中的lPosition,位置开始,读取lLength

个字节,或一整行,并将结果保存到objResult数据对象中。

返 回 值:开关型。

参 数:strFilename,字符型,文件名;

lPosition,开关型,数据开始位置;

lLength,开关型,要读取数据的字节数,若小于或等于0,则读取整行; objResult,字符型,用于存放结果的数据对象。

实 例:!FileReadStr(\。

实例说明:从D盘下文件a.dat中的第100个字节开始,读取20个字节的数据,结果存

入变量abc中。

!FileSplit(strSourceFile,strTargetFile,FileSize)

函数意义:此函数用于把一个文件切开为几个文件。 返 回 值:开关型。

参 数:strSourceFile,字符型,准备切开的文件名;

strTargetFile,字符型,切开后的文件名;

FileSize,数值型,切开的文件的最大大小,单位是MB。

实 例:!FileSplit(\。

实例说明:此时函数将把文件d:\\1.txt切开为大小是1MB的文件,并存放在组态软件work

下,名称分别为spl000.spl,spl001.spl,spl002.spl等等。

!FileWriteFields(strFilename,lPosition,任意个数变量)

函数意义:向strFilename指定的文件中写入CSV(逗号分隔变量)记录。 返 回 值:开关型。

参 数:strFilename,字符型,文件名;

lPosition,开关型,数据开始位置;

= 0,表示在文件开头; <>0,表示在文件结尾;

实 例:!FileWriteFields (\。

实例说明:向D盘文件a.csv的文件结尾,写入4个数据,分别为变量:var1,var2,var3,var4

的值。

注 意:在文件开头写入数据时,将覆盖原有内容;在文件结尾写入数据时,将在原

有基础上添加,并不覆盖原来的内容。

!FileWriteStr(strFilename,lPosition,str,Rn)

函数意义:向指定文件strFilename中的IPosition位置开始,写入一个字符串,或一整

行。

返 回 值:开关型。

参 数:strFilename,字符型,文件名;

lPosition,开关型,数据开始位置;

= 0,表示在文件开头;

<>0,表示在文件结尾; str,字符型,要写入的字符串; Rn,开关型,是否换行;

0,表示不换行; 1,表示换行。

实 例:!FileWriteStr (\。

实例说明:在D盘下a.txt文件的开头(当a为0时)或结尾(当a为1时)写入一个字

符串\,如果input为1时,在此字符串后面添加回车换行,否则不添加。

注 意:在文件开头写入字符串时,将覆盖原有内容;在文件结尾写入字符串时,将

在原有基础上添加,并不覆盖原来的内容。

!FileReadStrLimit(str,int,int,int,str)

函数意义:把数据按照给定的长度格式化处理成固定的长度,并且读出文件。 返 回 值:数值型。返回值=0:打开文件成功,读回数据成功; =1:打开文件成功,没有读到数据(Eof); =-1:文件不存在; =-2:文件存在无法打开; =-3:组态错误;

=-4:未定义的文件打开错误。

参 数:str,字符串,需要操作的文件名称,包含绝对路径和文件名,如果不包含

路径,则表示在当前工程路径下;如果不包含扩展名,则扩展名为DAT;如果字符串为空,则表示路径为当前路径,文件名为当前工程名称+File,扩展名为Dat;

int,开关型,读数据的起始位置,该数据的单位是字节,从1开始,如果小于1,则在程序内部应该有防错处理;

int,开关型,读数据的长度,此长度的数据可能包含了若干填充符(Ascii的0);

int,数值型,格式化方式,如果读回的数据中包含填充符,写入MCGS变量中时是否保留这些填充符,0 不保留,1保留; str,字符型,存放读回来的数据的MCGS字符型变量。

实 例:!FileReadStrLimit(\读出格式化后的文件。

实例说明:将a.txt文件从第1字节开始,读取数据,按6字节长度格式化,读回的数据

中若包含填充符,写入MCGS变量中时保留这些填充符。

!FileWriteStrLimit(str,int,int,int,str,int,int)

函数意义:把数据按照给定的长度格式化处理成固定的长度,并且写出文件。 返回 值:数值型。返回值=0:打开文件成功,写入数据成功;

=1:打开文件成功,无法写入(硬盘空间不够等); =-1:文件不存在且无法创建; =-2:文件存在,无法打开; =-3:组态错误;

=-4:未定义的文件打开错误。

参 数:str,字符串,需要操作的文件名称,包含绝对路径和文件命,如果不包含路

径,则表示在当前工程路径下;如果不包含扩展名,则扩展名为DAT;如果字符串为空,则表示路径为当前路径,文件命为当前工程名称+File,扩展名为Dat;

int,开关型,写数据的起始位置,该数据的单位是字节;任意的正数,表示

从该字节的位置开始写数据,插入方式从该字节之后插入,覆盖方式就直接覆盖该部分数据;0,表示用文件头开始写记录;-1,表示从文件尾开始写记录,无论插入或覆盖方式,最后的结果都是插入数据,即不会修改原有的任何数据;

int,开关型,数据写入文件后的长度,此长度的数据可能包含了若干填充符

(Ascii的0);

int,格式化方式,如果被写的数据长度大于参数2指定的长度,则在剪裁该数据的左边还是右边,即斩头还是去尾,0左边(斩头),1右边(去尾);如果反之,被写的数据长度小于参数2指定的长度,则固定在在数据的右边(后边)添加填充符(Ascii的0);

str,字符型,存放被写数据的MCGS字符型变量;

int,数值型,写记录的方式,0插入,1覆盖;

int,数值型,本次写操作是否作为结束本条记录,0表示本条记录结束, 1表示本条记录未写完;

实 例:!FileWriteStrLimit(\ 写出格式化后的文件。

实例说明:将a.txt文件从第1字节开始,写数据,按6字节长度,右边(去尾)格式

化,被写数据的MCGS字符型变量存放在变量a中,记录方式为插入记录,本次操作结束记录。

时间运算函数

!TimeStr2I(strTime)

函数意义:将表示时间的字符串(YYYY/MM/DD HH:MM:SS)转换为时间值。 返 回 值:开关型,转换后的时间值。

参 数:strTime,字符型,以字符串型表示的时间(YYYY/MM/DD HH:MM:SS)。 实 例:!TimeStr2I(\。

实例说明:将表示时间的字符串“2001/1/1 3:15:28”转换为开关型的时间值。

!TimeI2Str(iTime,strFormat)

函数意义:将时间值转换为字符串表示的时间。 返 回 值:字符型,转换后的时间字符串。

参 数:iTime,开关型,时间值(注意,这里只能用 !TimeStr2I(strTime)转换出的时间

值,否则将不能正确转换。);

strFormat,字符型,转换后的时间字符串的格式。 实 例:!TimeI2Str(Time,\。

实例说明:将时间值转换为字符串型,其表示格式为:星期,月 日,年。

!TimeI2Str的格式化标准为: %a

星期的简写。如:Fri是Friday的简写表示星期五 %A

星期的全称。如:Sunday表示星期日 %b

月份的简写。如:Jan是January的简写表示一月 %B

月份的全称。如:June表示六月 %c

适合于本地习惯的时间日期表示。如:05/07/01 09:47:12,表示2001年5月7日9时47分12秒 %d

月份中日期的十进制表示。如:07表示7日 %H

24时制的小时表示。如:17表示下午5时 %I

12时制的小时表示。 %j

一年中天数的十进制表示。如:2001-06-07是一年中第158天 %m

月份的十进制表示。如:06表示6月 %M

分钟的十进制表示。如:28表示28分 %p

以AM/PM方式表示上下午;AM表示上午;PM表示下午 %S

秒钟的十进制表示。 %U

一年中周数的十进制表示,星期日为第一天。如:2001-06-07是第22周 %w

星期的十进制表示;0,表示星期日;1,表示星期一;依此类推。 %W

一年中周数的十进制表示,星期一为第一天。如:2001-06-07是第23周 %x

适合当地的日期表示。如:2001-06-07表示为:06/07/01 %X

适合当地的时间表示。如:9时47分12秒表示为:09:47:12 %y

不显示世纪的年的十进制表示。如:01表示2001年 %Y

显示世纪的年的十进制表示。如:2001表示2001年 %z或者%Z

时区名称的简写,如果时区不可知则没有字符。如:中国标准时间 %% 百分号表示

注:目前,在此版本中有些显示参数还没有实现其功能,具体的有%p %U %w %W %x %z %a %A %b %B %c %I %j。

!TimeGetYear(iTime)

函数意义:获取时间值iTime中的年份。 返 回 值:开关型,时间值iTime中的年份。 参 数:iTime,开关型,时间值。 实 例:!TimeGetYear(iTime)。 实例说明:获取时间值iTime中的年份。

!TimeGetMonth(iTime)

函数意义:获取时间值iTime中的月份。

返 回 值:开关型,时间值iTime中的月份(1~12)。

参 数:iTime,开关型,时间值。 实 例:!TimeGetMonth(iTime)。 实例说明:获取时间值iTime中的月份。

!TimeGetSecond(iTime)

函数意义:获取时间值iTime中的秒数。

返 回 值:开关型,时间值iTime中的秒数(0~59)。 参 数:iTime,开关型,时间值。 实 例:!TimeGetSecond(iTime)。 实例说明:获取时间值iTime中的秒数。

!TimeGetSpan(iTime1,iTime2)

函数意义:计算两个时间iTime1和iTime2之差。 返 回 值:开关型,两时间之差。 参 数:iTime1,开关型,时间值;

iTime2,开关型,时间值。

实 例:!TimeGetSpan(iTime1,iTime2)

实例说明:计算两个时间iTime1和iTime2之差。

!TimeGetDayOfWeek(iTime)

函数意义:获取时间值iTime中的星期。

返 回 值:开关型,时间值iTime中的秒数(1 为星期日, 2 表示星期一,??)。 参 数:iTime,开关型,时间值。 实 例:!TimeGetDayOfWeek(iTime)。 实例说明:获取时间值iTime中的星期。

!TimeGetHour(iTime)

函数意义:获取时间值iTime中的小时。

返 回 值:开关型,时间值iTime中的小时(0~23)。 参 数:iTime,开关型,时间值。 实 例:!TimeGetHour(iTime)。 实例说明:获取时间值iTime中的小时。

!TimeGetMinute(iTime)

函数意义:获取时间值iTime中的分钟。

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

Top