Skip to content

扩展模块 ​

点位不够可以扩,最多扩到 256 点

点数不够时,从主机右侧的扩展口往外接扩展模块,扩展来的 X/Y/AI/AO 直接接在主机自带点位的后面,程序里当本机点位一样用,不需要额外配置。

哪些主机有扩展口 ​

型号扩展口
LP3222 / LP3223 / LP3206 / LP3220 / LP3221 / LP3232有
LP3215 / LP3288无

这里说的是 ESP32 版

STM32 版早期还有一套并口扩展模块(EM_4RTD 温度模块、LoRa 串口模块、总线电源模块等),那一代模块已经停产不再维护。现在在售的只有下面这套 I²C 通讯的模块,本页只写这一套。

在售模块 ​

型号代码模块占用点位
32EM_8I8O 数字量8 入 8 出
31LP3223_MR(Smart 外壳版)16 入 16 出
22EM_8AI2AO 模拟量8 路 AI + 2 路 AO

串口扩展模块暂不支持

串口扩展模块(型号代码 33)目前接上去只会被识别到、不能通讯。需要多串口请直接选带多串口的主机型号。

接线与寻址规则 ​

模块通过 I²C 总线级联,主机开机时自动逐个扫描、自动分配地址(带 CRC-8 校验),不需要拨码、不需要设地址。

  • 开机扫描最多认 7 个槽位
  • 扫描遇到空槽即停止,其后即使仍接有模块也不会被识别。模块必须从主机开始连续安装,中间不能留空
  • 扩展点位按八进制接在主机点位之后。以 LP3232(本机 1 字节 X、1 字节 Y)为例,第一个 EM_8I8O 的输入是 X010~X017,输出是 Y010~Y017
  • 模拟量同理,扩展来的 AI/AO 接在本机 AI/AO 通道号之后顺延

上电顺序

扩展模块和主机必须同时上电。主机只在启动时扫描一次并写入地址,运行中插拔的模块不会被识别,也不会自动恢复。更换模块需断电后重新上电。

用 FROM / TO 访问模块缓冲区 ​

普通 I/O 不需要 FROM/TO,直接用 X/Y 就行。只有需要读写模块内部寄存器(BFM)时才用:

FROM  K0  K0  D100  K4     ; 读 0 号模块 BFM0 起 4 个字到 D100
TO    K0  K0  D200  K2     ; 把 D200 起 2 个字写入 0 号模块 BFM0
  • 单元号 K0~K6,对应从主机往外数的第 1~7 个模块
  • 传输成功置位 M8029,失败复位 M8029
  • 单元号大于 7、或该位置没有识别到模块,报错 6708

没有扩展口的主机会直接跳过

在 LP3215 / LP3288 这类没有扩展口的型号上,FROM / TO 指令不报错也不执行,会被直接跳过,因此不能靠它报错来判断机型。移植程序前请先确认目标机型有没有扩展口。

EM_8AI2AO 读到的是原始值 ​

8AI2AO 模块每个扫描周期整体读 8 路 AI、整体写 2 路 AO,模块内没有量程标定寄存器。读回来的是 AD 原始值,写出去的是 DA 原始值,工程量换算要在梯形图或 Lua 里自己做(用 MUL/DIV,或 Lua 的浮点运算)。


实用例程 ​

LDP X3
ADD K1 D1 D1
ADD K1 D200 D200
MOV K1 D60
OUT T10 K300
AND T10
MOV K0 D60
LD M10
MOV K0 D200
MOV K0 D1
MOV K0 D30
MOV K0 D10
MOV K0 D20
RST T0
LD M8000
OUT T0 K100
AND T0
DSUB D1 D10 D20
DMUL D20 K105 D30
DMOV D1 D10
RST T0
END

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

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