主题
部分特殊软元件详细说明
D8005 硬件标志 LP3U
D8005 的每一位反映 PLC 的硬件驱动及连接状态:
| 位 | 含义 | ON 条件 |
|---|---|---|
| .0 | 网口驱动 | 硬件有网口驱动 |
| .1 | 4G 驱动 | 硬件有 4G 驱动 |
| .2 | WIFI 驱动 | 硬件有 WIFI 驱动 |
| .3 | 外部系统时钟 | 有外部系统时钟驱动 |
| .4 | 外部 RTC | 有外部 RTC 时钟驱动 |
| .5 | 4G 已联网 | 4G 已连接到网络 |
| .6 | 网线已连接 | 有网线连接到 PLC |
| .7 | WIFI 已连接 | WIFI 已连接到路由器 |
| .8 | WIFI AP 有设备 | 有设备连接到 WIFI AP |
| .9 | 蓝牙驱动 | 有蓝牙设备驱动 |
| .A | 蓝牙已连接 | 蓝牙已配对连接 |
| .F | 云服务已连接 | 云服务连接成功 |
D8036 硬件版本号对照 LP3U
| D8036 值 | 硬件型号 |
|---|---|
| 8888 | 网口板式 |
| 2248 | LP224V8 |
| 2249 | LP224V9 |
| 2250 | LP224V10 |
| 3201 | ESP32 版 PLC |
| 8266 | ESP8266 版 PLC |
| 2228 | LP222 不带网口版 |
| 2222 | LP222 带网口版 |
| 6420 | LP6420 |
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 |
| K30000 | OneNET 登陆设定:第 1 操作数 >0 转手动上送、第 2 操作数选登陆方式 1/2、第 3、4 操作数填设备 ID 与 API KEY(方式 2 填项目 ID 与鉴权信息) | STM32 |
| K30001 | OneNET 手动上送:把第 2~4 操作数指向的软元件当前值上传 | STM32 |
| K30002 | OneNET 手动上送一个具名数据点:第 1 操作数是数据类型、第 2 是值、第 3 是数据名称 | STM32 |
| K30003 | OneNET 按名称手动上送:第 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 |
| K31000 | RS 做16位数据变换 | ESP32 · STM32 · 4G · 软PLC |
| K31001 | RS 做32位数据变换 | ESP32 · STM32 · 4G · 软PLC |
| K31002 | RS 做浮点数数据变换 | 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 |
| K10001 | AES 加密开关 | ESP32 · STM32 · 4G · 软PLC |
| K18888 | LPPLC 专用云协议:在专用连接里读写软元件 | 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 |
| K8887 | DFROM 直接在网口套接字7上收 UDP 数据 | STM32 |
| K8888 | DFROM 直接在网口套接字8上收 UDP 数据 | STM32 |
| K8889 | DFROM 直接在网口套接字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 |
| K8887 | DTO 直接在网口套接字7上发 UDP 数据 | STM32 |
| K8888 | DTO 直接在网口套接字8上发 UDP 数据 | STM32 |
| K8889 | DTO 直接在网口套接字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 客户端状态码:
| 代码 | 含义 |
|---|---|
| K2000 | TCP CLIENT 正在打开 |
| K2001 | TCP CLIENT 连接服务器成功 |
| K2002 | TCP CLIENT 连接服务器失败(超时) |
| K2010 | TCP CLIENT 正在关闭 |
| K2005 | MQTT 服务器连接成功 |
| K2006 | MQTT 服务器连接失败 |
各指令详细说明
FROM — 从特殊功能模块缓冲区读取数据
| 项目 | 说明 |
|---|---|
| 格式 | FROM 模块 m1, 缓冲 m2, 目标 D, 点数 n |
| 操作数 | 模块 m1, 缓冲 m2, 目标 D, 点数 n |
| 示例 | FROM K0 K29 D0 K1 |
| 步数 | 9 |
| FNC | FNC 78 |
FROM K0 K29 D0 K1DFROM — 32 位从特殊功能模块缓冲区读取(FROM 的 32 位版)
| 项目 | 说明 |
|---|---|
| 格式 | DFROM 模块 m1, 缓冲 m2, 目标 D, 点数 n |
| 操作数 | 模块 m1, 缓冲 m2, 目标 D, 点数 n |
| 示例 | DFROM K0 K29 D0 K1 |
| 步数 | 17 |
| FNC | FNC 78 (D) |
DFROM K0 K29 D0 K1DTO — 32 位向特殊功能模块缓冲区写入(TO 的 32 位版)
| 项目 | 说明 |
|---|---|
| 格式 | DTO 模块 m1, 缓冲 m2, 源 S, 点数 n |
| 操作数 | 模块 m1, 缓冲 m2, 源 S, 点数 n |
| 示例 | DTO K0 K29 D0 K1 |
| 步数 | 17 |
| FNC | FNC 79 (D) |
DTO K0 K29 D0 K1ADPRW — 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 |
| FNC | FNC 276 |
MOV K1007 D8126 ADPRW K1 K3 K0 K2 D100EXTR — 多功能指令:串口/网口设定与 MODBUS 主站读写(做什么由 D8126 决定)
| 项目 | 说明 |
|---|---|
| 格式 | EXTR 合并字(从站地址<<8|功能码,如 H0103=站 1 功能 3), 寄存器地址(0 基), 数据长度, 数据区首址 |
| 操作数 | 见左列;不同 D8126 模式下操作数含义不同,见本节开头的模式表 |
| 示例 | EXTR H0103 K0 K2 D100 |
| 步数 | 9 |
| FNC | FNC 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 |
| FNC | FNC 181 |
MOV K1004 D8126 DEXTR K9600 K0 K81 K1RS — 串口数据收发,串口参数由 D8120 设定
| 项目 | 说明 |
|---|---|
| 格式 | RS 发送起始 S, 发送点数 m, 接收起始 D, 接收点数 n |
| 操作数 | 发送起始 S, 发送点数 m, 接收起始 D, 接收点数 n |
| 示例 | RS D0 K4 D10 K4 |
| 步数 | 9※ |
| FNC | FNC 80 |
RS D0 K4 D10 K4