传输方式

串行端口

qianmoQqianmoQ· 更新于 2026-10-01· 阅读 3 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

通过串行端口(RS-232、RS-485,或以串行端口形式呈现的 USB 适配器)进行通信。

传输语法

{name of the serial port}

名称取决于操作系统:

  • Windows:COM1
  • Linux:/dev/ttyS0、/dev/ttyUSB0
  • macOS:/dev/tty.usbserial-XXXX

示例

modbus-rtu://COM1?serial.baud-rate=19200
modbus-rtu:serial:///dev/ttyUSB0?serial.baud-rate=9600&serial.parity=even
名称 类型 默认值 是否必填 描述
名称 串口 代码

serial

Maven 依赖

<dependency>
  <groupId>org.apache.plc4x</groupId>
  <artifactId>plc4j-transports-serial</artifactId>
  <version>1.0.0</version>
</dependency>

配置选项:

serial.baud-rate

INT

9600

波特率(比特每秒)

serial.data-bits

INT

8

数据位数量(5、6、7 或 8)

serial.stop-bits

INT

1

停止位数量(1 或 2)

serial.parity

STRING

none

奇偶校验:none、odd、even、mark、space(不区分大小写)

serial.flow-control

STRING

none

流控:none、rts-cts、xon-xoff(不区分大小写)

serial.read-timeout-ms

INT

1000

读取超时时间(毫秒)。0 表示阻塞式读取。

serial.write-timeout-ms

INT

1000

写入超时时间,单位为毫秒。

serial.dtr

BOOLEAN

false

启用 DTR(数据终端就绪)信号

serial.rts

BOOLEAN

false

启用 RTS(请求发送)信号

serial.reuse-port

BOOLEAN

false

在多个传输实例之间复用底层串口。设为 true 时,使用同一端口的实例将共享连接。这对于多个逻辑连接共用一个串口的协议非常有用。共享同一端口的连接必须指向不同的单元 ID;Modbus RTU 响应不携带事务 ID,因此无法区分来自多个连接的同一单元的流量。

serial.interframe-delay

INT

0

帧间延迟(毫秒),适用于需要在消息之间保持间隔的协议。该设置对共享端口和专用端口均有效;间隔时间从最后一次写入或接收的数据开始计算。

在 RS-485 总线上,多个设备共享同一个物理端口。serial.reuse-port=true 允许多个 PLC4X 连接在此情况下共享同一个已打开的端口——使用该选项前请先阅读其警告说明。

评论

登录后参与评论

正在加载评论…