MCGS时间函数

MCGS时间函数
MCGS时间函数

!TimeGetSpan(iTime1,iTime2)

函数意义:计算两个时间iTime1和iTime2之差;

返回值:开关型,两时间之差;

参数:iTime1,开关型,时间值;

iTime2,开关型,时间值;

实例:!TimeGetSpan(iTime1,iTime2)

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

!TimeStr2I(strTime)

函数意义:将表示时间的字符串(YYYY/mm/DD HH:MM:SS)转换为时间值;

返回值:开关型,转换后的时间值;

参数:strTime,字符型,以字符串型表示的时间(必须是YYYY/mm/DD HH:MM:SS的格式);

实例:!TimeStr2I(“2001/1/1 3:15:28”)

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

!TimeI2Str(iTime,strFormat)

函数意义:将时间值转换为字符串表示的时间;

返回值:字符型,转换后的时间字符串;

参数:iTime,开关型,时间值;(注意,这里只能用!TimeStr2I(strTime)转换出的时间值,否则将不能正确转换。);

strFormat,字符型,转换后的时间字符串的格式;

实例:!TimeI2Str(Time,"%A, %B %d, %Y")

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

!TimeI2Str的格式化标准为:

星期的简写。如: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表示下午

秒钟的十进制表示。

%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

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

%%

百分号表示

MCGS触摸屏编程实例精选

MCGS触摸屏编程实例精选 1.MCGS表格中,两数据连接到两个开关量,要把采集到的“0”和“1”的状态,显示为“关”和“开” 在表格里输入“开|关”,然后连接开关型变量Data1,按钮是让开关量Data1取反。

这样就行了,运行时Data1默认为0显示关,按下按钮后Data1为1显示开,如此反复

2.mcgs里怎么画渐变色 渐变色只有通用版和网络版有,嵌入版没有 方法就是:填充颜色——填充效果,然后根据你的需要设置就行了。

3.如何在mcgs做脚本i0.0=1 让Q输出 当PLC的I0.0有信号,让Q0.0输出,在PLC中做我会,不知道在MCGS中怎么实现 在循环脚本中,循环时间为10ms,条件表达式为1,脚本程序为 IF I0.0 = 1 THEN Q0.0 = 1 ELSE Q0.0 = 0 ENDIF 4.MCGS组态如何实现这样的功能?点击某一部分,弹出登录对话框 这个画面是在有管理员帐户登录的情况下才可以设置的,我现在想实现当有人在没有登录的情况下点击了这个地方,就弹出提示:请先登录。 1条回答 可以先用函数!CheckUserGroup来判断当前登录的用户是不是你需要的用户组,返回只为0表示已经登录了你需要的用户组了,直接进行下一步,如果返回值不为0,表示当前登录的不是你需要的用户组或是没有任何登录,那么用子窗口或者可见度啥的都行,显示出来就行了。 追问

我是想在用户点击了上面图片中的部分时才弹出登录提示,怎么实现呢? 回答 你把判断的语句写到图片的事件里就行了 追问 求在具体一点,不知道怎么写。 回答 点控件,右键——事件——Click——事件连接脚本

MCGS脚本程序要点

MCGS脚本程序 本专题将从以下几个方面介绍MCGS脚本程序 : 脚本程序简介 脚本语言编辑环境 脚本程序语言要素 脚本程序基本语句 脚本程序的查错和运行 脚本程序简介 对于大多数简单的应用系统,MCGS的简单组态就可完成。只有比较复杂 的系统,才需要使用脚本程序,但正确地编写脚本程序,可简化组态过程,大大 提高工作效率,优化控制过程。 用户脚本程序是由用户编制的、用来完成某种特定的流程控制和操作处理的 程序。它被封装在一个功能构件里(称为脚本程序功能构件),在后台由独立的 线程来运行和处理,能够避免由于单个脚本程序的错误而导致整个系统的瘫痪。 在MCGS中,脚本语言的编程语法非常类似于普通的 Basic 语言,但在概念和使用上更简单直观,力求做到使大多数普通用户都能正确、快速地掌握和使用。 脚本程序在MCGS组态软件中有四种应用场合,分别为: 在“运行策略”中的“脚本程序”构件中使用; 在“菜单”属性设置中的“脚本程序”中使用,作为菜单的一个辅助功 能运行; 在“用户窗口”属性设置中的“启动脚本” 、“循环脚本”、“退出脚本” 中使用; 更常见的用法是应用在动画界面的事件中,如在窗口中的“标准按钮” 属性设置中的“脚本程序”中使用。 MCGS引入的事件驱动机制,与 VB或 VC中的事件驱动机制类似,比如: 对用户窗口,有装载,卸载事件;对窗口中的控件,有鼠标单击事件,键盘按键 事件等等。这些事件发生时,就会触发一个脚本程序,执行脚本程序中的操作。 脚本语言编辑环境 脚本程序编辑环境是用户书写脚本语句的地方。脚本程序编辑环境主要由脚 本程序编辑框、编辑功能按钮、 MCGS操作对象列表和函数列表、脚本语句和表 达式 4 个部分构成,分别说明如下:

