MOV K4 K1Y004

本文详细解析了PLC编程中的MOVK指令,该指令用于将十进制常数传送到指定的位元件组。以MOVK 4K1Y004为例,它将十进制数4(二进制为0100)分配到Y004开始的1个位元件组,导致Y006置位为1,其余Y007、Y005、Y004为0。理解这一指令对于正确控制PLC逻辑至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MOV K4 K1Y004表示将十进制常数传送到起始位置为Y004的1个位元件组中。由于十进制常数4转换为二进制数为0100。所以,该指令执行时,Y006为“1”,Y007、Y005、Y004为“0”。也就是指令执行时,这个位元件组只有Y006有输出。

MOV-数据传送指令。
K4-表示十进制常数4。
K1Y004-表示起始位置为Y004的1个位元件组,1个位元件组内包括4个位元件。所以 K1Y004就是Y007~Y004之间的4个位元件。

0100高位<-低位
Y7Y6 Y5Y4  Y7 <- Y4

 

|----[ ]-----------------------[MOV K1 D0]-----------------| // 初始化水泵队列指针 | M8002 (初始化脉冲) | | | |----[ ]-----------------------[MOV K0 D1]-----------------| // 初始化水泵运行标志 | M8002 | | | |----[ ]-----------------------[MOV K1 D2]-----------------| // 初始目标数量=1台 | M8002 | | | |--[X0]--------[X1]---------[RST M0] [RST M1] [RST M2] [RST M3] // 自动模式时复位手动请求 | 下降沿 | | | |--[X0]--------[ ]---------[RST M10][RST M11][RST M12][RST M13] // 手动模式时复位自动请求 | 上升沿 | | | |--[X1]--------[ ]---------[RST M10][RST M11][RST M12][RST M13] // 自动停止时复位自动请求 | 下降沿 | | | |===================== 手动控制部分 ========================| |--[X0]--[X5]--[X6]--[X15]--(SET M0) // 水泵1手动启动 (带过载保护) |--[X0]--[X6]-----------(RST M0) // 水泵1手动停止 |--[X0]--[NOT X15]------(RST M0) // 水泵1过载停止 | | |--[X0]--[X7]--[X10]-[X16]-(SET M1) // 水泵2手动启动 |--[X0]--[X10]----------(RST M1) // 水泵2手动停止 |--[X0]--[NOT X16]------(RST M1) // 水泵2过载停止 | | |--[X0]--[X11]-[X12]-[X17]-(SET M2) // 水泵3手动启动 |--[X0]--[X12]----------(RST M2) // 水泵3手动停止 |--[X0]--[NOT X17]------(RST M2) // 水泵3过载停止 | | |--[X0]--[X13]-[X14]-[X20]-(SET M3) // 水泵4手动启动 |--[X0]--[X14]----------(RST M3) // 水泵4手动停止 |--[X0]--[NOT X20]------(RST M3) // 水泵4过载停止 | | |===================== 自动控制部分 ========================| |--[NOT X0]--[X1]------------------------------------------| | | | // 压力开关逻辑处理 | |--[X2]-----------------[T0 K300]------| // K1接通延时30s |--[T0]--[X2]--[D2<4]----(INC D2) | // 增加水泵目标数 | | |--[X4]-----------------[T1 K300]------| // K3接通延时30s |--[T1]--[X4]--[D2>1]----(DEC D2) | // 减少水泵目标数 | | | // 水泵队列管理 (D0=当前指针, D1=运行标志) | |--[D1<D2]--[CMP D0 K1]--[NOT M10]----(SET M10) [INC D0] | // 启动水泵1 |--[D1<D2]--[CMP D0 K2]--[NOT M11]----(SET M11) [INC D0] | // 启动水泵2 |--[D1<D2]--[CMP D0 K3]--[NOT M12]----(SET M12) [INC D0] | // 启动水泵3 |--[D1<D2]--[CMP D0 K4]--[NOT M13]----(SET M13) [MOV K1 D0] | // 启动水泵4并重置指针 | | |--[D1>D2]--[M10]--------(RST M10) [INC D0] // 停止水泵1 | |--[D1>D2]--[M11]--------(RST M11) [INC D0] // 停止水泵2 | |--[D1>D2]--[M12]--------(RST M12) [INC D0] // 停止水泵3 | |--[D1>D2]--[M13]--------(RST M13) [MOV K1 D0] // 停止水泵4并重置指针 | | | // 更新实际运行数量 | |--[ ]-------------------[BMOV M10 K4M100 K1] | // 复制运行标志到M100-M103 |--[ ]-------------------[DCNT K4M100 D1] | // 计算运行水泵数量(D1) | | |===================== 输出控制部分 ========================| |--[M0]--[X0]-----------------------(Y0) // 手动控制水泵1 | |--[M10]--[NOT X0]--[X1]--[X15]----(Y0) // 自动控制水泵1 | |--[Y0]-----------------------------(Y4) // 水泵1状态指示 | | | |--[M1]--[X0]-----------------------(Y1) // 手动控制水泵2 | |--[M11]--[NOT X0]--[X1]--[X16]----(Y1) // 自动控制水泵2 | |--[Y1]-----------------------------(Y5) // 水泵2状态指示 | | | |--[M2]--[X0]-----------------------(Y2) // 手动控制水泵3 | |--[M12]--[NOT X0]--[X1]--[X17]----(Y2) // 自动控制水泵3 | |--[Y2]-----------------------------(Y6) // 水泵3状态指示 | | | |--[M3]--[X0]-----------------------(Y3) // 手动控制水泵4 | |--[M13]--[NOT X0]--[X1]--[X20]----(Y3) // 自动控制水泵4 | |--[Y3]-----------------------------(Y7) // 水泵4状态指示 | 上面是利用三菱fx2n系列写的plc代码,使用gx works2软件。如何解决一按下x2过30s四个泵都启动的问题,当然,按下x4过30s也会出类似问题
最新发布
06-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值