『7x24小时有问必答』
十六、select,选择指令。G可以是变量选择性赋值。
G不是固定的数字,而是可以变化的变量,所以能实现 “根据变量的值,给目标变量选不同的值赋值” → 这就是你说的 “G 可以是变量选择性赋值”,也是这个指令的核心优势。
MUX,multiplex多路复用,选择用那一路的IN值,IN0,IN1,IN2,一个OUT,一个ELSE

ENO使能输出Enable Output'

DEMUX。多路分用,输入值选择给几路用.OUT0,OUT1,ELSE

十七、SHR,右移

SHR是汇编逻辑指令shift logical right)

shift是转移的意思

无符号数,填充0,有符号数,填充符号。比如前边是负数,就填充1,正数,填充0

MW70,最高位M70.7,最低位M70.0

MW70的起始位M70.7

Int是有符号,最高位是符号位

十八、程序段并联,分叉的方法,拉出空功能框到程序段下方,有加号后 放手,删除空功能框。就可以用其他替代,如果复制上方P等信息,需要用复制口令。

十九、ROL(Rotate Left):将操作数的二进制位向左循环移动,移出的高位会补到低位空出的位置。

ROR(Rotate Right):将操作数的二进制位向右循环移动,移出的低位会补到高位空出的位置。

常见后缀(数据类型)

_B:Byte(字节,8 位)

_W:Word(字,16 位)

_D:DWord(双字,32 位)

二十、ROL/ROR(循环移位) 与 SHL/SHR(普通移位)区别:假设操作数是字节 VB0 = 16#81(二进制 1000 0001):

ROL_B VB0, 1(循环左移 1 位):

最高位1移出 → 补到最低位 → VB0 = 16#03(二进制 0000 0011)。

SHL_B VB0, 1(普通左移 1 位):

最高位1移出丢弃 → 最低位补 0 → VB0 = 16#02(二进制 0000 0010)。

总结

循环移位(ROL/ROR):重点是 “循环”,移出的位会回到另一侧,无数据丢失,适合需要重复利用所有位的场景(如循环指示灯、状态轮转)。

普通移位(SHL/SHR):重点是 “移位”,移出的位直接丢弃,补 0 填充,适合数值运算(如快速乘 / 除 2)或提取特定位。

两者指令后缀完全一致(_B/_W/_D),仅核心逻辑不同,使用时需根据是否允许数据丢失选择对应指令。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码