MCGS系统内部函数参考手册.docx

MCGS系统内部函数 MCGS内部为用户提供了一些常用的数学函数和对MCGS内部对象操作的函数。组态时,可在表达式中或用户脚本程序中直接使用这些函数。为了与其它名称相区别,系统内部函数的名称一律以“!”符号开头。下面分别介绍各个函数的用途和使用方法。 运行环境操作函数 !CallBackSvr(DatName) 函数意义:调用后台对象 返回值:数值型,后台对象的值 参数:DatName,对象名,数值型 实例:X=! CallBackSvr (X),调用后台数值型对象X 注意:本函数在新版本MCGS系统内部,己经无效。为了保留与旧版本的兼容性, 暂时保留。 !ChangeLoopStgy(StgyName, n) 函数意义:改变循坏策略的循环时间 返回值:数值型。返回值二0:调用正常;〈>0:调用不正常。 参数:StgyName,策略名;n,数值型,以毫秒数表示循环策略的循环时间实 例:!ChangeLoopStgy(报警策略,5000),将报警策略的循环时间改为为5 秒 !CioseAllWindow(WndName) 函数意义:关闭所有窗口,如果在字符串"WndName"中指定了一个窗口,则打开这个窗口,关闭其他窗口。如果” WndName”为空串,则关闭所有窗口。 返回值:数值型。返回值:二0:调用正常;〈>0:调用不正常。 参数:WndName,用户窗口名,字符型。 实例:!CloscAllWindow( “工况图”),关闭除了用户窗口“工况图”以外的其他窗I」,若“工况图”窗I」没有打开,则在关闭其他窗I」的同时打开该窗 I」!CloseAllWindow( “”),关闭所有窗口。 !EnableStgy(StgyName, n) 函数意义:打开或关闭某个策略,如报警策略或循环策略等。返回值:数值型。返冋值二0:调用正常;<>0:调用不正常。 参数:StgyName,策略名; n,数值型,为1时表示打开此策略,为0时表示关闭此策略。实例:!EnableStgy(报

MCGS时间函数

!TimeGetSpan(iTime1,iTime2) 函数意义:计算两个时间iTime1和iTime2之差; 返回值:开关型,两时间之差; 参数:iTime1,开关型,时间值; iTime2,开关型,时间值; 实例:!TimeGetSpan(iTime1,iTime2) 实例说明:计算两个时间iTime1和iTime2之差。 !TimeStr2I(strTime) 函数意义:将表示时间的字符串(YYYY/mm/DD HH:MM:SS)转换为时间值; 返回值:开关型,转换后的时间值; 参数:strTime,字符型,以字符串型表示的时间(必须是YYYY/mm/DD HH:MM:SS的格式); 实例:!TimeStr2I(“2001/1/1 3:15:28”) 实例说明:将表示时间的字符串“2001/1/1 3:15:28”转换为开关型的时间值。 !TimeI2Str(iTime,strFormat) 函数意义:将时间值转换为字符串表示的时间; 返回值:字符型,转换后的时间字符串; 参数:iTime,开关型,时间值;(注意,这里只能用!TimeStr2I(strTime)转换出的时间值,否则将不能正确转换。); strFormat,字符型,转换后的时间字符串的格式; 实例:!TimeI2Str(Time,"%A, %B %d, %Y") 实例说明:将时间值转换为字符串型,其表示格式为:星期,月日,年。 !TimeI2Str的格式化标准为:

星期的简写。如: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表示下午

昆仑通态脚本

相关内容回首页数据对象操作函数 !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:调用不正常。 参数:无。 !FreshSaveData() 函数意义:实现报警组对象和事件组对象(存盘周期为0)的强制刷盘功能。调用后即刻将报警组对象和事件组对象在内存缓冲区中的存盘数据强制写入磁盘。 返回值:数值型,返回值=0:调用正常,<>0:调用不正常。 参数:无。 !CopySaveDat() 函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。 !DataGetInt (变量名,返回值) 函数意义:通过变量名读开关型变量的值。 返回值:开关型, 返回0:执行成功; 返回1:类型不匹配; 返回3:变量不存在。 参数:变量名,字符型,开关型变量的名称。 返回值,开关型,保存返回的值。 实例: Ret=!DataGetInt(变量名,Int)。

MCGS组态控制系统演示工程操作步骤..

水箱液位控制系统演示工程操作步骤 一、创建新工程 1、双击桌面中的图标,进入MCGS组态环境工作台,如图1所示。 2、点击图1中的“新建窗口”,出现“窗口0”图标。 3、点击“窗口0”鼠标右键,选择“属性”,按照图2进行设置,则窗口名称变为“水箱液 位控制系统”,如图2右图所示。。 图2

二、画面设计 1、在“水箱液位控制”窗口点击菜单中的【工具箱】图标,单击插入元件按钮, 打开【对象元件管理】中的【储藏罐】,选择罐17,点击确定。如图3所示,则所选中的罐出现在桌面的左上角,用鼠标改变其大小及位置。 图3 2、按照同样的方法,【储藏罐】选中2个罐(罐17,罐53),【阀】选中2个阀(阀58,阀 44),1个泵(泵40)。按图4放置。 图4 3、选中工具箱中的【流动快】按钮,单击鼠标并移动光标放置流动快。如图5所示设置

流动快。 图5 4、选中流动块,点击鼠标右键【属性】,按图6设置属性。 图6 5、添加文字,选中工具箱中的【标签】按钮,鼠标的光标变为“十字”形,在窗口任 意位置拖曳鼠标,拉出一个一定大小的矩形。建立矩形框后,鼠标在其内闪烁,可直接输入“水箱液位控制系统演示工程”文字。选中文字,鼠标右键【属性】,按图7设置。

图7 6、点击菜单中的,可变更字体大小。按图5添加其他文字。 三、MCGS数据对象设置 2、单击工作台【实时数据库】按钮,进入【实时数据库】窗口。单击窗口右边的【新增对 象】按钮,在窗口的数据对象列表中,就会增加新的数据对象。双击选中对象,按图8设置数据对象属性。 图8 3、按照图9设置其他数据对象属性。

图9 4、双击【液位组】,存盘属性按图10设置,组对象成员按图11设置。 图10

非常实用的mcgs触摸屏编程实例精选上

MCGS实例解答 1.MCGS表格中,两数据连接到两个开关量,要把采集到的“0”和“1”的状态,显示为“关”和“开” 在表格里输入“开|关”,然后连接开关型变量Data1,按钮是让开关量Data1取反。

这样就行了,运行时Data1默认为0显示关,按下按钮后Data1为1显示开,如此反复

2.mcgs里怎么画渐变色 渐变色只有通用版和网络版有,嵌入版没有 方法就是:填充颜色——填充效果,然后根据你的需要设置就行了。

3.如何在mcgs做脚本i0.0=1 让Q输出 当PLC的I0.0有信号,让Q0.0输出,在PLC中做我会,不知道在MCGS中怎么实现 在循环脚本中,循环时间为10ms,条件表达式为1,脚本程序为 IF I0.0 = 1 THEN Q0.0 = 1 ELSE Q0.0 = 0 ENDIF 4.MCGS组态如何实现这样的功能?点击某一部分,弹出登录对话框 这个画面是在有管理员帐户登录的情况下才可以设置的,我现在想实现当有人在没有登录的情况下点击了这个地方,就弹出提示:请先登录。 1条回答 可以先用函数!CheckUserGroup来判断当前登录的用户是不是你需要的用户组,返回只为0表示已经登录了你需要的用户组了,直接进行下一步,如果返回值不为0,表示当前登录的不是你需要的用户组或是没有任何登录,那么用子窗口或者可见度啥的都行,显示出来就行了。 追问

我是想在用户点击了上面图片中的部分时才弹出登录提示,怎么实现呢? 回答 你把判断的语句写到图片的事件里就行了 追问 求在具体一点,不知道怎么写。 回答 点控件,右键——事件——Click——事件连接脚本

MCGS脚本程序

MCGS 脚本程序 本专题将从以下几个方面介绍MCG脚本程序:脚本程序简介 脚本语言编辑环境 脚本程序语言要素脚本程序基本语句脚本程序的查错和运行 脚本程序简介 对于大多数简单的应用系统,MCG的简单组态就可完成。只有比较复杂的系统,才需要使用脚本程序,但正确地编写脚本程序,可简化组态过程,大大提高工作效率,优化控制过程。 用户脚本程序是由用户编制的、用来完成某种特定的流程控制和操作处理的程序。它被封装在一个功能构件里(称为脚本程序功能构件),在后台由独立的线程来运行和处理,能够避免由于单个脚本程序的错误而导致整个系统的瘫痪。 在MCG中,脚本语言的编程语法非常类似于普通的Basic语言,但在概念和使用上更简单直观,力求做到使大多数普通用户都能正确、快速地掌握和使用。 脚本程序在MCG组态软件中有四种应用场合,分别为:在“运行策略”中的“脚本程序”构件中使用;在“菜单”属性设置中的“脚本程序”中使用,作为菜单的 一个辅助功能运行; 在“用户窗口”属性设置中的“启动脚本” 、“循环脚本”、“退出脚本” 中 使用; 更常见的用法是应用在动画界面的事件中,如在窗口中的“标准按钮” 属性设置 中的“脚本程序”中使用。 MCGSI入的事件驱动机制,与VB或VC中的事件驱动机制类似,比如:对用户窗口,有装载,卸载事件;对窗口中的控件,有鼠标单击事件,键盘按键事件等等。这些事件发生时,就会触发一个脚本程序,执行脚本程序中的操作。 脚本语言编辑环境脚本程序编辑环境是用户书写脚本语句的地方。脚本程序编辑环境主要由脚本程序编辑框、编辑功能按钮、MCG操作对象列表和函数列表、脚本语句和表达式4 个部分构成,分别说明如下:

昆仑通态脚本开发函数

!GetCurrentChannelNum() 函数意义:得到当前触发单通道写的通道号; 返回值:整型。-1 失败,> 0 通道号; 参数:无; 实例:!GetCurrentChannelNum()。 !SetIntChannelValueByName(DataStr,n) 函数意义:根据通道的名称对通道进行设置,假设该通道类型为整型(开关型)变量; 返回值:整型。-1 失败,0 成功。 参数:DataStr,字符型,需要设置的通道名称的字符串。 n,整型,需要设定的整型值 实例:! SetIntChannelValueByName ("发电机启动",1)。 实例说明:将通道“发电机启动”的值设为1; !SetSingleChannelValueByName(DataStr,x) 函数意义:根据通道的名称对通道进行设置,假设该通道类型为单精度浮点型(数值型)变量; 返回值:整型。-1 失败,0 成功。 参数:DataStr,字符型,需要设置的通道名称的字符串。 n,单精度浮点型,需要设定的值 实例:! SetSingleChannelValueByName ("温度",45.5)。 实例说明:将通道“温度”的值设为45.5; !SetIntChannelValueByNum(DataNum,n) 函数意义:根据通道的编号对通道进行设置,假设该通道类型为整型(开关型)变量; 返回值:整型。-1 失败,0 成功。 参数:DataNum,整型,需要设置的通道编号,从1开始。 n,整型,需要设定的整型值 实例:! SetIntChannelValueByNum(3,1)。 实例说明:将通道3的值设为1; !SetSingleChannelValueByNum(DataNum,x) 函数意义:根据通道的编号对通道进行设置,假设通道为单精度浮点型(数值型)变量;返回值:整型。-1 失败,0 成功。 参数:DataNum,整型,需要设置的通道编号,从1开始。 x,单精度数值型,需要设定的数值 实例:!SetSingleDataV alueByNum(2,45.5)。 实例说明:将通道2的值设为45.5。 !GetIntChannelValueByName(DataStr,ByRef n) 函数意义:根据通道的名字,将该通道的值读出,假设该通道为整型(开关型)变量; 返回值:整型。-1 失败,0 成功。 参数:DataStr,字符型,需要读取的通道名的字符串。

mcgs定时器操作函数设置

定时器号:系统定时器的序号1—127,MCGS系统内嵌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(定时器号,转换类型) 函数意义:以时间类字符串的形式返回当前定时器的值 返回值:字符型变量,将定时器的值以字符型的方式输出(时间格式) 参数:定时器号 转换类型值:开关型 = 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后重新循环运行 实例:!TimerSetLimit(1,60,1),设置1号定时器的上限为60,运行到60后停止。 !TimerSetOutput(定时器号,数值型变量) 函数意义:设置定时器的值输出连接的数值型变量 返回值:数值型。返回值=0:调用成功;<>0:调用失败。 参数:定时器号;数值型变量,定时器的值输出连接的数值型变量 实例:!TimerSetOutput(1,Data0),将1号定时器的数据连接到Data0 !TimerWaitFor(定时器号,数值)

MCGS 文件操作函数

MCGS 文件操作函数 2009-08-08 14:58:24| 分类:工业控制(MCGS,K |字号大中小订阅 注意:文件操作函数中所涉及到文件的路径均为绝对路径 !FileAppend(strTarget ,strSource) 函数意义:将文件strSource中的内容添加到文件strTarget后面,使两文件合并为一个文件。 返回值:开关型。 参数:strTarget,字符型,目标文件,需要写绝对路径; strSource,字符型,源文件,需要写绝对路径。 实例:!FileAppend(“d:\a.txt”,”d:\b.txt”) 实例说明:将D盘下文件b.txt合并到文件a.txt的后面。若a.txt不存在,则会自动新建一个文件。 !FileCopy(strSource ,strTarget) 函数意义:将源文件strSource复制到目标文件strTarget,若目标文件已存在,则将目标文件覆盖。 返回值:开关型;

返回0,操作不成功; 返回非0值,操作成功。 参数:strSource,字符型,源文件; strTarget,字符型,目标文件。 实例:!FileCopy(“d:\a.txt”,”d:\b.txt”) 实例说明:将D盘下文件a.txt复制到b.txt。 !FileDelete(strFilename) 函数意义:将strFilename指定的文件删除。 返回值:开关型; 返回0,操作不成功; 返回非0值,操作成功。 参数:str1,字符型,将被删除的文件。 实例:!FileDelete(“d:\a.txt”) 实例说明:删除将D盘下文件a.txt。 !FileFindFirst(strFilename,objName,objSize,objAttrib)

mcgs交通灯脚本程序

IF 模拟运行=1 THEN IF 启动=1 THEN !TimerReset(1,0) 南灯0=1 西灯2=1 西通=1 !TimerWaitFor(1,20) 西灯2=0 !TimerWaitFor(1,21) 西灯2=1 !TimerWaitFor(1,22) 西灯2=0 !TimerWaitFor(1,23) 西灯2=1 !TimerWaitFor(1,24) 西灯2=0 !TimerWaitFor(1,25) 西灯1=1 !TimerWaitFor(1,27) 西灯1=0 西通=0 西灯0=1 南灯0=0 南灯2=1 南通=1 !TimerWaitFor(1,47) 南灯2=0 !TimerWaitFor(1,48) 南灯2=1 !TimerWaitFor(1,49) 南灯2=0 !TimerWaitFor(1,50) 南灯2=1 !TimerWaitFor(1,51) 南灯2=0 南灯1=1 !TimerWaitFor(1,53) 南灯1=0 南通=0 南灯0=1 西灯0=0 西灯2=0 !TimerReset(1,0) endif

ELSE 启动=SD 西灯2=东G 西灯1=东Y 西灯0=东R 南灯2=南G 南灯1=南Y 南灯0=南R ENDIF if 启动=1 then !TimerRun(1) if 南通=1 then 南车=南车+2 北车=北车+2 西人=西人+1 东人=东人+1 endif if 西通=1 then 东车=东车+2 西车=西车+2 北人=北人+1 南人=南人+1 endif if 西通=1 then 南车=0 北车=0 西人=0 东人=0 endif if 南通=1 then 东车=0 西车=0 北人=0 南人=0 endif if 北人>337 then 北人=0 if 西人>262 then 西人=0 if 南人>340 then 南人=0 if 东人>256 then 东人=0 if 西车>922 then 西车=-400 if 东车>892 then 东车=-441 if 北车>482 then 北车=-220 if 南车>529 then 南车=-181 else

MCGS高级教程

第一章MCGS的可扩充性 1.1 概述 MCGS组态软件是一套功能丰富、简单易用的组态软件,大部分工程师都可以很容易的使用这套组态软件来完成一个完整的工程项目。但是,当用户熟练的掌握了这套组态软件以后,用户必然会寻求在这套组态软件上进一步开发的能力。以实现有自己风格的界面、自己设计的控制算法和与自己硬件相匹配的驱动程序。其他一些长期使用Visual Basic、C++、Delphi的高级工程开发人员,为了充分利用自己的编程特长和已有的程序积累,也希望能够把自己编写的程序装配到MCGS组态软件中。 大部分面向工程应用的工程人员,虽然没有时间和精力开发自己的专有模块,但是,却希望能够从MCGS开发组或第三方的专业、业余开发者那里获得为自己定制的特殊模块,并且能够很方便的装配到现有的MCGS组态软件上。而对硬件开发商和一些高级的开发人员,都希望能够开发出自己的设备驱动模块和专业化、行业化的模块以充分利用MCGS软件的组态功能,当然,对于这些专业化的高品质模块,位于工程一线的工程人员也是具有非同一般的兴趣的。 为了满足用户的这些要求,MCGS提供一套可扩充的接口规范和配套的高级开发工具包。使用接口规范和工具包开发出来的扩充构件,具有很优越的特点: z安全保密。扩充构件是编译成二进制代码的,可以很好的保护您的工作。非法用户不可能通过反编译你的扩充构件来获得你独有的设备驱动构件、特殊的运算构件和 特殊的窗口界面。你更可以使用扩充构件来进行自己的加密,以防止你制作的工程 被任意拷贝,保护你自己的利益。 z简单快速。MCGS组态软件高级开发包中提供了常用的数据后处理构件源代码。初级用户可以直接使用这些数据后处理构件,但高级用户则可以修改这些构件的源代 码,以满足自己特殊的要求。众所周知,工控工程的数据后处理部分具有各自不同 的要求,因此一般的组态软件,都要求用户自己使用例如Excel、Access等软件来完 成自己的特殊的后处理。但是MCGS组态软件除了可以用类似的方法处理外,还提 供了另外一种不同的处理方法。那就是高级用户可以修改MCGS组态软件高级开发 工具包中所提供的后处理构件源代码,然后生成自己的扩充构件,装配到MCGS组 态软件上,就可以组成自己独有的后处理系统。 z性能优异。使用这种方法开发出来的MCGS组态软件的扩充构件具有很高的速度和性能。据微软公司测试,使用Visual C++软件开发出来的程序,只比使用Visual Basic 开发出来的速度高百分之十,有时甚至还低于Visual Basic。而使用Visual Basic开 发的方便性和易用性又是Visual C++所远远不能比拟的。在编写MCGS组态软件的 扩充构件时,Visual Basic确实是一种最佳选择。 z任务明确。MCGS的这种扩充构件具有清晰的结构,你完全可以向MCGS组态软件

脚本编写要点 mcgs

一、脚本的两个要点 1、脚本程序:数据的逻辑运算,与PLC程序、界面的条件相对应。 2、执行条件:决定执行的时机。 二、脚本编辑器 脚本编辑器包含有执行条件选择界面和脚本程序编辑界面。 脚本编辑界面有三种: 1、控件的事件选项: 执行条件有:单击鼠标、左双击鼠标、右双击鼠标、鼠标按下、鼠标移动等 2、策略窗口: 执行条件有:启动时、退出时、循环执行等 3、按钮自带 执行条件有:按下、抬起 三、脚本程序基本语法 脚本程序的功能是对实时数据库里的数据逻辑运算;即根据输入数据的变化改变输出数据,使之符合系统要求。 在系统设计时,要学会巧设中间数据。 基本的语句有: 1、数据运算 执行:执行时,直接执行数据运算 2、if 条件 then 数据运算 执行:条件满足(逻辑为1),执行后面的数据运算(一条运算)

3、if 条件 then 数据运算1 endif 执行:条件满足(逻辑1),执行后面的数据运算(可多条运算) 4、if 条件 then 数据运算 1 else 数据运算2 endif 执行:条件满足(逻辑1),执行数据运算1,条件不满足(逻辑0)执行数据运算2.多条件的逻辑关系可用条件连接语句: 1、and :与 条件1 and 条件2 :要条件1 和条件2 都为1 ,条件1 and 条件2 才为1, 否则为0 2、or:或 条件2 or 条件2 :条件1、条件2只要有1个1 ,条件1 or 条件2 为1 . 四、脚本编写注意事项: 1、注意脚本程序执行后的数据值是否与PLC程序的要求值相符。 2、要注意脚本程序的执行时间是否恰当。 3、对于没有动作的控件要用用户策略、中间变量完成脚本执行。

非常实用的mcgs触摸屏编程实例下(10例)-

13.组态控制技术mcgs 下图脚本程序如何编 IF 实际总水量< 设定总水量THEN 下罐进水阀=1 下罐排水阀=0 ELSE IF 实际总水量> 设定总水量THEN 下罐进水阀=0 下罐排水阀=1 ELSE IF 实际总水量= 设定总水量THEN IF 下水位< 下水位设定量THEN

循环泵=0 上罐进水阀=0 上罐排水阀=1 ELSE IF 下水位> 下水位设定量THEN 上罐排水阀=0 上罐进水阀=1 循环泵=1 ENDIF ENDIF ENDIF ENDIF ENDIF 当然如果你的下水位是由开关量来确定的话,后面那一部分也可以改成: IF 实际总水量= 设定总水量THEN IF 下水位低=1 THEN 循环泵=0 上罐进水阀=0 上罐排水阀=1 ELSE IF 下水位高=1 THEN 上罐排水阀=0 上罐进水阀=1 循环泵=1 上面只是大体的一个思路,里面还是有很多需要补充的地方,比如给上水罐注水时,是否需要先判断进水阀是否打开再启动循环泵,给下水罐注水时是否需要判断先关停循环泵再关停进水阀,然后开启上罐排水阀,如果是这种情况的话,建议你可以使用运行策略来完成脚本编写。 14.MCGS 组态软件脚本程序有没有延时指令 !Sleep(mTime) 函数意义:在脚本程序中等待mTime毫秒,然后执行下条语句 实例:!Sleep(10),延时10毫秒 15.怎么使MCGS组态动画实现左右移动?要用脚本程序写

先向右移,再原路返回 很简单的啊,就是双击要实现动画的东西,钩选水平移动,然后在水平移动上选择对应的字地址,将此字地址与要移动的位置对应好,然后在脚本里面对这个字地址编程就可以了。 只要对我之前说的那个对应的字地址编脚本可以了 脚本可以这么编 IF 对应位=0 THEN 中间变量=0 IF 对应位=100 THEN 中间变量= 1 IF 中间变量=0 THEN 对应位= 对应位+ 5 IF 中间变量=1 THEN 对应位= 对应位- 5 16.mcgs怎么实现按钮按下去不弹起 首先放上两个元件,但不是按钮 然后分别设置属性,上面的是“按钮动作——置一——按钮”“可见度——按钮——不可见”如下图

mcgs函数使用

int printf(const char *format,[argument]); format 参数输出的格式,定义格式为:%[flags][width][.perc][F|N|h|l]type 规定数据输出方式,具体如下: 1.type 含义如下: d 有符号10进制整数 i 有符号10进制整数 o 无符号8进制整数 u 无符号10进制整数 x 无符号的16进制数字,并以小写abcdef表示 X 无符号的16进制数字,并以大写ABCDEF表示 F/f 浮点数 E/e 用科学表示格式的浮点数 g 使用%f和%e表示中的总的位数表示最短的来表示浮点数G 同g格式,但表示为指数 c 单个字符 s 字符串 S wchar_t字符(宽字符)类型字符串 % 显示百分号本身 p 显示一个指针,near指针表示为:XXXX far 指针表示为:XXXX:YYYY n 相连参量应是一个指针,其中存放已写字符的个数 2.flags 规定输出格式,取值和含义如下: 无右对齐,左边填充0和空格 - 左对齐,右边填充空格 + 在数字前增加符号+ 或- 0 将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用-) 空格输出值为正时冠以空格,为负时冠以负号 # 当type=c,s,d,i,u时没有影响 type=o,x,X时,分别在数值前增加'0',"0x","0X" type=e,E,f时,总是使用小数点 type=g,G时,除了数值为0外总是显示小数点 3.width 用于控制显示数值的宽度,取值和含义如下 n(n=1,2,3...) 宽度至少为n位,不够以空格填充 0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充 * 格式列表中,下一个参数还是width 4.prec 用于控制小数点后面的位数,取值和含义如下: 无按缺省精度显示 0 当type=d,i,o,u,x时,没有影响 type=e,E,f时,不显示小数点 n(n=1,2,3...) 当type=e,E,f时表示的最大小数位数 type=其他,表示显示的最大宽度 .* 格式列表中,下一个参数还是width 5.F|N|h|l 表示指针是否是远指针或整数是否是长整数 F 远指针

mcgs常见问题集锦

MCGS问题集锦转自MCGS ye_w,2007-03-17 14:21:14 1:如何打印历史数据:用运行策略------历史数据浏览构件-------打印。 2:如何打印历史曲线:用打印用户窗口。 3:McgsE.dat有什么作用? McgsE.dat有什么作用 McgsE.dat存在于\harddisk\mcgsbin目录之下 A.组态工程 B.报警数据(MCGS_ALARM) 如果下载新工程,旧的McgsE.dat被删除,然后生成新的文件 4:McgsE.ini有何作用 McgsE.ini存在于\harddisk\mcgsbin目录之下 存储系统存盘属性信息,包括:存盘路径,自动刷新周期,预留空间大小, 存盘文件大小等 他的信息会出现在启动属性中(即开机时点击触摸屏后出现的窗口) 5:报表数据存盘停机处理 通过测试该问题是由于用户不知道如何使用而产生的问题,现在将具体的使用方法进行详细的介绍: 1).打开报表数据存盘属性设置窗口。 2).在基本属性页里面点中“使用停机存盘文件”既在左面的框中打勾即可。 3).然后将“记录周期”中输入10秒,表示每10秒中保存一次当前的数据值,也可以其他的值,但是不能为0秒。 4).在通道设置页中,对于列“处理方法”中选中“末值”。 5).在输出数据库页中的“数据库类型”可以选中“Access数据库”或“ODBC数据库”,如果选中的类型为“Access数据库它时,则“数据库名称”可以这样写:“d:\mcgs\work\ 停机处理.mdb”; 如果选中的类型为“ODBC数据库”则可以这样写:“driver=sql server;server=clx;database=张丹;uid=sa;pwd=clx”;列“数据库表名”可以自己取一个名称;列“处理时间”可以自己选;列“处理单位”如果需要处理1天内的数据则选择“天”则一天一条记录(如果是1小时则1小时保存一条记录),如果需要处理几天以内的数据则选“月”,依次类推。列“刷新间隔”可以自己选,“保留数据可以选择为360天的数据,这样可以保证一年。 6.在窗口里面的启动脚本中增加“!SetDevice(设备0, 6,"loaddata")”或者在启动策略里面增加“!SetDevice(设备0, 6,"loaddata")”。 7.报警策略使用中的常见问题 使用报警策略,通常使用工具箱中的报警显示、报警策略和清空报警记录和报警变量设置配合完成基本的报警功能,需要注意的是,清空报警记录的函数!DelAllAlmDat支持的变量类型不包括组对象,注意在此函数中使用组对象。

