Spiga

标签为上位机的文章

通信协议:MQTT

2026-04-04 13:00:10

摘要:一、MQTT通信 1. 工业互联数据交换协议 HTTP:短连接 长连接 CoAP (Constrained Application Protocol),受限应用协议,应用于无线传感网中协议。 MQTT (Message Queuing Telemetry Transport ),消息队列遥测传输,由 IBM 开发的即时通讯协议。 DDS(Data Distribution Service for Real-Time Systems),面向实时系统的数据分布服务。 AMQP(Advanced Message Queuing Protocol),先进消息队列协议 RabbitMQ XMPP(Extensible Messaging and Presence Protocol)可扩展通讯和表示协议 XML JMS (Java Message Service),即消息服务,这是JAVA平台中著名的消息队列协议 2. MQTT 一种基于发布/订阅模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。 极少的数据完成远程通信 核心内容: MQTT定义:轻量级发布/订阅消息协议,适用于低带宽、高延迟网络。 核心特点:低开销、异步通信、支持QoS(0/1/2)。 适用场景:物联网设备通信、工业设备监控(如MES中的设备状态上报)。 通信过程 服务端/Broker 客户端(App/Device) 通信概念:登录注册(Client ID)、订阅、主题、负载、发布、消息、服务质量 通信细节: 基于TCP协议的应用层协议 固定报头 可变报头 载荷内容 3. 固定报头 如:0010 0100 消息类型(第一个字节的高4位) 标志位(第一个字节的低4位) 消息长度:长度扩展,最大长度256M数据 4. 可变报头 连接标志 报文标识符(2字节) ,发布、订阅、取消订阅 5. 通信载荷 6. MQTT主题过滤 主题层级分隔符:“/”,用于将结构化引入主题名 A套/客厅/电视、A套/客厅/空调 通配符: “#”、“+”、“$”,作用:订阅的主题过滤器可以包含特殊的通配符,允许你一次订阅多个主题。 种类: # 当前节点下的所有节点,包括父级 例:A/# 包括A、A/B、A/B/C …… 阅读全文

通信协议:SECS/GEM

2026-03-28 11:53:07

摘要:一、SECS/GEM 1. SECS/GEM通信 Semiconductor Equipment Communication Standard/Generic Equipment Model(半导体通用设备通信标准/通用设备模型)是半导体制造设备之间进行通信的标准协议。它定义了一套标准消息格式和通信规则,以便设备能够有效地与制造执行系统(MES)或工厂自动化系统进行通信和数据交换。 主要用于半导体制造设备,如晶圆加工机、封装机、测试设备等。这些设备需要通过SECS/GEM协议与工厂自动化系统进行数据交换和控制。 在高度自动化的半导体制造厂中,CIM(Computer Integrated Manufacturing【计算机整合制造】) 统一管理各设备的生产流程,并随时监控设备过程的状态,以减少过程失误进而降低成本及提升产品的质量。但随着过程的不同,各设备有着不同特性的差异且各制造商所提供的设备也不尽相同,因此增加CIM自动化管理的困难与复杂程度。软件集成自动化存在的主要问题是在不同的设备供应商之间没有标准的通讯协议。设备供应商不向半导体生产商开放通讯协议及接口软件,这使得半导体生产商不得不建立他们自己的软件“连接”,导致了项目费用的巨大增加。 SECS/GEM是由国际半导体设备与材料协会(SEMI)的会员一起构建的连接性标准。应用于在设备和工厂管理系统间的通讯标准。是半导体的设备接口协议,用于设备到主机的数据通讯。经过引入SECS/GEM,制造可以搜集更多的信息,SECS/GEM使设备和主机中心可以畅通无阻地停止通讯,从而完成智能工厂自动化。 2. 仿真环境 SEComSimulator — 需要.NET Framework 3.5 SECS Emulator 功能上是一样 建议使用上面的 WireShark / TCP调试助手(报文测试) 3. SECS/GEM结构与流程 协议结构 通信方式:RS232(SerialPort)、TCP/IP(Socket—IP地址 Port 进行Connect) 通信流程-HSMS 4. 消息报文主体结构 Message Length (4 Bytes) Message Header (10 Bytes) Message Text (0 to ~ 8 Mbytes)…… 阅读全文

