使用PyModBus在SC2004MBS上显示今天的日期

时间:2017-10-21 15:18:29

标签: python embedded twisted modbus pymodbus3

我打算在Silicon Craft 2004 ModBus(SC2004MBS)上显示今天的日期和时间。我试图将值日期字符串移位并使用write_registers()函数传递给设备。 代码如下所示:

@defer.inlineCallbacks
def DtTm():
  dt = datetime.datetime.now()
  dd= dt.strftime('%d/%m/%Y')
  da = [ord(c) for c in dd]
  display = yield protocol.write_registers(10, da, unit=1)

使用Twisted回调调用代码块。输出会在设备上显示结果,但在显示屏上的每个字符前都会显示一些不需要的字符。enter image description here

1 个答案:

答案 0 :(得分:1)

ord()函数生成Unicode编码,SC2004MBS是ASCII显示。不需要的字符可能是字形与零相关联。

每个寄存器写入显示两个ASCII字符,但字节顺序与生成系统的字节顺序不同,因为NUL出现在所需字符之后。因此,您可能需要在dd中对字符对进行字节交换,然后将其打印为5个寄存器值。