MCGS组态脚本函数

MCGS组态系统内部函数 目录 第一章数学函数 (6) !Atn(x) (6) !Arcsin(x) (6) !Arccos(x) (6) !Cos(x) (6) !Sin(x) (6) !Tan(x) (7) !Exp(x) (7) !Log(x) (7) !Sqr(x) (7) !Abs(x) (8) !Sgn(x) (8) !BitAnd(x,y) (8) !BitOr(x,y) (8) !BitXor(x,y) (8) !BitClear(x,y) (9) !BitSet(x,y) (9) !BitNot(x) (9) !BitTest(x,y) (9) !BitLShift(x,y) (9) !BitRShift(x) (10) !Rand(x,y) (10) 第二章数据对象操作函数 (10) !AnswerAlm(DatName) (10) !ChangeDataSave(Datname,n) (10) !ChangeSaveDat(DatName,Num1,Num2) (11) !CopySaveDat(Tdb,Sdb,TabName,TimeField,Flag ) (11) !DelAllSaveDat(DatName) (11) !DelAllAlmDat(DatName) (12) !DelAlmDat(DatName,Num) (12) !DelSaveDat(DatName,Num) (12) !EnableAlm(name,n) (13) !EnableDataSave(name,n) (13) !GetAlmValue(DatName,Value,Flag) (13) !GetEventDT(EvName) (14) !GetEventP(EvName) (14) !GetEventT(EvName) (14) !MoveAlmDat(DatName,FileName,Num1,Num2,Flag) (14)

