上位机数据备份的自动定时任务
工控上位机(如 WinCC、组态王、Intouch)运行时产生的数据是企业的核心资产。一旦硬盘损坏或系统崩溃,没有备份将导致巨大的生产损失。本文介绍如何利用 Windows 自带的任务计划程序和批处理脚本,实现数据“无人值守”的自动定时备份,无需安装任何第三方软件。
第一阶段:规划备份路径与策略
在编写脚本前,需明确数据从哪里来、要存到哪里去。
- 确认 上位机软件的数据存储路径。
- 常见位置通常位于
D:\Project\Data或C:\Program Files\SoftwareName\Project。 - 若使用 SQL Server 数据库,需记录
.mdf和.ldf文件的物理路径。
- 常见位置通常位于
- 准备 备份存储位置。
- 建议 使用外置移动硬盘、映射网络磁盘(NAS)或除系统盘(C盘)以外的本地分区。
- 创建 一个新的文件夹,例如
E:\Auto_Backup。
- 估算 所需存储空间。
- 为了避免备份盘写满,需计算保留周期内的数据总量。
- 使用公式估算:$V_{total} = V_{daily} \times N_{days}$
- 其中,$V_{total}$ 为总容量,$V_{daily}$ 为日均数据增量,$N_{days}$ 为希望保留的天数。
第二阶段:编写自动备份脚本
使用 robocopy(Robust File Copy)命令编写批处理脚本。该工具是 Windows 内置的,具备断点续传和镜像同步功能,比普通的复制命令更可靠。
-
右键 桌面空白处。选择 “新建” -> “文本文档”。
-
打开 该文本文档。输入 以下代码:
@echo off setlocal :: --- 配置区域 --- :: 设置源路径(请根据实际情况修改,确保最后有反斜杠) set "source_dir=D:\SCADA_Project\Data\" :: 设置目标路径(备份存放位置,建议使用移动硬盘或网络盘) set "target_dir=E:\Auto_Backup\" :: 设置日志文件路径 set "log_file=E:\Auto_Backup\backup_log.txt" :: ---------------- echo ======================================== >> "%log_file%" echo 开始备份时间: %date% %time% >> "%log_file%" :: 执行镜像备份 (/MIR): 如果源文件删除了,目标也会删除,保持完全一致 :: /R:3 失败重试 3 次 :: /W:5 每次重试等待 5 秒 :: /NP 不显示进度百分比(日志更清晰) :: /LOG+: 追加日志而不是覆盖 robocopy "%source_dir%" "%target_dir%" /MIR /R:3 /W:5 /NP /LOG+:"%log_file%" echo 备份结束时间: %date% %time% >> "%log_file%" echo ======================================== >> "%log_file%" endlocal -
修改 脚本中的
source_dir和target_dir为实际路径。 -
保存 文件。按下
Ctrl + S关闭编辑器。 -
重命名 该文件。将后缀名从
.txt改为.bat(例如AutoBackup.bat)。- 若看不见后缀名,点击 窗口顶部的“查看”选项卡。勾选 “文件扩展名”。
第三阶段:设置定时任务
将脚本挂载到 Windows 任务计划程序中,让系统按时间自动执行。
- 按下
Win + R键。输入taskschd.msc。按下 回车键打开任务计划程序。 - 点击 右侧操作栏的 “创建基本任务”。
- 输入 名称
上位机每日自动备份。点击 “下一步”。 - 选择 触发器。勾选 “每天”。点击 “下一步”。
- 设置 开始时间。
- 建议 设置在生产低峰期,如
02:00:00。 - 重复 间隔选择 “1” 天。点击 “下一步”。
- 建议 设置在生产低峰期,如
- 选择 操作。勾选 “启动程序”。点击 “下一步”。
- 配置 程序路径。
- 点击 “浏览” 按钮。选中 并 打开 第二阶段创建的
.bat文件。 - “起始于(可选)” 一栏 填写 脚本所在的目录(例如
C:\Users\Admin\Desktop),这能防止路径找不到的问题。
- 点击 “浏览” 按钮。选中 并 打开 第二阶段创建的
- 点击 “下一步”。勾选 “当单击完成时,打开此任务属性的对话框”。
- 点击 “完成” 按钮。
- 切换 到 “条件” 选项卡。
- 勾选 “唤醒计算机运行此任务”(防止电脑休眠导致备份失败)。
- 建议 勾选 “只有在计算机使用交流电源时才启动此任务”(针对笔记本上位机)。
- 点击 “确定” 保存设置。
第四阶段:功能原理与逻辑解析
为了确保数据传输的可靠性,任务执行流程遵循严格的逻辑顺序。
graph TD
A["定时触发器到达"] --> B{源路径是否
可访问?} B -- 否 --> C["记录错误日志至文件"] B -- 是 --> D["执行 Robocopy 镜像同步"] D --> E{复制是否成功?} E -- 重试3次后仍失败 --> C E -- 成功 --> F["记录完成时间与状态"] F --> G["任务结束"]
可访问?} B -- 否 --> C["记录错误日志至文件"] B -- 是 --> D["执行 Robocopy 镜像同步"] D --> E{复制是否成功?} E -- 重试3次后仍失败 --> C E -- 成功 --> F["记录完成时间与状态"] F --> G["任务结束"]
脚本的核心参数决定了备份的行为,以下是 robocopy 关键参数对照表:
| 参数代码 | 功能说明 | 实际作用 |
|---|---|---|
/MIR |
镜像目录树 | 完全同步:目标文件夹将与源文件夹一模一样。源中删除的文件,目标中也会被删除。 |
/R:3 |
重试次数 | 遇到文件被占用(如正在记录的数据库文件)时,尝试读取 3 次,不立即报错放弃。 |
/W:5 |
等待时间 | 每次重试之间等待 5 秒,给系统一点喘息时间,释放文件锁定。 |
/LOG+: |
日志追加 | 将每次运行的结果追加写入同一个日志文件,方便长期追踪。 |
第五阶段:验证与监控
设置完成后,必须进行人工验证,确保任务在未来能正常执行。
- 右键 列表中的
上位机每日自动备份任务。选择 “运行”。 - 等待 几秒钟。打开 备份目标文件夹(
E:\Auto_Backup)。 - 检查 文件是否出现,且文件大小与源文件一致。
- 打开 日志文件(
backup_log.txt)。 - 查看 末尾是否显示
错误的文件数 = 0。如果不是0,需检查源文件是否被上位机软件独占锁定,或者路径是否错误。

暂无评论,快来抢沙发吧!