当前位置:首页>python>Python 与三菱 MC 协议通信 远程运维平台

Python 与三菱 MC 协议通信 远程运维平台

  • 2026-08-21 15:20:41
Python 与三菱 MC 协议通信 远程运维平台

用Python远程读取三菱PLC数据,我踩了3个坑

上个月在江苏某化工厂,12台iQ-R PLC的远程运维项目差点黄了。不是PLC不行,是Python和MC协议的通信链路直接崩了3次。每天凌晨3点,运维群里就开始刷屏“PLC读不到数据了”。我蹲在机柜旁,看着Wireshark抓包的长串Hex数据,才意识到MC协议通信远比我想的复杂。

一、MC协议通信的3个致命误解

你以为的“直接发命令” vs 实际上的“协议握手”

老张的教训:他写了5年代码,第一次接MC协议时,直接写了个socket.send(b'\\x50\\x00...'),结果PLC返回了一堆乱码。调试了3天,发现是帧头格式错了。 
参数
你以为
实际上
协议版本
自动识别
必须显式指定3E帧
网络编号
0x00
实际需匹配PLC设置
站号
0xFF
多站时需配置
定时器
0x0010
实际推荐0x003C(60秒)
核心知识点1:MC协议的3E帧结构包含固定8字节头,不是简单的数据包乱发。我用的最终代码: 
import socket 

import struct

import time

class MCRemoteClient:

"""三菱MC协议3E帧通信客户端"""

def __init__(self, plc_ip='192.168.1.100', plc_port=1025):

self.plc_ip = plc_ip

self.plc_port = plc_port

self.sock = None

self.connect()

def connect(self):

"""建立TCP连接,超时5秒"""

self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

self.sock.settimeout(5.0)

try:

self.sock.connect((self.plc_ip, self.plc_port))

print(f"[OK] 连接成功 -> {self.plc_ip}:{self.plc_port}")

except Exception as e:

print(f"[ERROR] 连接失败: {e}")

self.sock = None

def _build_3e_frame(self, subcommand, data):

"""构建3E帧格式

帧结构: 帧头(2B) + 网络编号(1B) + PC编号(1B) +

请求目标(1B) + 定时器(2B) + 命令(2B) +

子命令(2B) + 数据体(N)

"""

frame = b'\\x50\\x00'  # 帧头固定

frame += b'\\x00'      # 网络编号

frame += b'\\xff'      # PC编号(默认255)

frame += b'\\xff\\x03' # 请求目标

frame += b'\\x00\\x3c' # 定时器 60秒

frame += b'\\x04\\x01' # 命令:批量读取

frame += struct.pack('>H', subcommand)  # 子命令

frame += data

return frame

def send_command(self, command_bytes):

"""发送命令并接收响应"""

if not self.sock:

print("[ERROR] 未连接")

return None

try:

self.sock.send(command_bytes)

response = self.sock.recv(2048)

return response

except socket.timeout:

print("[ERROR] 接收超时")

return None

数据解析的“字节序陷阱”

实际案例:读取D100的32位浮点数,返回的字节是[0x41, 0x28, 0x00, 0x00]。我直接按小端解析成0x00002841,结果值是10.064,实际应该是10.25。 错误原因:MC协议返回的是大端序,但Python的struct.unpack默认是小端。需要手动指定>前缀。 
数据类型
字节数
解析方式
实际值
16位无符号
2
>H
0x1234 → 4660
32位浮点
4
>f
0x41200000 → 10.0
32位整数
4
>i
0x0000000A → 10
核心知识点2MC协议返回数据是大端序,与PC本地小端序相反。解析时必须用struct.unpack('>f', data)。 
def parse_mc_response(self, response_bytes): 

"""解析MC协议响应数据"""

if len(response_bytes) < 11:

print("[ERROR] 响应数据太短")

return None

# 检查响应头

if response_bytes[0:4] != b'\\xd0\\x00\\x00\\xff':

print("[ERROR] 响应头异常")

return None

# 解析数据长度

data_length = struct.unpack('>H', response_bytes[7:9])[0]

data_start = 11  # 数据从第11字节开始

