第二章 工控机硬件环境准备:选型、装系统、配网络
大家好,我是老张。这一章咱们聊聊工控机的硬件环境准备。说实话,很多搞数据库的朋友觉得工控机跟普通PC差不多,插电就能用。但我在现场吃过亏——有一次在化工厂,工控机装好了,数据库也跑起来了,结果第二天就宕机。为什么?散热没考虑好,CPU直接过热保护了。所以这一章,咱们把选型、装系统、配网络这几个关键点掰开揉碎了讲。
2.1 工控机选型要点
工控机不是普通电脑。它要在粉尘、震动、高温、潮湿的环境里干活。我个人的习惯是,选型时先看三个硬指标:
- CPU性能:跑工业数据库,建议至少i5或同等性能的处理器。如果数据量大的,直接上i7或Xeon。我在一个钢铁厂的项目里,用了i3的工控机跑SQLite,结果查询一多就卡死,后来换了i7才搞定。
- 内存容量:工业数据库通常需要缓存大量实时数据。8GB是底线,16GB算舒服,32GB以上才叫富裕。我建议直接上16GB,别省这点钱。
- 存储类型:必须用工业级SSD,别用消费级。工业级SSD支持宽温(-40℃到85℃),而且有掉电保护。我见过一个案例,普通SSD在车间里用了半年就坏道了,数据全丢。
重要提醒:工控机的扩展接口也很关键。至少要有2个千兆网口、4个以上USB口、1个串口(RS232/485)。很多PLC和传感器还走串口协议,没有串口你就得买转接器,麻烦得很。
另外,别忘了看防护等级。IP65以上的工控机才能防尘防水。如果现场有腐蚀性气体,还得选不锈钢外壳的。嗯,这些细节,采购单上一定要写清楚。
2.2 操作系统安装(Windows/Linux)
操作系统选哪个?这得看你的数据库和上层应用。Windows生态好,驱动全,但稳定性不如Linux。我个人偏向Linux,尤其是Ubuntu LTS或CentOS/Rocky Linux。为什么?工业数据库很多是开源的,比如InfluxDB、TimescaleDB,在Linux上跑得最稳。
2.2.1 Windows安装要点
如果你非要用Windows,我建议装Windows 10 IoT Enterprise LTSC版。这个版本没有商店、没有Cortana,干净得很。安装时注意:
- 关闭自动更新。工业环境最怕系统半夜重启。
- 禁用Windows Defender实时保护。它会影响数据库的I/O性能。
- 电源计划设为“高性能”,别让CPU降频。
我的小技巧:装完系统后,第一时间做系统备份。用Ghost或Dism++做个镜像,万一系统崩了,十分钟就能恢复。我在现场吃过这个亏,有一次系统蓝屏,重装花了半天,生产线停了,老板差点骂娘。
2.2.2 Linux安装要点
Linux安装相对简单。我推荐Ubuntu 22.04 LTS或Rocky Linux 9。安装时注意分区:
- /boot分区:1GB足够
- 根分区/:50GB以上
- /var分区:单独分出来,至少100GB。数据库日志和缓存文件都在这里,如果和根分区共用,写满会导致系统崩溃。
- /data分区:剩下的空间全给数据盘。工业数据库的数据文件放这里。
安装完成后,记得做两件事:
- 更新系统:
sudo apt update && sudo apt upgrade -y - 安装SSH服务:
sudo apt install openssh-server。工控机通常无头运行,远程管理全靠SSH。
注意:千万别装图形界面!工控机资源有限,图形界面浪费CPU和内存。我见过有人装了Ubuntu桌面版跑数据库,结果内存被GNOME吃了2GB,数据库性能直接打折扣。用Server版,纯命令行,稳得很。
2.3 网络配置与防火墙设置
网络配置是工控机最容易被忽视的环节。你想想看,数据库要跟PLC、SCADA、上位机通信,网络不通一切白搭。
2.3.1 网络配置
工控机通常有两个网口:一个连工业网络(PLC、传感器),一个连办公网络(MES、ERP)。我建议这样配置:
- 工业网口:设置固定IP,比如192.168.1.100/24。不要用DHCP,工业设备不支持动态IP。
- 办公网口:可以用DHCP,也可以设固定IP,看公司网络策略。
配置命令(Linux):
# 编辑网络配置文件
sudo nano /etc/netplan/01-netcfg.yaml
# 内容示例
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
eth1:
dhcp4: yes
# 应用配置
sudo netplan apply
Windows下更简单,直接在“网络和共享中心”里改IPv4设置就行。但我提醒一句:两个网口的网关不要设成同一个,否则路由表会乱。我曾经在一个项目里,两个网口都设了192.168.1.1的网关,结果数据包乱跑,PLC通信时断时续,排查了整整一天。
2.3.2 防火墙设置
防火墙是双刃剑。开得太严,数据库连不上;开得太松,安全没保障。我的原则是:只开放必要的端口。
工业数据库常用端口:
| 数据库类型 | 默认端口 | 说明 |
|---|---|---|
| MySQL/MariaDB | 3306 | 关系型数据库 |
| PostgreSQL | 5432 | 关系型数据库 |
| InfluxDB | 8086 | 时序数据库 |
| SQL Server | 1433 | 微软数据库 |
| OPC UA | 4840 | 工业通信协议 |
Linux下用ufw或firewalld配置:
# 使用ufw(Ubuntu)
sudo ufw enable
sudo ufw allow 22/tcp # SSH
sudo ufw allow 3306/tcp # MySQL
sudo ufw allow 8086/tcp # InfluxDB
sudo ufw status
# 使用firewalld(Rocky Linux)
sudo systemctl start firewalld
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
Windows下用高级安全防火墙,新建入站规则,开放对应端口就行。注意:别把3389(远程桌面)暴露到外网,否则等着被爆破吧。
避坑指南:我曾经在一个项目里,防火墙规则配好了,但数据库还是连不上。查了半天,发现是工控机自带的硬件防火墙模块没关。有些工控机主板上有独立的防火墙芯片,需要在BIOS里禁用。所以,装完系统后,先ping一下自己,再ping一下网关,最后ping一下数据库客户端,逐层排查。
2.4 环境验证
硬件、系统、网络都配好了,最后一步是验证。我习惯写一个简单的脚本,检查所有关键点:
#!/bin/bash
# 环境验证脚本
echo "=== CPU信息 ==="
lscpu | grep "Model name"
echo "=== 内存信息 ==="
free -h
echo "=== 磁盘信息 ==="
df -h
echo "=== 网络连通性 ==="
ping -c 4 192.168.1.1
echo "=== 防火墙状态 ==="
sudo ufw status
echo "=== 数据库端口监听 ==="
ss -tlnp | grep -E "3306|5432|8086"
跑一遍这个脚本,所有信息一目了然。如果哪个环节有问题,赶紧排查。别等到上线了才发现网线没插紧——这种事我真遇到过,现场工程师把网线插到了交换机上,但交换机没通电,折腾了两小时。
好了,这一章的内容就这些。下一章咱们开始装数据库,到时候我会手把手教你怎么在工控机上部署InfluxDB和TimescaleDB。有什么问题,欢迎在评论区留言。