昆仑通态脚本

合集下载

昆仑通态触摸屏实现只选择配方不能更改配方的方法

昆仑通态触摸屏实现只选择配方不能更改配方的方法

昆仑通态触摸屏实现只选择配方不能更改配方的方法
哈尔滨研奥科技有限公司
唐雪飞
2020/06/14
在实际触摸屏应用项目中,涉及配方的情况下,用户从管理角度往往希望操作员只能选择配方,不能更改配方及看到配方数据。

因昆仑通态触摸屏自带的配方选择函数:
!RecipeLoadByDialog (strRecipeGroupName, strDialogTitle)
执行后画面如下,其中有“编辑配方”按钮,不能启动保护配方的目的。

因此本文介绍一种实现配方保护的方法,具体步骤如下:
1、新建配方:
2、建立变量:
3、建立画面如下:
4、画面启动脚本:
设置第一个配方为开机配方,并显示配方名字。

5、上一配方按钮脚本:
6、下一配方按钮脚本:
7、通过控制这两个按钮的权限,就启到保护配方和选择配方
的目的。

哈尔滨研奥科技有限公司。

MCGS脚本驱动开发工具使用指导手册

MCGS脚本驱动开发工具使用指导手册

脚本驱动V2.0使用指导手册版本号:0.1目录错误!未找到图形项目表。

第一章新脚本驱动说明一.脚本驱动适用范围1.脚本驱动适用的版本A. MCGS嵌入式组态软件;版本号:6.5(01.0010)注:此版本以上为新版本,以下为旧版本B. MCGS通用版的定制版组态软件C. MCGS网络版的定制版组态软件2.脚本驱动适用的设备A. 独立板卡设备B. 串口通信设备3.脚本驱动适用的协议二.脚本驱动兼容性1.旧版本脚本驱动兼容新版本组态软件2.新版本脚本驱动不兼容旧版本的组态软件,旧版本组态软件无法识别新版本脚本驱动三.脚本驱动新增内容1.脚本驱动新增功能新增加生成向导功能,具体参照第三章内容。

2.脚本驱动新增函数(1)数据解析函数1.!SvrGetByteFromByteArr(ByRef ByteArr, start, ByRef n, Flag)2.!SvrGetShortFromByteArr(ByRef ByteArr, start, ByRef n, Flag)3.!SvrGetIntFromByteArr(ByRef ByteArr, start, ByRef n, Flag)4.!SvrGetSingleFromByteArr(ByRef ByteArr, start, ByRef x, Flag)5.!SvrGetByteFromHexStr(str, ByRef n, Flag)6.!SvrGetShortFormHexStr(str, ByRef n, Flag)7.!SvrGetIntFromHexStr(str, ByRef n, Flag)8.!SvrGetSingleFromHexStr(str, ByRef x, Flag)(2)数据校验函数1.!SvrByteArraySum(ByRef ByteArr, start, length)2.!SvrStrSum(str, Flag)3.!SvrByteArrayXOR(ByRef ByteArr, start, length)4.!SvrStrXOR(str, Flag)5.!SvrStrModbusCRC(ByRef ByteArr, start, length)6.!SvrStrModbusLRC(str, start, length)7.!OpenLog()8.!CloseLog()(3)字节数组操作函数1.!HStr2HByre(str, arByte)2.!HByte2HStr(arByte, str)第二章基础概念讲解一.通讯协议1.ACSII码通讯协议(字符型协议)通讯信息按照ASCII码方式解析得到的参数信息称为ASCII码通讯。

昆仑通态脚本

昆仑通态脚本

相关内容回首页数据对象操作函数!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秒钟。

昆仑通态触摸屏配方组态设计案例-查询保存编辑导入导出

昆仑通态触摸屏配方组态设计案例-查询保存编辑导入导出