通信协议:三菱

2026-03-21 23:00:32

摘要:一、三菱PLC协议 1. 三菱PLC设备 PLC以及相关通信模块:FX、Q、R、L、A 通信模块:C24、E71 2. 三菱PLC存储区与访问规则 3. 通信协议 MC协议: 公开 支持Ascii以及二进制两种数据格式 协议体系:串口:1C、2C、3C、4C 以太网:4E、3E、1E Modbus、MX-Component 请求流程,WireShark监控通信过程,McProtocol库测试使用:仿真环境验证 (1)建立TCP连接 Scoket Connect (2)执行相关操作 读、写 字节序: 小端 byte[] bytes {低 高 _ _ _ _ } 报文中的字节序小端模式 123 0x00,0x7B bytes[0]=0x7B bytes[1]=0x00 4. 功能操作分类 读 成批读出:字、位 :指定一个地址 D0 指定一个数量 返回相关数据 连续请求数据 字单位的随机读出 :不连续的地址请求 D0 D100 W10 每个地址读一个长度 多块成批读出 :不连续的地址 地址带长度 位按字处理? 写 成批写入:字、位 随机写入:字、位 多块成批写入 5. 成批读出报文 // 发送批量读取请求报文:0401 // 按字从 D05 地址开始请求 3个地址的数据 // D存储区,一个地址就是一个字(两个字节) // 3*2=6个字节的数据响应返回 // 按位从 M10 地址开始请求5个地址的数据 10 - 0A 00 00 // M存储区,按位进行地址分配(ON/OFF) // 3个字节 M10 M11 M12 M13 M14 // 0x11 0x00 0x10 // // *******按位从X123地址请求******** // 起始地址 123 00 01 23 - 0x23 0x01 0x00 // // 按字从 M10 地址开始 请求20个地址的数据 M10 M11 M12 ..... M29 // 一个字存16个状态 20-》需…… 阅读全文

通信协议:欧姆龙

2026-03-14 12:28:34