# 读取16位整数

if data_length == 2:

return struct.unpack('>H', response_bytes[data_start:data_start+2])[0]

# 读取32位浮点

elif data_length == 4:

return struct.unpack('>f', response_bytes[data_start:data_start+4])[0]

# 读取字符串

else:

return response_bytes[data_start:data_start+data_length].decode('ascii', errors='ignore')

通信超时的“隐形杀手”

踩坑故事:某天晚上10点,运维平台突然全部离线。查日志发现所有PLC都返回0x5C(通信超时)。原来是PLC的CPU模块在凌晨自动执行了周期性维护,导致TCP连接中断。 核心知识点3PLC的CPU模块有默认空闲超时(建议设为60秒以上)。如果30秒内没有新命令,连接会自动断开。需要实现心跳或重连机制。 
超时设置
推荐值
说明
PLC CPU模块
60秒
改大到120秒更安全
Python socket
10秒
避免长时间阻塞
重连间隔
5秒
失败后等5秒再试
最大重连次数
5次
超过后发告警
def read_with_retry(self, address, retries=3): 

"""带重连机制的读取函数"""

for attempt in range(retries):

response = self.send_command(address)

if response:

return self.parse_mc_response(response)

else:

print(f"[WARN] 第{attempt+1}次读取失败,重连中...")

self.connect()

time.sleep(1)

print("[ERROR] 重试3次后仍失败")

return None

二、远程运维平台的实战架构

从单机到集群的3层架构

需求分析:50个PLC分布在3个不同厂区,每个PLC需要读取500个寄存器数据。如果每台PLC单独维护连接,会创建150个TCP连接,导致PLC端资源耗尽。 解决方案:采用连接池 + 异步轮询架构。 
import asyncio 

import aiohttp

class RemotePLCManager:

"""远程PLC管理平台"""

def __init__(self, plc_list):

self.plc_list = plc_list  # [{'ip':'192.168.1.100','name':'1号PLC'}, ...]

self.connection_pool = {}  # 连接池

self.data_buffer = {}  # 数据缓存

async def connect_all(self):

"""异步连接所有PLC"""

tasks = [self.connect_plc(plc) for plc in self.plc_list]

results = await asyncio.gather(*tasks, return_exceptions=True)

for i, result in enumerate(results):

if isinstance(result, Exception):

print(f"[ERROR] {self.plc_list[i]['name']}连接失败: {result}")

else:

print(f"[OK] {self.plc_list[i]['name']}连接成功")

async def connect_plc(self, plc_info):

"""单台PLC连接(异步)"""

client = MCRemoteClient(plc_info['ip'], 1025)

self.connection_pool[plc_info['name']] = client

return client

数据采集的“心跳与批处理”

旧方案:每台PLC每秒发送1次读取命令,50台PLC就是50次/秒,网络带宽占用约3.5Mbps,CPU负载高达85%。 新方案:采用批量读取 + 5秒轮询,带宽降到0.2Mbps,CPU负载降到12%。 
指标
旧方案(每秒读)
新方案(5秒批量)
网络带宽
3.5Mbps
0.2Mbps
CPU负载
85%
12%
数据延迟
1秒
5秒
PLC端负载
async def batch_read(self, plc_name, addresses): 

"""批量读取多个地址(异步)"""

client = self.connection_pool.get(plc_name)

if not client:

return None

# 构建批量读取命令

data = b''

for addr in addresses:

# 地址格式:D100 → 0x0064

data += struct.pack('>H', addr)

command = client._build_3e_frame(0x0001, data)  # 子命令0x0001=批量读取

response = await self.async_send(client, command)

return self.parse_batch_response(response, len(addresses))

三、运维平台的告警与可视化

数据异常的“3级告警”

实战案例:某天XX厂区温度传感器返回0xFFFF(65535),明显异常。但程序只判断“数据是否在正常范围”,没处理“数据抖动”问题。 优化方案:加入数据质量评估,过滤异常跳变。 
def evaluate_data_quality(self, current_value, previous_value, threshold=5): 

"""评估数据质量"""

# 1. 检查数值范围

if current_value < 0 or current_value > 10000:

