威伦触摸屏脚本做的月产量每天查询表自己编写的,自动存储当天产量,宏指令。 可保存多年数据,任意查询,注释齐全,结构清析。

最近搞了个用威伦触摸屏脚本编写的月产量每天查询表,感觉还挺有意思的,跟大家分享分享。

自动存储当天产量

实现当天产量的自动存储,我们得依靠宏指令。在威伦触摸屏的宏指令环境里,我们可以这么写代码:

Sub Main()
    Dim todayProduction As Integer '定义一个变量用于存储当天产量
    todayProduction = GetDataFromPLC() '假设这个函数从PLC获取当天产量数据
    Dim filePath As String
    filePath = "D:\ProductionData\" & Format(Now, "yyyyMMdd") & ".txt" '定义存储文件路径,以当天日期命名文件
    Dim fs As Object
    Set fs = CreateObject("Scripting.FileSystemObject")
    Dim ts As Object
    Set ts = fs.OpenTextFile(filePath, 8, True) '以追加模式打开文件,如果文件不存在则创建
    ts.WriteLine todayProduction '将当天产量写入文件
    ts.Close
    Set ts = Nothing
    Set fs = Nothing
End Sub

这里呢,首先定义了一个变量todayProduction来存放从PLC获取到的当天产量(当然,GetDataFromPLC函数得根据实际的PLC通讯协议去写,这里只是个示意)。然后根据当天日期生成一个文件路径,通过Scripting.FileSystemObject对象来操作文件,以追加模式打开文件并把当天产量写入文件,这样就完成了当天产量的自动存储。

可保存多年数据与任意查询

保存多年数据靠的就是每天生成不同日期命名的文件存储产量。而要实现任意查询,我们可以写个查询函数。

Function QueryProduction(ByVal queryDate As String) As Integer
    Dim filePath As String
    filePath = "D:\ProductionData\" & queryDate & ".txt" '根据传入日期生成文件路径
    Dim fs As Object
    Set fs = CreateObject("Scripting.FileSystemObject")
    If fs.FileExists(filePath) Then '判断文件是否存在
        Dim ts As Object
        Set ts = fs.OpenTextFile(filePath, 1, False) '以只读模式打开文件
        QueryProduction = ts.ReadLine '读取第一行数据(假设文件只有一行当天产量数据)
        ts.Close
        Set ts = Nothing
    Else
        QueryProduction = -1 '如果文件不存在,返回 -1 表示无数据
    End If
    Set fs = Nothing
End Function

在这个函数里,通过传入要查询的日期,生成对应的文件路径。先判断文件存不存在,如果存在就以只读模式打开文件读取产量数据返回,如果不存在就返回 -1 表示没有那天的数据。这样,只要知道日期,就可以查询到任意一天的产量数据,实现了多年数据的任意查询。整个脚本注释齐全,结构清晰,无论是后续维护还是给其他小伙伴看,都能比较轻松理解代码逻辑。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