跳至主要內容

串口通信

chanchaw大约 6 分钟hardware

协议介绍

modbus协议

modbus通讯分为 Modbus RTUModbus TCP 通讯方式

合理参数

2026年4月6日 为天天虹PLC计米器制作的读取程序,打开串口的参数设置如下。读取米数的指令是 0103177A0002E066,其中 177A 是读取寄存器的起始地址,总共读取两个寄存器,E066 是校验码。要特别注意下面的参数 RThreshold,是针对响应数据 01030402B200005BAC 做的定制,字符长度18,对应字节长度是9,意思在接受一个完整的响应结果后触发 onComm 事件,让监听的客户端读取数据。最后两个参数 RTSEnable,DTREnable 一般都设置为 false

MSComm1.CommPort = 2
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeBinary
MSComm1.RThreshold = 9
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
If MSComm1.PortOpen = True Then
  MSComm1.PortOpen = False
End If
MSComm1.PortOpen = True
MSComm1.RTSEnable = false
MSComm1.DTREnable = false

调试工具

SSCOM

sscom使用方法
sscom使用方法

兰申协议

兰申协议(Lanshan Protocol)是一种在Modbus协议基础上发展而来的通信协议,主要用于工业自动化和设备间的数据传输。它通常用于PLC、传感器、变频器等设备之间的通信。

兰申协议的特点包括:

  1. 兼容性:可以与Modbus协议兼容,支持Modbus RTU和Modbus TCP等不同形式的通信。
  2. 扩展功能:提供了额外的功能和命令,支持设备的远程管理和监控。
  3. 数据格式:定义了特定的数据帧结构,以确保设备间的信息交换的准确性和可靠性。
  4. 应用广泛:在智能制造、楼宇自动化等领域得到广泛应用。

Li 协议

Li协议(Li Protocol)也是一种用于工业设备通信的协议,通常与Modbus等协议相辅相成。Li协议主要用于设备间的数据交换,尤其是在一些特定的应用场景中。

Li协议的特点包括:

  1. 高效性:相较于传统的协议,Li协议在数据传输的效率和实时性上有更好的表现。
  2. 简化通信:设计上简化了数据帧结构,使得设备间的通信更加方便。
  3. 灵活性:支持多种设备类型,可以根据不同的应用需求进行扩展。
  4. 实时监控:常用于需要实时数据采集和监控的场景。

Li协议与兰申协议和Modbus协议在一些领域可能有交集,但它们各自有不同的适用场景和特点。

采集/解析数据

兰申协议

  • 发送指令

    • 构建数据帧,包括起始符、地址、功能码、数据长度、数据内容和校验码。
    • 将构建好的数据帧通过串口或网络发送至目标设备。
  • 解析数据

    • 接收数据帧后,检查起始符和校验码以确保数据完整性。
    • 提取地址、功能码和数据内容,进行相应的处理。
    • 根据功能码执行相应的操作,返回数据或状态信息。
    • 进行 IEEE754 解码时注意接收到的数据默认是大端序,直接进行解码。如果设备要求按照小端序解码则需要反转后解码。例如接收到的数据是 C2ED4000,按照小端序反转后是 0040EDC2

TAS

TAS-LAN-460 单口

记录于 2024年6月25日 17:20:36 ,TAS-LAN-460 单口485交换机的参数设置如下图,默认IP:192.168.0.80,登录账号密码是:admin/12345678。初次使用在天力

tas-lan-460参数设置
tas-lan-460参数设置

8口交换机

8口交换机参数配置
8口交换机参数配置

读取数据

使用 SSCOM 读取作为服务端的 tas 交换机在软件上的配置如下图,设置后先点击“连接”,再点击“发送”。软件在阿里云盘:备份文件 > setup > dev > SSCOM读取Tas460ModBusRTU数据.zip

RS485布线规范

  1. 选择合格的电缆,此为最基本项,线材需选择合格的电缆,一般建议选择4芯屏蔽线,通讯效果更好。
  2. RS485总线必须要接地,严格来说必须要单点可靠接地,单点就是整个485总线上只能有一个点接地,不能多点接地,防止共模干扰。接地时整个线路的地线必须要有良好的接触,从而保证电压一致。
  3. RS485信号线不可和强电电源线一同走线,在施工中,有时工人为图方便会直接将同一管线中的RS485信号线与电源线绑在一起,此时强电的电磁信号会对弱电进行干扰,从而导致RS485信号不稳定、通讯不畅,需避免一同走线。
  4. RS485布线不可布置成星型或树形接线,必须要手拉手的布线,若直接设为星型连接或树形连接,很容易造成信号反射导至总线不稳定。(在接下来的内容中会反复强调)

RTU 和 ASCⅡ 模式

有些串口设备可以调节 MODBUS 使用 RTU模式或者 ASCⅡ 模式通信。根据传输特点,后者抗干扰能力更强,如果使用 RTU 模式建议波特率调整在 9600 以上。RTU 模式一般采用 CRC校验,ASCⅡ 采用LRC校验。两种传输模式的区别如下

传输模式ASCII (7 bit)RTU (8 bit)
编码格式ASCII码 (‘0’-‘9’ ‘A’-‘F’)8bit二进制 (0x00 – 0xff)
起始位
数据位
校验位
停止位1
7,8
无、奇、偶
1、21
8
无、奇、偶
1、2
帧校验LRCCRC16

ASCⅡ 解析方式见下:
串口通信ASC

TCP 通讯

寄存器和数据类型

寄存器类型数据长度寄存器数量描述
COIL1 bit-布尔变量(ON OFF)
FLOAT32 bit232位浮点数(IEEE754格式)
INT16 bit1无符号整型(0x0 – 0xFFFF)
DOUBLE64 bit464位浮点数(IEEE754格式)

各种数据类型介绍

COIL

布尔变量 0xFF00 -> ON 0x0000 -> OFF

FLOAT

使用2个寄存器存储单精度IEEE754格式的浮点数。 每个浮点数包含4个字节,具体定义如下: SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM S:符号位 0->正 1->负 (1位) E:阶码 (8位) M:尾数的小数部分 (23位) 例如:0xC1480000 = -12.5

DOUBLE

使用4个寄存器存储单精度IEEE754格式的浮点数。 每个浮点数包含8个字节,具体定义如下: S:符号位 0->正 1->负 (1位) E:阶码 (11位) M:尾数的小数部分 (52位)

INT

使用1个寄存器存储无符号整型数。 例如:0x0025 = 37 0x1234 = 4660