return "异常值"

# 2. 检查变化率(防止跳变)

if previous_value and abs(current_value - previous_value) > threshold:

return "跳变异常"

# 3. 检查连续相同值(传感器可能卡死)

if current_value == previous_value:

self.same_count += 1

if self.same_count > 5:

return "传感器可能卡死"

else:

self.same_count = 0

return "正常"

远程写入的“安全锁”

重要提醒:远程写入PLC数据时,必须做双重确认。我见过实习生直接写了个write_plc(100, 0),把D100清空了,导致整条产线停机。 
def safe_write_plc(self, plc_name, address, value, confirm=True): 

"""安全写入PLC(带确认机制)"""

if confirm:

# 第一步:读取当前值

current = self.read_plc(plc_name, address)

print(f"[INFO] 当前值:{current}")

# 第二部:发送写入命令

confirm_msg = f"确认写入 {plc_name} 的 {address} 值为 {value}? (y/n)"

if input(confirm_msg).lower() != 'y':

print("[CANCEL] 写入已取消")

return False

# 执行写入

write_command = self._build_write_command(plc_name, address, value)

response = self.send_command(write_command)

return response

四、运维平台的部署与监控

从Docker到云端的部署经验

踩坑:直接在Windows上运行Python脚本,晚上更新时忘记重启,导致数据丢失3小时。 推荐方案:用Docker + 定时任务实现自动重启。 
# Dockerfile 

FROM python:3.10-slim

WORKDIR /app

COPY requirements.txt .

RUN pip install -r requirements.txt

COPY . .

CMD ["python", "main.py"]

运维检查清单(可打印贴墙上): 
  1. 1.通信检查:每天凌晨检查TCP连接数,确保≤50(PLC端限制)2.数据延迟:监控数据更新间隔,超过10秒触发告警3.日志监控:记录所有通信失败事件,分析重连频率4.安全策略:禁止远程写入生产数据,除非有双重确认5.备份机制:每30分钟自动备份数据到云端
最后,留个互动问题:你用Python远程读取PLC时,遇到过最诡异的通信故障是什么?是因为字节序、超时还是协议版本不匹配?欢迎在评论区分享你的踩坑经历,我会筛选最有价值的3个案例,在下期教程中详细拆解。 行动指令:今晚就检查你的MC协议通信代码,确认是否设置了超时时间、是否正确处理了大端序、是否实现了重连机制。别等到凌晨3点被运维电话吵醒。  

📚 推荐阅读

触摸屏开发 触摸屏脚本编程

发布于 2026-07-19

VS Code+三菱PLC:配置这5步,编程效率翻倍

发布于 2026-07-27

三菱MELSEC iQ-R机械手维护:从常见故障到预防性编程的八重境界

发布于 2026-07-27

KEYWORDS

PLC, plc, iQ-R, 三菱

💡 如果你觉得这篇文章有帮助,请点个在看,分享给更多需要的人!

📝 关注我,获取更多实用干货~

🤝 有问题欢迎评论区留言交流!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 23:45:11 HTTP/2.0 GET : https://f.mffb.com.cn/a/508555.html
  2. 运行时间 : 0.401344s [ 吞吐率:2.49req/s ] 内存消耗:4,742.60kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=53610a6599b391255b77c74e485da786
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000879s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001535s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.006526s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000796s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001637s ]
  6. SELECT * FROM `set` [ RunTime:0.003818s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001817s ]
  8. SELECT * FROM `article` WHERE `id` = 508555 LIMIT 1 [ RunTime:0.023113s ]
  9. UPDATE `article` SET `lasttime` = 1787327112 WHERE `id` = 508555 [ RunTime:0.002530s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000748s ]
  11. SELECT * FROM `article` WHERE `id` < 508555 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001173s ]
  12. SELECT * FROM `article` WHERE `id` > 508555 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003619s ]
  13. SELECT * FROM `article` WHERE `id` < 508555 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.007201s ]
  14. SELECT * FROM `article` WHERE `id` < 508555 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.070758s ]
  15. SELECT * FROM `article` WHERE `id` < 508555 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.102481s ]
0.406969s