Skip to content

部分特殊软元件详细说明 ​

D8005 硬件标志 LP3U ​

D8005 的每一位反映 PLC 的硬件驱动及连接状态:

D8005 位段图:低位是硬件有没有该驱动,中间几位是链路当前通不通

位含义ON 条件
.0网口驱动硬件有网口驱动
.14G 驱动硬件有 4G 驱动
.2WIFI 驱动硬件有 WIFI 驱动
.3外部系统时钟有外部系统时钟驱动
.4外部 RTC有外部 RTC 时钟驱动
.54G 已联网4G 已连接到网络
.6网线已连接有网线连接到 PLC
.7WIFI 已连接WIFI 已连接到路由器
.8WIFI AP 有设备有设备连接到 WIFI AP
.9蓝牙驱动有蓝牙设备驱动
.A蓝牙已连接蓝牙已配对连接
.F云服务已连接云服务连接成功

D8036 硬件版本号对照 LP3U ​

D8036 值硬件型号
8888网口板式
2248LP224V8
2249LP224V9
2250LP224V10
3201ESP32 版 PLC
8266ESP8266 版 PLC
2228LP222 不带网口版
2222LP222 带网口版
6420LP6420

D8009 用户内存使用率 LP3U ​

用户内存是给程序扫描期间使用的临时内存(如 JSON 对象、HTTP 对象、MQTT 对象)。在每次扫描结束前应确保释放内存:

  • END 指令检测到内存未释放时报 6101 内存报警
  • 如果 50% 的内存未释放,则停止 PLC 运行

M8031 / M8032 / M8033 存储器控制 ​

  • M8031:ON 时清除所有非掉电保持的数据(不具备或未设定为掉电保持的数据将清零)
  • M8032:ON 时清除所有掉电保持的数据
  • M8033:ON 时从运行切换到停止状态,不具备掉电保持的软元件不会清零;OFF 时则全部清零

M8034 禁止全部输出 ​

ON 时 PLC 的输出映像仍在正常运行,但输出继电器或晶体管不会动作。适用于调试场景,可在不实际驱动设备的情况下观察程序逻辑。

M8035/M8036/M8037 强制运行/停止 ​

  • M8035 和 M8036 同时通电时强制 PLC 进入运行状态
  • M8037 通电时强制 PLC 进入停止状态

M8039 恒定扫描 / D8039 ​

当 M8039 为 ON 时,PLC 将按 D8039 设定的时间间隔(ms)恒定扫描程序。适用于需要固定扫描周期的运动控制等场景。

M8099 / D8099 高速环形计数器 ​

当 M8099 为 ON 时,D8099 每 0.1ms 加 1,范围 0~32767,到达上限后回绕。可用于精确计时。

实用例程 ​

LDP X0
MOV K1 D0
OUT T0 K600
LD T0
MOV K0 D0
RST T0
END

把上面的地址、主题、引脚替换成你项目里的即可。

M8161 八位处理模式 ​

  • ON:数据帧处理 8 位有效数据,一个字包含一个有效信息字符(放在低字节,高字节忽略)
  • OFF:数据帧处理 16 位有效数据,一个字包含两个有效信息字符(先低字节后高字节)

影响 ASC、RS、ASCII、HEX、CCD 等指令的数据处理方式。

实用例程 ​

梯形图:与下方指令表同一段程序

梯形图:与下方指令表同一段程序

LD M8000
MOV K2004 D8126
LD M8000
EXTR K9600 K0 K81 K2
LD M8000
MOV K2008 D8126
LDP M8013
INC D94
LD>= D94 K5
MOV K0 D94
LD= D94 K1
EXTR H103 H56 K1 D96
LD= D94 K2
EXTR H203 H56 K1 D98
LD M8000
ADD D96 D98 D100
LD M8000
MOV D4 D9
MOV D5 D8
END

把上面的地址、主题、引脚替换成你项目里的即可。

D8126 通讯端口设定(LP3U) ​

EXTR、DEXTR、RS、ADPRW 这几条多功能指令不带功能编号 —— 它们执行时先读 D8126,由这个值决定这一次做什么。 带网口的 STM32 版上,FROM、DFROM、TO、DTO 这四条也查同一格。

