sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5200 个
工控威望: 7423 点
下载积分: 158829 分
在线时间: 3162(小时)
注册时间: 2007-11-21
最后登录: 2024-11-28
查看sjm213的 主题 / 回贴
楼主  发表于: 2013-04-01 08:53
系列帖子链接:http://www.ymmfa.com/read-gktid-1421940.html

即日起开始对三菱FX系列PLC的主要应用指令进行简单介绍。
有需要深入探讨的请跟帖讨论。


四、常用指令-触点比较
    触点比较指令是指对数值进行比较,条件满足时使触点置ON的指令。该系列指令有大于、小于、等于、不等于、大于等于、小于等于等。该指令与CMP指令不同在于它可以直接用在逻辑控制中,不占用其他辅助继电器。




需注意在循环移位指令中,若目标操作数采用组合字元件指定,那么它必须设定为16位或32位(即K4Mn或K8Mn)才有效,否则该指令不能正常运行。

2- 循环左移【ROL】Rotation Left
    ROL指令是使不包括进位标志在内的指定位数部分的位依次左移并可以循环移动的指令,移动前最左边的位会移动到右边。其执行效果如下图所示:


    该指令同循环右移指令一样,如果目标操作数指定为组合字元件,那么必须设定为16位或32位。

3- 带进位循环右移【RCR】Rotation Right With Carry
    RCR指令是使包括进位标志在内的指定位数部分的位依次右移并可以循环移动的指令,移动前最右边的位会和进位标志位一起移动到左边。其执行效果如下图所示:


该指令同循环移动指令一样,如果目标操作数指定为组合字元件,那么必须设定为16位或32位。

4- 带进位循环左移【RCL】Rotation Left With Carry
    RCL指令是使包括进位标志在内的指定位数部分的位依次左移并可以循环移动的指令,移动前最左边的位会和进位标志位一起移动到右边。其执行效果如下图所示:

  
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5200 个
工控威望: 7423 点
下载积分: 158829 分
在线时间: 3162(小时)
注册时间: 2007-11-21
最后登录: 2024-11-28
查看sjm213的 主题 / 回贴
1楼  发表于: 2013-04-01 09:00
5- 位右移【SFTR】Shift Right
    SFTR指令是使指定位数长度的软元件每次向右移动指定位数的指令。其执行效果如下图所示:



该指令对于以D开始的n1位数据(移位寄存器的长度),往右移动n2位,移位后,原寄存器内的低n2位数据溢出,高n2位数据由S开始的n2位数据补充。
如果设定n2为K1,则每移动一次只移动一位。

6- 位左移【SFTL】Shift Left
    SFTL指令是使指定位数长度的软元件每次向左移动指定位数的指令。其执行效果如下图所示:
  

该指令对于以D开始的n1位数据(移位寄存器的长度),往左移动n2位,移位后,原寄存器内的高n2位数据溢出,低n2位数据由S开始的n2位数据补充。
如果设定n2为K1,则每移动一次只移动一位。

7- 字右移【WSFR】Word Shift Right
    WSFR指令是使n1个字长的字软元件向右移动n2个字的指令。其执行效果如下图所示:
  


该指令对于以D开始的n1个字软元件往右移动n2个字,移位后,原最右侧n2个字软元件的数据溢出,左侧n2个字软元件数据由S开始的n2个字软元件数据补充。
如果使用组合字元件作为传送源和目标,需要指定相同的位数;若传送源和目标软元件重复则会发生运算错误。

8- 字左移【WSFL】Word Shift Left
    WSFL指令是使n1个字长的字软元件向左移动n2个字的指令。其执行效果如下图所示:
  


该指令对于以D开始的n1个字软元件往左移动n2个字,移位后,原最左侧n2个字软元件的数据溢出,右侧n2个字软元件数据由S开始的n2个字软元件数据补充。
如果使用组合字元件作为传送源和目标,需要指定相同的位数;若传送源和目标软元件重复则会发生运算错误。

9- 移位写入【SFWR】Shift Register Write
    SFWR指令是先入先出控制用的数据写入指令。该指令将源数据写入一个储存区域中,等待其他指令调用。其执行效果如下图所示:
  

该指令执行时,将源数据S的数值写入到目标地址D+1中,同时D的数据加一;再次执行时将源数据S的数值写入到目标地址D+2中,同时D的数据继续加一。也就是说D内的数据记录了已经储存数据的个数,每次执行SFWR指令都会把S的数据填写到紧接下来的空区域中。
当D内记录的个数超过n-1时,不会继续执行数据写入。

10- 移位读出【SFRD】Shift Register Read
    SFRD指令是先入先出控制用的数据读出指令。该指令将SFWR指令储存好的数据一次读出。其执行效果如下图所示:
  


该指令执行时,将源数据S+1的数值写入到目标地址D中,同时S的数据减一;再次执行时将源数据S+2的数值写入到目标地址D中,同时S的数据继续减一。也就是说S内的数据记录了储存数据的剩余个数,当S内记录的个数为0时,不会继续执行数据读出。

SFWR指令和SFRD指令配合接口实现先入先出的控制。所谓先入先出,可以想象产品储存到仓库的库位中,按照入库的顺序排列好,在取货时根据入库的先后顺序优先拿取先入的产品。如以下梯形图实例:

sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5200 个
工控威望: 7423 点
下载积分: 158829 分
在线时间: 3162(小时)
注册时间: 2007-11-21
最后登录: 2024-11-28
查看sjm213的 主题 / 回贴
2楼  发表于: 2013-04-03 21:03
引用
引用第3楼catfree于2013-04-02 12:38发表的  :
谢谢斑竹的热血教授,这一课理解起来有点吃力啊,有个例子吗?x谢过啦


具体例子可以参考编程手册或FX101例;
不清楚的地方可详细描述一下跟帖回复。