昆仑通态脚本开发函数
!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,字符型,需要读取的通道名的字符串。
n,引用型,整型,保存读出值的变量;实例:! GetIntChannelValueByName ("发电机启动",n)。
实例说明:将通道“显示内容”的值读出,赋给变量n;!GetSingleChannelValueByName(DataStr,ByRef x)函数意义:根据通道的名字,将该通道的值读出,假设该通道为单精度浮点型(开关型)变量;返回值:整型。
-1 失败,0 成功。
参数:DataStr,字符型,需要读取的通道名的字符串。
x,引用型,单精度浮点型,保存读出值的变量;实例:! GetSingleChannelValueByName ("温度",x)。
实例说明:将通道“温度”的值读出,赋给变量x;!GetIntChannelValueByNum(DataNum,ByRef n)函数意义:根据通道的编号,将该通道的值读出,假设该通道为整型(开关型)变量;返回值:整型。
-1 失败,0 成功。
参数:DataNum,整型,需要读取的通道的编号。
n,引用型,整型,保存读出值的变量;实例:! GetIntChannelValueByNum (1,n)。
实例说明:将通道1的值读出,赋给变量n;!GetSingleChannelValueByNum(DataNum,ByRef x)函数意义:根据通道的编号,将该通道的值读出,假设该通道为单精度浮点型(开关型)变量;返回值:整型。
-1 失败,0 成功。
参数:DataNum,整型,需要读取的通道的编号。
x,引用型,单精度浮点型,保存读出值的变量;实例:! GetSingleChannelValueByNum (2,x)。
实例说明:将通道2的值读出,赋给变量x;!GetChannelCount()函数意义:得到驱动的通道总数;返回值:整型。
-1 失败,>= 0 通道总数;参数:无;实例:! GetChannelCount ()。
!Trace(Str)函数意义:在脚本驱动开发工具的调试功能中,在输出框输出一些信息,在运行环境下不起作用;返回值:整型。
-1 失败,0 成功;参数:str,字符型,输出字符串;实例:!Trace(!strFormat("%D",123))。
!Sleep(n)函数意义:在脚本执行的过程中,暂停一段时间。
返回值:整型。
-1 失败,0 成功;参数:n,整型,暂停时间,以毫秒(ms)为单位;实例:!Sleep(500)。
实例说明:暂停执行500毫秒;!Ascii2I(str)函数意义:返回字符串str的首字符的Ascii值。
返回值:整型。
参数:str,字符型。
实例:!Ascii2I("Afd") =65。
!Bin2I(str)函数意义:把二进制字符串转换为数值。
返回值:整型。
参数:str,字符型。
实例:!Bin2I("101") =5。
!Format(x,str)函数意义:格式化数值型数据对象。
返回值:字符型。
参数:x,数值型,要格式化的数值;str,字符型,格式化数值的格式。
表示为0.00样式。
小数点后的0的个数表示需要格式化出的小数位数。
小数点前的0为一个时,表示小数点前根据实际数值显示。
当小数点前没有0时,表示为.xx式样,当小数点前的0不止一个时,使用0来填充不够的位数。
实例:!Format(1.236,"0.00") = "1.24";!Format(1.236,".00") = ".24";!Format(1.236,"00.00") = "01.24"。
!Hex2I(str)函数意义:把16进制字符串转换为数值。
返回值:整型。
参数:str,字符型。
实例:!Hex2I ("1A") =26。
!I2Ascii(n)函数意义:返回指定Ascii值的字符。
返回值:字符型。
参数:n,整型。
实例:!I2Ascii(65) ="A"。
!I2Bin(n)函数意义:把数值转换为二进制字符串。
返回值:字符型。
参数:n,整型。
实例:!I2Bin (5) ="101"!I2Hex(n)函数意义:把数值转换为16进制字符串。
返回值:字符型。
参数:n,整型。
实例:!I2Hex (17) ="11"。
!I2Oct(n)函数意义:把数值转换为8进制字符串。
返回值:字符型。
参数:n,整型。
实例:!I2Oct (9) ="11"。
!InStr(n,str1,str2)函数意义:查找一字符串str2在另一字符串str1中第一次出现的位置,字符串的首位置为1。
返回值:整型,如果找到,则返回位置,如果未找到,则返回0。
参数:n,整型,开始搜索的位置,字符串的首位置为1;str1,字符型,被搜索的字符串;str2,字符型,要搜索的子字符串。
实例:!InStr(1,"sdlkfjwe","sd") = 1;!InStr(3,"sdlkfjwe","sd") = 0。
!Lcase(str)函数意义:把字符型数据对象str的所有字符转换成小写。
返回值:字符型。
参数:str,字符型。
实例:!LCase("sedERT") = "sedert"。
!Left(str,n)函数意义:字符型数据对象str左边起,取n个字符。
返回值:字符型。
参数:str:字符型,源字符串;n,整型,取字符个数。
实例:!Left("ABCDEFG",2) ="AB"!Len(str)函数意义:求字符型数据对象str的字符串长度(字符个数)。
返回值:浮点数。
参数:str,字符型。
实例:!Len("ABCDEFG") = 7;!Len("昆仑通态") = 8。
!Ltrim(str)函数意义:把字符型数据对象str中最左边的空格剔除。
返回值:字符型。
参数:str,字符型。
实例:!LTrim(" dsfk ") = "dsfk "!Mid(str,n,k)函数意义:从字符型数据对象str左边第n个字符起,取k个字符。
字符首位置从1开始算起。
返回值:字符型。
参数:str,字符型,源字符串;n,整型,起始位置;k,整型,取字符数。
实例:!Mid("ABCDEFG",3,2) = "CD"。
!Oct2I(str)函数意义:把8进制字符串转换为数值。
返回值:整型。
参数:str,字符型。
实例:!Oct2I ("11") =9。
!Right(str,n)函数意义:从字符型数据对象str右边起,取n个字符。
返回值:字符型。
参数:str,字符型,源字符串;n,整型,取字符个数。
实例:!Right("ABCDEFG",2) ="FG"。
!Rtrim(str)函数意义:把字符型数据对象str中最右边的空格剔除。
返回值:字符型。
参数:str,字符型。
实例:!LTrim(" dsfk ") =" dsfk"。
!Str(x)函数意义:将数值型数据对象x的值转换成字符串。
返回值:字符型。
参数:x,数值型。
实例:!Str(0.712) ="0.712"。
!StrComp(str1,str2)函数意义:比较字符型数据对象str1和str2是否相等,返回值为0时相等,返回值为1时则str1 > str2,返回值为-1 时则str1 < str2。
此函数区分字母大小写。
返回值:整型。
参数:str1,字符型;str2,字符型。
实例:!StrComp("ABC","abc") = 1。
!StrCompCase(str1,str2)函数意义:比较字符型数据对象str1和str2是否相等,返回值为0时相等,返回值为1时则str1 > str2,返回值为-1 时则str1 < str2。
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码通讯。
中牟昆仑通态触摸屏部分总结
昆仑通态触摸屏部分总结常用逻辑脚本1.登录自动注销脚本当前时间=!TimeI2Str(!GetLastMouseActionTime(),"%X")'获取鼠标的最后动作时间设定时间=!TimeSpanGetMinutes(!TimeGetSpan(!TimeGetCurrentTime(),!GetLastMouse ActionTime()))'计算鼠标最后的活动时间和当前时间的差值if flag1 = 0 then'判定是不是已经打开了一个登录窗口。
if !strComp("负责人",!GetCurrentUser())=0 OR !strComp("操作员",!GetCurrentUser())=0 then'判定当前的用户if 设定时间 >=50 then'鼠标停止动作是否已经超过50分钟回车=1 '注意这两个赋值的顺序,须先赋值在执行!LogOff()flag1=1'!LogOff( )endifendifendifif 回车=1 then!SendKeys("{ENTER}")'发送ENTER键flag1 = 0回车 = 0endif2.自动切换画面脚本if 设定时间>=50 then !CloseAllWindow("工艺图1") '50分钟后关闭除“工艺图1”之外所有窗口。
(结合自动注销脚本使用)3.在需要先开阀再开泵的情况时,可通过脚本和隐藏功能结合使用来避免现场误操作循环脚本:IF XX阀开到位=1 THEN XX泵隐藏变量=1IF XX阀开到位=0 THEN XX泵隐藏变量=0注释1:当隐藏变量=1时,触摸屏画面显示开泵按钮,隐藏变量=0时,触摸屏画面显示提示语如“请先开阀!”。
注释2:在有多种状态来判定隐藏条件可利用类似循环语句4.历史数据自动删除脚本!DelSaveDat(历史数据,12 )利用循环策略,将循环时间设为每月一次,即可实现每月删除12小时之前的历史数据。
昆仑通态触摸屏配方组态设计案例-查询保存编辑导入导出
昆仑通态触摸屏配方组态设计案例-查询保存编辑导入导出一.实现目的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)注意事项:使用此方法需要配方处于已加载状态。
昆仑通态刷新页面的函数
昆仑通态刷新页面的函数
昆仑通态刷新页面的函数是一种可以在网页中刷新页面的函数。
它可以通过在网页中调用JavaScript语言来实现。
当页面需要更新时,可以调用该函数,从而使页面重新加载并显示最新的内容。
昆仑通态刷新页面的函数可以在不同的场景中使用。
例如,在网
页中添加或删除元素后,可以调用该函数来刷新页面。
另外,当用户
需要在同一页面中进行不同的操作时,也可以使用该函数来刷新页面,以便用户能够看到最新的结果。
在使用昆仑通态刷新页面的函数时,需要注意一些细节。
首先,
由于刷新页面会导致页面中所有的数据都重新加载,因此刷新频率不
宜过高,以免影响用户体验。
其次,刷新页面时需要确保数据已经被
保存,以免因页面刷新而导致数据丢失。
总之,昆仑通态刷新页面的函数是一种十分实用的网页开发技术,它可以帮助开发人员更好地掌控页面的更新和展示,提高用户体验,
也可以更好的满足用户不同的需求。
昆仑通态人机界面与单片机通信实战教程二:脚本驱动的设计
昆仑通态⼈机界⾯与单⽚机通信实战教程⼆:脚本驱动的设计⼤家好,我是『芯知识学堂』的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写指令从机就不设置单独的返回指令了,在写完之后,可以通过读指令来查询状态来判断有没有写成功。
昆仑通态触摸屏上升沿触发函数
昆仑通态触摸屏上升沿触发函数
昆仑通态触摸屏上升沿触发函数是一种接口函数,用于在触摸屏检测到上升沿触发信号时执行特定的操作。
该函数通常用于处理触摸屏的输入事件。
在程序中,我们可以编写如下的昆仑通态触摸屏上升沿触发函数:
```c
void 昆仑通态触摸屏上升沿触发函数()
{
// 执行特定的操作代码
// ...
}
```
在函数体内,可以添加各种处理触摸屏上升沿触发事件的代码。
这些代码可以根据实际需求进行编写,比如获取触摸坐标、处理触摸事件、更新界面等操作。
需要注意的是,此函数的具体实现需要根据昆仑通态触摸屏的接口文档或开发者手册来进行编写。
函数中的代码取决于具体的触摸屏硬件和驱动库的特性,因此无法提供完整的代码示例。
在实际使用过程中,我们可以将该函数与其他代码结合,例如在主函数中注册该函数作为触摸屏上升沿触发事件的回调函数,或在相应的触摸屏驱动模块中调用该函数进行处理。
总之,昆仑通态触摸屏上升沿触发函数是一种用于处理触摸屏上升沿触发事件的函数,可以根据实际需求进行编写和定制。
昆仑通态脚本
相关容回首页数据对象操作函数!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秒钟。
昆仑通态函数大全
!EnableDataSave !EnableDDEConnection !EnableDDEInput !EnableDDEOutput !EnableExitLogon !EnableExitPrompt !EnableStgy !exp !FileAppend !FileCopy !FileDelete !FileFindFirst !FileFindNext !FileIniReadValue !FileIniWriteValue !FileMove !FileReadFields !FileReadStr !FileSplit !FileWriteFields !FileWriteStr !Format !GetAlmValue !GetCurrentGroup !GetCurrentUser !GetDeviceName !GetDeviceState !GetEventDT !GetEventP !GetEventT !GetStgyName !GetWindowName !GetWindowState !Hex2I !I2Ascii !I2Bin !I2Hex !I2Oct !InStr !lcase !left !len !LinePrtOutput !log !LogOff !LogOn !ltrim !lVal !mid !MoveAlmDat !MoveSaveDat !Navigate !Oct2I !ODBCAddnew
绝对值 应答报警 激活应用程序 反余弦函数 反正弦函数 获取字符串的首字母的ASCII值 反正切函数 发出蜂鸣声 从2进制字符串转为整数 按位与 把指定位清零 左移 按位取反 按位或 右移 把指定位置一 检查指定位置是否为一 按位异或 调用后台对象 改变数据对象存盘的周期 改变循环策略的循环时间 打开改变用户密码对话框 改变数据对象的存盘间隔 检查用户是否属于指定的用户组 除了指定的窗口之外,关闭所有用户窗口 拷贝数据库中数据表的数据 余弦函数 重新检查并联接所有的DDE连接 删除数据对象的所有报警存盘数据 删除数据对象的所有存盘数据 删除数据对象的指定时间间隔内的报警存盘数据 删除数据对象指定时间间隔内的存盘数据 取消CTRL+ALT+DEL 打开用户管理对话框 起用/停止报警功能 恢复CTRL+ALT+DEL
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。
昆仑通态触摸屏实现只选择配方不能更改配方的方法
昆仑通态触摸屏实现只选择配方不能更改配方的方法
之邯郸勺丸创作
创作时间:二零二一年六月三十日
哈尔滨研奥科技有限公司
唐雪飞
2020/06/14
在实际触摸屏应用项目中, 涉及配方的情况下, 用户从管理角度往往希望把持员只能选择配方, 不能更改配方及看到配方数据.因昆仑通态触摸屏自带的配方选择函数:
!RecipeLoadByDialog (strRecipeGroupName, strDialogTitle)
执行后画面如下, 其中有“编纂配方”按钮, 不能启动呵护配方的目的.
因此本文介绍一种实现配方呵护的方法, 具体步伐如下:
1、新建配方:
2、建立变量:
3、建立画面如下:
4、画面启动脚本:
设置第一个配方为开机配方, 并显示配方名字.
5、上一配方按钮脚本:
6、下一配方按钮脚本:
7、通过控制这两个按钮的权限, 就启到呵护配方和选择
配方的目的.
哈尔滨研奥科技有限公司。
