西门子S7-300的任意位数据连续循环移位多位的程序

来源:本站
导读:目前正在解读《西门子S7-300的任意位数据连续循环移位多位的程序》的相关信息,《西门子S7-300的任意位数据连续循环移位多位的程序》是由用户自行发布的知识型内容!下面请观看由(电工学习网 - www.9pbb.com)用户发布《西门子S7-300的任意位数据连续循环移位多位的程序》的详细说明。

FC的输入数据IN(DWord)是要移位的双字,Bit_No(Int)是移位位数。输出数据OUT(DWord)是移位的结果。本文以输入IN的低20位数据连续循环移位1~20位为例。Tmp1和Tmp2分别用来暂存移位后的数据和移位次数剩余值。L1.4是Tmp1(LD0)的第20位。
将L1.4改为LD0的其他位,可以改变要移位数据的位数。例如改为L2.4时,被移位数据的位数为12位。
L #IN
T #Tmp1 //保存被移位的双字
L #Bit_No
BACK: T #Tmp2 //保存移位次数剩余值
L 1
L #Tmp1
RLD //循环移位1位
T #Tmp1
A L 1.4
S L 3.0 // Tmp1的第20位为1则将最低位置位
AN L 1.4
R L 3.0 // Tmp1第20位为0则将最低位复位
CLR
= L 1.4 //将Tmp1第20位清零
L #Tmp2 //取移位次数剩余值
LOOP BACK //减1后非零则返回
L #Tmp1
T #OUT //输出循环移位的结果

CALL FC 1
IN :=MD10
Bit_No:=MW14
OUT :=MD16
用十六进制格式监控MD10和MD16,移位次数MW14的值最好是4的整倍数,监控比较方便。

提醒:《西门子S7-300的任意位数据连续循环移位多位的程序》最后刷新时间 2023-07-10 04:09:32,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《西门子S7-300的任意位数据连续循环移位多位的程序》该内容的真实性请自行鉴别。