Skip to content

软元件一览 ​

PLC的软元件是程序操作的基本对象。以下是LP3U支持的软元件概览:

软元件地址空间地图

软元件名称类型说明
X输入继电器位元件对应PLC硬件开关量输入,编号采用八进制(X0~X377)
Y输出继电器位元件对应PLC控制输出,编号采用八进制(Y0~Y377)
M辅助继电器位元件中间存储,普通M为 M0~M7679,系统特殊M为 M8000~M8511
S状态继电器位元件步进控制用状态标志(S0~S4095)
T定时器位/字元件计时功能,时基按编号分档(T0~T511,见下方资源规格表)
C计数器位/字元件计数功能,C0~C199 为 16 bit,C200~C255 为 32 bit 增减计数器
D数据寄存器字元件16 bit数据存储,普通D为 D0~D7999,特殊D为 D8000~D8511
R扩展寄存器字元件断电保持的扩展存储区(R0~R32767),数值一有变化就写入 Flash,适合存少量不常改的配置与累计量
V、Z变址寄存器字元件用于数据间接寻址,只有 V0~V7、Z0~Z7 这 8 个
P指针-跳转指针和子程序指针(P0~P4095)
I中断指针-中断子程序入口(高速输入、定时、计数等中断)
K十进制常数-如 K100 表示十进制数100
H十六进制常数-如 H00FF 表示十六进制数FF
E浮点数常数-如 E3.14 表示浮点数3.14

指令里的地址写越界,编译那一步就拦下来

不会等到运行才发现,编译时直接报错并指出是哪一条指令的哪个操作数:

步号0(第1行): X 编号必须是八进制(0-7的组合): X8
MOV 第2个操作数: 特殊寄存器 D12000 超出范围(D8000-D8511)

第二条里那句话透露了一个容易踩的规则:编号 ≥ 8000 一律按特殊区判,D8512 以上连"普通寄存器"都不算, 想要大容量数据区请用 R(R0~R32767,断电保持)。

软元件资源规格 ​

每类软元件有多少个 ​

编号范围名称点数数据宽度说明
X0~X377输入继电器256位(ON/OFF)编址用八进制
Y0~Y377输出继电器256位(ON/OFF)编址用八进制
M0~M7679辅助继电器7680位(ON/OFF)普通 M0~M7679
M8000~M8511辅助继电器512位(ON/OFF)特殊辅助继电器(只读居多)
S0~S4095状态继电器4096位(ON/OFF)步进状态
D0~D7999数据寄存器800016 位有符号整数普通数据寄存器
D8000~D8511数据寄存器51216 位有符号整数特殊数据寄存器
T0~T511定时器512位 + 16 位字触点 + 当前值/设定值
C0~C255计数器256位 + 16 位字C0~C199 为 16 位,C200~C255 为 32 位
R0~R32767扩展寄存器3276816 位有符号整数每次数值变化写一次 Flash
AI0~AI84模拟量输入8516 位有符号整数实际装了几路看机型
AO0~AO127模拟量输出12816 位有符号整数实际装了几路看机型

定时器按编号分档 ​

定时器的时基由编号决定,不是由您填的 K 值决定 —— 同是 K100,T0 是 10 秒、T200 是 1 秒。

编号范围时基类型点数定时范围(设定值 K 取 1~32767)
T0~T199100ms通用2000.1 ~ 3276.7 秒
T200~T24510ms通用460.01 ~ 327.67 秒
T246~T2471ms积算(累计)20.001 ~ 32.767 秒
T248~T24910ms积算(累计)20.01 ~ 327.67 秒
T250~T255100ms积算(累计)60.1 ~ 3276.7 秒
T256~T5111ms通用2560.001 ~ 32.767 秒

通用:驱动它的能流一断,当前值立刻清零。 积算:能流断了不清零,接着累计,只有 RST 才清零(T246~T255)。

出厂默认的断电保持区间 ​

下表是**新设备(或恢复出厂后)**上电时不清零的那几段,其余软元件每次上电都从 0 开始。

软元件出厂默认保持范围点数这一段最多设到
辅助继电器 MM500~M1023524M1023
状态继电器 SS500~S999500S999
计数器 C(16 位段)C100~C199100C199
计数器 C(32 位段)C220~C25536C255
数据寄存器 DD200~D511312D511

保持范围可以在参数里改,但改不出上一列的上限

上表的起止编号是设备参数,在上位机的「锁存范围」里改:M / S / D 各一段,计数器分 16 位段与 32 位段两段独立设定。 上电时设备会把不在保持范围内的数据清零 —— 把范围改小,原来存在被移出那一段的数据会在下次上电时丢掉。 两条硬上限改不动:M 只能设到 M1023 以内、S 只能 S999 以内(M1024 以上、S1000 以上每次上电一定清零); D 只能设到 D511,D512 往上没有「保持」一说 —— 要长期保留的数据放扩展寄存器 R。

定时器不参与断电保持

设备上电时 T0~T511 的当前值和设定值一律清零(定时器没有掉电保持区), 所以积算定时器 T246~T255 只扛得住「能流断开」,扛不住断电。 要跨断电累计运行时长,把时长累计到 D 区(放进保持段)或扩展寄存器 R 里,别指望定时器本身。

扩展寄存器 R 怎么用最合适

R 的每一次数值变化都会写一次 Flash,所以它适合存改动很少的东西(配方、标定值、累计产量), 不适合放在每个扫描周期都在变的回路里 —— 那会拖慢扫描,也会提前耗尽 Flash 的写入次数。 中间变量请用 D;成规模的历史数据用 Lua 的 fdb 接口。

模拟量点数随机型而变

上表里的 AI/AO 是地址空间的上限,不是您这台机器上实际装了几路。 某台机型有几个模块、每模块几路,看订货型号与硬件配置页;只有接了硬件的通道才会有读数。

详细说明

各软元件的详细规格、编号范围和特殊用法,请参考:


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