下表按指令分组列出各款机型实际支持的每一个模式值,共 151 个。 机型简称:STM32 = 经典 LP22xx 系列(LP2252 / LP2250 / LP2229 / LP2222,都带网口)、ESP32 = WIFI 与三网系列、4G = RDA8910 系列、软PLC = LP6666。一格里没列的机型就是没有这个模式。 敲之前先用 MOV 把值写进 D8126(例:MOV K1004 D8126);D8126 停在您这台机型没有的值时,这几条指令都报 6599。

EXTR —— 多功能指令:串口 / 网口设定与 MODBUS 主站读写

D8126 设定值这一条做什么哪些机型有
K1004设定串口1的通讯格式与协议ESP32 · STM32 · 4G
K1007在串口1上以 MODBUS RTU 连续读写(本机做主站)ESP32 · STM32 · 4G
K1008在串口1上以 MODBUS RTU 脉冲读写(本机做主站)ESP32 · STM32 · 4G
K1009在串口1上以自由口模式 2 运行ESP32 · STM32 · 4G
K1017在串口1上以 MODBUS ASCII 连续读写(本机做主站)ESP32 · STM32 · 4G
K1018在串口1上以 MODBUS ASCII 脉冲读写(本机做主站)ESP32 · STM32 · 4G
K1019在串口1上以 AT 模式运行ESP32 · STM32 · 4G
K2004设定串口2的通讯格式与协议ESP32 · STM32 · 4G
K2007在串口2上以 MODBUS RTU 连续读写(本机做主站)ESP32 · STM32 · 4G
K2008在串口2上以 MODBUS RTU 脉冲读写(本机做主站)ESP32 · STM32 · 4G
K2009在串口2上以自由口模式 2 运行ESP32 · STM32 · 4G
K2017在串口2上以 MODBUS ASCII 连续读写(本机做主站)ESP32 · STM32 · 4G
K2018在串口2上以 MODBUS ASCII 脉冲读写(本机做主站)ESP32 · STM32 · 4G
K2019在串口2上以 AT 模式运行ESP32 · STM32 · 4G
K3004设定串口3的通讯格式与协议ESP32 · STM32 · 4G
K3007在串口3上以 MODBUS RTU 连续读写(本机做主站)ESP32 · STM32 · 4G
K3008在串口3上以 MODBUS RTU 脉冲读写(本机做主站)ESP32 · STM32 · 4G
K3009在串口3上以自由口模式 2 运行ESP32 · STM32 · 4G
K3017在串口3上以 MODBUS ASCII 连续读写(本机做主站)ESP32 · STM32 · 4G
K3018在串口3上以 MODBUS ASCII 脉冲读写(本机做主站)ESP32 · STM32 · 4G
K3019在串口3上以 AT 模式运行ESP32 · STM32 · 4G
K4004设定串口4的通讯格式与协议ESP32 · STM32 · 4G · 软PLC
K4007在串口4上以 MODBUS RTU 连续读写(本机做主站)ESP32 · STM32 · 4G · 软PLC
K4008在串口4上以 MODBUS RTU 脉冲读写(本机做主站)ESP32 · STM32 · 4G · 软PLC
K4009在串口4上以自由口模式 2 运行ESP32 · STM32 · 4G · 软PLC
K4017在串口4上以 MODBUS ASCII 连续读写(本机做主站)ESP32 · STM32 · 4G · 软PLC
K4018在串口4上以 MODBUS ASCII 脉冲读写(本机做主站)ESP32 · STM32 · 4G · 软PLC
K4019在串口4上以 AT 模式运行ESP32 · STM32 · 4G · 软PLC
K5004设定串口5的通讯格式与协议ESP32 · STM32 · 4G · 软PLC
K5007在串口5上以 MODBUS RTU 连续读写(本机做主站)ESP32 · STM32 · 4G · 软PLC
K5008在串口5上以 MODBUS RTU 脉冲读写(本机做主站)ESP32 · STM32 · 4G · 软PLC
K5009在串口5上以自由口模式 2 运行ESP32 · STM32 · 4G · 软PLC
K5017在串口5上以 MODBUS ASCII 连续读写(本机做主站)ESP32 · STM32 · 4G · 软PLC
K5018在串口5上以 MODBUS ASCII 脉冲读写(本机做主站)ESP32 · STM32 · 4G · 软PLC
K5019在串口5上以 AT 模式运行ESP32 · STM32 · 4G · 软PLC
K6004在CAN口上使用 EXTR 指令STM32
K7004设定网口套接字7的工作模式STM32
K7007在网口套接字7上以 MODBUS TCP 连续读写(本机做主站)STM32
K7008在网口套接字7上以 MODBUS TCP 脉冲读写(本机做主站)STM32
K7009在网口套接字7上以自由口模式 2 运行STM32
K7019在网口套接字7上以 AT 模式运行STM32
K7100让网口套接字7工作在 MQTT 模式STM32
K8004设定网口套接字8的工作模式STM32
K8007在网口套接字8上以 MODBUS TCP 连续读写(本机做主站)STM32
K8008在网口套接字8上以 MODBUS TCP 脉冲读写(本机做主站)STM32
K8009在网口套接字8上以自由口模式 2 运行STM32
K8019在网口套接字8上以 AT 模式运行STM32
K8100让网口套接字8工作在 MQTT 模式STM32
K9004设定网口套接字9的工作模式STM32
K9007在网口套接字9上以 MODBUS TCP 连续读写(本机做主站)STM32
K9008在网口套接字9上以 MODBUS TCP 脉冲读写(本机做主站)STM32
K9009在网口套接字9上以自由口模式 2 运行STM32
K9019在网口套接字9上以 AT 模式运行STM32
K9100让网口套接字9工作在 MQTT 模式STM32
K9996读 / 写本机实时时钟(RTC):第 1 操作数填 0 读、非 0 写STM32
K9997停止运行ESP32 · STM32 · 4G · 软PLC
K9998清除PLC程序ESP32 · STM32 · 4G · 软PLC
K9999程序加密:写 D8169 并落盘,之后禁止程序读出ESP32 · 4G · 软PLC
K30000OneNET 登陆设定:第 1 操作数 >0 转手动上送、第 2 操作数选登陆方式 1/2、第 3、4 操作数填设备 ID 与 API KEY(方式 2 填项目 ID 与鉴权信息)STM32
K30001OneNET 手动上送:把第 2~4 操作数指向的软元件当前值上传STM32
K30002OneNET 手动上送一个具名数据点:第 1 操作数是数据类型、第 2 是值、第 3 是数据名称STM32
K30003OneNET 按名称手动上送:第 2 操作数是数据名称STM32