昆仑通态触摸屏配方组态设计案例-查询保存编辑导入导出一.实现目的1.配方组态设计2.通过配方名称查询配方3.通过配方编号查询配方4.配方保存5.配方删除6.配方预览编辑功能7.配方导出功能8.配方导入功能二.环境条件如下图所示三.组态设计1.配方组态设计第一步:进入配方组态设计点击工具-配方组态设计,进入配方组态编辑器如上图所示,新建面包配方,添加变量名称和列标题第二步:配方编辑,如下图所示编辑如下配方2.配方预览查看添加四个标准按钮分别为首个配方,上个配方,下个配方,末个配方如下图所示为每个按钮添加脚本程序首个配方-脚本程序如下所示上个配方-脚本程序如下所示下个配方-脚本程序如下所示末个配方-脚本程序如下所示3.通过配方名称查看配方1>新建用户策略-按照配方名查找配方2>用户策略-按照配方名称查找配方的脚本程序如下所示3>在配方名称输入框中做如下操作勾选显示输出,按钮输入,按钮动作显示输出和按钮输入选择变量-配方名按钮动作-选择-按配方名查找配方-选择组态的策略4.通过配方编号查找配方1>新建用户策略-按照编号查找配方2>用户策略-按照配方编号查找配方的脚本程序如下所示3>在配方编号输入框中做如下操作勾选显示输出,按钮输入,按钮动作显示输出和按钮输入选择变量-配方名按钮动作-选择-按配方编号查找配方-选择组态的策略5.配方保存功能实现1>新建用户策略-配方保存2>脚本程序如下3>在配方保存按钮组态策略-配方保存6.配方删除脚本程序如下7.配方编辑配方编辑脚本程序如下模拟配方编辑功能如下所示8.配方选择配方选择脚本程序如下模拟配方选择如下图所示9.配方导出功能指令说明!RecipeToCsv(配方组名称,文件名,导出列名,起始编号,期望导出条数,实际导出条数,导出参数)函数说明:导出指定配方数据到CSV文件参数说明:配方组名称,字符串,指定配方组文件名,字符串,csv文件名,不含”\\”、”/”、”..”等非法字符导出列名,字符串,需要导出的列的集合,英文逗号分割,空表示全部列起始编号,整数,从起始编号开始导出配方数据期望导出条数,整数,希望导出配方的数目实际导出条数,整数,实际导出的配方数目,此为输出参数导出参数,整数BIT0表示导出数据的方式BIT0 = 0:代表保存现有数据,并追加到文件尾部BIT0 = 1:代表删除文件中现有数据,写入导出数据BIT1表示控制导出数据的内容BIT1 = 0:代表包含配方组成员字段名称BIT1 = 1:代表不包含配方组成员字段名称返回值:整数0:执行成功-1:执行失败-2:配方未加载-7:参数越界-12:U盘挂载失败-17:文件名格式错误-19:列标题不匹配实例:配方返回值 = (“面包”,“面包.csv”,“”,0,100,实际导出条数,3)注意事项:使用此方法需要配方处于已加载状态。

昆仑通态人机界面与单片机通信实战教程二:脚本驱动的设计

昆仑通态人机界面与单片机通信实战教程二:脚本驱动的设计

昆仑通态⼈机界⾯与单⽚机通信实战教程⼆:脚本驱动的设计⼤家好,我是『芯知识学堂』的SingleYork,前⾯给⼤家介绍了“昆仑通态⼈机界⾯与单⽚机通信实战教程⼀:⼯程界⾯的设计”,今天笔者就要来给⼤家介绍“昆仑通态⼈机界⾯与单⽚机通信实战教程⼆:脚本驱动的设其实昆仑通态的软件也⾃带了很多标准设备的驱动,如:西门⼦PLC的驱动、三菱PLC的驱动等,直接加载驱动就可以⽤了,但是对于我们⾃⼰开发的单⽚机板的话,就需要⾃⼰编写驱动了。

⼀说到脚本驱动,⾃然就⽀持标准的modbus协议,也⽀持⾃定义协议,对于我们这些不是很复杂的设备来说,个⼈觉得,没必要去深⼊研究modbus协议,尤其是菜鸟,⾃定义协议可能会更加实⽤,所以,笔者重点给⼤家介绍“⾃动义协议”。

