在ParcView和Subtract中读取日期和时间字符串以查找差异

时间:2014-05-28 17:52:43

标签: xml string vba datetime date-arithmetic

我是编程新手,在VBA中完成了大部分编码工作。说的还是非常业余的。

我会解释最好的我知道我的情景,一些信息可能是不言自明的,但不是我。我正在使用趋势软件(PARCView从PLC和HMI系统读取数据。当前的PLC标签不提供我需要的所有数据,所以这个PARCview软件允许我创建新的标签,以便操纵数据并显示我可能想要的趋势,效率等。

它允许我导入和导出XML脚本来执行Calculated标记,但使用VBA格式对我来说最有效,所以我可以更好地理解。我能够弄清楚如何进行简单的计算,如倍数,从单个标签中划分数据,但现在我正在努力做更复杂的操作。

我想在小时找到时间。在给定的两个日期和时间之间。日期和时间作为字符串从另一个名为MiniMint的软件中提取。它们的格式为m / d / yyyy hh:mm:ss。日期不使用0作为占位符,因此它也可以看作mm / d / yyyy或mm / dd / yyyy。我不明白如何采取这一串"文本"并正确地将其作为数字读取,以进行我想要的计算。

我想要减去的两个标签叫做FL4 End Run Time和FL4 Scheduled Start,它们都是以上面列出的格式接收的。

所以我不知道从哪里开始并非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我不确定标签,PARCView,PLC和HMI,但在VBA中,我会使用以下内容将类似的字符串日期转换为日期对象:

Function String2Date(inString As String) As Date

    Dim sp() as String
    Dim month as Integer, day as Integer, year as Integer

    sp() = Split(inString, "/")    'splits the string into an array, using /
    month = CInt(sp(0))  'CInt forces a conversion to integer from string, just in case
    day = CInt(sp(1))
    year = CInt(sp(2))

    String2Date = DateSerial(year, month, day)    'date serial returns a date from integer year, month, day arguments
End Function