DEXTR —— 32 位版多功能指令:串口设定与电表(DL/T645)读写

D8126 设定值这一条做什么哪些机型有
K1004设定串口1的通讯格式与协议ESP32 · STM32 · 4G
K1027在串口1上连续读写电表(DL/T645)ESP32 · STM32 · 4G
K1028在串口1上脉冲读写电表(DL/T645)ESP32 · STM32 · 4G
K2004设定串口2的通讯格式与协议ESP32 · STM32 · 4G
K2027在串口2上连续读写电表(DL/T645)ESP32 · STM32 · 4G
K2028在串口2上脉冲读写电表(DL/T645)ESP32 · STM32 · 4G
K3004设定串口3的通讯格式与协议ESP32 · STM32 · 4G
K3027在串口3上连续读写电表(DL/T645)ESP32 · STM32 · 4G
K3028在串口3上脉冲读写电表(DL/T645)ESP32 · STM32 · 4G
K4004设定串口4的通讯格式与协议ESP32 · STM32 · 4G · 软PLC
K4027在串口4上连续读写电表(DL/T645)ESP32 · STM32 · 4G · 软PLC
K4028在串口4上脉冲读写电表(DL/T645)ESP32 · STM32 · 4G · 软PLC
K5004设定串口5的通讯格式与协议ESP32 · STM32 · 4G · 软PLC
K5027在串口5上连续读写电表(DL/T645)ESP32 · STM32 · 4G · 软PLC
K5028在串口5上脉冲读写电表(DL/T645)ESP32 · STM32 · 4G · 软PLC
K9996读 / 写本机实时时钟(RTC):第 1 操作数填 0 读、非 0 写STM32

RS —— 串行数据传送:用哪个通道收发、或做数据变换

