• «
  • 1
  • 2
  • 3
  • »
  • Pages: 2/3     Go
黄辉冯某某
微信 F1049305119
级别: 家园常客
精华主题: 0
发帖数量: 386 个
工控威望: 521 点
下载积分: 1380 分
在线时间: 170(小时)
注册时间: 2022-03-21
最后登录: 2025-05-25
查看黄辉冯某某的 主题 / 回贴
12楼  发表于: 2023-11-13 13:15
图片:
图片:
松下的写法,不知道算不算满足要求
QQ 302961958
闲鱼  ucldnaqk ,有一些二手学习硬件低价出售
欢迎私聊
方奇10010
级别: 略有小成
精华主题: 0
发帖数量: 98 个
工控威望: 209 点
下载积分: 1608 分
在线时间: 57(小时)
注册时间: 2021-07-29
最后登录: 2025-05-19
查看方奇10010的 主题 / 回贴
13楼  发表于: 2023-11-26 15:04
引用
引用第2楼zmrs163于2023-10-23 08:43发表的  :
D2=2^D0-1

牛逼
ljb6688
级别: 论坛先锋
精华主题: 0
发帖数量: 1842 个
工控威望: 1990 点
下载积分: 115482 分
在线时间: 1987(小时)
注册时间: 2009-12-08
最后登录: 2025-05-26
查看ljb6688的 主题 / 回贴
14楼  发表于: 2023-12-04 15:02
卧虎藏龙啊,开眼长见识了
电气自动化,智能化控制,数据远传采集。工控元件代理,机器人附件    
工控菜鸟
菜鸟一只
级别: 论坛先锋
精华主题: 0
发帖数量: 964 个
工控威望: 1143 点
下载积分: 13891 分
在线时间: 299(小时)
注册时间: 2017-04-12
最后登录: 2025-05-25
查看工控菜鸟的 主题 / 回贴
15楼  发表于: 2024-01-28 09:07
果然程序的尽头是数学
source08
级别: 网络英雄
精华主题: 0
发帖数量: 543 个
工控威望: 6775 点
下载积分: 11526 分
在线时间: 217(小时)
注册时间: 2011-03-01
最后登录: 2025-05-26
查看source08的 主题 / 回贴
16楼  发表于: 2024-02-01 10:46
引用
引用第2楼zmrs163于2023-10-23 08:43发表的  :
D2=2^D0-1


优秀,又学习了。
233708757
级别: 略有小成
精华主题: 0
发帖数量: 152 个
工控威望: 299 点
下载积分: 363 分
在线时间: 99(小时)
注册时间: 2008-03-04
最后登录: 2025-04-01
查看233708757的 主题 / 回贴
17楼  发表于: 2025-02-17 14:42
厉害牛逼啊
罗玩玩
级别: 正式会员
精华主题: 0
发帖数量: 14 个
工控威望: 60 点
下载积分: 443 分
在线时间: 30(小时)
注册时间: 2022-12-01
最后登录: 2025-05-19
查看罗玩玩的 主题 / 回贴
18楼  发表于: 2025-02-18 11:17
根据三菱PLC的指令特性,可以通过以下步骤实现D2低N位置位的需求:

数学原理验证
公式D2 = 2^D0 -1在数学上是成立的。例如:

当D0=4时,2^4 -1 = 15(二进制00001111),低4位全为1。
当D0=5时,2^5 -1 = 31(二进制00011111),低5位全为1。
三菱PLC实现方法
由于三菱PLC没有直接的指数运算指令,需通过移位指令或循环乘法实现幂运算:

方法一:使用移位指令(推荐)
若PLC支持以寄存器值作为移位次数,可用以下代码:
     MOV K1 D10     ; 将1存入临时寄存器D10[[2]]
     SFL  D10 D0    ; 将D10左移D0次(需确认指令支持寄存器指定次数)[[16]]
     SUB  D10 K1 D2 ; D2 = 2^D0 -1[[8]]
方法二:循环乘法(通用方案)
通过循环实现2的D0次方计算:
     MOV K1 D10     ; 初始化D10=1
     MOV D0 D11     ; 设置循环次数为D0
     LOOP:
     CMP  D11 K0    ; 检查循环次数是否完成
     JLE  EXIT      ; 若D11≤0则跳转退出[[12]]
     MUL  D10 K2 D10; D10 *=2(等价于左移1位)[[13]]
     DEC  D11       ; 循环次数减1
     JMP  LOOP      ; 继续循环
     EXIT:
     SUB  D10 K1 D2 ; D2 = D10 -1[[8]]
注意事项
寄存器位数限制:若D0值较大(如≥16),需使用32位寄存器(如D1:D0组合)避免溢出。
指令兼容性:不同型号PLC支持的指令可能略有差异,需参考具体手册调整语法。
效率优化:对于固定范围D0值(如≤16),可预先计算掩码值并存入表格,通过查表直接读取
黄辉冯某某
微信 F1049305119
级别: 家园常客
精华主题: 0
发帖数量: 386 个
工控威望: 521 点
下载积分: 1380 分
在线时间: 170(小时)
注册时间: 2022-03-21
最后登录: 2025-05-25
查看黄辉冯某某的 主题 / 回贴
19楼  发表于: 2025-02-19 20:47
图片:
这样行不行
QQ 302961958
闲鱼  ucldnaqk ,有一些二手学习硬件低价出售
欢迎私聊
gxtmdb82164
级别: 论坛先锋
精华主题: 0
发帖数量: 808 个
工控威望: 1186 点
下载积分: 483 分
在线时间: 649(小时)
注册时间: 2019-09-22
最后登录: 2025-05-26
查看gxtmdb82164的 主题 / 回贴
20楼  发表于: 2025-02-20 20:01
使用SFR指令应可以3行搞定
初始化0xffff到D0
将目标位数用16相减获得移位数,比如说sub K16 n D1,n=6时,D1是10
SFR D0 D1,将0xffff右移10位,因为高位补0,最终的结果在D0中是6个1
307900508
级别: 探索解密
精华主题: 0
发帖数量: 158 个
工控威望: 188 点
下载积分: 1195 分
在线时间: 50(小时)
注册时间: 2021-05-29
最后登录: 2025-05-26
查看307900508的 主题 / 回贴
21楼  发表于: 2025-02-21 08:57
学习一下,高手在民间
飞皇123
三菱渣渣一枚,向大佬们学习
级别: 探索解密
精华主题: 0
发帖数量: 61 个
工控威望: 142 点
下载积分: 346 分
在线时间: 17(小时)
注册时间: 2024-09-05
最后登录: 2025-05-26
查看飞皇123的 主题 / 回贴
22楼  发表于: 20天前
引用
引用第2楼zmrs163于2023-10-23 08:43发表的  :
D2=2^D0-1

太强了
dingzyi
级别: 家园常客
精华主题: 0
发帖数量: 773 个
工控威望: 929 点
下载积分: 10105 分
在线时间: 517(小时)
注册时间: 2011-05-29
最后登录: 2025-05-25
查看dingzyi的 主题 / 回贴
23楼  发表于: 20天前
引用
引用第2楼zmrs163于2023-10-23 08:43发表的  :
D2=2^D0-1

厉害,学习了。
plc
  • «
  • 1
  • 2
  • 3
  • »
  • Pages: 2/3     Go