一、专业名词
主站 从站

主站从站对比.png
RS485
RS-485 是一种串行通信标准,属于差分信号传输技术,专为工业环境设计,具有以下核心特性:
- 差分传输:使用两根信号线(A/B线)传输反向信号,通过电压差表示数据(抗干扰强)。
- 多点通信:支持单总线上挂接多个设备(最多32个标准节点,通过中继器可扩展至256个)。
- 半双工:同一时间只能发送或接收(需方向控制,如通过RTS引脚切换)。
MODBUS
MODBUS 是一种串行通信协议,由Modicon公司(现施耐德电气)于1979年推出,用于工业电子设备间的数据交互(如PLC、传感器、HMI)。其核心特点是:
- 开放免费:无版权限制,成为工业领域最通用的协议。
- 主从架构:1个主站(Master)控制多个从站(Slave)。
-
简单高效:协议帧紧凑,适合低速网络(如RS485)。
协议版本对比
MODBUS协议版本对比.png
MODBUA-RTU
- 物理层:RS485(差分信号,抗干扰强)
- 数据格式:二进制帧(紧凑高效)
C#示例(使用NModbus库):
// 主站读取保持寄存器
var port = new SerialPort("COM1", 9600, Parity.Even, 8, StopBits.One);
port.Open();
var factory = new ModbusFactory();
var master = factory.CreateRtuMaster(port);
ushort[] registers = master.ReadHoldingRegisters(1, 0, 10); // 从站地址=1
MODBUA-TCP
- 物理层:以太网(TCP/IP)
- 数据格式:在RTU帧基础上添加MBAP头
C#示例:
var factory = new ModbusFactory();
var master = factory.CreateMaster(new TcpClient("192.168.1.100", 502));
bool[] coils = master.ReadCoils(0, 0, 5); // 读取线圈
MODBUS-ASCII
- 数据格式:每个字节转为ASCII字符(可读性强,效率低)
- 特点:帧以冒号:开始,换行符结束,适合调试。
Probus-DP(从站)
- 协议类型:PROFIBUS的子集,专注于高速设备级通信
- 从站实现:
- 通常由专用芯片(如SPC3)处理协议栈
- C#可通过厂商库(如Siemens.NET Library)间接交互
-
与MODBUS对比:
image.png
Profinet
- 基本定义
PROFINET 是基于工业以太网的开放式标准(IEC 61158),由PI国际组织(PROFIBUS & PROFINET International)维护,专为工业自动化设计。其核心定位是:
- 实时通信:支持微秒级同步,满足运动控制需求。
- IT融合:兼容标准TCP/IP协议栈,可与企业网无缝集成。
- 设备互操作性:全球超过5000万设备支持(如西门子、倍福、ABB)。
-
PROFINET vs PROFIBUS
image.png -
三大通信类型
image.png - 核心技术特性
- 设备替换无需编程(Plug-and-Play):
通过GSDML文件描述设备功能,工程师导入后自动识别。 - 网络冗余:
支持MRP(介质冗余协议),环网断线自愈时间<200ms。 - 带宽保障:
动态划分标准流量和实时流量通道,避免数据冲突。
Profinet-S7
- 本质:基于工业以太网的PROFINET协议,兼容西门子S7系列PLC
C#开发:
// 使用S7.Net库读取DB块
var plc = new Plc(CpuType.S71500, "192.168.0.1", 0, 1);
plc.Open();
var value = (ushort)plc.Read("DB1.DBW10"); // 读取DB1的第10个字
ASCII-BCD ASCII-hex
(1) ASCII-BCD
场景:某些仪表用ASCII字符表示BCD码(如"1234"表示十进制1234)
C#转换:
string asciiBcd = "31323334"; // ASCII "1234"
byte[] bytes = Enumerable.Range(0, asciiBcd.Length/2)
.Select(i => Convert.ToByte(asciiBcd.Substring(i*2, 2), 16))
.ToArray();
(2) ASCII-HEX
场景:直接传输十六进制值的ASCII形式(如"A2"表示0xA2)
C#转换:
string asciiHex = "A2";
byte value = Convert.ToByte(asciiHex, 16); // 输出0xA2
二、控制器
PLC
PLC(Programmable Logic Controller,可编程逻辑控制器)是工业自动化领域的核心控制设备,用于替代传统继电器逻辑控制,实现自动化生产线的逻辑控制、运动控制、数据采集等功能。
- 特点
高可靠性、实时性强 - 劣势
复杂算法支持弱
MCU(单片机)
- 特点:
低成本、低功耗,适合 嵌入式控制(如STM32、Arduino)。
通常需裸机编程或RTOS(如FreeRTOS)。 - 适用场景:
✅ 简单逻辑控制(如家电、小型设备)
✅ 对成本敏感的大批量生产(如传感器节点) - 局限:
❌ 复杂通信协议支持有限(需外挂模块)。
工业PC(IPC)
- 特点:
基于 x86/ARM架构,运行 Windows/Linux/RTOS,支持高级算法(如AI、机器视觉)。
开放式架构,可灵活扩展软件(如C#/Python开发)。 - 适用场景:
✅ 复杂数据处理(如质量检测、预测性维护)
✅ 需要 HMI+控制一体化 的系统(如智能仓储管理)
✅ 边缘计算(实时分析传感器数据) - 代表产品:西门子SIMATIC IPC、研华工控机。
三、软件
Wireshark软件
- 基本定义
Wireshark 是一款开源的网络协议分析工具,能够捕获并解析通过网卡的所有网络流量(包括工业协议),以可视化的方式展示数据包的底层细节。
核心用途:诊断通信故障、分析协议交互、逆向工程、安全审计。 -
核心功能与工业场景
image.png - 工业协议支持示例
-
MODBUS-TCP:解析功能码(Read Coils=0x01)、事务标识符
https://www.wireshark.org/docs/wsug_html_chunked/wsug_graphics/modbus.png - PROFINET:分析实时通道(RT)和同步报文
- OPC UA:解密安全通道(需配置证书)
- 基础使用步骤(以MODBUS-TCP为例)
- 选择网卡:启动Wireshark,选择工业设备连接的以太网接口(如Ethernet0)。
- 开始抓包:点击“Start”捕获数据流。
- 过滤报文:输入过滤条件(如 modbus && ip.addr == 192.168.1.100)。
- 分析报文:点击任意包,查看分层解析:
- Frame:物理层时间戳
- Ethernet:MAC地址
- IP/TCP:源/目标端口
- MODBUS:功能码、寄存器地址、数据值
TAS-LAN-751(电脑上Tool-V5.2.8+D20241129.exe)
是杭州塔石物联网(Tastek)公司研发的串口服务器/网关硬件的软件,其功能包括:
- 虚拟串口映射:将网络端口(TCP/IP)转换为虚拟COM口,供上位机软件调用1。
- 设备管理:配置串口参数(波特率、数据位等)及网络连接(IP/端口)。
- 数据监控:实时显示RS485/RS232设备的通信数据。
四、硬件
USB转RS485转换器(带隔离)
- USB转RS485转换器
- 功能: 这是一种协议转换设备,能将计算机的USB接口转换为工业领域常用的RS485串行通信接口。
- 用途: RS485是一种抗干扰能力强、支持长距离通信(可达1200米)的差分信号标准,常用于工业自动化、PLC、传感器、仪表等设备。通过这种转换器,现代计算机(通常只有USB接口)可以与传统RS485设备通信。
- 带隔离(Is olated)
- 电气隔离:指转换器的USB端和RS485端之间通过光耦或磁耦器件实现了电气隔离(如隔离电压可达2500V或更高)。
- 作用
- 抗干扰:避免RS485总线上的高压浪涌、地线环路噪声干扰USB端或计算机。
- 保护设备:防止因RS485侧电压异常(如雷击、短路)损坏计算机的USB端口。
- 消除地电位差:工业环境中不同设备的地线可能存在电压差,隔离可避免因此导致的通信故障。