D8126 设定值这一条做什么哪些机型有
K1000在串口1上用 RS 指令收发自由口数据ESP32 · STM32
K2000在串口2上用 RS 指令收发自由口数据ESP32 · STM32 · 4G · 软PLC
K3000在串口3上用 RS 指令收发自由口数据ESP32 · STM32 · 4G · 软PLC
K4000在串口4上用 RS 指令收发自由口数据ESP32 · STM32 · 4G · 软PLC
K5000在串口5上用 RS 指令收发自由口数据ESP32 · STM32 · 4G · 软PLC
K6000在CAN口上用 RS 指令收发自由口数据STM32
K7000在网口套接字7上用 RS 指令收发自由口数据STM32
K8000在网口套接字8上用 RS 指令收发自由口数据STM32
K9000在网口套接字9上用 RS 指令收发自由口数据STM32
K31000RS 做16位数据变换ESP32 · STM32 · 4G · 软PLC
K31001RS 做32位数据变换ESP32 · STM32 · 4G · 软PLC
K31002RS 做浮点数数据变换ESP32 · STM32 · 4G · 软PLC

ADPRW —— 读写软元件的通讯版:本机做主站对外读写,以及云服务

D8126 设定值这一条做什么哪些机型有
K1006在串口1上用 ADPRW 做脉冲读写(本机做主站)ESP32 · STM32 · 4G
K1007在串口1上用 ADPRW 做连续读写(本机做主站)ESP32 · STM32 · 4G
K2006在串口2上用 ADPRW 做脉冲读写(本机做主站)ESP32 · STM32 · 4G
K2007在串口2上用 ADPRW 做连续读写(本机做主站)ESP32 · STM32 · 4G
K3006在串口3上用 ADPRW 做脉冲读写(本机做主站)ESP32 · STM32 · 4G
K3007在串口3上用 ADPRW 做连续读写(本机做主站)ESP32 · STM32 · 4G
K4006在串口4上用 ADPRW 做脉冲读写(本机做主站)ESP32 · STM32 · 4G · 软PLC
K4007在串口4上用 ADPRW 做连续读写(本机做主站)ESP32 · STM32 · 4G · 软PLC
K5006在串口5上用 ADPRW 做脉冲读写(本机做主站)ESP32 · STM32 · 4G · 软PLC
K5007在串口5上用 ADPRW 做连续读写(本机做主站)ESP32 · STM32 · 4G · 软PLC
K7004设定网口套接字7的工作模式STM32
K7006在网口套接字7上用 ADPRW 做脉冲读写(本机做主站)STM32
K7007在网口套接字7上用 ADPRW 做连续读写(本机做主站)STM32
K7089在网口套接字7上用 ADPRW 做 HTTP 客户端请求STM32
K8004设定网口套接字8的工作模式STM32
K8006在网口套接字8上用 ADPRW 做脉冲读写(本机做主站)STM32
K8007在网口套接字8上用 ADPRW 做连续读写(本机做主站)STM32
K8089在网口套接字8上用 ADPRW 做 HTTP 客户端请求STM32
K9004设定网口套接字9的工作模式STM32
K9006在网口套接字9上用 ADPRW 做脉冲读写(本机做主站)STM32
K9007在网口套接字9上用 ADPRW 做连续读写(本机做主站)STM32
K9089在网口套接字9上用 ADPRW 做 HTTP 客户端请求STM32
K9999程序加密:写 D8169 并落盘,之后禁止程序读出ESP32 · STM32 · 4G · 软PLC
K10000设定本机 IP / 子网掩码 / 网关 / 设备名称ESP32 · STM32 · 4G · 软PLC
K10001AES 加密开关ESP32 · STM32 · 4G · 软PLC
K18888LPPLC 专用云协议:在专用连接里读写软元件ESP32 · STM32
K30010工作在 JSON 模式STM32
K30011工作在 JSON 模式ESP32 · STM32

FROM —— 特殊模块读取 —— 下表仅 STM32 版按 D8126 分通道使用;ESP32 / 4G / 软PLC 也支持本指令(走三菱标准写法),但不读此表,详见下方提示框