摘要:一、欧姆龙协议 1. 欧姆龙通信设备 PLC:系列 CS系列、CJ系列、CP系列、NJ/NX系列 微型:CPM1A、CPM2A、CP1H、CP1L 小型:CPM2C、CQM1H、CJ1M 中型:C200H、CJ1、CS1 大型:CV、CS1D 运动控制器:NJ、NX等 2. 欧姆龙PLC存储区 存储区分类 CIO:I/O继电器区、DM:数据区 WR:工作区,内部继电器 HR:保持继电器 AR:是模拟通道 C:计数器 、 T:定时器 访问规则 最小存储单位是Word 2字节 bit、Word、Dword 访问地址: 字 0.0 CIO0.1 CIO0.15 D100 W100 W100.2 支持Modbus协议/OPC 3. FINS串口通信 特点 文档支持 Commands(5-1-1) Memory Area(5-2-2) End Codes(5-1-3) PLC 默认存储 大端 请求 响应 报文格式 static void FINS_Serial_Test() { SerialPort serialPort = new SerialPort(COM1); serialPort.Open(); string unit_num = 23; ushort byte_addr = 100; byte bit_addr = 0; ushort count = 5; string cmd = $@{unit_num}FA000000000010182 + ${byte_addr.ToString(X4)}{bit_addr.ToString(X2)}{count.ToString(X4)}; // 计算 FCS 校验 var fcs = FCS(cmd); cmd += fcs; // * \r cmd += *\r; byte[] req = Encoding.ASCII.GetBytes(cmd); serialPort.Write(req, 0, req.Length); byte[] resp = new byte[serialPort.BytesToRead…… 阅读全文

通信协议:西门子

2026-03-08 19:23:54

摘要:一、西门子S7协议 1. 西门子PLC设备 PLC:系列 LOGO、200、200Smart、300、400、1200、1500 2. 西门子PLC存储区 存储区分类 I:输入、Q:输出、AI:模拟量输入、V/DB:变量存储区 Modbus 线圈状态Q 输入线圈I 输入寄存器AI 保持型寄存V AQ:模拟量输出、M:位存储区、T:定时器存储区、C:计数器存储区、HC:高速计数器、AC:累加器、SM:特殊存储器、L:局部存储区、S:顺序控制继电器 S7 访问规则 类型:bit、Byte、Word、Dword 对应数组 访问地址:最小存储是字节 I0.0 Q1.3 MB10 MW10 M10.0 VW100 V100.1 DB1.DBX100.5 位地址最大:7 3. 通信协议 Modbus协议/OPC 功能有限 NModbus4 S7 私有协议,非公开 功能强大,大部分功能都能完成 通信模式:主从(客/服,单边通信)、伙伴(双边通信,PLC-PLC) 请求流程,可以使用 Wireshark 监控通信过程,S7.NET库测试使用/sharp7 建立TCP连接 Socket.Connect 发送访问请求 COTP 交换通信信息 Setup Communication 执行相关操作 …. 4. S7COMM-COTP报文 COTP报文 第一次交互 请求与响应 byte[] bytes = new byte[] { // TPKT 0x03, 0x00, 0x00,0x16, // COTP 0x11, 0xe0, // 表示连接请求 0x00,0x00, 0x00,0x01, 0x00, // 0xc0 0xc0, 0x01, 0x0a,// 2的10次方 1024 // 0xc1 通信源对应的相关配置 PC 0xc1, 0x02, 0x10, // S7双边模式 也可以选择01- PG 02 OP 0x00, // 不需要设置机架和插槽 // 0xc2 0xc2, …… 阅读全文

通信协议:Modbus

2026-03-07 19:08:21

摘要:一、Modbus协议 **1. Modbus通信方式与分类 ** 串口 RS485(一主多从),不同的报文格式: ModbusAscii(ASCII字符方式进行发送) ModbusRTU(Remote Terminal Unit) 以太网(TCP点对点),报文格式一样。RTU over TCP 以TCP的方式发送RTU的报文 ModbusTCP ModbusUDP 其他连接方式:byte[] 协议 2. Modbus协议下的数据存储 数据存储中的位bit (bool)、字节byte(8个位)、字Word(2个字节,16位)、双字DWord(2个字,4个字节,32位),C#中的数据显示:数据类型、显示格式 内存分区与功能:硬盘分区、功能码 存储区 对象类型 访问类型(针对程序) 存储区标识 说明 可用功能码 线圈状态 单个bit 读写 0XXXX 通过应用程序改变这种类型数据 读01 写 05 15 输入线圈 单个bit 只读 1XXXX I/O系统提供这种类型数据 读02 输入寄存器 16-位 字 只读 3XXXX I/O系统提供这种类型数据 读04 保持寄存器 16-位 字 2个字节 读写 4XXXX 通过应用程序改变这种类型数据 读03 写 06 16 Modbus功能码补充说明: 功能码 16进制 名称 功能 01 读线圈状态 读位(读N个bit)---读从机线圈寄存器,位操作 02 读输入离散量 读位(读N个bit)---读离散输入寄存器,位操作 03 读多个保持型寄存器 读整型、字符型、状态字、浮点型(读N个words)---读保持寄存器,字节操作 04 读多个输入寄存器 读整型、状态字、浮点型(读N个words)---读输入寄存器,字节操作 05 写单个线圈 写位(写一个bit)---写线圈寄存器,位操作 06 写单个保持寄存器 写整型、字符型、状态字、浮点型(写一个word)---写保持寄存器,字节操作 07 读取异常状态 取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定,用户逻辑可以将这些线圈定义,以说明从机状态,短报文适宜于迅速读取状态 08 回送诊断校验 把诊断校验报文送从机,以对通信处理进行评鉴 09 编程(只用于4…… 阅读全文