好吧,所以我是新来的,不太熟悉规则,如果问题写得不对,很抱歉。我问了下面关于堆栈溢出的问题,并被告知我最好在这里征求程序建议,所以这里……
我一直在使用远程数据记录设备上记录的数据来自动化我们在工作中必须完成的一些任务。远程数据记录器连接到铁路信号设备,并记录继电器的位置(上或下)。这些继电器是用来操作线路旁信号设备的,因此知道它们在什么时候处于特定位置使我们能够知道当时在铁路上发生了什么。记录器编写一个简单的文本文件,文件中的每一行都给出日期和时间、中继的名称以及它更改到的位置(例如从上到下或从下到上)。
到目前为止,我已经为一个宏编写了一个vba代码,以便在MS Excel中运行,以便自动拨号远程记录器(是的,我们仍然使用拨号),登录,获取用户请求的数小时数据,将文本文件保存到一个新的excel电子表格中,然后在每一行末尾用便条对下载进行注释,帮助我们的人员了解设备在这一小时内所做的事情。
下一步,我想做的是创建一个单独的应用程序,我们的人可以使用,然后‘回放’的数据,在实时或‘快速前进’模式,作为铁路的视觉表现。他们的想法是,他们可以看到记录器监视的铁路地图(就像信号员在楼上的屏幕一样),并能看到正在发生的事情--即火车前进、信号改变颜色、点移动等。这种功能将极大地帮助我们更快地识别设备故障,这意味着列车的延误时间更短。
我试过用Excel编写一些vba代码来尝试实现图形化的重放功能,但我认为它非常麻烦,永远也不适合。我制作的代码运行一个简单的时钟,每秒钟更新一次,然后代码在数据记录器数据行中运行,查看是否有任何行具有类似的时间戳,如果它们有类似的时间戳,则代码运行一个大规模的' if‘语句,以查看它是哪一个中继已改变状态,然后是向上还是向下,最后更新我绘制的铁路线路的小地图上的形状,改变它们的颜色或使它们消失,以便以图形的方式表示数据记录器记录的事件。这种方法有几个问题。首先,代码非常复杂,而可怜的旧Excel很难处理所有这些代码--它必须被分割成块才能运行,这使得解释重放变得困难,从一开始就混淆了创建代码的全部意义。可以有多达394个继电器都是由一个数据记录器监视的,所以这个庞大的if语句确实很大。此外,excel有崩溃(讽刺地说“堆栈溢出”)的习惯,或者在宏执行完成之前偶尔不会更新形状,这使得整个练习变得毫无意义。
所以,现在你知道我大部分的人生故事了,问题是:
你们聪明的人知道有更好的方法来实现我所追求的图形重放功能吗?是否有更简单或更好的方法,使用其他程序或应用程序,而不是Excel和VBA代码?
我想附上一个小样本的数据记录器数据,我们必须处理的屏幕截图,但显然,我需要10个声誉来做到这一点。我没有为我开发的图形重放添加vba代码,因为它很大,而且考虑到使用VBA和Excel的局限性,我看不出有什么办法可以让它更好地工作。
感谢您抽出时间阅读这篇文章,如果您有任何更好的程序或应用程序可供使用,则特别感谢您。
哑光
https://softwarerecs.stackexchange.com/questions/13851
复制