创建异步Modbus服务器python问题

时间:2018-10-22 22:08:00

标签: python modbus modbus-tcp

我是Python的新手,正在尝试使用pymodbus模块创建一个modbus服务器。我遵循关于link的教程,但是运行脚本时出现错误:

overflow:auto;

任何人都可以帮助我解决我的问题,谢谢。


[更新]:

$ python2.7 server1.py    
INFO:pymodbus.server.async:Starting Modbus TCP Server on 192.168.1.100:502    
Traceback (most recent call last):    
File "server1.py", line 83, in <module>    
StartTcpServer(context, address=("192.168.1.100", 502))    
File "/home/pi/.local/lib/python2.7/site-packages/pymodbus/server/async.py",     
line 255, in StartTcpServer    
reactor.listenTCP(address[1], factory, interface=address[0])    
File "/home/pi/.local/lib/python2.7/site-     
packages/twisted/internet/posixbase.py", line 495, in listenTCP    
p.startListening()    
File "/home/pi/.local/lib/python2.7/site-packages/twisted/internet/tcp.py",     
line 1363, in startListening    
raise CannotListenError(self.interface, self.port, le)    
twisted.internet.error.CannotListenError: Couldn't listen on     
192.168.1.100:502: [Errno 13] Permission denied.    

我已经尝试过“ sudo”并出现错误,看来当我使用“ sudo”时模块不在正确的位置...

1 个答案:

答案 0 :(得分:0)

尝试使用sudo权限:

$ sudo python2.7 server1.py 

或者如果您的python通过以下方式链接到 Python 2.7

$ python -V
Python 2.7.14

然后尝试:

$ sudo python server1.py

[更新]:

以下几行结果必须相同:

$ which python
/usr/bin/python

$ sudo which python
/usr/bin/python

如果代码在同一台计算机上运行,​​则可以使用localhost127.0.0.1 IP而不是计算机IP。


[注意]:

如果您的操作系统是基于 * nix 的系统,并且您具有ufw防火墙,请执行以下命令:

$ sudo ufw disable