Python_Modbus读取值后保存到CSV
from pymodbus.client.sync import ModbusTcpClient
import csv
import datetime
import time
# Modbus TCP连接设置
SERVER_IP = '127.0.0.1'
SERVER_PORT = 502
# Modbus寄存器地址和数量
REGISTER_ADDRESS = 0
REGISTER_COUNT = 1
# CSV文件名
CSV_FILENAME = 'data.csv'
# 定义函数来读取Modbus值并写入CSV文件
def read_modbus_and_write_csv():
# 连接到Modbus TCP服务器
client = ModbusTcpClient(SERVER_IP, port=SERVER_PORT)
# 连接成功后,循环执行读取并写入操作
for num in range(10):
# 获取当前时间戳
current_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# 读取Modbus寄存器的值
response = client.read_holding_registers(REGISTER_ADDRESS, REGISTER_COUNT, unit=1)
# 检查响应是否正常
if response.isError():
print(f"Modbus读取错误: {response}")
else:
value = response.registers[0]
# 将读取到的值写入CSV文件
with open(CSV_FILENAME, 'a', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow([current_time, value])
# 间隔5秒钟再次执行读取操作
time.sleep(1)
# 关闭Modbus TCP连接
client.close()
# 执行函数
read_modbus_and_write_csv()
引入库 pip3 install pymodbus==2.5.3
不要用自动引入的库 因为会因为版本过高而报错。