最新MCGS脚本程序资料

MCGS脚本程序本专题将从以下几个方面介绍MCGS脚本程序: ●脚本程序简介 ●脚本语言编辑环境 ●脚本程序语言要素 ●脚本程序基本语句 ●脚本程序的查错和运行 脚本程序简介 对于大多数简单的应用系统,MCGS的简单组态就可完成。只有比较复杂的系统,才需要使用脚本程序,但正确地编写脚本程序,可简化组态过程,大大提高工作效率,优化控制过程。 用户脚本程序是由用户编制的、用来完成某种特定的流程控制和操作处理的程序。它被封装在一个功能构件里(称为脚本程序功能构件),在后台由独立的线程来运行和处理,能够避免由于单个脚本程序的错误而导致整个系统的瘫痪。 在MCGS中,脚本语言的编程语法非常类似于普通的Basic语言,但在概念和使用上更简单直观,力求做到使大多数普通用户都能正确、快速地掌握和使用。 脚本程序在MCGS组态软件中有四种应用场合,分别为: ●在“运行策略”中的“脚本程序”构件中使用; ●在“菜单”属性设置中的“脚本程序”中使用,作为菜单的一个辅助功 能运行; ●在“用户窗口”属性设置中的“启动脚本”、“循环脚本”、“退出脚本” 中使用; ●更常见的用法是应用在动画界面的事件中,如在窗口中的“标准按钮” 属性设置中的“脚本程序”中使用。 MCGS引入的事件驱动机制,与VB或VC中的事件驱动机制类似,比如:对用户窗口,有装载,卸载事件;对窗口中的控件,有鼠标单击事件,键盘按键事件等等。这些事件发生时,就会触发一个脚本程序,执行脚本程序中的操作。 脚本语言编辑环境 脚本程序编辑环境是用户书写脚本语句的地方。脚本程序编辑环境主要由脚本程序编辑框、编辑功能按钮、MCGS操作对象列表和函数列表、脚本语句和表