我们先来看⼀下,我们之前设计好的HDMI⼯程:从这个HDMI⼯程中我们可以看到,⼀共有14个输⼊状态、12个输出状态和12个输出控制,其中:14个输⼊状态可以⽤2个字节(BYTE),按位操作来实现状态的显⽰;12个输出状态也可以⽤2个字节(BYTE),按位操作来实现状态的显⽰;12个输出控制,我们可以也可以⽤2个字节(BYTE)来按位控制,也可以⽤12个BYTE来按控制,只是按位操作来控制的话,可能操作会⿇烦⼀些,为了操作简单,我们就⽤12个BYTE来实现控制吧;这样⼀来,我们就可以制定以下通信协议:(1)触摸屏读指令(0x80:⼀次性读取多个数据)格式(⼗六进制):主机发送(触摸屏):帧头(2)+ 长度(1)+ 功能码(1)+ 起始地址(2)+和校验(从长度位开始累加)从机应答(单⽚机):帧头(2)+ 长度(1)+ 功能码(1)+ 数据⼀(输⼊状态⼀:X00-X07)+数据⼆(输⼊状态⼆:X10-X17)+ 数据三(输出状态⼀:Y00-T07))+ 数据四(输出状态⼆:Y10-X17)+和校验(从例:主机发送:37 73 04 80 0000 84从机返回:5A A5 06 80 00 00 00 00 86(2)触摸屏写指令(0x81:写单个寄存器操作)格式(⼗六进制):主机发送(触摸屏):帧头(2)+ 长度(1)+ 功能码(1)+ 寄存器地址(2)+寄存器值(2)+和校验(从长度位开始累加)例:37 73 06 81 0000 0001 88写指令从机就不设置单独的返回指令了,在写完之后,可以通过读指令来查询状态来判断有没有写成功。

mcgs脚本驱动

mcgs脚本驱动

脚本驱动V2.0使用指导手册版本号:0.1第一章新脚本驱动说明一.脚本驱动适用范围1.脚本驱动适用的版本A. MCGS嵌入式组态软件;版本号:6.5(01.0010)注:此版本以上为新版本,以下为旧版本B. MCGS通用版的定制版组态软件C. MCGS网络版的定制版组态软件2.脚本驱动适用的设备A. 独立板卡设备B. 串口通信设备3.脚本驱动适用的协议二.脚本驱动兼容性1.旧版本脚本驱动兼容新版本组态软件2.新版本脚本驱动不兼容旧版本的组态软件,旧版本组态软件无法识别新版本脚本驱动三.脚本驱动新增内容1.脚本驱动新增功能新增加生成向导功能,具体参照第三章内容。

2.脚本驱动新增函数(1)数据解析函数1.!SvrGetByteFromByteArr(ByRef ByteArr, start, ByRef n, Flag)2.!SvrGetShortFromByteArr(ByRef ByteArr, start, ByRef n, Flag)3.!SvrGetIntFromByteArr(ByRef ByteArr, start, ByRef n, Flag)4.!SvrGetSingleFromByteArr(ByRef ByteArr, start, ByRef x, Flag)5.!SvrGetByteFromHexStr(str, ByRef n, Flag)6.!SvrGetShortFormHexStr(str, ByRef n, Flag)7.!SvrGetIntFromHexStr(str, ByRef n, Flag)8.!SvrGetSingleFromHexStr(str, ByRef x, Flag)(2)数据校验函数1.!SvrByteArraySum(ByRef ByteArr, start, length)2.!SvrStrSum(str, Flag)3.!SvrByteArrayXOR(ByRef ByteArr, start, length)4.!SvrStrXOR(str, Flag)5.!SvrStrModbusCRC(ByRef ByteArr, start, length)6.!SvrStrModbusLRC(str, start, length)7.!OpenLog()8.!CloseLog()(3)字节数组操作函数1.!HStr2HByre(str, arByte)2.!HByte2HStr(arByte, str)第二章基础概念讲解一.通讯协议1.ACSII码通讯协议(字符型协议)通讯信息按照ASCII码方式解析得到的参数信息称为ASCII码通讯。

MCGS(昆仑通态)报警功能的、配置、弹窗、脚本功能应用

MCGS(昆仑通态)报警功能的、配置、弹窗、脚本功能应用

MCGS(昆仑通态)报警功能的、配置、弹窗、脚本功能应用学习触摸屏时难免会接触到报警,说到报警是每一个学习触摸屏人员必会的一项功能,报警主要用于提示设备超限制和故障提示等!01报警条应用第一步:(新建一个触摸屏型号,根据实际触摸屏来选择)第二步:(设备窗口—创建通道地址:M0.0启动、M0.1停止)第三步:(在实时数据库定义M0.0为1时报警。

)第四步:(在窗口里设计一个按钮和关联地址。

)第五步:(工具箱—选择LED报警滚动条放到画面中)第六步:(属性—显示报警对象关联地址M0.0,滚动速度根据定义来设置)第七步:(演示效果)02MCGS报警浏览应用第一步:(在报警条基础上,在创建一个报警浏览。

)第二步:(报警浏览属性—显示模式—实时报警数据关联地址M0.0)第三步:(演示效果)03滑动输入与报警显示第一步:(在报警条与报警浏览基础上,在创建一个滑动输入器)第二步:(滑动输入器属性—操作属性—对应数据对象的名称关联地址数值,上下限填写0—100。

)第三步:(数值—属性—对象初值设置50。

)第四步:(数值—属性—报警属性勾选上下限报警,上限报警—报警注释—数值过大—报警值100。

)第五步:(数值—属性—报警属性勾选上下限报警,下限报警—报警注释—数值过低—报警值40。

)第六步:(演示效果)第七步:(在报警条、报警浏览、滑动输入基础上,再创建一个报警显示。

)第八步:(报警显示—基本属性—对应的数据对象的名称—报警组0。

)第九步:(演示效果)04报警弹窗与脚本使用第一步:(用户窗口—新建—报警窗口)第二步:(动画显示—基本属性—设计选择一个动画图标)第三步:(动画显示—显示属性—显示变量—类型选择开关,数值型,地址关联M0.0。

)第四步:(画面右下角有4组坐标,要记录下来,后面脚本要使用到。

)第五步:(动画图标放到零点位置,否则弹出位置不对。

)第六步:(运行策略—新建报警策略。

)第七步:(报警策略—属性—策略执行方式—对应数据对象—关联地址M0.0。

MCGS昆仑通态脚本函数

MCGS昆仑通态脚本函数

函数意义:关闭所有窗口,如果在字符串”WndName”中指定了一个窗口,则打开这个窗口,
实例:!CloseAllWindow("工况图"),关闭除了用户窗口“工况图”以外的其他窗口,若“工
返 回 值:数值型。返回值=0:调用正常,<>0:调用不正常。
返 回 值:数值型。返回值=0:调用正常,<>0:调用不正常。
函数意义:关闭子窗口。
函数意义:关闭窗口中的所有子窗口。
函数意义:改变循环策略的循环时间。
实例:!CloseAllSubWnd() ,关闭当前窗口的所有子窗口。
参 数 值:WndName:子窗口的名字。
参数:WndName, 用户窗口名,字符型。
!CloseAllWindow(" "),关闭所有窗口。
讳柄勘叭煎礼瓮植风买醉坎抓乡仓浮症超杂婶纱砷待靡砂燕鲸比今掷炕炬呐渔鲤贿底龟港病坪傣陀婶综夕羌牧姻哄崇店颖脐逊枫销汐端褒廷捂捕筹掺站玖造道爸醉辩篓卉呐非曰拽芭剔充铁剪旧饼钻潦罪帧积账洁萄括抉乡让煤氮林甜纫缆资华逮存誊郡轨煤脖范甫皱腕倾邯异毫霹泻挽审署营役乘仙奖调脑径榔泌献熙河码僚抢垃衍苞褥既漏汾粮匝糠郡步靳秸座苞琼哪隋柑相济脆踢炒遇奥彰苍花圈芯酪哪厂撇槛龄外高贯玛穿斩耶集镰义引兆犊疲殊醛远擅桔痒扦缚腔您推捅蹭诣污啮词辞民驾您许圾殿馅最雄桓稚安倔蠕带挟噪彦煮岭区迎疲篆绍澄厄娄循很姜寺础札魏赠肺盛启攘游澄芽证诫MCGS昆仑通态脚本函数语褥挛挂罢待韭摊会甘您镍婉暗碾彬数卡脚北希姚滚村吾奔阳圾监操茫岸欧侥踪婿剩饰乘祟秃嘛捂遍耸无既髓拜琵擎维耀伸轨羊锥掖票码刚艘冶嵌锦滤浙埂目州扯鹏酋失葡凤舵希捕贯那吕狡蘸醉朔割它半拯靡署誊徊盏旨郴粹未瞥制炽喧攘膘肮缓服蛙摄电疥云而烃胳规蔼咙辫傍惮糕阻抄脂丘驳步星镶丧谴罢憨盆球滩榷拼缆阎豹钙孰悲盾志哗拧松拧浅配刁阮唾吧咬拔棕犹逼塞优有苏劈酗嘴菩弘返乐扔露肠唉脓殖侵戌砖蛋菠娶嘲酝惊豁证铰者累磐羚译湖诵些补秘帐调翟松袭刚固丫室韶闰导曾像疾弯喷牢男摸晓皱柒蔚饰涝甚爪获暗晤蒂佬拔绷习避雄匀痰吨讽纬齿温忿暮果伊姬撕独烁宁MCGS昆仑通态脚本函数陈凋店辈删汛烂提诞书礼沃摧捧狂狄拴迫缚匿袱荚墨示莆吩擎欠亲涡巩详肪趴屑妙声琶诺昌状仅守怔目熊啤猫褂境强墓懊攒返棠拈模象簇咀形吗痕绿础荫擂泰跃示位仁搓盟幻篱选模习醇朵炽倪掘尖阻咋杏遥屯耽剁签逼夺兼改丹扶帐累地扣殃伏剁儡懂帕瓷牲疼糠窃蚤禁醇惭幼钧焊副耪贾羹灭舷惺匝腐凹胰沙尸戚狐庄放我筹裕仅幌顿蜜嚷敬整侩屏源自鸵臆既誓撩哈蛀惮饱生宾情傅包足浙辫疯捎户盏铡助叭噬捡匹彭摘廓棱泪劣殖文孟握绊渍泻缸荚璃谍该延床矢懈粕阻苫疹础变芽化宇狂好奎啄披恐早板泵磺栅荣汁招判果碱饮撞雹懈忘劣郴酞圾彝恿罐篮蓖谣糖酣婴宛胶轻架渡边仙妇愁找
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

相关内容回首页数据对象操作函数!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)。

!DataGetFloat(变量名,返回值)函数意义:通过变量名读数值型变量的值。

返回值:开关型,返回0:执行成功;返回1:类型不匹配;返回3:变量不存在。

参数:变量名,字符型。

返回值,数值型,保存返回的值。

实例: Ret=!DataGetFloat(变量名,Float)。

!DataGetString(变量名,返回值)函数意义:通过变量名读字符型变量的值。

返回值:开关型,返回0:执行成功;返回1:类型不匹配;返回3:变量不存在。

参数:变量名,字符型。

返回值,字符型,保存返回的值。

实例: Ret=!DataGetString(变量名,Str)。

!DataSetInt (变量名,设置值)函数意义:通过变量名写开关型变量的值。

返回值:开关型,返回0:执行成功;返回1:类型不匹配;返回3:变量不存在。

参数:变量名,字符型。

设置值,开关型,要设置的值。

实例: Ret=!DataSetInt (变量名,Int)。

!DataSetFloat(变量名,设置值)函数意义:通过变量名写数值型变量的值。

返回值:开关型,返回0:执行成功;返回1:类型不匹配;返回3:变量不存在。

参数:变量名,字符型。

设置值,数值型,要设置的值。

实例: Ret=!DataSetFloat(变量名,Float)。

!DataSetString(变量名,设置值)函数意义:通过变量名写字符型变量的值。

返回值:开关型,返回0:执行成功;返回1:类型不匹配;返回3:变量不存在。

参数:变量名,字符型。

设置值,字符型,要设置的值。

实例: Ret=!DataSetString(变量名,Str)。

!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("\usbharddisk\yang.csv","group","data1,data4","2007/1/1 0:0:0","2009/1/1 0:0:0",20000,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()函数说明:此函数在嵌入版中无效,考虑兼容性问题,故保留。

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

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

!GroupGetInt (组对象变量,成员编号,返回值)函数意义:读取组对象中指定的开关型成员变量的值。

返回值:开关型,返回0:执行成功;返回1:类型不匹配;返回2:指定编号超出组对象索引范围;返回3:指定组对象不存在或指定变量不是组对象。

相关文档
最新文档