昆仑通态MCGS数据导出到U盘

[复制链接]
查看89177 | 回复0 | 2025-1-16 08:54:21 | 显示全部楼层 |阅读模式
首先,我们打开“MCGS嵌入版”组态软件新建一个工程,在“实时数据库”选项卡中建立如下几个变量:

ceshi1(变量的对象类型为数值型)

ceshi2(变量的对象类型为数值型)

group1(变量的对象类型为组对象)

导出状态(变量的对象类型为开关型)

进度指示(变量的对象类型为开关型)

如下图所示:



接下来我们设置刚才建立的变量group1的数据对象属性,在“实时数据库”选项卡中选中group1鼠标右键单击选择属性,如下图所示:



我们选择“存盘属性”选项卡,在“数据对象值的存盘”一项中选择“定时存盘,存盘周期项”并把时间设置为0秒;在“组对象成员”选项卡中我们把左侧的“数据对象列表”中的ceshi1和ceshi2变量添加到右侧的“组对象成员列表”然后单击确定。

如下两幅图所示:





打开“用户窗口”选项卡,点击右侧的“新建窗口”按钮,建立一个新窗口,如下图所示:



我们点击“窗口0”,进行画面组态



这里的“导出状态”和“进度指示”上面的两个方框是“标签动画”构件,鼠标右键单击并打开“属性”我们选中“属性设置”选项卡,在右侧的“输入输出连接”一项中勾上“显示输出”选项;选择“显示输出”选项卡关联我们之前建立的两个“开关量”(导出状态和进度指示一个标签对应一个变量)选择“输出值类型”为“数值量输出”

值得注意的是在“实时数据库”当中建立的两个变量是开关量,这里显示的是“数值量”是因为显示的是这个数据的返回值,建立变量的时候还是要建立”开关量”的

这样可以直观的监视数据导出的过程及状态。







然后我们添加两个“输入框”构件,分别关联我们之前建立的两个“数值量”(ceshi1和ceshi2一个输入框对应一个变量)



继续添加一个“标准按钮”构件,选择“脚本程序”选项卡在“抬起脚本”中写入如下代码:

!SaveData(group1)

(代码的意义是将group1的值存盘)

!TransToUSB("group1","2017/10/300:0:0","2017/10/31 0:0:0",导出状态,进度指示,0,"")

(代码的意义是导出2017/10/30 0:0:0到2017/10/31 0:0:0这之前的所有group1存盘数据)

然后点击确认。



保存并下载程序到HMI设备,插上U盘准备给导出数据使用。

设置变量“ceshi1”和“ceshi2”的值,这里我们可以设置任意值,然后单击导出U盘。



拔下U盘,插入电脑,可以在U盘的根目录中找到group1.csv文件,可以使用MicrosoftOffice EXCEL程序打开此文件。



打开文件可以看到刚才设置的值(这里一共点击了“导出U盘“按钮7次,前6次没有输入两个数值量没有设置任何值,第七次都设置为1,然后拔下的U盘插入电脑)



嗯,最后,附上上述脚本程序中用到的两条函数指令的详细说明。

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

函数意义:将XXX组对象的存盘数据导出到"USB HARDDISK"目录下,保存为“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。

保留参数:字符型,保留, 设置为空字符串。

!SaveData(DatName)

函数意义:把数据对象DataName对应的当前值存入存盘数据库中。本函数的操作使对应的数据对象的值存盘一次。此数据对象必须具有存盘属性,且存盘时间需设为0秒。否则会操作失败。

返回值:数值型,=0为操作成功,<>0为操作失败。

参    数:DatName,数据对象名。

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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则