MCGS触摸屏高级教程

MCGS培训教程(高级部分) 经过初级培训,您已经对MCGS组态软件的框架结构有了大致的了解,在初级培训教材的指引下,您一定能组态出一些简单的工程项目,但如果想应用自如还有一定困难。在高级培训教材帮助下,您一定会如虎添翼,组态出令人满意的工程。 培训目的经过培训,您可以熟练应用MCGS组态软件中的各项功能; 能根据工艺现场要求熟练制作动画流程; 能处理相对复杂的曲线、报表、数据后处理等需求; 能熟练使用MCGS脚本程序进行复杂的工业流程控制。 培训内容动画制作,流程控制策略,设备组态,结合存盘数据提取做复杂的历史报表,配方构件应用及MCGS使用技巧介绍。 参考手册《MCGS用户指南》《MCGS参考手册》 MCGS多媒体教程MCGS工控组态软件联机帮助 E-mail:support@https://www.360docs.net/doc/121951052.html, 网址:https://www.360docs.net/doc/121951052.html, 目录 简介 目录 第一讲构造实时数据库 一、MCGS实时数据库的概述 二、数据对象的类型 1、开关型数据对象 2、数值型数据对象 3、字符型数据对象 4、事件型数据对象 5、数据组对象 三、数据对象的定义 四数据对象的作用域

第二讲动画制作 一、封面制作 二、动画效果 第三讲设备窗口组态 一、概述 三、设备在线调试 四、数据前处理 第四讲脚本程序 一、脚本程序语言要素 1、数据类型 2、变量及常量 3、MCGS对象 4、表达式 5、运算符 6、运算符优先级 二、脚本程序基本语句 1、赋值语句 2、条件语句 3、退出语句 4、注释语句 三、脚本程序应用场合及样例 1、脚本程序在“窗口”中的应用 2、脚本程序在“标准按钮”中的应用 3、脚本程序在“菜单”中的应用 第五讲MCGS数据后处理及报表

相关文档
最新文档