ORMON PLC 中有字节交换指令么?? 点击:1112 | 回复:7



teamo.wan

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-05-24 16:22:00
楼主
我用的CPM2A机种没有字节交换指令,用起来很不方便.还有许多寄存器中都必须用BCD码来表示数值,一点都不直观.OMRON PLC怎么会如此让人不爽.



zzx789

  • 精华:0帖
  • 求助:2帖
  • 帖子:34帖 | 84回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2006年3月23日
发表于:2006-05-24 18:47:00
1楼
有,你看一下手册.我忘记了指令.

teamo.wan

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-05-25 16:39:00
2楼
TO 飞行者:
大哥,交换指令SWAP在CPM2A机种中输入无效啊!!!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2006-05-25 16:46:00
3楼
只有字交换XCHG指令,字节交换指令没有,只有用MOVD字节传送指令,把字节传送到一个中间通道寄存一下进行交换

teamo.wan

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-05-26 10:53:00
4楼
 TO 匿名人士9527:
是不是对于OMRON所有机种的PLC都没有字节交换指令??

microtomato

  • 精华:1帖
  • 求助:0帖
  • 帖子:85帖 | 1476回
  • 年度积分:0
  • 历史总积分:2078
  • 注册:2001年11月02日
发表于:2006-05-26 13:10:00
5楼
可以自己做啊,例如 设需要交换的2个Byte分别为Byte1和Byte2 如果Byte1是Word的低位,Byte2是Word的高位,那么先将Byte2复制1个副本(利用Mov指令把Byte2所在的字复制1份),然后将Byte2的高8位清零(和#00FF做个AND),再将Byte1所在的Word左移8位(执行SLD两次)后的结果或(OR)一次即可。这样Byte1就复制到Byte2所在的位置了。然后利用刚才所保存的Byte2的副本,按这个原理把Byte2复制到Byte1所在的位置即可。 对于其他情况,比如Byte1是Word的高位,Byte2是Word的低位;或者Word的高位,Byte2也是Word的高位;或者Word的低位,Byte2也是Word的低位,那么可以先做个预处理(首先将Word1和Word2都通过移位指令移动后使之满足Byte1是Word的低位,Byte2是Word的高位这样的条件)后,再次调用上述的子程序,然后再把根据先前所做的预处理把数据恢复即可。

zzx789

  • 精华:0帖
  • 求助:2帖
  • 帖子:34帖 | 84回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2006年3月23日
发表于:2006-05-27 16:31:00
6楼
XCHG就是交换指令

teamo.wan

  • 精华:1帖
  • 求助:0帖
  • 帖子:40帖 | 442回
  • 年度积分:0
  • 历史总积分:732
  • 注册:2005年12月13日
发表于:2006-05-29 08:21:00
7楼
to microtomato: 
那样岂不是太麻烦了,人家AB \三凌\台达的都有字节交换指令SWAP,非常方便

热门招聘
相关主题

官方公众号

智造工程师