一,安装:pyserial模块
- pyserial模块封装了对串口的访问
- pip3 install pyserial
import serial #导入模块
import serial.tools.list_ports
port_list = list(serial.tools.list_ports.comports())
print(port_list)
if len(port_list) == 0:
print('无可用串口')
else:
for i in range(0,len(port_list)):
print(port_list[i])
二,安装:modbus_tk模块安装
- modbus_tk支持modbus通信
- pip install modbus_tk
- ModbusRTU_Master.py
import serial
import modbus_tk
import modbus_tk.defines as cst
from modbus_tk import modbus_rtu
import time
# 数据接收端
def ModbusRTU_Master():
try:
# 设定串口为从站
# 外置参数包括端口 port = "COM3" 波特率:115200
master = modbus_rtu.RtuMaster(serial.Serial(port="com4",baudrate=115200, bytesize=8, parity='N', stopbits=1))
master.set_timeout(1.0)
master.set_verbose(True)
# 读保持寄存器
for i in range(30):
read = master.execute(1, cst.HOLDING_REGISTERS, 0, 81) # 这里可以修改需要读取的功能码
print(read)
time.sleep(1)
except Exception as exc:
print(str(exc))
ModbusRTU_Master()
- ModbusRTU_Slave.py
import serial
import modbus_tk
import modbus_tk.defines as cst
from modbus_tk import modbus_rtu
import time
def ModbusRTU_Slave():
try:
# 设定串口为从站
# 外置参数包括端口 port = "COM3" 波特率:9600
server= modbus_rtu.RtuServer(serial.Serial(port="com3",baudrate=9600, bytesize=8, parity='N', stopbits=1))
server.start()
print("runing...")
SLAVE1 = server.add_slave(1)
SLAVE1.add_block('A', cst.HOLDING_REGISTERS, 0, 4) # 地址0,长度4
increase_num = 17000
for i in range(30):
SLAVE1.set_values('A', 0, [17000-i, i + 1, i + 2, i + 3]) # 改变在地址0处的寄存器的值
time.sleep(1)
"""
for i in range(150):
increase_num = increase_num - 1
SLAVE1.set_values('A', 0, [increase_num, i + 1, i + 2]) # 改变在地址0处的寄存器的值
time.sleep(1)
for i in range(80):
SLAVE1.set_values('A', 0, [10000, i + 1, i + 2]) # 改变在地址0处的寄存器的值
time.sleep(1)
for i in range(80):
SLAVE1.set_values('A', 0, [17000, i + 1, i + 2]) # 改变在地址0处的寄存器的值
time.sleep(1)
"""
print("ending...")
except Exception as exc:
print(str(exc))
ModbusRTU_Slave()
三,安装:psutil 模块安装
- psutil 是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(包括CPU ,内存,磁盘,网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,如ps ,top ,lsof ,netstat ,ifconfig ,who ,df ,kill ,free ,nice ,ionice ,iostat ,iotop ,uptime ,pidof ,tty ,taskset ,pmap 等。目前支持Linux的,32 位和64 位的,Windows ,OS X ,FreeBSD 和Sun Solaris 等操作系统。
- psutil 下载地址(官网):https://pypi.python.org/pypi/psutil/
- psutil 下载地址(github ):https://github.com/giampaolo/psutil/
- pip install psutil