Files
online_sys/frontend_智能制造/fix_plc_questions_manual.py

138 lines
5.1 KiB
Python
Raw Permalink Normal View History

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import re
from datetime import datetime
# 备份当前文件
print("创建备份...")
backup_time = datetime.now().strftime('%Y%m%d_%H%M%S')
with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
content = f.read()
with open(f'src/mocks/resumeInterviewMock.js.backup_plc_fix_{backup_time}', 'w', encoding='utf-8') as backup:
backup.write(content)
# PLC完整面试题数据手动构建
plc_questions = ''' "questions": [
{
"id": "group_q1",
"question": "# 一、知识点问答题",
"subQuestions": [
{
"id": "q1_1",
"question": "简述PLC的基本组成部分",
"answer": "中央处理器CPU、输入/输出模块I/O、电源模块、编程设备如电脑+软件)、通信模块。"
},
{
"id": "q1_2",
"question": "说明梯形图Ladder Diagram中常开触点NO和常闭触点NC的区别",
"answer": "常开触点NO未通电时断开通电后闭合符号| |常闭触点NC未通电时闭合通电后断开符号|/|"
},
{
"id": "q1_3",
"question": "什么是传感器?列举两种常见类型",
"answer": "检测物理量(如位置、温度)并转换为电信号的装置。例如:接近开关(检测金属)、光电传感器(检测物体有无)。"
},
{
"id": "q1_4",
"question": "PLC程序中\\"自锁电路\\"的作用是什么?",
"answer": "保持输出状态持续通电(如启动按钮松开后电机仍运行),直到停止信号触发。"
}
]
},
{
"id": "group_q2",
"question": "# 二、场景问答题",
"subQuestions": [
{
"id": "q2_1",
"question": "设备运行时,某个气缸不动作,你会如何逐步排查?",
"answer": "第1步检查气源压力是否正常第2步确认PLC是否有输出信号看输出指示灯第3步测试电磁阀是否通电用万用表测电压第4步手动触发电磁阀检查气缸是否卡死"
},
{
"id": "q2_2",
"question": "操作工按下启动按钮,但设备无反应,可能有哪些原因?",
"answer": "急停按钮未复位安全门未关闭启动按钮接线松动PLC未处于运行模式"
},
{
"id": "q2_3",
"question": "发现PLC程序需要修改你应该遵守什么操作流程",
"answer": "停机并挂\\"禁止操作\\"警示牌备份原始程序修改后模拟测试经主管批准后下载到PLC记录修改内容"
}
]
},
{
"id": "group_q3",
"question": "# 三、选择题",
"subQuestions": [
{
"id": "q3_1",
"question": "PLC的输入信号通常来自 ",
"answer": "B"
},
{
"id": "q3_2",
"question": "以下哪种情况会导致PLC输出点烧坏 ",
"answer": "B"
},
{
"id": "q3_3",
"question": "急停按钮的接线应采用( ",
"answer": "B"
},
{
"id": "q3_4",
"question": "表示\\"电机过载\\"的PLC输入信号一般由 )提供",
"answer": "B"
},
{
"id": "q3_5",
"question": "梯形图中( )符号代表( ",
"answer": "A"
},
{
"id": "q3_6",
"question": "PLC通信中RS485接口的特点是 ",
"answer": "B"
},
{
"id": "q3_7",
"question": "发现现场导线破损露铜,正确处理是( ",
"answer": "B"
},
{
"id": "q3_8",
"question": "编写PLC程序时注释的作用是 ",
"answer": "B"
},
{
"id": "q3_9",
"question": "设备维护后首次上电,应( ",
"answer": "B"
}
]
}
]'''
# 替换PLC的questions部分
print("正在替换PLC面试题...")
pattern = r'("name": "PLC".*?"questions": \[.*?\]\s*)(?=\s*\})'
replacement = lambda m: m.group(0).split('"questions": [')[0] + plc_questions
new_content = re.sub(pattern, replacement, content, flags=re.DOTALL)
# 保存文件
with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
f.write(new_content)
print("✅ PLC面试题更新完成")
# 验证语法
import subprocess
result = subprocess.run(['node', '-c', 'src/mocks/resumeInterviewMock.js'], capture_output=True, text=True)
if result.returncode == 0:
print("✅ 语法检查通过!")
print("PLC现在有3个章节16道题")
else:
print("❌ 语法错误:")
print(result.stderr)