D8126 设定值这一条做什么哪些机型有
K1004设定串口1的通讯格式与协议STM32
K2004设定串口2的通讯格式与协议STM32
K3004设定串口3的通讯格式与协议STM32
K4004设定串口4的通讯格式与协议STM32
K5004设定串口5的通讯格式与协议STM32
K6004在CAN口上使用 FROM 指令STM32
K7004设定网口套接字7的工作模式STM32
K8004设定网口套接字8的工作模式STM32
K9004设定网口套接字9的工作模式STM32

TO —— 特殊模块写入 —— 与 FROM 同:下表仅 STM32 版按 D8126 分通道使用;ESP32 / 4G / 软PLC 也支持本指令,但不读此表

D8126 设定值这一条做什么哪些机型有
K1004设定串口1的通讯格式与协议STM32
K2004设定串口2的通讯格式与协议STM32
K3004设定串口3的通讯格式与协议STM32
K4004设定串口4的通讯格式与协议STM32
K5004设定串口5的通讯格式与协议STM32
K7004设定网口套接字7的工作模式STM32
K8004设定网口套接字8的工作模式STM32
K9004设定网口套接字9的工作模式STM32

DFROM —— 32 位版 FROM —— 与 FROM 同:下表仅 STM32 版按 D8126 分通道使用;ESP32 / 4G / 软PLC 也支持本指令,但不读此表

D8126 设定值这一条做什么哪些机型有
K1004设定串口1的通讯格式与协议STM32
K2004设定串口2的通讯格式与协议STM32
K3004设定串口3的通讯格式与协议STM32
K4004设定串口4的通讯格式与协议STM32
K5004设定串口5的通讯格式与协议STM32
K8887DFROM 直接在网口套接字7上收 UDP 数据STM32
K8888DFROM 直接在网口套接字8上收 UDP 数据STM32
K8889DFROM 直接在网口套接字9上收 UDP 数据STM32

DTO —— 32 位版 TO —— 与 TO 同:下表仅 STM32 版按 D8126 分通道使用;ESP32 / 4G / 软PLC 也支持本指令,但不读此表

D8126 设定值这一条做什么哪些机型有
K1004设定串口1的通讯格式与协议STM32
K2004设定串口2的通讯格式与协议STM32
K3004设定串口3的通讯格式与协议STM32
K4004设定串口4的通讯格式与协议STM32
K5004设定串口5的通讯格式与协议STM32
K8887DTO 直接在网口套接字7上发 UDP 数据STM32
K8888DTO 直接在网口套接字8上发 UDP 数据STM32
K8889DTO 直接在网口套接字9上发 UDP 数据STM32

一张表管不住这几条指令

同一个数值在不同指令下不是同一件事:K1007 配 EXTR 是「串口1以 MODBUS RTU 连续读写」, 配 ADPRW 是「串口1用 ADPRW 连续读写」。改 D8126 会同时改掉程序里所有这几条指令的行为。

FROM / DFROM / TO / DTO 只有 STM32 版按这一格分通道

这四条指令是三菱的「读写特殊功能模块缓冲寄存器 BFM」,ESP32 / 4G / 软PLC 上照三菱的写法用(第 1 操作数是模块号), 不读 D8126;STM32 版把它改成了「按 D8126 选通道、读写外部设备」,所以那四张子表只对 STM32 版有效。 网口 UDP 直发直收(K8887~K8889)的写法见 9.6 多机联网。

实用例程 ​

梯形图:与下方指令表同一段程序

LD M8000
MOV D8031 D0
MOV D8032 D2
END

把上面的地址、主题、引脚替换成你项目里的即可。

D8169 限制存取状态 LP3U ​

值源代码信息保存执行程序保护
H**00无无
H**01无有
H**10有无
H**11有有

通讯口状态码对照表 LP3U ​

D8221~D8229 读取的状态码含义:

Modbus 状态码:

代码含义
K0没有错误
K1数据地址出错
K2非法参数
K4资源不足
K6非法状态(协议栈)
K7超时错误
K8校验出错(CRC/LRC)
K9设备地址出错
K10数据个数出错

TCP 客户端状态码:

代码含义
K2000TCP CLIENT 正在打开
K2001TCP CLIENT 连接服务器成功
K2002TCP CLIENT 连接服务器失败(超时)
K2010TCP CLIENT 正在关闭
K2005MQTT 服务器连接成功
K2006MQTT 服务器连接失败

