我有一个通风系统的modbus连接,当出现问题时会产生警报。我可以用modbus接收有关报警的数据。该部分记录了ID,日期和时间的登记。所有tre接收包含2个字节的数据。 ID 00:13(女巫被转换为十进制错误代码19 =过滤警报)
但是我无法弄清楚日期和时间的格式。但是我可以在通风系统中看到这些日期和时间在显示屏上被翻译成什么。
我收到的日期(以字节为单位)(十六进制)= 43:68(十进制为17256),并且在显示屏上等于“13-11-08”(08-nov-2013),时间以字节为单位(十六进制) = 34:71(十进制13425)等于显示“06:35”
我试图与时代“1970年和1980年”进行比较,并试图与其他时间翻译32位整数等进行比较。但我无法弄清楚翻译是什么。也许有人在这里看到过simular,可以分辨出这是什么编码。
最诚挚的问候 托马斯尼森
答案 0 :(得分:1)
谢谢Nanomurf,我解决了这个问题。我“翻译”并提出这个工作:) 它给了我以下08-11-2013 06:35:24这就是我想要的。谢谢你的时间。
Dim strDate As String = "17256"
Dim year As String = (strDate >> 9) + 1980
Dim month As String = (strDate And &H1E0) >> 5
Dim day As String = strDate And &H1F
Dim strTime As String = "13425"
Dim hour As String = strTime >> 11
Dim minute As String = (strTime And &H7E0) >> 5
Dim secund As String = (strTime And &H1F) * 2
Dim AlarmDate As String = New DateTime(CInt(year), CInt(month), CInt(day), CInt(hour), CInt(minute), CInt(secund))