我打算在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)
答案 0 :(得分:1)
ord()
函数生成Unicode编码,SC2004MBS是ASCII显示。不需要的字符可能是字形与零相关联。
每个寄存器写入显示两个ASCII字符,但字节顺序与生成系统的字节顺序不同,因为NUL出现在所需字符之后。因此,您可能需要在dd
中对字符对进行字节交换,然后将其打印为5个寄存器值。