各指令详细说明 ​

FROM — 从特殊功能模块缓冲区读取数据 ​

项目说明
格式FROM 模块 m1, 缓冲 m2, 目标 D, 点数 n
操作数模块 m1, 缓冲 m2, 目标 D, 点数 n
示例FROM K0 K29 D0 K1
步数9
FNCFNC 78
FROM K0 K29 D0 K1

DFROM — 32 位从特殊功能模块缓冲区读取(FROM 的 32 位版) ​

项目说明
格式DFROM 模块 m1, 缓冲 m2, 目标 D, 点数 n
操作数模块 m1, 缓冲 m2, 目标 D, 点数 n
示例DFROM K0 K29 D0 K1
步数17
FNCFNC 78 (D)
DFROM K0 K29 D0 K1

DTO — 32 位向特殊功能模块缓冲区写入(TO 的 32 位版) ​

项目说明
格式DTO 模块 m1, 缓冲 m2, 源 S, 点数 n
操作数模块 m1, 缓冲 m2, 源 S, 点数 n
示例DTO K0 K29 D0 K1
步数17
FNCFNC 79 (D)
DTO K0 K29 D0 K1

ADPRW — MODBUS 主站读写(FNC 276)。工作模式由特殊寄存器 D8126 决定(如 1006=脉冲模式),详见 6.3 ​

项目说明
格式ADPRW 从站地址, 功能码(1/2读线圈/离散输入, 3/4读保持/输入寄存器, 5/6/15/16写), 寄存器地址(0 基), 数据长度, 数据区首址
操作数从站地址, 功能码(1/2读线圈/离散输入, 3/4读保持/输入寄存器, 5/6/15/16写), 寄存器地址(0 基), 数据长度, 数据区首址
示例MOV K1007 D8126 ADPRW K1 K3 K0 K2 D100
步数11
FNCFNC 276
MOV K1007 D8126 ADPRW K1 K3 K0 K2 D100

EXTR — 多功能指令:串口/网口设定与 MODBUS 主站读写(做什么由 D8126 决定) ​

项目说明
格式EXTR 合并字(从站地址<<8|功能码,如 H0103=站 1 功能 3), 寄存器地址(0 基), 数据长度, 数据区首址
操作数见左列;不同 D8126 模式下操作数含义不同,见本节开头的模式表
示例EXTR H0103 K0 K2 D100
步数9
FNCFNC 180

这条自己不决定干什么:执行时先读 D8126,那个值才是"这一次是 MODBUS 读写、还是设串口参数、 还是走 OneNET 上送"。所以用它的固定套路是两句:

MOV  K1007  D8126        ; 先选模式:串口1 以 MODBUS RTU 连续读写
EXTR H0103  K0   K2  D100  ; 站号 1、功能码 3、从 0 号寄存器起读 2 个 → D100 起

D8126 该填哪个值、您这台机型支持哪些模式,见本节上面的 D8126 通讯端口设定 那张表(共 151 个模式值,按机型分组列出)。 D8126 停在本机型没有的值上,这条会报 6599,不是静默不干活。

32 位数据版是 DEXTR(模式表相同,另有 1004 设串口参数、1027/1028 读电表)。

DEXTR — EXTR 的 32 位数据版,模式表与 EXTR 相同;另有 1004 设定串口工作参数、1027/1028 电表(DLT645) 等模式 ​

项目说明
格式DEXTR 1004 模式:波特率, 校验方式, 数据位+停止位, 协议+从站地址;其余模式同 EXTR
操作数1004 模式:波特率, 校验方式, 数据位+停止位, 协议+从站地址;其余模式同 EXTR
示例MOV K1004 D8126 DEXTR K9600 K0 K81 K1
步数17
FNCFNC 181
MOV K1004 D8126 DEXTR K9600 K0 K81 K1

RS — 串口数据收发,串口参数由 D8120 设定 ​

项目说明
格式RS 发送起始 S, 发送点数 m, 接收起始 D, 接收点数 n
操作数发送起始 S, 发送点数 m, 接收起始 D, 接收点数 n
示例RS D0 K4 D10 K4
步数9※
FNCFNC 80
RS D0 K4 D10 K4

LPPLC 工业物联网云平台 · 软硬件与云平台全栈自研