Spiga

2026年3月的文章归档

通信协议:三菱

2026-03-15 16:38:47

摘要:一、三菱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 15:52:38

摘要:一、欧姆龙协议 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 21:13:34

摘要:一、西门子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 18:19:31

摘要:一、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…… 阅读全文