三菱有 Kn 位组合写法,欧姆龙 CP1H 没有 K1/K4 这种 Kn 组合语法;CP1H 靠通道 (CH / 字)+ 位号直接寻址、连续位打包、位传送指令 MOVD、批量置位 SETA/RSTA、连续通道组合这 4 种方式实现「组合位元件」等效功能,下面完整拆解、附实操案例。
一、CP1H 基础存储规则
位元件(bit):只有 ON/OFF,格式:
区域.位号CIO0.00、W10.05、H2.11、X(CIO 输入)、Y(CIO 输出)都是独立位。通道 CH(字 Word):1 个通道 =16 个连续位(bit0~bit15),16 位二进制数值;CIO0 通道 = CIO0.00~CIO0.15;D100 通道 = D100.00~D100.15。
误区纠正:三菱
K4X0把 16 个输入位拼成 1 个字;CP1H 不支持 Kn 语法,但有完整替代方案。
CIO通道位分配示意图
二、方式 1:直接寻址连续多位(最常用,单通道内位组合)
1)单通道内任意连续 N 个位打包读取 / 赋值
单个 CH 内 bit0~bit15 可以单独取用任意一段连续位,当成一组组合位:示例:CIO100(输出通道)
CIO100.00~CIO100.03:低 4 位,4bit 组合
CIO100.04~CIO100.11:中间 8bit 组合
CIO100.00~CIO100.15:完整 16 位,等同于整个通道字
2)批量置位 / 复位一组连续位:SETA、RSTA(批量组合操作)
官方专用多位置位、复位指令,一次性操作连续多个位,等效批量组合位输出。指令格式:
plaintext
SETA CH 起始位 位数 // 连续N个位置ON RSTA CH 起始位 位数 // 连续N个位置OFF
实操例子:
plaintext
// 条件ON时:CIO200.05开始,连续20个bit全部置1 SETA 200 &5 &20 // CIO100.00开始,连续8个输出位全部复位OFF RSTA 100 &0 &8
适用场景:流水线 8 个电磁阀同步启停、多位指示灯组批量控制。
三、方式 2:MOVD 指令(4bit 为一组拆分 / 拼接位,完美对标三菱 Kn)
CP1H MOVD 指令:以 4bit(1 个十六进制数位)为最小单元,自由截取、拼接任意连续位,完全替代 K1~K4 组合位元件。
指令格式
MOVD 源S 控制字C 目标D控制字 C = #0Inm,4 位十六进制含义:
I:目标通道起始 4bit 组号(0~3,每组 4bit)n:传送几组(0=1 组 4bit,1=2 组 8bit,2=3 组 12bit,3=4 组 16bit)m:源通道起始 4bit 组号(0~3)
实操对标三菱 Kn 案例
案例 1:对标 K1X0(4 位输入拼成 1 个数值)
把 CIO0.00~CIO0.03(4 个输入位)拼成 4 位数值送入 D10:控制字 C=#0030:目标起始组 0、传送 4 组?修正:传送 1 组(n=0)
plaintext
MOVD 0 #0000 D10
含义:截取 CIO0 通道第 0 组 4bit(bit0~bit3),送入 D10 第 0 组 4bit。
案例 2:对标 K2X0(8 位输入拼成字节)
CIO0.00~CIO0.07 共 8 位送入 D20 低 8 位:控制字 #0130(n=1,传送 2 组 = 8bit)
plaintext
MOVD 0 #0130 D20
案例 3:对标 K4X0(16 位整通道位拼成完整字)
CIO0 完整 16 位全部复制到 D30:MOVD 0 #0330 D30等价三菱 MOV K4X0 D30。
四、方式 3:跨多通道连续位组合(超过 16 位多字拼接)
当组合位数量>16bit(超过 1 个 CH),直接用连续多个通道叠加组成多字组合位:
2 个通道 = 32 位组合位:CIO100(低 16bit)+CIO101(高 16bit)
3 个通道 = 48 位组合位:D100+D101+D102
配套移位批量操作:SFTR 字移位指令
多通道连续位整体循环移位,适合顺序输送、分拣工位寄存器组,批量操作一整串组合位。
plaintext
SFTR 控制字 CH起始 CH结束
示例:D100~D102 三个通道连续 48 位整体右移 1 位。
五、方式 4:IO 物理点位直接组合(端子输入批量读入数值)
CP1H 自带 IO 固定地址:
输入端子:CIO0.00~CIO1.11(24 点输入)
输出端子:CIO100.00~CIO101.07(16 点输出)
应用场景:拨码开关读取(经典组合位用法)
4 位 BCD 拨码开关接输入端子 CIO0.00~0.03(4 个 bit):
用 MOVD 截取 4 位 bit 到 D10,直接得到拨码十进制数值;
不用逐个判断每个位的 ON/OFF,一次组合读取数值。
六、CP1H「组合位」4 种方案选型对照表
表格
| 需求场景 | 推荐方案 | 等效三菱写法 |
|---|---|---|
| 单通道内少量连续位批量置位 / 复位 | SETA/RSTA | 批量 SET/RST |
| 4/8/12/16 位位拼成数值运算 | MOVD 指令 | K1/K2/K3/K4 |
| 完整 16 位通道整体赋值传送 | MOV CH Dxxx | K4X0 |
| 超过 16 位多字长连续位操作 | 连续 CH+SFTR 移位 | K8M0 |
| HMI 多指示灯组同步控制 | SETA 批量输出 | K2Y0 |
七、新手高频实操示例(CX-Programmer 梯形图)
示例 1:4 个输入点组合成数值送入 D 寄存器
CIO0.00~0.03 接 4 路拨码输入,拼成数值存入 D50:
plaintext
LD P_On MOVD 0 #0000 D50
D50 低 4 位 = CIO0.00~0.03 二进制值,可直接用于比较、计数运算。
示例 2:8 路输出电磁阀一键全部打开
CIO100.00~100.07 共 8 个输出端子一次性置 ON:
plaintext
LD I0.05 SETA 100 &0 &8
示例 3:8 路输出一键全部关闭
plaintext
LD I0.06 RSTA 100 &0 &8
八、关键注意点(避坑)
CIO 自带 IO 空余 bit(CIO0.12~15、CIO1.12~15)系统自动清零,不能用作组合位;
MOVD 最小操作单元固定 4bit,不足 4bit 的零散位,建议先用位传送指令单独赋值;
多通道组合位做 32 位运算时,CP1H 用 LONG 型双字指令(MOVL)高低 CH 区分高低 16 位;
W、H、D、CIO 所有区域位,都可以用上面任意方式组合,不限于 IO 端子。
总结
欧姆龙 CP1H 没有三菱 Kn 标准语法,但依靠:
单通道内直接位寻址
SETA/RSTA 批量位操作
MOVD 4bit 分组拼接(完全替代 Kn)
多连续通道长字组合。

