第二章 工控机硬件环境准备:选型、装系统、配网络

大家好,我是老张。这一章咱们聊聊工控机的硬件环境准备。说实话,很多搞数据库的朋友觉得工控机跟普通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,干净得很。安装时注意:

  1. 关闭自动更新。工业环境最怕系统半夜重启。
  2. 禁用Windows Defender实时保护。它会影响数据库的I/O性能。
  3. 电源计划设为“高性能”,别让CPU降频。

我的小技巧:装完系统后,第一时间做系统备份。用Ghost或Dism++做个镜像,万一系统崩了,十分钟就能恢复。我在现场吃过这个亏,有一次系统蓝屏,重装花了半天,生产线停了,老板差点骂娘。

2.2.2 Linux安装要点

Linux安装相对简单。我推荐Ubuntu 22.04 LTS或Rocky Linux 9。安装时注意分区:

  • /boot分区:1GB足够
  • 根分区/:50GB以上
  • /var分区:单独分出来,至少100GB。数据库日志和缓存文件都在这里,如果和根分区共用,写满会导致系统崩溃。
  • /data分区:剩下的空间全给数据盘。工业数据库的数据文件放这里。

安装完成后,记得做两件事:

  1. 更新系统:sudo apt update && sudo apt upgrade -y
  2. 安装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。有什么问题,欢迎在评论区留言。