我正在尝试创建这个ModbusRtu对象,但是当我尝试插入一些参数时,它似乎引发了一个错误。即使我只是尝试用作者指定的原始参数运行它,同样的错误也会出现。我目前已经安装了所有必需的软件包。你知道吗
libffi开发-3.2.1-4 libmodbus-3.1.4-2 libmodbus开发-3.1.4-2 python开发-2.7.15~rc1-1 现金流量表-2.19
我真的很困惑为什么它不应该工作,因为即使作者定义的参数似乎也会产生相同的错误。你知道吗
我已经尝试通过将参数转换为字节、列表或元组来跟踪它的消息,但它只会引发另一个异常
``` Python Code 1 (before my solution)
self.master = ModbusRtu(device='/dev/ttyACM0',
baud=9600, data_bit=8,
parity='N', stop_bit=1)
``` Python Code 2 (after my solution)
self.master = ModbusRtu(device=bytes('/dev/ttyACM0', 'ascii),
baud=9600, data_bit=8,
parity=bytes('N', 'ascii), stop_bit=1)
``` Simpler Python Code 1
from pylibmodbus import ModbusRtu
def main():
client = ModbusRtu()
# i can't instantiate the ModbusRtu class
print(client)
# i should have at least the id of the instantiated class
if __name__ == '__main__':
main()
它应该是创建对象的,但是我只得到以下消息:
文件“/usr/local/lib/python3.6/dist-packages/pylibmodbus/modbus_远程终端设备“,第11行,在init中” 自身.ctx=C.modbus\u new\u rtu(设备、波特率、奇偶校验、数据位、, 停止(位) TypeError:ctype“char*”的初始值设定项必须是字节、列表或元组,而不是str
当我尝试将字符串参数转换为字节时,我得到以下消息:
文件“/usr/local/lib/python3.6/dist-packages/pylibmodbus/modbus_核心.py“,第60行,正在运行” 引发异常(外国金融机构字符串(C.u.strerror)(外国金融机构编号))) 例外:b'没有这样的文件或目录'
这就是Python 2.x的工作原理:
对于Python3.x,您必须对文本进行编码,我认为这是您的问题:
从pylibmodbus导入Modbus RTU
相关问题 更多 >
编程相关推荐